Вобщем дописал я функцию пароля на комнату...
Опишу как и чего делать.
1. Создаем функцию установки пароля на комнату.(сделал по аалогии с settheme)
В ChatCommandProc.java добавляем:
Code
authObj.put("setpass","Установить пароль в комнате");
Code
commands.put("!setpass", new Cmd("!setpass","$c",43));
Code
case 43:
commandSetpass(proc, uin, parser.parseArgs(tmsg));
break;
Code
public void commandSetpass(IcqProtocol proc, String uin, Vector v){
if(!auth(proc,uin, "setpass")) return;
String s = (String)v.get(0);
int room = srv.us.getUser(uin).room;
Rooms r = srv.us.getRoom(room);
r.setPass(s);
srv.us.saveRoom(r, s);
Log.info("Установлен пароль на комнату " + room + ": " + s);
proc.mq.add(uin,"Пароль "+s+" на комнату успешно установлен.");
}
2.Проверка на пароль
В Rooms.java меняем
Code
public boolean checkPass(String p) {
return pass.equals(p);
}
на
Code
public boolean checkPass(String p) {
if (pass.equals("")) {
return true;
} else
return pass.equals(p);
}
Ну и в команду !room добавить
Code
cmd.addCommand("!room", new Cmd("!room","$n $c",39,name)); //так выглядит в скрипте
Code
String pass = (String)v.get(1);
Code
if (!cmd.srv.us.getRoom(i).checkPass(pass) && !cmd.psp.testAdmin(uin)) {
proc.mq.add(uin,"Не верный пароль!");
return;
}
Думаю куда что всавить поймете сами... Ну собственно без компиляции тут не обойтись.