Выкладывайте скрипты для этой версии! Я выложил скрипты какие есть у меня и не стал писать инструкцию по установке там что если у вас скрипт пишит ошибку или не отвечает или еще что то то пишите в теме поддержка бота я вам отвечу и скажу что надо делать и еще! Как поставите скрипт он будет работать только после выключения и включения бота(чата) Все скрипты надо записывать под любым названием в формате .bsh и ложить в папку commands.
/* * Скрипт предназначен для отправки сообщения во все комнаты * Сообщение добавляется в общую очередь чата в виде "SYSTEM MESSAGE: текст вашего сообщения" * * Пример использование команды: "!send Уважаемые пользователи, кто хочет стать модератором, наберите !выход" * (c) Sushka 2009 */
if(in.equals("install")){ //!send - название команды, при желании можно изменить на свое cmd.addCommand("!вовсе", new Cmd("!вовсе","$s",39,name)); cmd.addAuth("allroom_message","Сообщение во все комнаты"); out="Ok"; return; }
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!н", new Cmd("!н","",39,name)); cmd.addCommand("!нов", new Cmd("!нов","",39,name)); cmd.addCommand("!новости", new Cmd("!новости","",39,name)); cmd.addCommand("!news", new Cmd("!news","",39,name)); cmd.addAuth("News","Вывод новостей"); out="Ok"; return; }
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!новновости", new Cmd("!новновости","$s",39,name)); cmd.addAuth("MakeNews","Создание новости"); out="Ok"; return; }
try { Vector v = cmd.getParser().parseArgs(msg); String sn = (String)v.get(0); java.sql.Time T = new java.sql.Time(new java.util.Date().getTime()); java.sql.Date D = new java.sql.Date(new java.util.Date().getTime()); OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./news.txt",true),"windows-1251"); String s = "[" + D +" "+ T + "] " + "\n" + sn + "\n\n"; ow.write(s); ow.close();
Set rid = new HashSet(); Enumeration e = cmd.srv.cq.uq.keys(); while(e.hasMoreElements()){ String i = e.nextElement(); Users us = cmd.srv.us.getUser(i); if(us.state==UserWork.STATE_CHAT) rid.add(us.room); } for (int i:rid){ cmd.srv.cq.addMsg("Новость> "+ sn , uin, i); } Log.talk("Новость создана: " + sn); proc.mq.add(uin,"Новость успешно создана и разослана: \n"+sn); } catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка добавления"); }
Правила командой !законы
Code
/** * Скрипт для расширения команд чата */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!законы", new Cmd("!законы","",39,name)); cmd.addAuth("txtread","Вывод текстового файла"); out="Ok"; return; }
try{ //Прочитаем текст из файла String s = cmd.psp.loadText("./text/rules1.txt"); //Разбиваем текст на куски, в качестве разделителя будет использовате тег <br> String[] ss = s.split("<br>"); //По очереди отсылаем куски текста юзеру, точнее - помещаем их в очередь //исходящих сообщений уина, на котоором этот юзер сидит. for(int i=0;i<ss.length;i++){ proc.mq.add(uin,ss[i]); } } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); String m = (String)v.get(1); String i=""; if(s.length()>=6){ if(uin.equals(s)){ proc.mq.add(uin,"Нельзя отправить в баню самого себя :)"); return; } if (cmd.psp.testAdmin(s)){ proc.mq.add(uin,"Ты не можешь забанить админа чата*FUCK*!"); return; } if(m.equals("")){ proc.mq.add(uin,"Необходимо добавить причину бана"); return; } cmd.ban(proc, s, uin,m); } else { int id = 0; try { id = Integer.parseInt(s); } catch(Exception ex) { proc.mq.add(uin,"Ошибка в команде"); return; } i = cmd.srv.us.getUser(id).sn; if(!i.equals("")) { if(uin.equals(i)){ proc.mq.add(uin,"Нельзя отправить в баню самого себя :)"); return; } if (cmd.psp.testAdmin(i)){ proc.mq.add(uin,"Ты не можешь забанить админа чата*FUCK*!бан!"); return; } if(m.equals("")){ proc.mq.add(uin,"Необходимо добавить причину бана"); return; } cmd.ban(proc, i, uin,m); } } proc.mq.add(uin,"Пользователь " + i + " успешно отправлен в баню"); cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был забанен,из-за нарушения правил! причина: "+m, i, cmd.srv.us.getUser(i).room); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }[code] Удаление новостей /** * Скрипт для перемещения файлов с новостями в архив * Imda */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!уднов", new Cmd("!уднов","",39,name)); cmd.addAuth("DelNews","Удаление новостей"); out="Ok"; return; }
try { //Создади OutputStreamWriter которым будем писать в бак-копию=) OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./archive/newsbak",true),"windows-1251"); //Объявим файл с новостями File news = new File ("./news.txt"); if (news.exists()) //Проверка на наличие файла с новостями { //Подгрузим все новости которых еще нет в архиве, т.е. !ВЕСЬ! файл новостей //Пишем новости в файл и закрываем OutputStreamWriter String s = cmd.psp.loadText("./news.txt"); ow.write(s); ow.close(); //ЕСЛИ НЕ НУЖНО- ЗАКАММЕНТИРУЙТЕ! (очищение файла новостей) //Если закамментировано, то быть осторожным с коммандой очистки, чтобы не было дупликатов новостей) news.delete(); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("./news.txt",true),"windows-1251"); osw.write(""); osw.close(); proc.mq.add(uin,"Новости отправлены в архив"); Log.talk("Новости отправлены в архив"); } else proc.mq.add(uin,"Нет новостей"); } catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка удаления"); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!анекдот", new Cmd("!анекдот","$s",39,name)); cmd.addCommand("!ха", new Cmd("!ха","$s",39,name)); cmd.addAuth("Anek","Сервис анекдотов"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!жалоба", new Cmd("!жалоба","$n $s",39,name)); cmd.addAuth("Galoba","Жалоба на юзера"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); int i = (Integer)v.get(0); String pt = (String)v.get(1); Users u = cmd.srv.us.getUser(i); Users us = cmd.srv.us.getUser(uin); OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./pet/"+u.id,true),"windows-1251"); java.sql.Date D = new java.sql.Date(new java.util.Date().getTime()); ow.write(D+" ["+us.id+"]"+us.localnick+":"+pt+"\n"); ow.close(); proc.mq.add(uin,"Жалоба сохранена и будет рассмотрена"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Просмотр жалоб:
Code
/** * Просмотр жалоб. * !жалобы - количество жалоб, табличко * !жалобы <id> - жалобы на юзера * Imda */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!хстатус", new Cmd("!хстатус","$n",39,name)); cmd.addCommand("!xstatus", new Cmd("!xstatus","$n",39,name)); cmd.addCommand("!х-статус", new Cmd("!х-статус","$n",39,name)); cmd.addCommand("!х", new Cmd("!х","$n",39,name)); out="Ok"; return; }
// Проверим полномочия if (cmd.psp.testAdmin(uin))
try{ Vector v = cmd.getParser().parseArgs(msg); int xs = (Integer)v.get(0); if ((xs>34) || (xs<0)) return; ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.xstatus",xs); proc.mq.add(uin,"X-Status изменен, нужен перезапуск"); // Manager.restart(); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); } else{ proc.mq.add(uin,"Вы не имеете доступа к данной команде!"); }
/** * Скрипт перезапуска основной части бота * (с)Bess * положить в папку command * команда !рестарт */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!рестарт", new Cmd("!рестарт","",39,name)); cmd.addCommand("!перезагрузка", new Cmd("!перезагрузка","",39,name)); cmd.addAuth("alluser","Список в чате"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!чат", new Cmd("!чат","",39,name)); cmd.addCommand("!chat", new Cmd("!chat","",39,name)); cmd.addCommand("!ч", new Cmd("!чат","",39,name)); cmd.addCommand("!вход", new Cmd("!вход","",39,name)); cmd.addCommand("!enter", new Cmd("!enter","",39,name)); // cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!банлист", new Cmd("!банлист","",39,name)); cmd.addAuth("ubanlist","20 последний разбанов"); out="Ok"; return; }
try{ String host = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.host"); String namedb = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.dbname"); String user = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.user"); String pass = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.pass"); DBChat db; db = new DBChat(cmd.srv.getName()); db.openConnection(host, namedb, user, pass); String s = "20 последних разбанов:\n"; s+="Время|Пользователь|Кто разбанил\n"; try { PreparedStatement pst = db.getDb().prepareStatement("select time, user_id, user_id2 from events where type='UBAN' order by time desc"); ResultSet rs = pst.executeQuery(); for(int i=0;i<20;i++){ if(rs.next()){ s += "["+rs.getTimestamp(1)+"] "+ (rs.getInt(2)==0 ? "Admin" : cmd.srv.us.getUser(rs.getInt(2)).localnick)+"|" +rs.getInt(2)+"|,"+ (rs.getInt(3)==0 ? "Admin" : cmd.srv.us.getUser(rs.getInt(3)).localnick)+"|" +rs.getInt(3)+"|\n"; } } rs.close(); pst.close(); } catch (Exception ex) { ex.printStackTrace(); } proc.mq.add(uin,s); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Список комнат, с кол-м юзеров в скобульках
Code
/** * Список комнат, с кол-м юзеров в скобульках * Imda */
if(in.equals("install")){ cmd.addCommand("!хаты", new Cmd("!хаты","",39,name)); cmd.addCommand("!ск", new Cmd("!ск","",39,name)); cmd.addCommand("!rl", new Cmd("!rl","",39,name)); out="Ok"; return; }
try{ String s = "Список комнат в чате\n"; Set rid = cmd.srv.us.getRooms(); for(int i:rid){ Enumeration ee = cmd.srv.cq.uq.keys(); int cnt=0; while(ee.hasMoreElements()){ String ii = ee.nextElement(); Users us = cmd.srv.us.getUser(ii); if(us.state==UserWork.STATE_CHAT){ if(us.room==i) cnt++; } } s += i + " - " + cmd.srv.us.getRoom(i).getName() + " ["+cnt+" чел]\n"; } proc.mq.add(uin,s); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Переход по комнатам:
Code
/** * Скрипт для расширения команд чата * Замена перехода в комнаты */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!room", new Cmd("!room","$n",39,name)); cmd.addCommand("!комната", new Cmd("!комната","$n",39,name)); cmd.addCommand("!хата", new Cmd("!хата","$n",39,name)); cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!свадьба", new Cmd("!свадьба","$n $n",39,name)); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); //невеста int i1 = (Integer)v.get(0); //жених int i2 = (Integer)v.get(1); Users uss = cmd.srv.us.getUser(i2); 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(in.equals("install")){ cmd.addCommand("!развести", new Cmd("!развести","$n $n",39,name)); cmd.addCommand("!развод", new Cmd("!развод","$n $n",39,name)); out="Ok"; 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); Users uss = cmd.srv.us.getUser(i2); // Проверяем есть ли такой юзер ваще? if(u.id==0){ proc.mq.add(uin,"Пользователи не найден"); return; }
// Меняем ник у жены если не надо стереть. String nick = u.localnick.replace("(замужем)",""); String oldNick = u.localnick; u.localnick=nick; cmd.srv.us.updateUser(u); cmd.srv.us.db.event(u.id, uin, "REG", 0, "", nick); // Меняем ник у мужа если не надо стереть. String nick1 = uss.localnick.replace("(женат)",""); String oldNick1 = uss.localnick; uss.localnick=nick1; cmd.srv.us.updateUser(uss); cmd.srv.us.db.event(uss.id, uin, "REG", 1, "", nick1); /////////////////////////////////// if(u.state==UserWork.STATE_CHAT){ cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Ты свободен."); } // Сообщаем об успешном выполнении команды cmd.srv.cq.addMsg("Пользователи " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + " Развелись!", u.sn, u.room); cmd.srv.cq.addMsg("Пользователи " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + " Развелись!", uss.sn, uss.room); proc.mq.add(uin,"Брак распался..."); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!лучшие", new Cmd("!лучшие","",39,name)); cmd.addCommand("!сегодня", new Cmd("!сегодня","",39,name)); cmd.addAuth("best","Вывод статистики лучших"); out="Ok"; return; }
try{ String s = "За последние сутки в yarchat2: \n"; s += "Зашло: " + cmd.srv.us.statUsersCount(); s += "\nОтправлено сообщений:1" + cmd.srv.us.statMsgCount(); s += "\nКикнутых чуваков: " + cmd.srv.us.statKickUsersCount(); s += "\nВсего киков: " + cmd.srv.us.statKickCount(); s += "\nЗабанено чуваков: " + cmd.srv.us.statBanUsersCount(); s += "\nСамые болтливые чуваки чата:"; String[] ss = cmd.srv.us.statUsersTop().split(";"); for(int i=0;i<ss.length;i++){ s+="\n"+ss[i]; } s += "\nА самый крутой в чате это я ~Вандал~ мой id=0 "; proc.mq.add(uin,s);
// Как я описал в комментариях, RSS ленты можно взять на сайте RP5.ru. Для этого заходим туда через "лисичку" (фаерфокс) выбираем нужный город. // Сверху, в адресной строке справа тыкаем оранжевый квадратик и получаем ссылку на RSS. Прошу обратить внимание на все комментарии в скрипте.
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!погода", new Cmd("!погода","$n",39,name)); // Создаем новую команду // cmd.addAuth("pogoda","Вывод погоды"); // Можно так же создать полномочие, без которого погода не будет выводиться out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); int i1 = (Integer)v.get(0); // Ссылка на RSS. Погодные RSS под любой город можно взять вот отсюда http://rp5.ru/ru
String s="";
if(i1==0){ proc.mq.add(uin,"Список городов с цифровыми обозначениями:\n"); s = cmd.psp.loadText("./text/goroda.txt"); String[] ss = s.split("<br>"); for(int i=0;i<ss.length;i++){ proc.mq.add(uin,ss[i]); } return; }
String s=""; if(i1==1){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/5490/ru"); // Москва } if(i1==2){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/7285/ru"); // Питер } if(i1==3){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/2278/ru"); // Владимир } if(i1==4){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/7217/ru"); // Рязань } if(i1==5){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/1859/ru"); // Брянск } if(i1==6){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/7147/ru"); // Ростов На Дону } if(i1==7){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/1464/ru"); // Белореченск } if(i1==8){ s = MainProps.getStringFromHTTP("http://rp5.ru/rss/4429/ru"); // Ярославль }
// ============================================================================== // ДОБАВЛЯЕМ ГОРОДА // if(i1==peremennaya){ // Где peremennaya означает циферку, которую вы вводите в файл goroda.txt // s = MainProps.getStringFromHTTP("http://rp5.ru/rss/ID_города/ru"); // Берется на сайте rp5.ru // } // ==============================================================================
//Разбиваем текст на куски, в качестве разделителя будет использовате тег <br> String[] ss = s.split("<br>"); //По очереди отсылаем куски текста юзеру, точнее - помещаем их в очередь //исходящих сообщений уина, на котором этот юзер сидит. for(int i=0;i<ss.length;i++){
// ПРИ ДОБАВЛЕНИИ ГОРОДА ЗДЕСЬ НУЖНО МЕНЯТЬ ОБЯЗАТЕЛЬНО // ==================================================== ss[i] = ss[i].replace("Москва:",""); ss[i] = ss[i].replace("Москве",""); ss[i] = ss[i].replace("/5490/ru","");
/**скрипт для смены текста x-статусa * АВтов: аrhangel_ess спс Sushka * работает по принципу !tx <text> * * *p.s.ПРи Использование Скрипта В исходниках, Пишим аВторство *Не НАписание КараетСя Бейсбольной Битой По ГОЛОве =) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!х-текст", new Cmd("!х-текст","$s",39,name)) ; cmd.addAuth("sxtatus","Смена xстатуса"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!удалитьхату", new Cmd("!удалитьхату","$n",39,name)); cmd.addAuth("uroom","Удаление комнат"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("+все", new Cmd("+все","",39,name)); cmd.addCommand("+аа", new Cmd("+аа","",39,name)); cmd.addCommand("+аа", new Cmd("+все","",39,name)); out="Ok"; return; }
try{ int room = cmd.srv.us.getUser(uin).room; String s = "Список чуваков в чате:\n\n[ID] - Ник [Статус] [Комната]\n";
cmd.srv.us.getRoom(room).getTopic() + "\nСписок пользователей в чате:\n[ID] - Ник [Статус] [Комната]\n"; String d = "]"; String z = "["; Enumeration e = cmd.srv.cq.uq.keys(); int cnt=0; if(cmd.psp.getBooleanProperty("adm.useAdmin")) s += "[0] - " + cmd.radm.NICK + '\n'; while(e.hasMoreElements()){ String i = e.nextElement(); Users us = cmd.srv.us.getUser(i); if(us.state==UserWork.STATE_CHAT) cnt++; String ss = ""; File Persona = new File ("./UXstatus/"+us.id+".txt"); if (Persona.exists()){ ss += " [" + cmd.psp.loadText("./UXstatus/"+us.id+".txt"); ss=ss.replace('\n',']'); } s += z + us.id + "] - " + us.localnick + ss + " ["+ us.room + "]" + "\n"; } s += "\nВсего пользователей в чате: ["+cnt + d; s += "\nВсего за сегодня зашло чуваков в чат: [" + cmd.srv.us.statUsersCount() + d; s += "\nВсего зарегано чуваков: ["+Integer.toString(cmd.srv.us.count()) + d; s += "\n"; s += "\n";
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!втюрьме", new Cmd("!втюрьме","",39,name)); // cmd.addAuth("ModList","Получить список админов"); out="Ok"; return; }
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; //if(!cmd.auth(proc,uin, "ModList")) return; try{ Vector v = cmd.getParser().parseArgs(msg); String host = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.host"); String namedb = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.dbname"); String user = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.user"); String pass = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.pass"); DBChat db; db = new DBChat(cmd.srv.getName()); db.openConnection(host, namedb, user, pass); String s = "Зеки:\n"; try { PreparedStatement pst = db.getDb().prepareStatement("SELECT `id` FROM `users` WHERE `room`='-1' "); ResultSet rs = pst.executeQuery(); while(rs.next()){ Users us = cmd.srv.us.getUser(rs.getInt(1)); s +=us.id +" - " + us.localnick+"\n"; } rs.close(); pst.close(); } catch (Exception ex) { ex.printStackTrace(); } proc.mq.add(uin,s); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!вых", new Cmd("!вых","",39,name)); cmd.addCommand("!выход", new Cmd("!выход","",39,name)); cmd.addCommand("!в", new Cmd("!в","",39,name)); cmd.addCommand("!exit", new Cmd("!exit","",39,name)); out="Ok"; return; }
try{ String MESSAGE = " Зачем вы уходите от нас? *BYE* Возвращайтесь поскорее =),а и ещё РАЗДАЙ НОМЕР ЧАТА СВОИМ ДРУЗЬЯМ!>5816-53-007<"; String MESSAGE2 = " Убежал(а) от нас *BYE*"; String MESSAGE3 = "["; String MESSAGE4 = "] "; Users uss = cmd.srv.us.getUser(uin); if(uss.room==7){ proc.mq.add(uin,"НУ-НУ с тюрьмы сбежать захотел? хрен тебе!!!"); return; } if (uss.state==UserWork.STATE_CHAT || uss.state==UserWork.STATE_OFFLINE) { if(!ChatProps.getInstance(cmd.srv.getName()).getBooleanProperty("chat.NoDelContactList")){ Log.info("Delete contact " + uin); proc.RemoveContactList(uin); } } else return; // Юзера нет в чате - игнорируем команду uss.state = UserWork.STATE_NO_CHAT; cmd.srv.us.updateUser(uss); Log.talk(MESSAGE3 + uss.id + MESSAGE4 + uss.localnick + MESSAGE2); cmd.srv.us.db.log(uss.id,uin,"STATE_OUT",uss.localnick + MESSAGE2,uss.room); cmd.srv.us.db.event(uss.id, uin, "STATE_OUT", 0, "", uss.localnick + " убежал(а) с чата!"); cmd.srv.cq.addMsg(MESSAGE3 + uss.id + MESSAGE4 + uss.localnick + MESSAGE2, uss.sn, uss.room); proc.mq.add(uin, uss.localnick + MESSAGE); cmd.srv.cq.delUser(uin); } catch (Exception ex){ ex.printStackTrace(); proc.mq.add(uin,ex.getMessage()); }
Перевод в др.комнату:
Code
/** * Скрипт для расширения команд чата */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!перевод", new Cmd("!перевод","$n $n",39,name)); cmd.addAuth("banroom","Запереть юзера в комнате!!!"); out="Ok"; 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); // Лишаем юзера прав на комнаты
} // Сообщаем об успешном выполнении команды proc.mq.add(uin,"Пользователь " + u.localnick + " успешно перетащен в комнату " + i2); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
if(in.equals("install")){ cmd.addCommand("!модеры", new Cmd("!модеры","",39,name)); cmd.addAuth("ModList","Получить список модеров"); out="Ok"; return; }
if(in.equals("install")){ cmd.addCommand("!админы", new Cmd("!админы","",39,name)); cmd.addAuth("AdmList","Получить список админов"); out="Ok"; return; }
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!надо", new Cmd("!надо","$s",39,name)); cmd.addAuth("mktodo","Добавление в ТОДО"); out="Ok"; return; }
try { Vector v = cmd.getParser().parseArgs(msg); String sn = (String)v.get(0); java.sql.Time T = new java.sql.Time(new java.util.Date().getTime()); java.sql.Date D = new java.sql.Date(new java.util.Date().getTime()); OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./надо.txt",true),"windows-1251"); String s = "[" + D +" "+ T + "] " + "\n" + sn + "\n\n"; ow.write(s); ow.close(); Log.talk("TODO: " + sn); proc.mq.add(uin,"Ваша предложение принято и будет рассмотрено Администратором чата \n"+sn); } catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка добавления"); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!банлист", new Cmd("!ubanlist","",39,name)); cmd.addAuth("ubanlist","20 последний разбанов"); out="Ok"; return; }
try{ String host = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.host"); String namedb = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.dbname"); String user = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.user"); String pass = ChatProps.getInstance(cmd.srv.getName()).getStringProperty("db.pass"); DBChat db; db = new DBChat(cmd.srv.getName()); db.openConnection(host, namedb, user, pass); String s = "20 последних разбанов:\n"; s+="Время|Пользователь|Кто разбанил\n"; try { PreparedStatement pst = db.getDb().prepareStatement("select time, user_id, user_id2 from events where type='UBAN' order by time desc"); ResultSet rs = pst.executeQuery(); for(int i=0;i<20;i++){ if(rs.next()){ s += "["+rs.getTimestamp(1)+"] "+ (rs.getInt(2)==0 ? "Admin" : cmd.srv.us.getUser(rs.getInt(2)).localnick)+"|" +rs.getInt(2)+"|,"+ (rs.getInt(3)==0 ? "Admin" : cmd.srv.us.getUser(rs.getInt(3)).localnick)+"|" +rs.getInt(3)+"|\n"; } } rs.close(); pst.close(); } catch (Exception ex) { ex.printStackTrace(); } proc.mq.add(uin,s); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!бутылочка", new Cmd("!бутылочка","",39,name)); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!рулетка", new Cmd("!рулетка","$n",39,name)); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); int s = (Integer)v.get(0); // набранное число int numb =(int) ((Math.random()*50)); // случаиное время кика от 0 до 50 int num = (int) ((Math.random()*50)); // случаиное число от 0 до 50 Users uss = cmd.srv.us.getUser(uin); if(uss.room!=7) // номер комнаты для игры { proc.mq.add(uin,"Играть можно только в 7 комнате8-)"); // оповещение где играть return; } int moder_id = uss.id; // ид модера String r ="Неудачник!"; // причина
if(s>50){ proc.mq.add(uin,"Число должно быть от 1 до 50..."); return; }
cmd.srv.cq.addMsg("Крупье: я загадал число: (" + num + ") , а " + uss.localnick + " набрал: (" + s + ")", "", uss.room); if(s==num) {
cmd.srv.cq.addMsg("Крупье: числа совпали! " + uss.localnick + " стал модером*BRAVO* а мог вылететь из чата на "+ numb +" минут", "", uss.room); proc.mq.add(uin,"Крупье: я загадал число: (" + num + ") , а у тебя выпало: (" + s + ") , числа совпали! ты стал модератором на 7 дней!");
// Переводим в группу moder cmd.srv.us.getUser(uin).group = "moder"; boolean f = cmd.srv.us.setUserPropsValue(uss.id, "group", "moder") && cmd.srv.us.setUserPropsValue(uss.id, "grant", "") && cmd.srv.us.setUserPropsValue(uss.id, "revoke", ""); cmd.srv.us.clearCashAuth(uss.id);
} else { proc.mq.add(uin,"Крупье: я загадала число: (" + num + ") , а у тебя выпало: (" + s + ") , числа несовпали! *BYE* пока неудачник!"); // оповещаем....удаляем
proc.mq.add(uin,"Вы были выпнуты из чата на "+ numb +" минут. Причина: Ты проиграл в Русскую рулетку!");
/** * Скрипт для смены ICQ - статусов * Bess * ICQ статусы: * Злой = 1; * Депрессия = 2; * Дома = 3; * Работа = 4; * Кушаю = 5; * Отошёл = 6; * Готов поболтать = 7; * Не беспокоить = 8; * Невидим = 9; * Невидим для всех = 10; * Недоступен = 11; * Занят = 12; * Не в сети = 13; * В сети = 14; */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
Vector v = cmd.getParser().parseArgs(msg); int i = (Integer)v.get(0); if(i>14 || i<0) return; proc.mq.add(uin,"Статус чата изменён"); switch(i){ case 1: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status",12288); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 2: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 16384); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 3: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 20480); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 4: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 24576); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 5: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 8193); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 6: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 1); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 7: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 32); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 8: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 2); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 9: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 256); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 10: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 512); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 11: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 4); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 12: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 10); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 13: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 268435456); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; case 14: ChatProps.getInstance(cmd.srv.getName()).setIntProperty("icq.status", 0); Manager.getInstance().getService(cmd.srv.getName()).getProps().save(); break; } /*Manager.restart();*/ //раскоментировать если хотите что б статус менялся сразу
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!сбут", new Cmd("!новбутылочки","$s",39,name)); cmd.addCommand("!сбут", new Cmd("!новслова","$s",39,name)); cmd.addCommand("!сбут", new Cmd("!новслово","$s",39,name)); cmd.addAuth("sz_but","Создание фраз"); out="Ok"; return; }
try { //Парсим Vector v = cmd.getParser().parseArgs(msg); String sn = (String)v.get(0); Users uss = cmd.srv.us.getUser(uin); //Проверяем комнату if(uss.room!=4) { proc.mq.add(uin,"Фразы можно добавлять в комнате где проходит сама игра. То есть в 4 комате. :-)"); return; } //Если фраза пустая, то не выводим. if(sn.equals("")){ proc.mq.add(uin,"Вначале придумай фразу:)"); return; } //Указываем фаил с фразами. OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./text/butilochka.txt",true),"windows-1251"); String s =sn +" <end>"; ow.write(s); ow.close();
//Оповещяем чат. cmd.srv.cq.addMsg(uss.localnick + "|" + uss.id + "| добавил фразу "+ sn + " в игру бутылочку", uin, uss.room); //Оповещяем об успешном выполнении команды. proc.mq.add(uin,"Ваша фраза была успешно добавленна в игру бутылочка*YES*"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка добавления"); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!chid", new Cmd("!chid","$n $n",39,name)); cmd.addCommand("!измнид", new Cmd("!измнид","$n $n",39,name)); cmd.addAuth("chid","команда изменения ID"); out="Ok"; return; }
Vector v = cmd.getParser().parseArgs(msg); int i = (Integer)v.get(0); int newid = (Integer)v.get(1); Users u = cmd.srv.us.getUser(i); Users unew = cmd.srv.us.getUser(newid);
if(u.id==0){ proc.mq.add(uin,"Пользователь не найден!"); return; }
if (cmd.srv.us.testUser(unew.sn)) {proc.mq.add(uin,"Пользователь с ID "+newid+" уже существует! Попробуй другой ID"); return; }
int oldid = u.id;
u.id=newid;
cmd.srv.us.updateUserid(u,newid,oldid);
//cmd.srv.cq.addMsg("У пользователя " + u.localnick +" ["+oldid+"]" + " ID изменен на [" + newid+ "]", u.room);
// Сообщаем об успешном выполнении команды proc.mq.add(uin,"ID успешно изменен"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Очистка базы данных(логов)(работа чата улучшается):
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!очистить", new Cmd("!очистить","",39,name)); cmd.addAuth("clean","ОЧИСТКА БД"); out="Ok"; return; }
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!закопрос", new Cmd("!закопрос","",39,name)); out="Ok"; return; }
// Проверим полномочия if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; if(!cmd.auth(proc,uin, "MakeVote")) return; try { } Log.talk("Опрос создан: " + sn); proc.mq.add(uin,"Опрос успешно создан и разослан: \n"+sn); } catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка добавления"); }
Смотреть ответы:
Code
/** * Скрипт для расширения команд чата */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!голосование", new Cmd("!голосование","$s",39,name)); cmd.addAuth("VoteView","Голосование"); out="Ok"; return; }
try { String s = cmd.psp.loadText("./vote.txt"); String[] ss = s.split("<br>"); for(int i=0;i<ss.length;i++){ proc.mq.add(uin,ss[i]); } } catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка добавления"); }
Голосовать:
Code
/** * Скрипт для голосования. !голос <№ Вашего выбора> */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!голос", new Cmd("!голос","$n",39,name)); cmd.addAuth("Vote","Голосование"); out="Ok"; return; }
// Проверим полномочия if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try { if(!cmd.qauth(proc,uin, "Vote")){ proc.mq.add(uin,"Вы уже голосовали в текущем опросе");
} else{ Vector v = cmd.getParser().parseArgs(msg); int ch = (Integer)v.get(0); Users us = cmd.srv.us.getUser(uin); OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./voters.txt",true),"windows-1251"); OutputStreamWriter owoter = new OutputStreamWriter(new FileOutputStream("./voteresult/"+ch+".txt",true),"windows-1251"); String m = us.id+";"; ow.write(m); ow.close(); owoter.write(m); owoter.close(); proc.mq.add(uin,"Вы успешно проголосовали за вариант "+ch); cmd.srv.us.revokeUser(us.id, "Vote");
//OutputStreamWriter voters = new OutputStreamWriter(new FileOutputStream("./voters.txt",true),"windows-1251"); //voters.write(us.id+"\n"); }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!вушко", new Cmd("!вушко","$c $n $s",39,name)); cmd.addAuth("DE-p-V-YSH","Поцеловать в ушко"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!вшейку", new Cmd("!вшейку","$c $n $s",39,name)); cmd.addAuth("DE-p-V-SHC","Поцеловать в шейку"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!влобик", new Cmd("!влобик","$c $n $s",39,name)); cmd.addAuth("DE-p-v-l","Поцеловать в лобик"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!вщечку", new Cmd("!вщечку","$c $n $s",39,name)); cmd.addAuth("DE-v_shechky","SHLEP"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!шлепнуть", new Cmd("!шлепнуть","$c $n $s",39,name)); cmd.addAuth("DE-SHLEP","SHLEP"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!чат", new Cmd("!чат","",39,name)); cmd.addCommand("!chat", new Cmd("!chat","",39,name)); cmd.addCommand("!ч", new Cmd("!чат","",39,name)); cmd.addCommand("!вход", new Cmd("!вход","",39,name)); cmd.addCommand("!enter", new Cmd("!enter","",39,name)); // cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
// Проверим полномочия //if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; //if(!cmd.auth(proc,uin, "roomgo")) return; try{ String MESSAGE = "Вы вошли в чат."; String MESSAGE2 = " вошёл(а) в чат"; String MESSAGE3 = " ["; String MESSAGE4 = "]"; Users uss = cmd.srv.us.getUser(uin); 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; //Юзер уже в чате if (uss.state==UserWork.STATE_NO_CHAT) { Log.info("Add contact " + uin); if(proc.isNoAuthUin(uin)) proc.mq.add(uin, "Чтобы бот видел ваш статус - авторизуйте его", 2); proc.addContactList(uin); uss.state = UserWork.STATE_CHAT; uss.basesn = proc.baseUin; cmd.srv.us.updateUser(uss); cmd.srv.cq.addMsg(uss.localnick + MESSAGE3 + uss.id + MESSAGE4 + MESSAGE2, uss.sn, uss.room); proc.mq.add(uin,"Добро Пожаловать в Чат*HI*" + "\nВаш NICK = [" + uss.localnick + "]\nВаш UIN = [" + uin + "]\nВаш ID = [" + uss.id + "]\nВы в Комнате = [" + uss.room + "]\nНаименование комнаты = [" + cmd.srv.us.getRoom(uss.room).getName() + "] \nТема текущей комнаты = [" + cmd.srv.us.getRoom(uss.room).getTopic() + "]"); f = true; } if (uss.state==UserWork.STATE_OFFLINE) { uss.state = UserWork.STATE_CHAT; uss.basesn = proc.baseUin; cmd.srv.us.updateUser(uss); proc.mq.add(uin,MESSAGE); if(cmd.psp.getBooleanProperty("chat.showChangeUserStatus")) cmd.srv.cq.addMsg(uss.localnick + MESSAGE3 + uss.id + MESSAGE4 + MESSAGE2, uss.sn, uss.room); } Log.talk(uss.localnick + MESSAGE2); cmd.srv.us.db.log(uss.id,uin,"STATE_IN",uss.localnick + MESSAGE2,uss.room); cmd.srv.us.db.event(uss.id, uin, "STATE_IN", 0, "", uss.localnick + MESSAGE2); cmd.srv.cq.addUser(uin,proc.baseUin, uss.room); if(f){ File acu = new File ("./AutoUin"); if (!acu.exists()) { if(cmd.srv.us.getCurrUinUsers(uss.basesn)>cmd.psp.getIntProperty("chat.maxUserOnUin")){ proc.mq.add(uin,"Данный номер слишком загружен, Вы будете автоматически переведены на ближайший свободный номер."); String s = cmd.srv.us.getFreeUin(); uss.basesn = s; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUser(uin, s); proc.mq.add(uin,"Сообщения теперь будут приходить с номера " + s); } } else { proc.mq.add(uin,"Вы будете автоматически переведены на ближайший свободный номер."); String s = cmd.srv.us.getFreeUin(); uss.basesn = s; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUser(uin, s); proc.mq.add(uin,"Сообщения теперь будут приходить с номера " + s); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!программа", new Cmd("!программа","$n",39,name)); cmd.addAuth("TV","Вывод программы"); out="Ok"; return; }
Для просмотра телепрограммы наберите: !программа ID_канала 1 - 1 канал 2 - Россия 3 - ТВ Центр 4 - НТВ 5 - Культура 6 - Спорт 7 - РЕН ТВ 8 - СТС 9 - Домашний 10 - ТНТ 11 - ДТВ 12 - MTV-Россия вот то впишите в/text/tv.txt
Переход по комнатам:
Code
/** * Скрипт для расширения команд чата * Замена перехода в комнаты */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!комната", new Cmd("!комната","$n $c",39,name)); cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!чат", new Cmd("!чат","",39,name)); cmd.addCommand("!chat", new Cmd("!chat","",39,name)); cmd.addCommand("!ч", new Cmd("!чат","",39,name)); cmd.addCommand("!вход", new Cmd("!вход","",39,name)); cmd.addCommand("!enter", new Cmd("!enter","",39,name)); // cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
// Проверим полномочия //if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; //if(!cmd.auth(proc,uin, "roomgo")) return; try{ String MESSAGE = "Вы вошли в чат."; String MESSAGE2 = " вошёл(а) в чат"; String MESSAGE3 = " ["; String MESSAGE4 = "]"; Users uss = cmd.srv.us.getUser(uin); 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; //Юзер уже в чате if (uss.state==UserWork.STATE_NO_CHAT) { Log.info("Add contact " + uin); if(proc.isNoAuthUin(uin)) proc.mq.add(uin, "Чтобы бот видел ваш статус - авторизуйте его", 2); proc.addContactList(uin); uss.state = UserWork.STATE_CHAT; uss.basesn = proc.baseUin; cmd.srv.us.updateUser(uss); cmd.srv.cq.addMsg(uss.localnick + MESSAGE3 + uss.id + MESSAGE4 + MESSAGE2, uss.sn, uss.room); proc.mq.add(uin,"Добро Пожаловать в Чат*HI*" + "\nВаш NICK = [" + uss.localnick + "]\nВаш UIN = [" + uin + "]\nВаш ID = [" + uss.id + "]\nВы в Комнате = [" + uss.room + "]\nНаименование комнаты = [" + cmd.srv.us.getRoom(uss.room).getName() + "] \nТема текущей комнаты = [" + cmd.srv.us.getRoom(uss.room).getTopic() + "]"); f = true; } if (uss.state==UserWork.STATE_OFFLINE) { uss.state = UserWork.STATE_CHAT; uss.basesn = proc.baseUin; cmd.srv.us.updateUser(uss); proc.mq.add(uin,MESSAGE); if(cmd.psp.getBooleanProperty("chat.showChangeUserStatus")) cmd.srv.cq.addMsg(uss.localnick + MESSAGE3 + uss.id + MESSAGE4 + MESSAGE2, uss.sn, uss.room); } Log.talk(uss.localnick + MESSAGE2); cmd.srv.us.db.log(uss.id,uin,"STATE_IN",uss.localnick + MESSAGE2,uss.room); cmd.srv.us.db.event(uss.id, uin, "STATE_IN", 0, "", uss.localnick + MESSAGE2); cmd.srv.cq.addUser(uin,proc.baseUin, uss.room); if(f){ File acu = new File ("./AutoUin"); if (!acu.exists()) { if(cmd.srv.us.getCurrUinUsers(uss.basesn)>cmd.psp.getIntProperty("chat.maxUserOnUin")){ proc.mq.add(uin,"Данный номер слишком загружен, Вы будете автоматически переведены на ближайший свободный номер."); String s = cmd.srv.us.getFreeUin(); uss.basesn = s; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUser(uin, s); proc.mq.add(uin,"Сообщения теперь будут приходить с номера " + s); } } else { proc.mq.add(uin,"Вы будете автоматически переведены на ближайший свободный номер."); String s = cmd.srv.us.getFreeUin(); uss.basesn = s; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUser(uin, s); proc.mq.add(uin,"Сообщения теперь будут приходить с номера " + s); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!программа", new Cmd("!программа","$n",39,name)); cmd.addAuth("TV","Вывод программы"); out="Ok"; return; }
Для просмотра телепрограммы наберите: !программа ID_канала 1 - 1 канал 2 - Россия 3 - ТВ Центр 4 - НТВ 5 - Культура 6 - Спорт 7 - РЕН ТВ 8 - СТС 9 - Домашний 10 - ТНТ 11 - ДТВ 12 - MTV-Россия вот то впишите в/text/tv.txt
Переход по комнатам:
Code
/** * Скрипт для расширения команд чата * Замена перехода в комнаты */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!комната", new Cmd("!комната","$n $c",39,name)); cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!загрудь", new Cmd("!загрудь","$c $n $s",39,name)); //cmd.addAuth("загрудь","загрудь"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....загрудь proc.mq.add(i,"Вас потрогалза грудь пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был поцапан за грудь пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!износиловать", new Cmd("!износиловать","$c $n $s",39,name)); cmd.addCommand("!изнасиловать", new Cmd("!изнасиловать","$c $n $s",39,name)); //cmd.addAuth("изнасиловать","изнасиловать"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....изнасиловать proc.mq.add(i,"Вас изнасиловал пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был изнасилован пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!неуважаю", new Cmd("!неуважаю","$c $n $s",39,name)); //cmd.addAuth("неуважаю","неуважаю"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....неуважаю proc.mq.add(i,"Тебя не уважает пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " не уважаемый пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....даем пинок proc.mq.add(i,"Вам дал пинок пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был дан пинок пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!уважаю", new Cmd("!уважаю","$c $n $s",39,name)); //cmd.addAuth("уважаю","уважаю"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....уважаю proc.mq.add(i,"Тебя уважает чел " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " уважаемый пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!удар", new Cmd("!удар","$c $n $s",39,name)); //cmd.addAuth("удар","удар"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....ударяем proc.mq.add(i,"Вас ударил пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был ударен пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!загрудь", new Cmd("!загрудь","$c $n $s",39,name)); //cmd.addAuth("загрудь","загрудь"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....загрудь proc.mq.add(i,"Вас потрогалза грудь пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был поцапан за грудь пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!износиловать", new Cmd("!износиловать","$c $n $s",39,name)); cmd.addCommand("!изнасиловать", new Cmd("!изнасиловать","$c $n $s",39,name)); //cmd.addAuth("изнасиловать","изнасиловать"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....изнасиловать proc.mq.add(i,"Вас изнасиловал пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был изнасилован пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!неуважаю", new Cmd("!неуважаю","$c $n $s",39,name)); //cmd.addAuth("неуважаю","неуважаю"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....неуважаю proc.mq.add(i,"Тебя не уважает пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " не уважаемый пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....даем пинок proc.mq.add(i,"Вам дал пинок пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был дан пинок пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!уважаю", new Cmd("!уважаю","$c $n $s",39,name)); //cmd.addAuth("уважаю","уважаю"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....уважаю proc.mq.add(i,"Тебя уважает чел " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " уважаемый пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!удар", new Cmd("!удар","$c $n $s",39,name)); //cmd.addAuth("удар","удар"); //если нужно полномочие,то раскоменти строки out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); String s = (String)v.get(0); int t = (Integer)v.get(1); String r = (String)v.get(2); int id = Integer.parseInt(s); String i = cmd.srv.us.getUser(id).sn;
// оповещаем....ударяем proc.mq.add(i,"Вас ударил пользователь " + cmd.srv.us.getUser(uin).localnick); //оповещение в комнату cmd.srv.cq.addMsg(cmd.srv.us.getUser(i).localnick + " был ударен пользователем "+ cmd.srv.us.getUser(uin).localnick, i, cmd.srv.us.getUser(i).room);
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!голизмтип", new Cmd("!голизмтип","$n",39,name)); out="Ok"; return; } if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int itype = (Integer)v.get(0); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } if((itype !=0 )&&(itype !=1 )) { proc.mq.add(uin,"Укажите корректный тип голосования(0-за пользователей, 1-за варианты). "); return; } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p where p.status=0"); ResultSet rs = pst.executeQuery(); rs.next(); int t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"У вас нет голосования в статусе ЧЕРНОВИК."); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("update polling set type=? where status=0"); pst.setInt(1, itype); pst.execute(); pst.close(); String m = "Тип голосования успешно установлен.\n"; if (itype==0 ) m+="Вы установили тип 'Голосование за пользователя'. Для этого типа не требуются варианты ответов. Вы можете запустить голосование командой !голстарт"; else m+="Теперь Вам необходимо создать варианты ответов командой !голсоздвар код описание"; proc.mq.add(uin,m); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Изменение типа голосования"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!голсоздать", new Cmd("!голсоздать","$n $s",39,name)); out="Ok"; return; } if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int itype = (Integer)v.get(0); String iname = (String)v.get(1); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } if((itype !=0 )&&(itype !=1 )) { proc.mq.add(uin,"Укажите корректный тип голосования(0-за пользователей, 1-за варианты). Например: \n !голсоздать 0 Кто по юзеров Вашему мнению писает мимо унитаза \n !голсоздать 1 Какого цвета трусы у Насти"); return; } if(iname.equals("")||iname.equals(" ")){ proc.mq.add(uin,"Укажите тему опроса! "); return; } if(iname.length()>250){ iname=iname.substring(1, 250); } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p where p.status in (0,1)"); ResultSet rs = pst.executeQuery(); if(!rs.next()){ proc.mq.add(uin,"Неожиданный результат запроса! напишите об этом на jimbot.ru! "); return; } int t = rs.getInt(1); if(t!=0) { proc.mq.add(uin,"Закройте открытые голосования!"); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("update polling set status=3 where status=2"); pst.execute(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("insert into polling(nazvanie,type,status) values(?,?,0)"); pst.setString(1, iname); pst.setInt(2, itype); pst.execute(); pst.close(); String m = "Голосование успешно создано\n"; if (itype==0 ) m+="Вы выбрали тип 'Голосование за пользователя'. Для этого типа не требуются варианты ответов. Вы можете запустить голосование командой !голстарт"; else m+="Теперь Вам необходимо создать варианты ответов командой !голдобвар код описание"; proc.mq.add(uin,m); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Создание голосования"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
if(in.equals("install")){ cmd.addCommand("!голудвар", new Cmd("!голудвар","$n",39,name)); out="Ok"; return; }
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int icode = (Integer)v.get(0); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling where status=0"); ResultSet rs = pst.executeQuery(); rs.next(); int t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"У вас нет голосования в статусе ЧЕРНОВИК."); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select type from polling where status=0"); rs = pst.executeQuery(); if(!rs.next()){ proc.mq.add(uin,"Неожиданный результат запроса! Попробуте очистить таблицы голосования! "); return; } t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"Для вашего голосования установлен тип(type) - 0. Голосование будет проходить за пользователей, а не за варианты ответа. Можете изменить тип голосования командой !голизмтип 1"); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p,polling_variant pv where p.status=0 and p.polling_id=pv.polling_id and pv.polling_variants_code="+icode); rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); if(t==0) { proc.mq.add(uin,"Варианта с указанным кодом не найдено"); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select polling_id from polling where status=0"); rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("delete from polling_variant where polling_id=? and polling_variants_code=?"); pst.setInt(1, t); pst.setInt(2, icode); pst.execute(); pst.close(); proc.mq.add(uin,"Вариант ответа удален."); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Удален вариант ответа"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Голосование(вариант - 2):
Code
import ru.jimbot.modules.AbstractServer; import ru.jimbot.util.*; import ru.jimbot.modules.*; import ru.jimbot.modules.chat.*; import java.sql.*; if(in.equals("install")){ cmd.addCommand("!голстарт", new Cmd("!голстарт","",39,name)); out="Ok"; return; } if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); if(isender.room!=7) { proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p where p.status=0"); ResultSet rs = pst.executeQuery(); rs.next(); int t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"У вас нет голосования в статусе ЧЕРНОВИК."); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select type from polling p where p.status = 0"); rs = pst.executeQuery(); rs.next(); int itype = rs.getInt(1); rs.close(); pst.close(); if(itype==1) { PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p,polling_variant pv where p.status=0 and pv.polling_id=p.polling_id"); ResultSet rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); if(t<2) { proc.mq.add(uin,"Начало голосования невозможно: Выбран тип голосования 1 (за варианты ответа), поэтому вам необходимо добавить как минимум два варианта ответа командой !голдобвар. Просмотреть текущую конфигурацию !голнастройки. Изменить тип голосования !голизмтип 0"); return; } rs.close(); pst.close(); } pst = cmd.srv.us.db.getDb().prepareStatement("update polling set status=1 where status=0"); pst.execute(); pst.close(); proc.mq.add(uin,"Голосование запущено!"); Set rid = new HashSet(); Enumeration e = cmd.srv.cq.uq.keys(); while(e.hasMoreElements()){ String i = e.nextElement(); Users us = cmd.srv.us.getUser(i); if(us.state==UserWork.STATE_CHAT) rid.add(us.room); } for (int i:rid){ cmd.srv.cq.addMsg("В комнате №7 запущено голосование, просьба принять участие.", uin, i); } cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Запуск голосования"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Code
import ru.jimbot.modules.AbstractServer; import ru.jimbot.util.*; import ru.jimbot.modules.*; import ru.jimbot.modules.chat.*; import java.sql.*; if(in.equals("install")){ cmd.addCommand("!голдобвар", new Cmd("!голдобвар","$n $s",39,name)); out="Ok"; return; } if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int icode = (Integer)v.get(0); String idesc = (String)v.get(1); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } if(idesc.length()>250){ idesc=idesc.substring(1, 250); } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling where status=0"); ResultSet rs = pst.executeQuery(); rs.next(); int t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"У вас нет голосования в статусе ЧЕРНОВИК."); return; } rs.close(); pst.close(); PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select type from polling where status=0"); ResultSet rs = pst.executeQuery(); if(!rs.next()){ proc.mq.add(uin,"Неожиданный результат запроса! Попробуте очистить таблицы голосования! "); return; } t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"Для вашего голосования установлен тип(type) - 0. Голосование будет проходить за пользователей, а не за варианты ответа. Можете изменить тип голосования командой !голизмтип 1"); return; } rs.close(); pst.close(); PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p,polling_variant pv where p.status=0 and p.polling_id=pv.polling_id and pv.polling_variants_code="+icode); ResultSet rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); if(t==1) { proc.mq.add(uin,"Вариант ответа с таким кодом уже существует"); return; } rs.close(); pst.close(); PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select polling_id from polling where status=0"); ResultSet rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("insert into polling_variant(polling_id,polling_variants_code,polling_variants_name) values(?,?,?)"); pst.setInt(1, t); pst.setInt(2, icode); pst.setString(3, idesc); pst.execute(); pst.close(); proc.mq.add(uin,"Вариант ответа успешно добавлен."); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Добавлен вариант ответа"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!голизмтип", new Cmd("!голизмтип","$n",39,name)); out="Ok"; return; } if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int itype = (Integer)v.get(0); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } if((itype !=0 )&&(itype !=1 )) { proc.mq.add(uin,"Укажите корректный тип голосования(0-за пользователей, 1-за варианты). "); return; } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p where p.status=0"); ResultSet rs = pst.executeQuery(); rs.next(); int t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"У вас нет голосования в статусе ЧЕРНОВИК."); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("update polling set type=? where status=0"); pst.setInt(1, itype); pst.execute(); pst.close(); String m = "Тип голосования успешно установлен.\n"; if (itype==0 ) m+="Вы установили тип 'Голосование за пользователя'. Для этого типа не требуются варианты ответов. Вы можете запустить голосование командой !голстарт"; else m+="Теперь Вам необходимо создать варианты ответов командой !голсоздвар код описание"; proc.mq.add(uin,m); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Изменение типа голосования"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!голсоздать", new Cmd("!голсоздать","$n $s",39,name)); out="Ok"; return; } if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int itype = (Integer)v.get(0); String iname = (String)v.get(1); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } if((itype !=0 )&&(itype !=1 )) { proc.mq.add(uin,"Укажите корректный тип голосования(0-за пользователей, 1-за варианты). Например: \n !голсоздать 0 Кто по юзеров Вашему мнению писает мимо унитаза \n !голсоздать 1 Какого цвета трусы у Насти"); return; } if(iname.equals("")||iname.equals(" ")){ proc.mq.add(uin,"Укажите тему опроса! "); return; } if(iname.length()>250){ iname=iname.substring(1, 250); } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p where p.status in (0,1)"); ResultSet rs = pst.executeQuery(); if(!rs.next()){ proc.mq.add(uin,"Неожиданный результат запроса! напишите об этом на jimbot.ru! "); return; } int t = rs.getInt(1); if(t!=0) { proc.mq.add(uin,"Закройте открытые голосования!"); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("update polling set status=3 where status=2"); pst.execute(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("insert into polling(nazvanie,type,status) values(?,?,0)"); pst.setString(1, iname); pst.setInt(2, itype); pst.execute(); pst.close(); String m = "Голосование успешно создано\n"; if (itype==0 ) m+="Вы выбрали тип 'Голосование за пользователя'. Для этого типа не требуются варианты ответов. Вы можете запустить голосование командой !голстарт"; else m+="Теперь Вам необходимо создать варианты ответов командой !голдобвар код описание"; proc.mq.add(uin,m); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Создание голосования"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
if(in.equals("install")){ cmd.addCommand("!голудвар", new Cmd("!голудвар","$n",39,name)); out="Ok"; return; }
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; try{ Vector v = cmd.getParser().parseArgs(msg); Users isender = cmd.srv.us.getUser(uin); int icode = (Integer)v.get(0); if(isender.room!=7) { // номер комнаты для голосований proc.mq.add(uin,"Для голосования пройдите на избирательный участок"); return; } PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling where status=0"); ResultSet rs = pst.executeQuery(); rs.next(); int t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"У вас нет голосования в статусе ЧЕРНОВИК."); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select type from polling where status=0"); rs = pst.executeQuery(); if(!rs.next()){ proc.mq.add(uin,"Неожиданный результат запроса! Попробуте очистить таблицы голосования! "); return; } t = rs.getInt(1); if(t!=1) { proc.mq.add(uin,"Для вашего голосования установлен тип(type) - 0. Голосование будет проходить за пользователей, а не за варианты ответа. Можете изменить тип голосования командой !голизмтип 1"); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select count(*) from polling p,polling_variant pv where p.status=0 and p.polling_id=pv.polling_id and pv.polling_variants_code="+icode); rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); if(t==0) { proc.mq.add(uin,"Варианта с указанным кодом не найдено"); return; } rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("select polling_id from polling where status=0"); rs = pst.executeQuery(); rs.next(); t = rs.getInt(1); rs.close(); pst.close(); pst = cmd.srv.us.db.getDb().prepareStatement("delete from polling_variant where polling_id=? and polling_variants_code=?"); pst.setInt(1, t); pst.setInt(2, icode); pst.execute(); pst.close(); proc.mq.add(uin,"Вариант ответа удален."); cmd.srv.us.db.event(isender.id, uin, "POLL", 0, "", "Удален вариант ответа"); }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Автор - ShuriK Дата добавления - 16.02.2011 в 15:46