/**
* Скрипт для расширения команд чата
*/ /**
* При вызове скрипта определены следующие переменные:
* ChatCommandProc cmd - ссылка на обработчик команд
* IcqProtocol proc - ссылка на процесс обработки icq
* String msg - текст сообщения с командой
* String uin - кто отправил сообщение
* String name - имя этого файла (при процедуре инсталяции скрипта)
*/
import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
//Установка скрипта как обработчика команды
if(in.equals("install")){
cmd.addCommand("!banroom", new Cmd("!banroom","$n $n",39,name));
cmd.addAuth("banroom","Запереть юзера в комнате");
out="Ok";
return;
}
// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "banroom")) return;
try{
//Парсим строку аргументов
Vector v = cmd.getParser().parseArgs(msg);
//Согласно шаблону, оба аргумента должны быть числами
int i1 = (Integer)v.get(0);
int i2 = (Integer)v.get(1);
// Находим юзера
Users u = cmd.srv.us.getUser(i1);
// Проверяем есть ли такой юзер ваще?
if(u.id==0){
proc.mq.add(uin,"Пользователь не найден");
return;
}
if(u.state!=UserWork.STATE_CHAT){
proc.mq.add(uin,"Этого пользователя нет в чате.");
return;
}
// Переводим в комнату
if(u.room==i2){
proc.mq.add(uin,"Пользователь уже сидит в этой комнате");
return;
} else {
u.room=i2;
cmd.srv.us.updateUser(u);
cmd.srv.cq.changeUserRoom(u.sn, i2);
// Оповещаем целевую комнату
cmd.srv.cq.addMsg(u.localnick + " вошел в комнату " + u.room, u.sn, u.room);
// Оповещаем юзера
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Ты заперт в комнате " + i2);
// Лишаем юзера прав на комнаты
cmd.srv.us.revokeUser(i1, "room");
}
// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Пользователь " + u.localnick + " успешно заперт в комнате " + i2);
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
Добавлено (09.02.2010, 07:32)
---------------------------------------------
а вот что у меня