/**
* Затаскиваем юзера в чат
* Работает только если юзер зарегистрирован.
* команда !uchat id
*/
import ru.jart.JimBot.mod.AbstractServer;
import ru.jart.JimBot.properties.*;
import ru.jart.JimBot.modules.chat.*;
import ru.jart.JimBot.modules.chat.ChatQueue;
import ru.jart.JimBot.modules.chat.ChatProps;
import ru.jart.JimBot.mod.*;
import ru.jart.JimBot.properties.Log;
import ru.jart.JimBot.modules.chat.ChatServer; // Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
try{
Vector v = cmd.getParser().parseArgs(msg);
//Согласно шаблону, оба аргумента должны быть числами
int i1 = (Integer)v.get(0);
Users uss = cmd.srv.us.getUser(i1);
boolean f = false;
if(uss.localnick==null || uss.localnick.equals("") || uss.state==UserWork.STATE_NO_REG) {
proc.mq.add(uin, "Данный юзер не зарегистрирован");
return;
}
if (uss.state==UserWork.STATE_CHAT) return proc.mq.add(uin, "Юзер уже в чате"); //Юзер уже в чате
if (uss.state==UserWork.STATE_NO_CHAT) {
Log.info("Добавление контакта: " + uin);
if(proc.isNoAuthUin(uin)) proc.authRequest(uin);
proc.addContactList(uin);
uss.state = UserWork.STATE_CHAT;
uss.basesn = proc.baseUin;
uss.status="Готов чатиться";
cmd.srv.us.updateUser(uss);
ChatServer.cq.addMsg("[" + uss.id + "] " + uss.localnick + "насильно затащен в чат в чат. Рейтинг пользователя: " + uss.rate, uss.sn, uss.room);
proc.mq.add(uin, uss.localnick+" затащен в чат");
proc.mq.add(uss.sn,"Вас затащили в чат,непугайтесь всё хорошо!ICQ:366886612(ПрОсТоЙ)");
f = true;
}
if (uss.state==UserWork.STATE_OFFLINE) {
uss.state = UserWork.STATE_CHAT;
uss.basesn = proc.baseUin;
uss.status="Готов чатиться";
cmd.srv.us.updateUser(uss);
if(ChatProps.getBooleanProperty("chat.showChangeUserStatus"))
ChatServer.cq.addMsg("[" + uss.id + "] " + uss.localnick + "затащен в чат. Рейтинг пользователя: " + uss.rate, uss.sn, uss.room);
proc.mq.add(uin,"Вас затащили в чат!");
}
Log.info(uss.localnick + " затащен в чат");
cmd.srv.us.db.log(uss.id,uss.sn,"STATE_IN",uss.localnick + " затащен в чат",uss.room);
cmd.srv.us.db.event(uss.id, uss.sn, "STATE_IN", 0, "", uss.localnick + " затащен в чат");
ChatServer.cq.addUser(uin,proc.baseUin, uss.room, uss.rate); //СТРОКА ОБНОВЛЕНА В РК 4
if(f){
if(cmd.srv.us.getCurrUinUsers(uss.basesn)>cmd.psp.getIntProperty("chat.maxUserOnUin")){
proc.mq.add(uss.sn,"Данный номер слишком загружен, вы будете автоматически переведены на ближайший свободный номер.");
String s = cmd.srv.us.getFreeUin();
uss.basesn = s;
cmd.srv.us.updateUser(uss);
cmd.srv.cq.changeUser(uss.sn, s);
proc.mq.add(uss.sn,"Сообщения теперь будут приходить с номера " + s);
}
}
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}