package modules;
import bot.Config;
import bot.Message;
import bot.Module;
import bot.Server;
import bot.info.Info;
public class Admin implements Module{
@Override
public void parse(Message m) {
String target = m.param();
if(!m.param().startsWith("#")) target = m.sender();
if(m.command().equals("NICK")){
if(m.sender().equals(Config.getNick())){
if(Config.getChar().startsWith(Config.getNick())){
Config.setChar(m.trailing() + ": " );
}
Config.setNick(m.trailing());
Info.changeNick(m.sender(), m.trailing());
}
}
if(m.command().equals("474")){
if(m.trailing().contains("+b")){
Config.removeRoom(m.trailing().split("\\s+")[0]);
}
}
if(m.command().equals("KICK")){
if(m.trailing().startsWith(Config.getNick())){
Config.removeRoom(m.param().substring(1));
}
}
if(m.command().equals("PART")){
if(m.sender().equals(Config.getNick())){
Config.removeRoom(m.param().substring(1));
}
}
if(m.senderIsAdmin()){
if(m.botCommand().equals("admin")){
if(m.botParamsArray().length > 1){
if(m.botParamsArray()[0].equals("add")){
Config.addAdmin(m.botParamsArray()[1]);
Server.say(target, m.botParamsArray()[1] + " is now an admin.");
}
if(m.botParamsArray()[0].equals("del")){
if(Config.removeAdmin(m.botParamsArray()[1])) Server.say(target, m.botParamsArray()[1] + " is no longer an admin");
else Server.say(target, m.botParamsArray()[1] + " is not an admin");
}
}
}
if(m.botCommand().equals("listchans")){
String chans = "";
for(String room : Config.getRooms()){
chans += room + " ";
}
if(chans.equals("")){
chans = "Not currently in any channels";
}
Server.say(target, chans.trim());
}
if(m.botCommand().equals("leave")){
m.send("PART " + m.param());
Config.removeRoom(m.param());
}
if(m.botCommand().equals("char")){
String commandChar = m.botParamsArray()[0];
if(commandChar.equals("self")) {
commandChar = Config.getNick() + ": ";
}
Server.say(target, "changed char to " + commandChar);
Config.setChar(commandChar);
}
if(m.botCommand().equals("nick")){
if(m.hasBotParams()){
String newNick = m.botParamsArray()[0];
m.send("NICK " + newNick);
}
}
if(m.botCommand().equals("join")){
if(m.hasBotParams()){
for(int i = 0; i < m.botParamsArray().length; i++){
String roomtojoin = m.botParamsArray()[i];
if(roomtojoin.contains(",")){
Server.say(target, "nice try");
continue;
}
m.send("JOIN " + roomtojoin);
Config.addRoom(roomtojoin);
m.send("WHO " + roomtojoin);
}
Server.say(target, "Now joining " + m.botParams());
}
}
if(m.botCommand().equals("send")){
if(m.hasBotParams()) m.send(m.botParams());
}
if(m.botCommand().equals("pm") || m.botCommand().equals("msg")){
if(m.hasBotParams()){
String tosend = "";
for(int i = 1; i < m.botParamsArray().length; i++){
tosend += m.botParamsArray()[i] + " ";
}
tosend.trim();
m.pm(m.botParamsArray()[0], tosend);
}
}
if(m.botCommand().equals("notice")){
if(m.hasBotParams()){
String tosend = "";
for(int i = 1; i < m.botParamsArray().length; i++){
tosend += m.botParamsArray()[i] + " ";
}
tosend.trim();
m.notice(m.botParamsArray()[0], tosend);
}
}
if(m.botCommand().equals("say")){
Server.say(target, m.botParams());
}
if(m.botCommand().equals("amsg")){
for(String room : Config.getRooms()){
Server.pm(room, m.botParams());
}
}
if(m.botCommand().equals("quit")){
String reason;
if(m.hasBotParams()) reason = m.botParams();
else reason = "Shutting down";
Server.disconnect(reason);
}
if(m.botCommand().equals("part")){
for(String s : m.botParamsArray()){
Server.send("PART " + s);
Config.removeRoom(s);
}
}
}
}
}