Для посетителей темы: В данной теме выкладываются только готовые скрипты, которые прошли тест и 100% рабочие. Вопросы типа: "А как его установить?", "А у меня нифига не работает" и т.д. будут незамедлительно удалены!
Для тех кто выкладывает скрипты: Указываем название скрипта Указываем смысл его работы Указываем процесс установки Так же можно указать какие либо дополнительные указания, пожелания, требования по использованию вашего скрипта
Если скрипт принадлежит не вам: Указываем координаты автора скрипта Скрипты разрешается выкладывать только с разрешения автора.
Если вы автор скрипта и он был выложен без вашего согласия: Незамедлительно сообщите администрации Предоставьте доказательство принадлежности скрипта вам.
С уважением Администрация форума JimBot.su С уважением Sma1L
Сообщение отредактировал 1ldar - Воскресенье, 05.02.2012, 19:44
/** * При вызове скрипта определены следующие переменные: * 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/ceny.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()); }
а в /text/ceny.txt пишем свои цены на права в чате примерно вот так
*****Цены на права в чатике***** Модератор-стоимость должности составляет 70 рублей либо 20 приведённых человек!!! Админ-стоимость должности составляет 150 рублей Системный Админ-стоимость должности 250 рублей ============================ Если надумаете приобрести одну из должностей пишете Администрации
Название: Список админов в комнате Смысл: Вывод списка модераторов по форме Администрация:\n id - nick, [roomid]roomname Установка: 1)Установить скрипт OpChat или создать соответствующие полномочия 2)Создать файлы в папке ./services/ChatBot/scripts/command
Code
/** * Отправка всем опам, на базе "запереть в комнате" и "отослать во все комнаты" * */
//для работы в тест9 этот участок кода удалите и пропишите в скрипте start.bsh пропишите команду и полномочие if(in.equals("install")){ //!send - название команды, при желании можно изменить на свое cmd.addCommand("!админы", new Cmd("!админы","",39,name)); cmd.addAuth("AdminList","Получить список админов"); out="Ok"; return; }
*//Скрипт для расширения команд чата */ /** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!услуги", new Cmd("!услуги","$n",39,name)); cmd.addAuth("uslygi","Расширение функционала"); out="Ok"; return; }
try{ //Парсим строку аргументов Vector v = cmd.getParser().parseArgs(msg); // Находим юзера Users us = cmd.srv.us.getUser(uin); // Проверяем есть ли такой юзер ваще? if(us.id==0){ proc.mq.add(uin,"Такой пользователь не зарегистрирован в чате"); return; } if (us.gender<20)//вписываем число, чтоб нельзя было покупать с недостаточным кол-вом голосов { proc.mq.add(uin,us.localnick+" У вас недостаточно голосов, для приобретения данной функции"); return; } int uroven = us.gender-80;//сюда кол-во голосов которые будем отнимать us.gender=uroven; cmd.srv.us.updateUser(us); cmd.srv.getIcqProcess(us.basesn).mq.add(us.sn,"Ваша репутация, уменьшена...теперь составляет: |" + uroven + "| "); // Прибавляем cmd.srv.us.grantUser(us.id, "goroskop");//полномочие if(us.state==UserWork.STATE_CHAT){ cmd.srv.getIcqProcess(us.basesn).mq.add(us.sn,"Теперь ты можешь пользоваться командой для просмотра гороскопа"); } // Сообщаем об успешном выполнении команды proc.mq.add(uin,"Пользователь " + us.localnick + " может юзать гороскоп"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Название: Руссификатор команд Смысл работы: Данный скрипт добавляет в ваш чат команды на русском языке Установка: Необходимо заменить содержимое файла start.bsh на ниже приведённый код. Файл start.bsh находится в: "Папка_вашего_бота\services\ChatBot\scripts Дополнительно: Руссифицированные команды в скрипте вы можете изменять на свой вкус, только будьте при этом придельно внимательны, один неправильный символ и ваш скрипт работать не будет.
/** * Данный скрипт запускается при старте бота. Здесь можно указать команды подключения или * инициализации внешних программных средств - баз данных, програмных оболочек и т.п. **/
/** * При вызове скрипта определены следующие переменные: * AbstractServer srv */
// Добавляем псевдонимы к существующим командам бота // Новые команды и полномочия добавятся автоматически при установке скриптов //Руссификация команд чата - 7.02.09 (с) pankrat ((ChatCommandProc)srv.cmd).addCommand("!справка", new Cmd("!справка","",2)); //Команда спраки по боту ((ChatCommandProc)srv.cmd).addCommand("!чат", new Cmd("!чат","",3)); //Команда входа в чат ((ChatCommandProc)srv.cmd).addCommand("!выход", new Cmd("!выход","",4)); //Команда выхода из чата ((ChatCommandProc)srv.cmd).addCommand("!правила", new Cmd("!правила","",5)); //Вывод правил чата ((ChatCommandProc)srv.cmd).addCommand("!стат", new Cmd("!стат","",6)); // Статистика ЮИН'ов ((ChatCommandProc)srv.cmd).addCommand("!свюин", new Cmd("!свюин","",7)); // Переход на свободный ЮИН ((ChatCommandProc)srv.cmd).addCommand("!юин", new Cmd("!юин","$n",8)); // Переход на ЮИН №1,2,3 и т.д. ((ChatCommandProc)srv.cmd).addCommand("!приглашение", new Cmd("!приглашение","",9)); //Создание приглашения в чат ((ChatCommandProc)srv.cmd).addCommand("!банлист", new Cmd("!банлист","",10)); //Просмотр Бан листа ((ChatCommandProc)srv.cmd).addCommand("!киклист", new Cmd("!киклист","",11)); //Просмотр кик листа ((ChatCommandProc)srv.cmd).addCommand("!инфо", new Cmd("!инфо","$c",12)); //Просмотр инфы о юзере ((ChatCommandProc)srv.cmd).addCommand("!кик", new Cmd("!кик","$c $n $s",13)); //Команда КИКа ((ChatCommandProc)srv.cmd).addCommand("!киквсех", new Cmd("!киквсех","",14)); //Общий КИК ((ChatCommandProc)srv.cmd).addCommand("!кто", new Cmd("!кто", "$n",16)); //Список последних ников юзера ((ChatCommandProc)srv.cmd).addCommand("!листгрупп", new Cmd("!листгрупп","",17)); //Список групп юзеров ((ChatCommandProc)srv.cmd).addCommand("!группа", new Cmd("!группа","$n $c",19)); //Присвоить группу юзеру ((ChatCommandProc)srv.cmd).addCommand("!бан", new Cmd("!бан","$c $s",22)); //Команда БАНа ((ChatCommandProc)srv.cmd).addCommand("!убан", new Cmd("!убан","$c",23)); //Снять БАН ((ChatCommandProc)srv.cmd).addCommand("!ник", new Cmd("!ник","$c $c",24)); //Регистрация, смена ника ((ChatCommandProc)srv.cmd).addCommand("+тут", new Cmd("+тут","",25)); // Список юзеров в комнате ((ChatCommandProc)srv.cmd).addCommand("+лс", new Cmd("+лс","$n $s",26)); //Отправить в приват ((ChatCommandProc)srv.cmd).addCommand("+ответ", new Cmd("+ответ","$s",27)); //Ответ на последний приват ((ChatCommandProc)srv.cmd).addCommand("!тема", new Cmd("!тема","$s",28)); //Установить тему комнаты ((ChatCommandProc)srv.cmd).addCommand("!комната", new Cmd("!комната","$n",33)); //Переход в комнату ((ChatCommandProc)srv.cmd).addCommand("!ктопригл", new Cmd("!ктопригл","$n",34)); //вывод цепочки приглашений ((ChatCommandProc)srv.cmd).addCommand("!кикист", new Cmd("!кикист","",35)); //История КИКов ((ChatCommandProc)srv.cmd).addCommand("!adm", new Cmd("!adm","$s",36)); //Написать сообщение админу ((ChatCommandProc)srv.cmd).addCommand("!банист", new Cmd("!банист","",37)); //История БАНов ((ChatCommandProc)srv.cmd).addCommand("+все", new Cmd("+все","",38)); //Списов юзеров в чате ((ChatCommandProc)srv.cmd).addCommand("!комнаты", new Cmd("!комнаты","",40)); //Список доступных комнат ((ChatCommandProc)srv.cmd).addCommand("!создкомн", new Cmd("!создкомн","$n $s",41)); //Создать комнату ((ChatCommandProc)srv.cmd).addCommand("!измкомн", new Cmd("!измкомн","$n $s",42)) //Переименовать комнату
Название: Отправка сообщения во все комнаты Назначение: Скрипт предназначен для отправки сообщения во все комнаты Установка: Для работы скрипта его нужно скопировать в папку \services\Имя_сервиса_чата\scripts\command
if(in.equals("install")){ //!send - название команды, при желании можно изменить на свое cmd.addCommand("!send", new Cmd("!send","$s",39,name)); cmd.addAuth("allroom_message","Сообщение во все комнаты"); out="Ok"; return; }
Название: OpChat Смысл: Общение только между всеми операторами в чате, виден во всех комнатах, отображаться будет как OpChat: > Установка: Создать файл в папке ./services/ChatBot/scripts/command
/** * Отправка всем опам, на базе скриптов "запереть в комнате" и "отослать во все комнаты" * * Imda */
Название: Админчат \ Комната-отстойник Смысл: 2 комнаты с ограниченым допуском, для Опов, и для провинившихся. Вторую лучше юзать с переписанным скриптом бана в комнате Установка: 1)Создать 2 комнаты с номерами 7 и 9 (при желании - переделайте) 2)Создать файлы в папке ./services/ChatBot/scripts/command Замена перехода по комнатам:
/** * Скрипт для расширения команд чата */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!ком", new Cmd("!ком","$n",39,name)); cmd.addCommand("!r", new Cmd("!r","$n",39,name)); cmd.addCommand("!к", new Cmd("!к","$n",39,name)); cmd.addCommand("!room", new Cmd("!room","$n",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{ Vector v = cmd.getParser().parseArgs(msg); int i = (Integer)v.get(0); Users uss = cmd.srv.us.getUser(uin); if(uss.room==i){ proc.mq.add(uin,"Ты уже сидишь в этой комнате!"); } else if (((cmd.qauth(proc,uin, "roomgo")) && (! (i==7) && !(i==9) ) && ((i==0) || (i==1) || (i==2) )) || (cmd.qauth(proc,uin, "anyroom") ) ){ cmd.srv.cq.addMsg(uss.localnick + " ушел из комнаты " + uss.room, uin, uss.room); uss.room=i; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUserRoom(uin, i); cmd.srv.cq.addMsg(uss.localnick + " вошел в комнату " + uss.room, uin, uss.room); String sss = cmd.psp.loadText("./news.txt"); proc.mq.add(uin,cmd.srv.us.getUser(uin).localnick+", ты перешел в комнату\n" + i + " - " + cmd.srv.us.getRoom(i).getName() +"\nНовости: " + sss +"\nТема: " + cmd.srv.us.getRoom(i).getTopic() );
Переписаный для использования "Отстойника" скрипт бана в комнате:
/** * Скрипт для расширения команд чата */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!банком", new Cmd("!банком","$n",39,name)); cmd.addAuth("banroom","Запереть юзера в комнате"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); int i1 = (Integer)v.get(0); 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==7){ proc.mq.add(uin,"Пользователь уже сидит в этой комнате"); return; } else { u.room=7; cmd.srv.us.updateUser(u); cmd.srv.cq.changeUserRoom(u.sn, 7); // Оповещаем целевую комнату cmd.srv.cq.addMsg("У вас пополнение: "+u.localnick, u.sn, u.room); // Оповещаем юзера cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Поздравляем, Вы были признаны мусором и перемещены в мусоропровод."); // Лишаем юзера прав на комнаты cmd.srv.us.revokeUser(i1, "achat"); cmd.srv.us.revokeUser(i1, "roomgo"); cmd.srv.us.revokeUser(i1, "anyroom");
} // Сообщаем об успешном выполнении команды proc.mq.add(uin,u.localnick + " выброшен в мусоропровод"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!убанком", new Cmd("!убанком","$n",39,name)); cmd.addAuth("banroom","Запереть юзера в комнате"); out="Ok"; return; }
try{ //Парсим строку аргументов Vector v = cmd.getParser().parseArgs(msg); //Согласно шаблону, аргумент должн быть числом int i1 = (Integer)v.get(0); // Находим юзера Users u = cmd.srv.us.getUser(i1); // Проверяем есть ли такой юзер ваще? if(u.id==0){ proc.mq.add(uin,"Пользователь не найден"); return; } // Возвращаем права if (cmd.qauth(proc,u.sn, "OpChat")) { cmd.srv.us.grantUser(i1, "achat");} cmd.srv.us.grantUser(i1, "roomgo"); if(u.state==UserWork.STATE_CHAT){ cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Тебе разрешено выходить за пределы этой комнаты"); } // Сообщаем об успешном выполнении команды proc.mq.add(uin,"Пользователю " + u.localnick + " возвращены права на переход по комнатам"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Название: Работа с новостями Смысл: Создаем файл с новостями чата, доступный для просмотра обычным юзерам Установка: 1)Создать файл в папке бота: news.txt 2)Создать файлы в папке ./services/ChatBot/scripts/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.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 + "nn"; 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,"Ошибка добавления"); }
Название: Список админов в комнате Смысл: Вывод списка модераторов по форме Администрация:\n id - nick, [roomid]roomname Установка: 1)Установить скрипт OpChat или создать соответствующие полномочия 2)Создать файлы в папке ./services/ChatBot/scripts/command
/** * Отправка всем опам, на базе "запереть в комнате" и "отослать во все комнаты" * */
//для работы в тест9 этот участок кода удалите и пропишите в скрипте start.bsh пропишите команду и полномочие if(in.equals("install")){ //!send - название команды, при желании можно изменить на свое cmd.addCommand("!админы", new Cmd("!админы","",39,name)); cmd.addAuth("AdminList","Получить список админов"); out="Ok"; return; }
Название: Перемещение новостей в архив Смысл: Перемещение всех новостей в архив, очистка файла новостей Установка: 1)Создать в корне бота папку archive 2)Создать файлы в папке ./services/ChatBot/scripts/command
/** * Скрипт для перемещения файлов с новостями в архив * 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,"Ошибка удаления"); }
Название: Вывод случайного анекдота из файла Смысл: (См.выше) Важно: скорей всего, этот скрипт сильно нагрузит сервер. Установка: 1)Создать файл ./text/anekdots.txt , в конце анекдота - 2)Создать файлы в папке ./services/ChatBot/scripts/command
/** * Скрипт для вывода случайного анекдота из файла * Imda */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!анек", new Cmd("!анек","$s",39,name)); cmd.addCommand("!ха", new Cmd("!ха","$s",39,name)); cmd.addAuth("Anek","Сервис анекдотов"); out="Ok"; return; }
try { //Считываем анекдоты String s = cmd.psp.loadText("./text/anekdots.txt"); //Разбиваем текст на куски, в качестве разделителя будем использовать String[] ss = s.split(""); int R = (int) ((Math.random()*ss.length));
Название: Работа с личной инфой Смысл: Создаем и просматриваем инфу о юзерах. Право InfoView дает право просматривать инфу о всех, кроме тех, для кого применен флаг IsModer. Для просмотра инфы таких юзеров, надо иметь право InfoViewMod Для задания инфы о себе пишем комманду: !осебе для просмотра: !инфо Установка: 1)Создать папку UI в корне бота 2)Создать файлы скриптов в папке ./services/ChatBot/scripts/command
/** * Скрипт для задания личной инфы. * !осебе * Imda */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!осебе", new Cmd("!осебе","$s",39,name)); cmd.addAuth("SetInfo","Установка личной инфы"); out="Ok"; return; }
try { Vector v = cmd.getParser().parseArgs(msg); String sn = (String)v.get(0); int len = sn.length(); if (!(len>1000)){ 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()); sn = sn + "\n" + "Обновлено:" + D +" "+ T; Users us = cmd.srv.us.getUser(uin); File Persona = new File ("./UI/"+us.id+".txt"); if (Persona.exists()) Persona.delete(); OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./UI/"+us.id+".txt",true),"windows-1251"); ow.write(sn); ow.close(); Log.talk("Инфа обновлена: "+us.id+": " + sn); proc.mq.add(uin,"Информация успешно обновлена: \n"+sn); } else proc.mq.add(uin,"Сликом длинная инфа (>1000). Инфа не изменена"); } catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка изменения инфы "+ ex.getMessage()); }
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!и", new Cmd("!и","$n",39,name)); cmd.addCommand("!i", new Cmd("!i","$n",39,name)); cmd.addAuth("InfoView","Просмотр инфы"); cmd.addAuth("InfoViewMod","Просмотр инфы о модерах"); cmd.addAuth("IsModer","Инфа модера"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); int id = (Integer)v.get(0); Users u = cmd.srv.us.getUser(id); String s = cmd.psp.loadText("./UI/"+id+".txt"); File Persona = new File ("./UI/"+id+".txt"); if(u.id==0){ proc.mq.add(uin,"Пользователь не найден"); return; } else if (cmd.auth(proc,u.sn, "IsModer")){ if (cmd.auth(proc,uin, "InfoViewMod")){ if (Persona.exists()) proc.mq.add(uin,"Инфа о "+u.localnick+":\n"+s); else proc.mq.add(uin,u.localnick+" не задал личную информацию"); } else proc.mq.add(uin,"Инфа о "+u.localnick+" Вам недоступна"); } else if (!cmd.auth(proc,u.sn, "IsModer")){ if (Persona.exists()) proc.mq.add(uin,"Инфа о "+u.localnick+":\n"+s); else proc.mq.add(uin,u.localnick+" не задал личную информацию"); }