[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Пароль на комнату
1ldarДата: Воскресенье, 05.02.2012, 21:22 | Сообщение # 1

Генерал-лейтенант
Сообщений: 611
Репутация: 14
Награды: 0
BL:


Вобщем дописал я функцию пароля на комнату...
Опишу как и чего делать.
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;
         }

Думаю куда что всавить поймете сами... Ну собственно без компиляции тут не обойтись.


 
  • Страница 1 из 1
  • 1
Поиск: