package modules; import bot.Config; import bot.Message; import bot.Module; import bot.Server; import bot.info.Info; public class UserModes implements Module { private boolean started = false; @Override public void parse(Message m) { if(m.command().equals("352")){ bot.info.Info.parse(m.trailing()); } if(m.command().equals("NICK")){ Info.forget(m.sender()); Info.changeNick(m.sender(), m.trailing()); Server.send("WHO " + m.trailing()); } if(m.command().equals("PART")){ Info.removeChan(m.sender(), m.param()); } if(m.command().equals("KICK")){ Info.removeChan(m.trailing().split("\\s+")[0], m.param()); } if(m.command().equals("QUIT")){ Info.forget(m.sender()); } if(m.command().equals("JOIN")){ Server.send("WHO " + m.sender()); Info.parse(String.format("%s %s %s * %s H :0 Unknown", m.trailing(), m.username(), m.senderHost(), m.sender())); } if(m.command().equals("MODE")){ Server.send("WHO " + m.param()); } if(!started){ started = true; check(); } } private void check(){ new Thread(new Runnable() { @Override public void run() { while(true){ if(!Server.isConnected()) continue; for(String room : Config.getRooms()){ try { long waittime = (long)((double)1 / Config.getRooms().size()*120000); Thread.sleep(waittime); } catch (InterruptedException e) {} Server.send("WHO " + room); } } } }).start(); } }