]> jfr.im git - irc/rizon/acid.git/blob - acid/src/main/java/net/rizon/acid/messages/Kick.java
87d0798f3d935eef6f6aff34cdf4064b8eaff463
[irc/rizon/acid.git] / acid / src / main / java / net / rizon / acid / messages / Kick.java
1 package net.rizon.acid.messages;
2
3 import net.rizon.acid.core.AcidCore;
4 import net.rizon.acid.core.Acidictive;
5 import net.rizon.acid.core.Channel;
6 import net.rizon.acid.core.Message;
7 import net.rizon.acid.core.Server;
8 import net.rizon.acid.core.User;
9
10 import java.util.logging.Level;
11
12 public class Kick extends Message
13 {
14 public Kick()
15 {
16 super("KICK");
17 }
18
19 // :99hAAAAAB KICK #geo 99hAAAAAB :Lame and fake
20
21 @Override
22 public void on(String source, String[] params)
23 {
24 String channel = params[0];
25 User kickee = User.findUser(params[1]);
26 if (kickee == null)
27 {
28 AcidCore.log.log(Level.WARNING, "KICK for nonexistent user " + params[1]);
29 return;
30 }
31
32 String kicker = User.toName(source);;
33 if (kicker == source)
34 kicker = Server.toName(source);
35 if (kicker == source)
36 AcidCore.log.log(Level.WARNING, "KICK from nonexitent source " + source);
37
38 Channel chan = Channel.findChannel(channel);
39 if (chan == null)
40 {
41 AcidCore.log.log(Level.WARNING, "KICK from " + kicker + " for " + kickee.getNick() + " on nonexistent channel " + channel);
42 return;
43 }
44
45 chan.removeUser(kickee.getNick());
46 kickee.remChan(chan);
47
48 Acidictive.onKick(kicker, kickee, channel, params[2]);
49 }
50 }