Перейти к содержимому


Пароль на комнату


Сообщений в теме: 65

#1 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 12 Май 2009 - 22:20

Вобщем дописал я функцию пароля на комнату...
Опишу как и чего делать.
1. Создаем функцию установки пароля на комнату.(сделал по аалогии с settheme)
В ChatCommandProc.java добавляем:
authObj.put("setpass","Установить пароль в комнате");
commands.put("!setpass", new Cmd("!setpass","$c",43));
case 43:
                commandSetpass(proc, uin, parser.parseArgs(tmsg));
                break;
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 меняем
public boolean checkPass(String p) {
return pass.equals(p);
}
на
public boolean checkPass(String p) {
        if (pass.equals("")) {
            return true;
        } else
            return pass.equals(p);
	}
Ну и в команду !room добавить

Цитата

cmd.addCommand("!room", new Cmd("!room","$n $c",39,name)); //так выглядит в скрипте
String pass = (String)v.get(1);
	if (!cmd.srv.us.getRoom(i).checkPass(pass) && !cmd.psp.testAdmin(uin)) {
		proc.mq.add(uin,"Не верный пароль!");
		return;
	}
Думаю куда что всавить поймете сами... Ну собственно без компиляции тут не обойтись. Вроде ничего не забыл. :D

#2 Юрий765

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 493 сообщений
  • ГородКалужская ОБЛ

Отправлено 12 Май 2009 - 22:33

Макса! Как то не удобно тя просить.......
Скинь компилированный исходник Румс и если не сложна чат ком проц с командой инвиз и паролем на команту! :mrgreen:
А так за разработку +1
ну и надеюсь что скинешь

#3 Хабиб

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 189 сообщений
  • ГородДюртюли

Отправлено 13 Май 2009 - 12:42

+1 мне тоже скинь(то же, что и Юрию) если не жалко ;)

#4 Юрий765

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 493 сообщений
  • ГородКалужская ОБЛ

Отправлено 13 Май 2009 - 15:39

Цитата

/**
* Скрипт для расширения команд чата
* Замена перехода в комнаты
*/

/**
* При вызове скрипта определены следующие переменные:
* 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("!room", new Cmd("!room","$n $c",39,name));
cmd.addAuth("room","Переход по комнатам");
out="Ok";
return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin)) return;
if(!cmd.auth(proc,uin, "room")) return;

try{
String MESSAGE1 = " ушел(а) в комнату ";
String MESSAGE2 = " вошел(а) в комнату ";
Vector v = cmd.getParser().parseArgs(msg);
int i = (Integer)v.get(0);
String pass = (String)v.get(1);
Users uss = cmd.srv.us.getUser(uin);
if(uss.room==i){
proc.mq.add(uin,"Ты уже сидишь в этой комнате!");
} else
if (!cmd.srv.us.getRoom(i).checkPass(pass) && !cmd.psp.testAdmin(uin)) {
proc.mq.add(uin,"Не верный пароль!");
return;
}

if(cmd.qauth(proc,uin, "anyroom") || cmd.srv.us.checkRoom(i)){
if (!cmd.srv.us.authorityCheck(uss.id,"invisible")) {
cmd.srv.cq.addMsg(uss.localnick + MESSAGE2, uin, i);
cmd.srv.cq.addMsg(uss.localnick + MESSAGE1 + i, uin, uss.room);
}
uss.room=i;
cmd.srv.us.updateUser(uss);
cmd.srv.cq.changeUserRoom(uin, i);
proc.mq.add(uin,"Ты перешел в комнату " + i + " - " + cmd.srv.us.getRoom(i).getName() +
(cmd.srv.us.getRoom(i).getTopic().equals("") ? "" : ("\nТема: " + cmd.srv.us.getRoom(i).getTopic())));
} else {
proc.mq.add(uin,"Такой комнаты не существует!");
}
}catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
Макса оно?

#5 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 13 Май 2009 - 15:55

Я бы вставил после строчки
Users uss = cmd.srv.us.getUser(uin);
или этой
if(cmd.qauth(proc,uin, "anyroom") || cmd.srv.us.checkRoom(i)){
вот это
if (!cmd.srv.us.getRoom(i).checkPass(pass) && !cmd.psp.testAdmin(uin)) {
proc.mq.add(uin,"Не верный пароль!");
return;
}


#6 Arkadik007

    Специалист

  • Пользователи
  • PipPipPipPip
  • 372 сообщений
  • ГородКраснодар

Отправлено 13 Май 2009 - 16:53

:) реябта че уже он готовый да вото это Скрипт как бы сказать?

#7 Хабиб

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 189 сообщений
  • ГородДюртюли

Отправлено 13 Май 2009 - 17:50

ога готовый..=)) Макс постарался=))

#8 Юрий765

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 493 сообщений
  • ГородКалужская ОБЛ

Отправлено 13 Май 2009 - 18:21

Нее, Макса и так и так не робит ваще

#9 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 13 Май 2009 - 18:22

Юрий765 сказал:

Нее, Макса и так и так не робит ваще
Логи в студию.

#10 Юрий765

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 493 сообщений
  • ГородКалужская ОБЛ

Отправлено 13 Май 2009 - 18:31

Чисты как слиза девственницы!
Создаю пароль на команту, лешаю себя всех прав! и спокойно иду туда где запаролено!
Макс, есть предложение, как ты смотриш на то что бы читать пароль комнаты из БД колонка пасс????

#11 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 13 Май 2009 - 18:34

Юрий765 сказал:

Чисты как слиза девственницы!
Создаю пароль на команту, лешаю себя всех прав! и спокойно иду туда где запаролено!
Макс, есть предложение, как ты смотриш на то что бы читать пароль комнаты из БД колонка пасс????
Пароль оттуда и считывает, ты наверное ходишь главным админом? :lol: так стоит проверка на гл.админа, поэтому и пускает куда угодно, пробуй не гл. админом.

#12 Юрий765

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 493 сообщений
  • ГородКалужская ОБЛ

Отправлено 13 Май 2009 - 18:40

mmaximm сказал:

Юрий765 сказал:

лешаю себя всех прав!
Пароль оттуда и считывает, ты наверное ходишь главным админом? :lol: так стоит проверка на гл.админа, поэтому и пускает куда угодно, пробуй не гл. админом.

Юрий765 сказал:

лешаю себя всех прав!
Вот под этими словами я имел ввиду прав гл админа... Ты не проверял вот это все? А то не робит и все тут

#13 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 13 Май 2009 - 18:43

У меня работает, посмотри в колонке pass записывается пароль?

#14 Юрий765

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 493 сообщений
  • ГородКалужская ОБЛ

Отправлено 13 Май 2009 - 18:44

Нет! вот лично поставил пароль в БД на комнту, опять лешился прав админа и зашел в неё

#15 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 13 Май 2009 - 19:35

Для справки, пароль задается на комнату так !setpass пароль, пароль ставится на ту комнату в которой в данный момент находишься.

#16 Хабиб

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 189 сообщений
  • ГородДюртюли

Отправлено 13 Май 2009 - 19:57

Макс у мя тоже самое...вот

Цитата

fuck (20:51:27 13/05/2009)
!комната 999
Progressive Chat
(20:51:28 13/05/2009)
Ты свалил(а) в комнату 999 - ~NugМАN~*SARCASTIC*
fuck (20:51:42 13/05/2009)
!setpass 762072
Progressive Chat
(20:51:43 13/05/2009)
Пароль 762072 на комнату успешно установлен.

с другого номера...

Цитата

fuck (20:53:27 13/05/2009)
!чат
Progressive Chat (20:53:29 13/05/2009)
гыгышник Приветь Ты залетел(а) в чат! че-то тя так долго не было...!!!ВАЖНО!!!просмотр народа в чате командой !а или !тут
fuck (20:53:35 13/05/2009)
!комната 999
Progressive Chat (20:53:37 13/05/2009)
Ты свалил(а) в комнату 999 - ~NugМАN~*SARCASTIC*

оповещение..

Цитата

Progressive Chat
(20:53:40 13/05/2009)
гыгышник[852] залез(а) в комнату 999


#17 pankrat

    Профи

  • Модераторы
  • 463 сообщений
  • ГородРоссия - Курск

Отправлено 13 Май 2009 - 19:57

Ога и прав ты себя лешил наверное через команду !setgroup 1 user а не в админке...

#18 mmaximm

    Эх...

  • Модераторы
  • 927 сообщений

Отправлено 13 Май 2009 - 20:02

Странно как то, у меня все работает....
Кто нибудь пробовал еще? Работает? Или у меня одного работает :lol:

#19 KRaFT

    Специалист

  • Пользователи
  • PipPipPipPip
  • 206 сообщений

Отправлено 13 Май 2009 - 20:25

Дк скрипт всётаки работает или нет? :oops:

#20 pankrat

    Профи

  • Модераторы
  • 463 сообщений
  • ГородРоссия - Курск

Отправлено 13 Май 2009 - 22:18

Юрий765 сказал:

Нет! вот лично поставил пароль в БД на комнту, опять лешился прав админа и зашел в неё
В сорцах правильно всё сделал?





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей