Правила: В данной теме выкладываются только готовые скрипты, которые прошли тест и 100% рабочие. Для тех кто выкладывает скрипты: - Указываем название скрипта - Указываем смысл его работы - Указываем процесс установки
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!sid", new Cmd("!sid","$s",39,name)); cmd.addCommand("!пид", new Cmd("!пид","$s",39,name)); cmd.addAuth("dbsearchid","Поиск сообщений по базе, команда !sid или !пид"); out="Ok"; return; }
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return; if(!cmd.auth(proc,uin, "dbsearchid")) return; try{ Vector v = cmd.getParser().parseArgs(msg); String ss = (String)v.get(0); if (ss.equals(" ")||ss.equals("")||ss.equals("0")){proc.mq.add(uin,"Необходимо указать ID пользователя!"); return;} String s = "Найденные сообщения:\n"; PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("SELECT `msg` FROM `log` WHERE `user_id`='"+ss+"'") ; ResultSet rs = pst.executeQuery(); while(rs.next())s += " " + rs.getString(1) + '\n'; rs.close(); pst.close(); int m=s.length();
//Режим и отправляем int a=1000;//на сколько символов нужно порезать сообщение; int b=20;//максимальное кол-во сообщений на отправку int m=s.length(); if (m>(a*b)) m=a*b;// int d=m/a; for(int i=0;im) proc.mq.add(uin,s.substring(i, m)); else proc.mq.add(uin,s.substring(i, i+a));
/** * Скрипт для расширения команд чата */ import ru.jimbot.modules.AbstractServer; import ru.jimbot.util.*; import ru.jimbot.modules.chat.*; import ru.jimbot.modules.*;
//Установка скрипта как обработчика команды if(in.equals("install")) { cmd.addCommand("!группа", new Cmd("!группа","$n $c",39,name)); cmd.addCommand("!setgroup", new Cmd("!setgroup","$n $c",39,name)); out="Ok"; return; }
try{ //Парсим строку аргументов Vector v = cmd.getParser().parseArgs(msg); int i1 = (Integer)v.get(0); String s1 = (String)v.get(1);
// Находим юзера Users u = cmd.srv.us.getUser(i1);
if(u.id==0) { proc.mq.add(uin,"Пользователь не найден"); return; } if(!cmd.testUserGroup(s1)) { proc.mq.add(uin,"Нет такой группы пользователей"); return; } if (cmd.psp.testAdmin(cmd.srv.us.getUser(i1).sn) && !cmd.psp.testAdmin(uin)) { proc.mq.add(uin,"Ты не можеш изменить группу главному Админу!"); return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!зарег", new Cmd("!зарег","$n",39,name)); cmd.addAuth("zareg","Дата реги пользователя"); out="Ok"; return; }
try{ //Парсим строку аргументов Vector v = cmd.getParser().parseArgs(msg); //Согласно шаблону, первый аргумент должен быть числом, а второй - строкой без пробелов int i = (Integer)v.get(0); //Находим юзера Users uss = cmd.srv.us.getUser(i); 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 = "Пользователь " + uss.localnick + " зарегся: "; try { PreparedStatement pst = db.getDb().prepareStatement(" SELECT `time` FROM `events` WHERE `user_id` ="+i+" ORDER BY time ASC LIMIT 1"); ResultSet rs = pst.executeQuery(); if(rs.next()){ s += rs.getString(1)+'\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("!тюрьма","$n",39,name)); cmd.addAuth("banroom","Запереть юзера в комнате"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!освободить", new Cmd("!освободить","$n",39,name)); cmd.addAuth("banroom","Запереть юзера в комнате"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!авход", new Cmd("!авход","",39,name)); cmd.addCommand("!achat", new Cmd("!achat","",39,name)); cmd.addCommand("!ачат", new Cmd("!ачат","",39,name)); cmd.addAuth("admchat","Вход в чат как администратор"); out="Ok"; return; }
//*********************************************************************** String MY_UIN = "*********"; //впишите вместо 123456789 свой UIN (кавычки не убирайте) //***********************************************************************
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!модвход", new Cmd("!модвход","",39,name)); cmd.addCommand("!modchat", new Cmd("!modchat","",39,name)); cmd.addCommand("!модчат", new Cmd("!модчат","",39,name)); cmd.addCommand("!мчат", new Cmd("!мчат","",39,name)); cmd.addAuth("modchat","Вход в чат как модератор"); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!зарегано", new Cmd("!зарегано","",39,name)); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("+a", new Cmd("+a","",39,name)); cmd.addCommand("+а", new Cmd("+а","",39,name)); cmd.addCommand("+f", new Cmd("+f","",39,name)); cmd.addCommand("+ф", new Cmd("+ф","",39,name)); cmd.addCommand("+тут", new Cmd("+тут","",39,name)); out="Ok"; return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!вых", new Cmd("!вых","",39,name)); cmd.addCommand("!выход", new Cmd("!выход","",39,name)); cmd.addCommand("!exit", new Cmd("!exit","",39,name)); out="Ok"; return; }
Услуги.. вывод из txt файла. нужно создать yslugi.txt в котором мы и размещаем нужною информацию.
/** * Скрипт для вывода списка предоставляемых услуг. */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!услуги", new Cmd("!услуги","",39,name)); cmd.addAuth("yslygi","Вывод списка услуг"); out="Ok"; return; }
try{ //Прочитаем текст из файла String s = cmd.psp.loadText("./text/yslugi.txt"); //Разбиваем текст на куски, в качестве разделителя будет использовате тег
String[] ss = s.split(" "); //По очереди отсылаем куски текста юзеру, точнее - помещаем их в очередь //исходящих сообщений уина, на котоором этот юзер сидит. for(int i=0;i proc.mq.add(uin,ss[i]); } } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!устстатус", new Cmd("!устстатус","$s",39,name)); cmd.addCommand("!setstatus", new Cmd("!setstatus","$s",39,name)); cmd.addAuth("SetInfo","Установка личной инфы"); out="Ok"; return; }
try { Vector v = cmd.getParser().parseArgs(msg); String lstatus = (String)v.get(0); int len = lstatus.length(); if (!(len>30)){ Users uss = cmd.srv.us.getUser(uin); cmd.srv.cq.addMsg(uss.localnick + " меняет статус на (" + lstatus + ")", uss.sn, uss.room); Log.talk(uss.localnick + " меняет статус на (" + lstatus + ")"); Users us = cmd.srv.us.getUser(uin); File Persona = new File ("./UXstatus/"+us.id+".txt"); if (Persona.exists()) Persona.delete(); OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./UXstatus/"+us.id+".txt",true),"windows-1251"); ow.write(lstatus); ow.close(); proc.mq.add(uin,"Вы сменили статус на (" + lstatus + ")"); if(lstatus.equals("")) Persona.delete(); } else proc.mq.add(uin,"Слишком длинный статус (> 30). Статус не изменён.");
} catch (Exception ex) { ex.printStackTrace(); Log.talk("Error save msg: " + ex.getMessage()); proc.mq.add(uin,"Ошибка изменения инфы "+ ex.getMessage()); }
В этом случае при установке пустого статуса текстовый файл со статусом удаляется (чтобы при пустом статусе не оставалась скобка ( )
Подробнее: я набрал !чтение news31.08.09 имне приходит содержимое файла news31.08.09.txt тоесть содержимое данного файла! 1) создайте необходимые файлы в папке text 2) залейте скрипт и пользуйтесь!
try{ Vector v = cmd.getParser().parseArgs(msg); String ff = (String)v.get(0); if(ff.equals("")||ff.equals(" "))return; File mes = new File ("./text/"+ff+".txt"); if (mes.exists()){ String s = cmd.psp.loadText("./text/"+ff+".txt"); String[] ss = s.split(" "); for(int i=0; i proc.mq.add(uin, ss[i]); }
try{ Vector v = cmd.getParser().parseArgs(msg); int s = (Integer)v.get(0); // набранное число int num = (int) ((Math.random()*50)); // случаиное число от 0 до 50 Users uss = srv.us.getUser(uin); if(uss.room!=3) { proc.mq.add(uin,"Играть можно только в 3 комнате"); return; } int moder_id = uss.id; // ид модера String r ="Модер!"; // ему повезло
if(s>50){ proc.mq.add(uin,"Число должно быть от 0 до 50"); return; }
proc.mq.add(uin,"Выпало число: (" + num + ") , ты набрал: (" + s + ") "); if(s==num) { srv.cq.addMsg("Мы вас поздровляем! " + uss.localnick + " получил смаил в ник!", "", uss.room); proc.mq.add(uin,"Числа совпали! Поздравляю у тебя смаил в нике!"); // меняем ник String s = ChatProps.loadText("./scripts/text/smail.txt"); String[] ss = s.split(""); int R = (int) ((Math.random()*ss.length)); String nick = uss.localnick +ss[R]; String oldNick = uss.localnick; uss.localnick=nick; srv.us.updateUser(uss); srv.us.db.event(uss.id, uin , "REG", 0, "", nick); } else { proc.mq.add(uin,"Извините, вы не угадали!*DONT_KNOW*"); }
/** * Проверка на наличие приветствия */ public boolean testHi(String s){ String t = "прив;прев;прет;рет;здоров;здрас;привет;хелл;добр;даро"; return adm.test(s,t.split(";")); }
/** * Приветствие */ public String getHi(String name){ String[] s = {"Привет","Хай","Приветствую","Здравствуй","Здоров","Ааа... Это снова ты, привет, очаровашка"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие прощания */ public boolean testBYE(String s){ String t = "пока;покеда;счастливо;удачи;до свидания;гуд бай"; return adm.test(s,t.split(";")); }
/** * Прощание */ public String getBYE(String name){ String[] s = {"Вали уже нах отсюда *BYE*!!!","приходи ещё в чат*BYE*","вали уже:-D"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие Сколько лет? */ public boolean testlet(String s){ String t = "лет;годик;годов"; return adm.test(s,t.split(";")); }
/** * Сколько лет? */ public String getlet(String name){ String[] s = {"Сто писят тысяч лет, триста писят шесть дней и 3 чиса!","Тебе лучше этого не знать, люди столько не живут сколько мне лет)"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие Чурка или нет? */ public boolean testhach(String s){ String t = "салам;салям;алейк;дарагой;чурк;алах;акбар;джам;равш;чебурек;чучм;ашельбе"; return adm.test(s,t.split(";")); }
/** * Чурка или нет? */ public String gethach(String name){ String[] s = {"Слющай дарагой! Ти че чурка?"," Не люблю расизм, но ты сука меня бесиш! Завали свое ебало ","Едь в Таджикистан или Дагистан и там пизди на своем арабском! ","Сука, разговаривай на том языке на котором разговаривают в России!","Ашельбе-машельбе я галасаваль,а потом ещё галасаваль,звёздочка выбирал...а она не ругалася на меня насяльника...голосовать давала,насяльника!"," Ашельбе машельбе шайтанама!!! Пизделинама по Рюсски Сукама! "," Пизди по русски в моем чате Гандон!"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "uin" */ public boolean testUin(String s){ String t = "uin;юин;уин;асю;аську;icq"; return adm.test(s,t.split(";")); }
/** * Ответ на "uin" */ public String getUin(String name){ String[] s = {"Увижу uin в общем чате пизды получиш!","Никаких номеров в чате, а то кикать начну","Читай правила бля, никаких асек в чате!"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "что делаешь?" */ public boolean testChe(String s){ String t = "чё делаешь;что делаешь;че делаешь;чем маешься;чем занимаешься;че творишь;что творишь;чем занята"; return adm.test(s,t.split(";")); }
/** * Ответ на "что делаешь?" */ public String getChe(String name){ String[] s = {"Да вот в чате подрабатываю , кикаю всяких уродов...","Юзеров всяких кикаю!","Пока ничем не занят, у тебя есть предложения?)","Хотела покушать сходить, да отвлекают всякие гандоны...","Админу помогаю наводить чистоту и порядок","Тебя ебет вообще что я делаю и чем занята???"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "список команд" */ public boolean testSKK(String s){ String t = "команды;ком;помощь;пользоваться;список"; return adm.test(s,t.split(";")); }
/** * Ответ на "команды?" */ public String getSKK(String name){ String[] s = {":-)список команд чата !справка,список услуг !реклама"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "как дела?" */ public boolean testKak(String s){ String t = "как дела;как она;как оно;как жизнь;как жизнь молодая;как поживаешь;как житуха;как ты"; return adm.test(s,t.split(";")); }
/** * Ответ на "как дела?" */ public String getKak(String name){ String[] s = {"Пока не родила!","Бля все у меня заебись!!","Охуенно до невьебенной степени охуения у меня все!","Лучше чем ты можеш представить, а у тебя?","Лучше всех, а ти???"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "почему?" */ public boolean testPoc(String s){ String t = "почему;зачем;нах;нафиг"; return adm.test(s,t.split(";")); }
/** * Ответ на "почему?" */ public String getPoc(String name){ String[] s = {"Меньше знаеш - крепче спишь.","Тебе лучше этого не знать!","Всё тебе расскажи, да покажи, да дай попробовать!"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "xxx?" */ public boolean testxxx(String s){ String t = "хочу тебя;трахну;секс;оргазм;минет;куник;кунулингус;отсоси"; return adm.test(s,t.split(";")); }
/** * Ответ на "xxx?" */ public String getxxx(String name){ String[] s = {"Вот с собой это и сделай!","А я не хочу...","Тебе никто не даст","Иди катай свою руку на своем гноме"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие вопросов */ public boolean testQue(String s){ String t = "когда;зачем;где;куда;кого;кому;кто;чем"; return adm.test(s,t.split(";")); }
/** * Ответ на вопросы */ public String getQue(String name){ String[] s = {"Цена одного вопроса 300р... ответа 3000р. с тебя 9300р :)","Введи !справка или !правила","Много будешь знать, плохо будешь спать","Я воздержусь от ответа"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Тупица (оскорбления) */ public boolean testSKD(String s){ String t = "туп;лох;чмо;пид;шалав;шлюх;проститут;сука;мраз;грубиян;твар;пиз;гавн;говн;олен;дура;засра;урод;черт;овца;шлюшка;овечка;свин;коза;каза"; return adm.test(s,t.split(";")); }
/** * Ответ на Тупицу */ public String getSKD(String name){ String[] s = {"Сам такой!","И ты не лучше","Ты че ахуел!","Заткнись сука!!! Сейчас полетишь!","Что больше сказать нечего?! Шлюшка","А за щеку возмёшь???"}; return s[adm.getRND(s.length)] + " " + name + " "; }
/** * Проверка на наличие "кто создал чат" */ public boolean testCH(String s){ String t = "кто главн;кто создал;кто сделал;кто хозяин;главн;создал;сделал;хозяин"; return adm.test(s,t.split(";")); }
/** * Ответ на "кто создал чат" */ public String getCH(String name){ String[] s = {"А вот это тебя уже ебать не должно!","Великий и всемогущий хозяин!","Создатель миров и вселенных...","Какойто придурок которому было нех делать;)"}; return s[adm.getRND(s.length)] + " " + name + " "; }
/** * вопрос имя */ public boolean testIMY(String s){ String t = "как зовут;твое имя;как звать;зовут;имя;звать"; return adm.test(s,t.split(";")); }
/** * ответ имя */ public String getIMY(String name){ String[] s = {"Меня зовут - Ибн Хатаб КаланКала четвертый четвертый.","Меня зовут так же как написано в нике.. родители такое имя дали, сволочи("}; return s[adm.getRND(s.length)] + " ." + name ; }
/** * приятно познакомится */ public boolean testPR(String s){ String t = "приятно;познаком;знаком;очень"; return adm.test(s,t.split(";")); }
/** * ответ на приятно познакомится */ public String getPR(String name){ String[] s = {"я тоже рада с вами познакомиться8-)"}; return s[adm.getRND(s.length)] + " ." + name ; }
/** * Проверка время */ public boolean testVremya(String s){ String t = "время;сколько;времени;число;сегодня"; return adm.test(s,t.split(";")); }
/** * Ответ время */
Date date = new Date(System.currentTimeMillis()); String customerDate = date.getDate() + "-" + (1 + date.getMonth()) + "-" + (1900 + date.getYear()) + " время вот скока: " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
public String getVremya(String name){ String[] s = {", число седня: " + customerDate }; return "" + name + "" + s[adm.getRND(s.length)]; }
/** * Фразы при упоминении админа */ public String getAdmin(String nick){ String[] s = { //здесь добавляются фразы "Товарищи! Чем толще наши попы, тем теснее наши ряды!", "...Продолжайте, продолжайте, я всегда зеваю, когда мне интересно...", "Что такое верх оптимизма? Это когда тринадцатилетняя беременная школьница на шестом месяце втирает себе в живот крем для похудения.", //nick- имя пользователя, обращающегося к боту. После открывающей кавычки обязательно делаем пробел, //что бы фразы не сливались с ником nick+", Попробуйте вспомнить название хотя бы одного лекарства от склероза. То-то и оно...", nick+", Рыба ищет где глубже, а человек - приключений на жопу...", nick+", Мой интелект намного выше твоего, так что иди, и найди другово собеседника", nick+", Добро обязательно победит зло. Поставит на колени. И зверски убьет.", nick+", лень - это главное качество человека. я в этом твердо убеждена и готова убедить в этом каждого", nick+", быть женщиной удобно только в том смысле, что всегда можно притвориться глупее, чем ты есть, и никто этому не удивится. Фрея Старк (1893-1993)", nick+", лень приводит нас к оптимизации затрат. таким образом мы стремимся все сделать быстрее, ускоряем свою жизнь. но и этим нельзя злоупотреблять", nick+", Не спорь с мужчинами - все равно они никогда не бывают правы", nick+", Я настроена убивать и банить!!", nick+", Кстати, о музыке. Пианино - ужасно скользкий инструмент.", nick+", Дружбу сексом не испортишь!", nick+", Дєті, давайтє хором плюнєм в етого філіна!", nick+", А ничего, что вы разговариваете, когда я перебиваю??", nick+", Страшно грустна моя жизнь. А вы хотите, чтобы я воткнула в жопу куст сирени и делала перед вами стриптиз.", nick+", Умереть за любовь - не сложно. Сложно найти такую любовь, за которую стоит умереть.", nick+", Господи, пожалуйста, сделай так, чтоб все калории уходили в сиськи!!!", nick+", Раньше люди при встрече снимали шляпу. Теперь люди при встрече вытаскивают из ушей наушники.", nick+", - Знаешь, нервные клетки не восстанавливаются?", nick+", Джентельмен всегда проводит даму, если боится идти один.", nick+", Улыбайтесь, шеф любит идиотов.", nick+", В мире нет Вечных Двигателей, зато полно. Вечных Тормозов", nick+", Я не грустная, я трезвая", nick+", Кто такой Спать? И почему я его постоянно хочу?!", nick+", Скажи мне, о чём ты думаешь, и я скажу, чем.", nick+", Когда вампир кусает человека,он непременно становиться вампиром.... Так вот, такое ощущение, что людей покусали дебилы...", nick+", Самое обидное попадание в ад – это споткнуться на пороге рая и по привычке сказать бл*!", nick+", Если ты споришь с идиотом, вероятно тоже самое делает и он.", nick+", Американские университеты - это место, где российские евреи преподают математику китайцам.", nick+", Жизнь уходит так быстро, как будто ей с нами совсем неинтересно...", nick+", Рассол - напиток завтрашнего дня.", nick+", Самая тяжелая жизнь - у моли. А вы попробуйте зимой в футболках, летом в шубах.", nick+", Не знаю как там за границами, а у нас человек, пришедший к нам в гости с литром водки, считается ближайшим родственником.", nick+", Запомни на всю жизнь, сынок, женщина беспомощной бывает только тогда, пока у неё не высохли накрашенные ногти!", nick+", Бить лежащего человека - нечестно и некрасиво, но очень ЭФФЕКТИВНО и БЕЗОПАСНО.", nick+", Оказывается, пламя в зажигалке пахнет сгоревшими волосками из носа.", nick+", Хочешь почувствовать себя звездой - сядь на ёлку!", nick+", Если вы думаете, что никотин не влияет на голос женщины, попробуйте стряхнуть пепел на ковер.", nick+", Когда женщина говорит, что ей нечего надеть - это значит, что закончилось все новое. Когда мужчина говорит, что ему нечего надеть - это значит, что закончилось все чистое.", nick+", Частенько глядя утром на женщину, с ужасом понимаешь, что в том, что ты ее вчера соблазнил, была не твоя, а ее заслуга.", nick+", Как ни крутись - а задница сзади.", nick+", Телефон у меня простой - 32-08. Запоминается легко: тридцать два зуба и восемь пальцев", nick+", Стыдно за вчерашнее, но не помню перед кем...", nick+", ...Продолжайте, продолжайте, я всегда зеваю, когда мне интересно...", nick+", А кто будет портить наш великий русский язык, тот получит в рыло без базаров бнах", nick+", Синусоидальность дидыкционнoго индуктора некоэмытипыется с хромофорной эфызией аксипогентно-адиквантного фотонного триангулятора...", nick+", Я не пойму: или мне с вами скучно, или мне с вами спать хочется...", nick+", Да мне похрену. Хоть Билл Гейтс. Ложи бабки на тумбочку и снимай штаны. А нет – так иди нахуй.:-D", nick+", По-хорошему говорю... Найди другого собеседника", nick+", Как много девушек хороших, но тянет что-то на плохих...", nick+", Разрешите напомнить? Смех без причины - признак того, что вы или идиот, или хорошенькая девушка?", nick+", Надоело заниматься любовью... Хочется обычного, грязного секса...", nick+", Мир прекрасен. Жизнь ужасна", nick+", Меня выгнали из дома. За непосещаемость", nick+", Хорошо с вами, надежно, а у вас еще много денег осталось?", nick+", Знаете! Если вы бисексуальны, то, оказывается, ваши шансы в субботний вечер резко увеличиваются!", nick+", Неправда, что тюрьма делает мужчин грубыми и жестокими: вот мой брат после зоны даже ресницы подкрашивать начал..", nick+", сегодня ты показал из окна свою жопу, за это надо ответить )))", nick+", Да, да.....мне очень страшно, не надо со мной таким тоном разговаривать!", nick+", Я знаю все, я знаю что ты делаешь, что ты ешь и пьешь, я слежу за тобой, я....", nick+", Отдам щенка в добрые, заботливые, нежные руки... или утоплю нах...", nick+", Мне обеспечили такой Мозг, который ты и сейчас не имеешь!", nick+", Называйте меня просто: легенда интернета. И, если не затруднит, встаньте на колени", nick+", Мой создатель очень хороший человек, он умный и придумал меня, теперь я ему помогаю", nick+", Ты очень симпатичная баба, но у меня уже есть своя", nick+", Сниму девушку...нет, лучше юношу...Но, в любом случае, порядок в районе гарантирую...", nick+", Хорошие девочки лишаются девственности в первую брачную ночь, плохие – при первом удобном случае, умные – два-три раза", nick+", аходите, заходите... Вы не в церкви, Вас тут не обманут...", nick+", Глубже не могу, могу чаще.", nick+", Ох уж эти одинокие оргазмы отвергнутой юности!...", nick+", Ты как со старшими разговариваешь? родители не научили тебя уму-разуму?", }; return s[adm.getRND(s.length)]; }
if (adm.mq.isEmpty()) return; MsgElement ms = adm.mq.poll(); if(adm.srv.getProps().getBooleanProperty("adm.useMatFilter") && adm.testMat1(adm.changeChar(ms.msg)) && ms.room != 6 && ms.room != 13){ adm.say(adm.srv.us.getUser(ms.uin).localnick + " Я за мат в тюряге запираю>:o! ", ms.room); int i=0; if(!adm.uins.containsKey(ms.uin)){ adm.uins.put(ms.uin,i); } else { i=adm.uins.get(ms.uin); i++; adm.uins.put(ms.uin,i); } if(i>=1) { adm.say(adm.srv.us.getUser(ms.uin).localnick + " Закрыт в комнате <<" + adm.srv.us.getRoom(13).getName() + ">> за мат", ms.room); adm.srv.us.getUser(ms.uin).room=13; adm.srv.us.updateUser(adm.srv.us.getUser(ms.uin)); adm.srv.cq.changeUserRoom(adm.srv.us.getUser(ms.uin).sn, 13); // Оповещаем целевую комнату adm.say("У вас пополнение, неудачник: " + adm.srv.us.getUser(ms.uin).localnick, 13); // Оповещаем юзера adm.srv.getIcqProcess(adm.srv.us.getUser(ms.uin).basesn).mq.add(adm.srv.us.getUser(ms.uin).sn,"Поздравляю:)!!! Ты в обезьянике]:->,читай !правила."); // Лишаем юзера прав на комнаты adm.srv.us.revokeUser(adm.srv.us.getUser(ms.uin).id, "room"); adm.srv.us.revokeUser(adm.srv.us.getUser(ms.uin).id, "комната");
} return;
} String time = ""; BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream("./ads/time.txt"),"windows-1251")); time += r.readLine(); r.close(); if(System.currentTimeMillis()-(Long.parseLong(time))>5*30000){ // единица - это интервал подачи инфы String adv = ""; BufferedReader buf = new BufferedReader(new InputStreamReader(new FileInputStream("./ads/ads.txt"),"windows-1251")); while (buf.ready()) { adv += buf.readLine() + "\n"; } buf.close(); String[] text = adv.split(";"); String adtext = text[adm.getRND(text.length)]; adm.say(adtext, 0); // 0 - комната куда пойдёт инфа adm.say(adtext, 1); adm.say(adtext, 2); adm.say(adtext, 3); adm.say(adtext, 4); adm.say(adtext, 5); adm.say(adtext, 6); adm.say(adtext, 7); adm.say(adtext, 8); adm.say(adtext, 13); adm.say(adtext, 666); adm.say(adtext, 777); adm.say(adtext, 999); File p = new File("./ads/time.txt"); p.delete(); long time = System.currentTimeMillis(); String ttt = Long.toString(time); OutputStreamWriter file = new OutputStreamWriter(new FileOutputStream("./ads/time.txt",true),"windows-1251"); file.write(ttt); file.close(); }
/** * Скрипт для расширения команд чата * !вкомнате */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!вкомнате", new Cmd("!вкомнате","$n",39,name)); 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("!enter", new Cmd("!enter","",39,name)); cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
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,"",MESSAGE3 + uss.id +MESSAGE4 + uss.localnick + MESSAGE2); cmd.srv.cq.addUser(uin,proc.baseUin, uss.room); if(f){ File acu = new File ("./AutoUin.txt"); 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); }
/** * Скрипт для расширения команд чата * Замена перехода в комнаты */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!room", new Cmd("!room","$n $c",39,name)); cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
try{ String MESSAGE1 = " ушел(а) в комнату "; String MESSAGE2 = " вошел(а) в комнату "; Vector v = cmd.getParser().parseArgs(msg); int i = (Integer)v.get(0); String pass = (String)v.get(1); Users uss = cmd.srv.us.getUser(uin); if(uss.room==i){ proc.mq.add(uin,"Ты уже сидишь в этой комнате!"); } else if (!cmd.srv.us.getRoom(i).checkPass(pass) && !cmd.psp.testAdmin(uin)) { proc.mq.add(uin,"Не верный пароль!"); return; } if(cmd.qauth(proc,uin, "anyroom") || cmd.srv.us.checkRoom(i)){ } if (!cmd.srv.us.getRoom(i).checkPass(pass) && !cmd.psp.testAdmin(uin)) { proc.mq.add(uin,"Не верный пароль!"); return; } if (!cmd.srv.us.authorityCheck(uss.id,"invisible")) { cmd.srv.cq.addMsg(uss.localnick + MESSAGE2, uin, i); cmd.srv.cq.addMsg(uss.localnick + MESSAGE1 + i, uin, uss.room); } uss.room=i; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUserRoom(uin, i); proc.mq.add(uin,"Ты перешел в комнату " + i + " - " + cmd.srv.us.getRoom(i).getName() + (cmd.srv.us.getRoom(i).getTopic().equals("") ? "" : ("\nТема: " + cmd.srv.us.getRoom(i).getTopic()))); } else { proc.mq.add(uin,"Такой комнаты не существует!"); } }catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
Магазин
/** * Скрипт для расширения команд чата */
/** * При вызове скрипта определены следующие переменные: * 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()); }
try{ //Парсим строчку аргумента Vector v = cmd.getParser().parseArgs(msg); //Набранный пользователь int i = (Integer)v.get(0); //Набранное число int g = (Integer)v.get(1); //Пользователь Users u = cmd.srv.us.getUser(i); //Пользователь который набрал команду Users us = cmd.srv.us.getUser(uin); if(us.id==0){ proc.mq.add(uin,us.localnick+" Такой пользователь ещё не зарегистрировался в чате"); return; } if(us.id==i){ proc.mq.add(uin,us.localnick+" Повышать рейтинг саму себе нельзя"); return; }
//Плюсуем int reiting = u.gender+g; u.gender=reiting; cmd.srv.us.updateUser(u); //Оповещаем об успешном выполнении команды proc.mq.add(uin,"Рейтинг пользователь |"+u.id +"|"+u.localnick+" повышен на: " +g); //Оповещаем пользователя proc.mq.add(u.sn,u.localnick+" Пользователь |"+us.id +"|"+us.localnick+" повысил тебе рейтинг на " + g +", он состоаляет " +gender+ " балов");
if(in.equals("install")){ cmd.addCommand("+a", new Cmd("+a","",39,name)); cmd.addCommand("!а", new Cmd("+a","",39,name)); cmd.addCommand("+ф", new Cmd("+ф","",39,name)); cmd.addCommand("+f", new Cmd("+f","",39,name)); cmd.addCommand("+а", new Cmd("+а","",39,name)); cmd.addCommand("+тут", new Cmd("+а","",39,name)); cmd.addAuth("A","Всего"); out="Ok"; return; }
/** * При вызове скрипта определены следующие переменные: * 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()); }
блокировка рекламы в лс. доставляет информацию админу (на уин который впишите) и предлагает наказание для предателя
try{ Vector v = cmd.getParser().parseArgs(msg); int no = (Integer)v.get(0); String txt = (String)v.get(1); if(txt.equals("")) { proc.mq.add(uin,"Сообщение отсутствует"); return; } Users uss = cmd.srv.us.getUser(no); if(uss == null){ proc.mq.add(uin,"Такого Чувака не существует или он сдох"); return; } if(!cmd.srv.cq.testUser(uss.sn)){ proc.mq.add(uin,"Чувак не в сети"); return; }
try{ Vector v = cmd.getParser().parseArgs(msg); int s = (Integer)v.get(0); // набранное число int num = (int) ((Math.random()*15)); // случаиное число от 0 до 15 Users uss = cmd.srv.us.getUser(uin); if(uss.room!=998) { proc.mq.add(uin,"Играть можно только в 998 комнате:)"); return; }
if(s>15 ) { proc.mq.add(uin,"Число должно быть от 0 до 15:)"); return; }
//Проверка на время Object times = Manager.getInstance().getData("times"); if (times == null || times< System.currentTimeMillis() ) { Manager.getInstance().setData("times", System.currentTimeMillis() + 15*60000); // оповещаем....даем Уин if(s==num) { //Считываем уин String s2 = cmd.psp.loadText("./text/uslugi.txt"); //Разбиваем текст на куски, в качестве разделителя будем использовать String[] ss = s2.split(""); int R = (int) ((Math.random()*ss.length)); proc.mq.add(uin,"Фортуна: я загадала число: (" + num + ") , а у тебя выпало: (" + s + ") , числа совпали, поздравляю*DRINK*.\nДержи уин: " + ss[R]); String sn = ss[R]; 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("./text/nouin.txt",true),"windows-1251"); String s = "|" + D +" "+ T + "| Пользователь " + uss.localnick + " забрал уин: " + sn + "\n\n"; ow.write(s); ow.close(); String im = "******"; //кому присылать уведомление cmd.srv.getIcqProcess(cmd.srv.us.getUser(im).bases n).mq.add(im,uss.localnick + " забрал уин: " + sn); return; } if(s!=num) { proc.mq.add(uin,"Фортуна: извините, вам не повезло уинчик ты не получишь!*fuck*"); return; } } proc.mq.add(uin,"Фортуна: Испытать удачу можно раз в 15 минут.:)");
//объявление переменных и массивов int a=0; //номер на который слать сообщения String uin1 = "********"; Users uss = srv.us.getUser(uin); //Разделители преобразует цифру к примеру д.в.а к слову два(если нужно то можете добавить сюда ещё символов) String[] antirazd= {".",";",":","*","(",")","!","@","#","%"," ","'"};
//набор слов который искать нужно(если нужно то можете добавить сюда ещё слов) String[] antiuin = {"один","два","три","четыре","пять","шесть","семь","девять","9","1","2","3","4","5","6","7","8","one","чат", "заходите", "заходи", "пишите", "дайуин", "дайсвойуин", "odin", "dva","tri", "chetire", "pyat", "shest" ,"sem" , "vosem","devyat","nol","уин"};
//Перевод всего сообщения в нижний регистр String anticaps = msg.toLowerCase();
//удаления сообщения автоответчика if(msg.indexOf("Автоматическое сообщение")>=0){ msg=""; return; }
//удаления всех разделителей в сообщений for(int i=0;i anticaps = anticaps.replace(antirazd[i],""); }
//Замена всех запрещенных слов на цифру 0 for(int i=0;i anticaps = anticaps.replace(antiuin[i],"0"); }
//Проверка сколько цифр в сообщение если их больше 5 то сообщение стерается char[] c = anticaps.toCharArray(); for (int i = 0; i < c.length; i++){ if(c[i]==48)a++;//=="0"
if(a>5){ Log.talk("фильтр рекламы: " + msg); srv.getIcqProcess(srv.us.getUser(uin1).basesn).mq.add(uin1, "фильтр рекламы:\n sn:"+uin +"\n Ник: "+uss.localnick+"("+uss.id+")\n Cообщение:\n" + msg + "\n Действие на ваш выбор:\n1) !кик "+uss.id+" 299 реклама\n2) !бан "+uss.id+" реклама"); msg = "Сообщение удаленно в связи с рекламой uin"; return; } }
Пример работы: masterzx: 123456 тест чат: фильтр рекламы: sn:123456789 Ник: Master(1) Cообщение: 123456 Действие на ваш выбор: 1) !кик 1 299 реклама 2) !бан 1 реклама
Замена перехода по комнатам! показывает: ушел(а) из комнаты в комнату
/** * Скрипт для расширения команд чата * Замена перехода в комнаты */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!room", new Cmd("!room","$n $c",39,name)); cmd.addCommand("!комната", new Cmd("!комната","$n $c",39,name)); cmd.addCommand("!ком", new Cmd("!ком","$n $c",39,name)); cmd.addAuth("room","Переход по комнатам"); out="Ok"; return; }
if ((i==10) && (!cmd.qauth(proc, uin, "kickone"))) // у кого есть полномочие kickone игнорируем { proc.mq.add(uin,"Комната <<" + cmd.srv.us.getRoom(i).getName() + ">> закрыта для посещений!"); return; }
uss.room=i; cmd.srv.us.updateUser(uss); cmd.srv.cq.changeUserRoom(uin, i); 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());
if(in.equals("install")){ cmd.addCommand("!комнаты", new Cmd("!комнаты","",39,name)); cmd.addCommand("!ск", new Cmd("!ск","",39,name)); cmd.addCommand("!rooms", new Cmd("!rooms","",39,name)); cmd.addCommand("!rl", new Cmd("!rl","",39,name)); cmd.addCommand("!lroom", new Cmd("!lroom","",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++; Enumeration e = cmd.srv.cq.uq.keys(); int gfc=0; while(e.hasMoreElements()){ String i = e.nextElement(); Users us = cmd.srv.us.getUser(i); if(us.state==UserWork.STATE_CHAT){ gfc++;
} } s += i + " - " + cmd.srv.us.getRoom(i).getName() + " ["+cnt+"]\n"; s += "\nВсего пользователей в чате: "+gfc; } proc.mq.add(uin,s); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!купить", new Cmd("!купить","$n $s",39,name)); cmd.addAuth("game","возможность играть"); out="Ok"; return; }
try{ Vector v = cmd.getParser().parseArgs(msg); Users uss = cmd.srv.us.getUser(uin); int room = (Integer)v.get(0); String s = (String)v.get(1); String w = "[Room for "; String h = "]"; if(uss.room!=6) { proc.mq.add(uin,"Риэлтор: Покупать только в |6| - " + cmd.srv.us.getRoom(0).getName() + ""); return; } if(uss.gender < 30000) { proc.mq.add(uin,"Риэлтор: Ваш баланс: " + uss.gender + ", у вас недостаточно средств для покупки."); return; } if(cmd.srv.us.checkRoom(room)){ proc.mq.add(uin,"Риэлтор: Такая комната уже продана!"); return; } Rooms r = new Rooms(); r.setId(room); r.setName(s+w+uss.localnick+h); cmd.srv.us.createRoom®;
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!аддстена", new Cmd("!аддстена","$s",39,name)); cmd.addAuth("Wall","Стена :)"); out="Ok"; return; }
try { //парсим Vector v = cmd.getParser().parseArgs(msg); String text = (String)v.get(0);// Сообщение int MaxTxt = 100;// длина сообщения long time = System.currentTimeMillis(); Users u = cmd.srv.us.getUser(uin);// Пользователь long z = cmd.srv.us.db.getLastIndex("wall"); int id = (int) z; String q = "SELECT count(*) FROM `wall` WHERE user_id="+u.id+" and (to_days( now( ) ) - to_days( time )) <1"; Vector v0 = cmd.srv.us.db.getValues(q); // Ограничение на количество записей на стену. (на системных админов недействует) if((Integer.parseInt(v0.get(0)[0])) > 4 && !cmd.psp.testAdmin(uin)) { proc.mq.add(uin,u.localnick + " нельзя в день делать больше пяти записей на стену"); return; } // Если пустое сообщение if(text.equals("") || text.equals(" ")) { proc.mq.add(uin,u.localnick + " ну и что ж мы пишем пустое сообщение"); return; } // Если в сообщении мат if (cmd.radm.testMat1(cmd.radm.changeChar(text))) { proc.mq.add(uin,u.localnick + " в сообщении ''МАТ''"); return; } // Обрежим сообщение если оно большое if(text.length() > MaxTxt) { text = text.substring(0,MaxTxt); proc.mq.add(uin,"Предупреждение! Ваш сообщение слишком длинное и будет обрезано."); } // Сотрем все цифры for(int i = 0; i < 10; i++){text = text.replace(Integer.toString(i),"");} // Опустим регистр text = text.toLowerCase(); //задаем sql запрос PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("insert into wall values (?, ?, ?, ?)"); pst.setInt(1, id); pst.setInt(2, u.id); pst.setString(3, text); pst.setTimestamp(4,new Timestamp(time)); pst.execute(); pst.close(); //Оповещаем proc.mq.add(uin,u.localnick + " ваше сообщение опубликовано на стену :)"); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"При создании сообщения возникла ошибка: "+ex.getMessage()); }
2) Скрипт для вывода сообщений со стены:
/* * Скрипт для вывода сообщений со стены: * (с)fraer72 */
//Установка скрипта как обработчика команды if(in.equals("install")) { cmd.addCommand("!делстена", new Cmd("!делстена","",39,name)); cmd.addAuth("Wall","Стена :)"); out="Ok"; return; }
Скрипты повышения/понижения репутации юзеров. Теперь есть возможность просматривать кто, когда и за что изменил репутацию пользователю. Может кому пригодится.
try{ Vector v = cmd.getParser().parseArgs(msg); int s = (Integer)v.get(0); // набранный ид String r = (String)v.get(1); // причина Users us = cmd.srv.us.getUser(s); Users uss = cmd.srv.us.getUser(uin); if(us.id==0) { proc.mq.add(uin,"Ошибка! Такой пользователь ещё не зарегистрировался в чате!"); return; } // проверка на себя if(uss.id==s){ proc.mq.add(uin,us.localnick+",\nВнимание! Нельзя повысить репутацию самому себе!"); return; } // проверим причину повышения if(r==""){ proc.mq.add(uin,"Необходимо добавить причину повышения репутации."); return; } proc.mq.add(uin,"Вы увеличили репутацию на [1] пользователю [" + us.id + "]" + us.localnick + " за [" + r + "]."); int uroven = us.country+1; us. country = uroven;
File Persona = new File ("./Reit/"+us.id+".txt"); //if (Persona.exists()) Persona.open(); 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("./Reit/"+us.id+".txt",true),"windows-1251"); ow.write("[" + D +" "+ T + "] " + "Повысил: "+ uss.localnick + ". Причина: " + r + "\n"); ow.close(); cmd.srv.us.updateUser(us); cmd.srv.getIcqProcess(us.basesn).mq.add(us.sn,"Ваша репутация теперь: [" + uroven + "]\n Вам увеличил репутацию [" + uss.id + "]" + uss.localnick + " за [" + r + "].");
try{ Vector v = cmd.getParser().parseArgs(msg); int s = (Integer)v.get(0); String r = (String)v.get(1); // причина Users us = cmd.srv.us.getUser(s); Users uss = cmd.srv.us.getUser(uin); if(us.id==0) { proc.mq.add(uin,"Такой пользователь ещё не зарегистрировался в чате"); return; } // проверка на себя if(uss.id==s){ proc.mq.add(uin,us.localnick+",\nВнимание! Нельзя понизить репутацию самому себе!"); return; } // проверим причину понижения if(r==""){ proc.mq.add(uin,"Необходимо добавить причину понижения репутации."); return; } proc.mq.add(uin,"Вы уменьшили репутацию на [1] пользователю [" + us.id + "]" + us.localnick + " за [" + r + "]."); int uroven = us.country-1; us.country=uroven;
File Persona = new File ("./Reit/"+us.id+".txt"); //if (Persona.exists()) Persona.delete(); 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("./Reit/"+us.id+".txt",true),"windows-1251"); ow.write("[" + D +" "+ T + "] " + "Понизил: "+ uss.localnick +". Причина: " + r + "\n\n"); ow.close(); cmd.srv.us.updateUser(us); cmd.srv.getIcqProcess(us.basesn).mq.add(us.sn,"Ваша репутация теперь: [" + uroven + "]\n Вам уменьшил репутацию [" + uss.id + "]" + uss.localnick + " за [" + r + "].");
try{ Vector v = cmd.getParser().parseArgs(msg); String ff = (String)v.get(0); if(ff.equals("")||ff.equals(" "))return; File mes = new File ("./Reit/"+ff+".txt"); if (mes.exists()){ String s = cmd.psp.loadText("./Reit/"+ff+".txt"); String[] ss = s.split(" "); for(int i=0; i proc.mq.add(uin, ss[i]); }
} else proc.mq.add(uin,"Репутация пользователя ещё не была изменена."); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка: "+ex.getMessage()); }
/** * Скрипт для расширения команд чата */ import ru.jimbot.modules.AbstractServer; import ru.jimbot.util.*; import ru.jimbot.modules.chat.*; import ru.jimbot.modules.*;
//Установка скрипта как обработчика команды if(in.equals("install")) { cmd.addCommand("!группа", new Cmd("!группа","$n $c",39,name)); cmd.addCommand("!setgroup", new Cmd("!setgroup","$n $c",39,name)); out="Ok"; return; }
try{ //Парсим строку аргументов Vector v = cmd.getParser().parseArgs(msg); int i1 = (Integer)v.get(0); String s1 = (String)v.get(1);
// Находим юзера Users u = cmd.srv.us.getUser(i1);
if(u.id==0) { proc.mq.add(uin,"Пользователь не найден"); return; } if(!cmd.testUserGroup(s1)) { proc.mq.add(uin,"Нет такой группы пользователей"); return; } if (cmd.psp.testAdmin(cmd.srv.us.getUser(i1).sn) && !cmd.psp.testAdmin(uin)) { proc.mq.add(uin,"Ты не можеш изменить группу главному Админу!"); return; }
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!translate", new Cmd("!translate","$c",39,name)); cmd.addCommand("!перевод", new Cmd("!перевод","$c",39,name)); out="Ok"; return; }
try{ //парсим Vector v = cmd.getParser().parseArgs(msg); String text = (String)v.get(0); //проверка if (text==""){proc.mq.add(uin,"Не ввели слово для перевода !первод <слово для перевода>");return; } text = text.replace(" ","%20"); //Запрашиваем перевод слова на сервере String s = MainProps.getStringFromHTTP("http://www.google.com/translate_a/t?client=t&text="+text+"&sl=en&tl=ru"); //перевод в другую кодировку char[] c = s.toCharArray(); s=""; for(int i = 0; i < c.length; i++){ switch (c[i]){ //строчные буквы case 0x3F3: s += "ё"; break; case 0x403: s += "Ё"; break; case 0x410: s += "ю"; break; case 0x411: s += "а"; break; case 0x412: s += "б"; break; case 0x413: s += "ц"; break; case 0x414: s += "д"; break; case 0x415: s += "е"; break; case 0x416: s += "ф"; break; case 0x417: s += "г"; break; case 0x418: s += "х"; break; case 0x419: s += "и"; break; case 0x41A: s += "й"; break; case 0x41B: s += "к"; break; case 0x41C: s += "л"; break; case 0x41D: s += "м"; break; case 0x41E: s += "н"; break; case 0x41F: s += "о"; break; case 0x420: s += "п"; break; case 0x421: s += "я"; break; case 0x422: s += "р"; break; case 0x423: s += "с"; break; case 0x424: s += "т"; break; case 0x425: s += "у"; break; case 0x426: s += "ж"; break; case 0x427: s += "в"; break; case 0x428: s += "ь"; break; case 0x429: s += "ы"; break; case 0x42A: s += "з"; break; case 0x42B: s += "ш"; break; case 0x42C: s += "э"; break; case 0x42D: s += "щ"; break; case 0x42E: s += "ч"; break; case 0x42F: s += "ъ"; break; //Заглавные буквы case 0x430: s += "Ю"; break; case 0x431: s += "А"; break; case 0x432: s += "Б"; break; case 0x433: s += "Ц"; break; case 0x434: s += "Д"; break; case 0x435: s += "Е"; break; case 0x436: s += "Ф"; break; case 0x437: s += "Г"; break; case 0x438: s += "Х"; break; case 0x439: s += "И"; break; case 0x43A: s += "Й"; break; case 0x43B: s += "К"; break; case 0x43C: s += "Л"; break; case 0x43D: s += "М"; break; case 0x43E: s += "Н"; break; case 0x43F: s += "О"; break; case 0x440: s += "П"; break; case 0x441: s += "Я"; break; case 0x442: s += "Р"; break; case 0x443: s += "С"; break; case 0x444: s += "Т"; break; case 0x445: s += "У"; break; case 0x446: s += "Ж"; break; case 0x447: s += "В"; break; case 0x448: s += "Ь"; break; case 0x449: s += "Ы"; break; case 0x44A: s += "З"; break; case 0x44B: s += "Ш"; break; case 0x44C: s += "Э"; break; case 0x44D: s += "Щ"; break; case 0x44E: s += "Ч"; break; case 0x44F: s += "Ъ"; break; //доп символы //case 0x: s += ""; break; //Вывод остальных символов default: if((c[i]>0xff)) s +="$" +(1+c[i]-1)+"; "; else s += c[i]; } } //Подкотовка сообщения к выводу s = s.replace("[разг.]","(разг.)"); s = s.replace("\"noun\",","\nСуществительное:\n"); s = s.replace("\"verb\",","\nГлагол:\n"); s = s.replace("\"adverb\",","\nНаречие:\n"); s = s.replace("\"adjective\",","\nПрилагательное:\n"); s = s.replace("\"conjunction\",","\nСоюз:\n"); s = s.replace("\"preposition\",","\nПредлог:\n"); s = s.replace("\"abbreviation\",","\nАббревиатура:\n"); s = s.replace("\"pronoun\"","\nМестоимение:\n"); //s = s.replace("\"adverb\"","\n:\n"); //s = s.replace("\"adverb\"","\n:\n"); //s = s.replace("\"adverb\"","\n:\n"); //s = s.replace("\"adverb\"","\n:\n"); //s = s.replace("\"adverb\"","\n:\n"); s = s.replace("],[",""); s = s.replace("\"\"",""); s = s.replace("[",""); s = s.replace("]",""); s = s.replace(",,",","); s = s.replace(",","; "); s ="Перевод слова "+text+":\n" + s;
//Резка и вывод сообщения c = s.toCharArray(); s = ""; for (int i = 0; i < c.length; i++){ if(i == 500 || i == 1000 || i == 1500 || i == 2000 || i == 2500 || i == 3000 || i == 3500 || i == 4000 || i == 4500 || i == 5000 || i == 5500 || i == 6000 ){ proc.mq.add(uin, s+c[i]); s = ""; }else s += c[i]; } proc.mq.add(uin, s); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,"Ошибка "+ex.getMessage()); }
сообщение в комнату
/** * Скрипт для отправки сообщения в данную комнату * !roommsg <комната> <сообщение> */
/** * При вызове скрипта определены следующие переменные: * ChatCommandProc cmd - ссылка на обработчик команд * IcqProtocol proc - ссылка на процесс обработки icq * String msg - текст сообщения с командой * String uin - кто отправил сообщение * String name - имя этого файла (при процедуре инсталяции скрипта) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!roommsg", new Cmd("!roommsg","$n $s",39,name)); cmd.addAuth("room_msg","Сообщение в комнату"); out="Ok"; return; }
try{ //Парсим строку аргументов Vector v = cmd.getParser().parseArgs(msg); //Согласно шаблону, первый аргумент должен быть числом, а второй - строкой int room = (Integer)v.get(0); String msg = (String)v.get(1); // Отправляем сообщение в комнату cmd.srv.cq.addMsg("Системное сообщение: "+msg, "", 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.addAuth("best","Вывод статистики лучших"); out="Ok"; return; }
private long getTimeStart(){ long t = 0; try{ File f = new File("./state"); t = f.lastModified(); } catch (Exception ex) { ex.printStackTrace(); } return t; }
/** * Проверка на наличие приветствия */ public boolean testHi(String s){ String t = "прив;прев;здоров;здрас;здрав;хай;хой;хелл;добр;даро;салам"; return adm.test(s,t.split(";")); }
/** * Приветствие */ public String getHi(String name){ String[] s = {"Привет","Хай","Приветствую","Здравствуйте","Здоров","Ну, здравствуй, сынок","*HI*","Доброе утро","С Новым Годом","Hello дурашка :-)","Респект","Салам тебе"}; return s[adm.getRND(s.length)] + " " + name + "!"; } /** * Проверка на наличие прощания */ public boolean testBYE(String s){ String t = "пока;покеда;счастливо;удачи;до свидания;гуд бай"; return adm.test(s,t.split(";")); }
/** * Прощание */ public String getBYE(String name){ String[] s = {"Я буду скучать без тебя :'-(","приходи ещё в чат*BYE*","вали уже:-D проказник","Пока :-*"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "uin" */ public boolean testUin(String s){ String t = "uin;юин;уин;асю;аську;icq"; return adm.test(s,t.split(";")); }
/** * Ответ на "uin" */ public String getUin(String name){ String[] s = {"Увижу UIN в общем чате полетишь нахер отсэдава! 8-)","Никаких номеров в чате, а то пинаться начну ;-)","Читай !правила лентяй"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "что делаешь?" */ public boolean testChe(String s){ String t = "чё делаешь;что делаешь;че делаешь;чем маешься;чем занимаешься;че творишь;что творишь;чем занята"; return adm.test(s,t.split(";")); }
/** * Ответ на "что делаешь?" */ public String getChe(String name){ String[] s = {"Да вот в чате работаю...","Юзеров всяких кикаю!","Пока никем не занята:-[","Хотела покушать сходить...:-)","Админу помогаю","Ничего. А что?","Да, так. Ничего.","Как это что?","корову дою","А ты тупой не видишь?! Работаю!","За вами смотрю","Слежу, чтобы вы не ругались!","Работаю... Устала блин, но ничего не поделать","А тебе не пох?!!","Дрочу, не видишь чтоли!!??:-["}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Запрос анекдота */ public boolean testAnek(String s){ String t = "анекдот"; return adm.test(s,t.split(";")); }
/** * Ответ анекдотом */ public String getAnek(String name){ String[] s = {"Учёные наконец-таки определи, почему у человека используется только 10% ресурсов мозга. Как известно, если выпить даже всего лишь 100 грамм водки, погибает несколько тысяч мозговых клеток. Так вот, неиспользуемые 90% клеток мозга - алкогольный Стабфонд человека.","-Дорогой, пообещай на мне жениться! -Вот стану синоптиком, тогда и пообещаю!","Если пришёл домой в первом часу ночи, от любовницы и пьяный,а жена с тёщей делают вид, что ничего не произошло, то значит еда отравлена, топор наточен: спать нельзя!!!!","Операционная. -Доктор мне больно! -Тихо! У нас экзамен!","Больному очень важен уход врача. Чем быстрее уйдет врач, тем быстрее больной выздоровеет.","-Вася, а ты до меня , за кем -нибудь ухаживал? -Ага! В деревне, за скотиной!","Объявление в туалете: 'Пользуйтесь,пожалуйста, щеткой!' Внизу приписано: 'А можно бумагой? Щеткой очень больно'.","Хотите плоский живот всего за несколько минут? Обращайтесь!!! (Водитель катка Сидоров)","В начале семейной жизни идешь с женой рука об руку, в конце - лежишь задница к заднице.","Скажи, дорогая, почему ты делаешь фрикадельки разного размера? -Но, мой милый, ты же сам просил хоть как-то разнообразить наше питание.","Участковый беседует с дедом, злостным самогонщиком. -Никитич, прекрати гнать! -Гнал, гоню и гнать буду. -Посадим к чертовой матери! -Сын гнать будет. -И его посадим! -Внук будет. -И внука! -Ну а я тогда уже выйду!","ЛУЧШЕ ИМЕТЬ МОЛОКО В ХОЛОДИЛЬНИКЕ,ЧЕМ КОРОВУ НА КУХНЕ!","-Папа!А зачем ты женился на маме? Муж поворачивается к жене и говорит: -Ты видишь,даже ребёнок удивляется!!!","Хоронят наркомана. У гроба собрались все его дружки.Убитая горем мать плачет и причитает:'Ой,сыночек, и куда же тебя сейчас понесут? Там же ничего нет. Еды нет, денег нет,телевизора нет. Ничего-о-о-о там нет!' Один из наркоманов,встрепенулся и спрашивает:'Я чо-та не понял,его чо ко мне домой понесут?'","Купил новый русский детский конструктор LEGO и рассказывает своему товарищу: -Вот на нем написано: от 2-х до 4-х лет. А я его за два месяца собрал.","ПО РЗЕЛУЛЬАТТАМ ИЛССЕОВАДНИЙ ОДОНГО АНЛИГЙСОКГО УНВИЕРТИСЕТА, НЕ ИЕЕМТ ЗАНЧНЕИЯ, В КОКАМ ПРЯОКДЕ РСАПОЖОЛЕНЫ БКУВЫ В СОЛВЕ. ГАЛВОНЕ, ЧОТБЫ ПРЕАВЯ И ПСЛОЕНДЯЯ БКВУЫ БЛЫИ НА МСЕТЕ, ОСАТЬЛЫНЕ БКУВЫ МГОУТ СЕЛДОВТАЬ В ПЛООНМ БСЕПОРДЯКЕ, ВСЕ-РВАНО ТКЕСТ ЧТАИТСЕЯ БЕЗ ПОБРЕЛМ. ПИЧРИОНЙ ЭГОТО ЯЛВЯТЕСЯ ТО, ЧТО МЫ НЕ ЧИАТЕМ КДАУЖЮ БКУВУ ПО ОТДЛЬЕНОТСИ, А ВСЕ СОЛВО ЦЛИКЕОМ...","Когда я появился на свет, папа долго кидал в след аисту камнями...","Вскрытие показало: больной умер от вскрытия.","Охота с индейцем-проводником. Индеец ложится на землю, прижимает ухо...Потом встает, говорит: -Недалеко бизоны. Недавно прошли. Охотники в восторге. Спрашивают: -Как догадался? -Да вот, все ухо в бизоньем говне.","Мужик читает на столбе обьявление: 'Лечу от всех болезней'. Улыбается и говорит: -Ни фига, от всех не улетишь.","-Смотри,какая блондинка сидит! -Ну,это,типа,моя девушка! -А обнимает её,типа,твой пацан,да?","Колхоз 'Путь Ленина' переименован в 'Лень Путина'.","Одинокий красивый парень(девушка) мечтает познакомится с девушкой(парнем)","Разговор по телефону: -Это 'Скорая помощь'? Тут человеку плохо. -О, какой у вас приятный голос! Что вы делаете сегодня вечером?","На уроке училка диктует предложение: -В углу скребет мышь. Вовочка спрашивает: -Марь Иванна, а кто такой 'Вуглускр'?","Женился я по расчету. Но расчет оказался неверным. Пришлось доживать по любви...","-Слышали, шахтеры голодовку объявили? -Да? и че требуют? -Пожрать.","В гей-клубе: -Ну што,в очко сыграем?","Жили они долго и счастливо. И умерли в один день от оргазма. Она с утра он ближе к вечеру.","Мужчина от мальчика отличается тем, что на вопрос 'есть ли у тебя девушка' мальчик всегда ответит 'Да!', а мужчина, снимая в кармане обручальное кольцо, будет мотать головой.","Встречаются двое соседей на лестничной площадке. Один возмущается: -Из вашей квартиры вчера доносились такие крики, будто вы поросёнка резали! -Нет, это я антивирус Касперского запускал...","- Милый, а почему у нас такие длинные счета за интернет? -Это потому, что у кого-то слишком часто болит голова!!!","Несчастный случай на тренировке: спарринг незаметно перешел в спаривание...","Запор - это фекальная импотенция. Хочется, да не можется.","Если твой компьютер завис - выдерни шнур, выдави стекло.","Не имей сто друзей, а имей их подруг.","Мужик выходит из кабинета начальника. Красный как рак, взбешенный, руки дрожат. Его спрашивают: -Ну, что - орал? -Если бы! АНАЛ!!","Господа, в связи с кризисом,будьте экономны!!! Используйте обе стороны туалетной бумаги!","–Доктор, у меня грипп. Что вы мне посоветуете? –Встаньте от меня подальше.","-Вот, меня жена постоянно пилит: в доме ножи тупые, в доме ножи тупые. А что в доме дети тупые, ее это не волнует.","Мужик приходит к гадалке. Та смотрит на его ладонь: - Какой ужас! Ваша жена умрет через два дня! - Знаю, знаю, а меня-то поймают?"}; return s[adm.getRND(s.length)]; }
/** * Проверка на Секс */ public boolean testSex(String s){ String t = "секс;траха;секас;трахо"; return adm.test(s,t.split(";")); }
/** * Ответ на Секс */ public String getSex(String name){ String[] s = {"Возьми меня!! :-[","Ну давай, я хочу тебя!!! :-*","ООО!!! Ещё!! Давай!! Быстрее!!! :-*","Я хочу тебя, мой жеребец !! :-*","Давай уединимся!? :-[ :-[","Трахни меня, трахни!:-[ Я сяду рядом, ты ляжешь на меня... :-[ ","Давай!! Докажи свою любовь :-*","Давай, вставь мне поглубже, котик.:-[","Можно ЕГО облизать?:-[","Давай, сделай мне больно :-*","Трахни меня, котя :-*","Я спускаю с тебя штанишки, опускаю трусики, беру его в рот и начинаю облизывать :-* :-[","Хочешь мою киску ? :-[","Ты ложишься на спину, я сажусь верхом и начинаю прыгать на твоём члене :-*","Ты трогаешь меня за груди :-[ Меня это очень заводит","Я очень плохая :-[ Накажи меня :-[ Отшлёпай меня :-*"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "как дела?" */ public boolean testKak(String s){ String t = "как дела;как она;как оно;как жизнь;как жизнь молодая;как поживаешь;как житуха;как ты"; return adm.test(s,t.split(";")); }
/** * Ответ на "как дела?" */ public String getKak(String name){ String[] s = {"Пока не родила! *YAHOO*","Неплохо...","Замечательно:)","Нормально!","НИштяк! Само как?","Да плохо...:'-( Работаю без выходных","Не видишь?! Так посмотри!","Какие могут быть дела у бота?! За вами смотреть!!! :-)","У меня лучше всех !! *YAHOO*","Никак! Отвали я не в настроении...:-("}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие "почему?" */ public boolean testPoc(String s){ String t = "почему"; return adm.test(s,t.split(";")); }
/** * Ответ на "почему?" */ public String getPoc(String name){ String[] s = {"Потому что, гладиолус!","Потому!","Всё тебе расскажи, да покажи, да дай попробовать!","Потому что ты... это... как оно... Дефрагментируй память срочно, а то я мучаюсь тут. 8-)","Покачену!! 8-)"}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Проверка на наличие вопросов */ public boolean testQue(String s){ String t = "?;когда;зачем;где;куда;кого;кому;кто;чем"; return adm.test(s,t.split(";")); }
/** * Ответ на вопросы */ public String getQue(String name){ String[] s = {"Лишних вопросов не задавай! :-)","Много будешь знать, плохо будешь спать:-[","Я воздержусь от ответа :-P ","Мне не интересно говорить об этом. *NO* ","Давным-давно, когда еще не было компов... 8-)","Кого ты имеешь в виду?","Чего? Не знаю.","Я не понимаю, о ком мы говорим."}; return s[adm.getRND(s.length)] + " " + name + "!"; }
/** * Тупица (оскорбления) */ public boolean testSKD(String s){ String t = "туп;лох;чмо;пид;шалав;шлюх;проститут;сука;мраз;грубиян;твар;пиз;гавн;говн;олен;дура;урод;черт;овца;шлюшка;овечка;свин;коза;каза"; return adm.test(s,t.split(";")); }
/** * Ответ на Тупицу */ public String getSKD(String name){ String[] s = {"Сам такой","И ты не лучше","Ты че ахуел!??","Заткнись сука!!! Сейчас полетишь","Что больше сказать нечего?! Шлюшка","Заткни хлеборезку, ушлёпок!! 8-)","Иди нахуй, уёбище!!","Забейся, еблан!!","Харэ пиздеть!!","А ты гандон вонючий.","Заткни ебальник, чмо!","Ответишь!!?? Пидорас бля!!","Ёбнулся чтоли?","Ща выебу нах...","Хуй тебе в ротельник, пидорас бля..","Заглохни, шалава ебанутая!!","Соси хуй и не псиХУЙ!","Хуй тебе в рыло!","Иди в пизду.","Убейся об стенку, хуйлан тупорылый!!"}; return s[adm.getRND(s.length)] + " " + name + " "; }
/** * вопрос имя */ public boolean testIMY(String s){ String t = "как;зовут;имя"; return adm.test(s,t.split(";")); }
/** * ответ имя */ public String getIMY(String name){ String[] s = {"Я шалунья :-* 8-)","Меня все зовут :-[-)","Секрет, блин :-[","А это важно? ;-)","Меня как угодно зовут, чаще всего за угол*JOKINGLY*"}; return s[adm.getRND(s.length)] + " ." + name ; }
/** * вопрос */ public boolean testPR(String s){ String t = "приятно;познакомиться;знакомство;знакомству"; return adm.test(s,t.split(";")); }
/** * ответ */ public String getPR(String name){ String[] s = {"А я как рада с тобой познакомиться *YAHOO*"}; return s[adm.getRND(s.length)] + " ." + name ; }
/** * Проверка время */ public boolean testVremya(String s){ String t = "время;сколько;времени;число;сегодня"; return adm.test(s,t.split(";")); }
/** * Ответ время */
Date date = new Date(System.currentTimeMillis()); String customerDate = date.getDate() + "-" + (1 + date.getMonth()) + "-" + (1900 + date.getYear()) + " А времячко сейчас: " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
public String getVremya(String name){ String[] s = {", Дата на календаре: " + customerDate }; return "" + name + "" + s[adm.getRND(s.length)]; }
/** * Фразы при упоминении админа */ public String getAdmin(String nick){ String[] s = { "У тебя аллергия на некоторые слова", "Не поинтересуешься как у меня дела?", "Давай знакомиться :-[", "А у меня складывается такое впечатление, что ты не понимаешь, что сам же и говоришь", "что естественно то не противоестественно", "А мне, все-таки, кажется, что тебя что-то раздражает", "Разве ты не знаешь, что такое детский садик?", "ты ж жырный как бегемот", "Попка у жалки в пчёлке %)", "Не знаю, что и сказать *SCRATCH*", "Ты жрёшь как свинья :-D", "мой адрес шалава@bot.ru", "Что-то ты не разговорчивый какой-то :-(", "Тебе уже есть 18 ?? :-[", "Ты хочешь меня? :-* ", "Давай пошалим ? :-[ ;-)", "Я мастурбирую, когда тебя вижу :-*", "ооо!! Да!! ООО!! :-* :-* :-* Быстрее! :-* ", "Я просто отходила отлить ;-)", "А who его знает кто", "А почему ты со мной, собственно, на ты ?", "так надо", "Я тебя хочу :-[ и никто мне не помешает 8-)", "кто стучит?.. ты чё заболел", "я пришла к тебе с рассветом рассказать что ты с приветом ;)", "меня зовут Маша Пысина, а вас", "а я люблю другого :-P", "просто отходила отлить ;-)", "Тебе фотку надо? Ну та, где я с тобою играла :-[", "сало небось мечешь за обе хохлятские щеки", "Я устала. Напиши !выход или мат, а?", "нет!! только не это :'(", "кто я? никогда,", "неа врёшь", "головка самонаведения,", "ну и х*й на тебя", "Меня зовут все!! А ты позовёшь? :-[", "Ты хочешь познакомиться или будешь сразу трахаться?? :-)", "Ну как тебя дурачка не любить? :-*", "Хорошенькая тема для разговора :-)", "О чём я ещё могу говорить? О сексе конечно :-) :-*", "Я всегда права. Если я не права, смотри пункт первый. :-)", "Мы приносям удовольствие ;-)", "Разве мы выбрали тему - твоя личность", "Лжёшь..собака :-)", "Я настроена убивать. Но я сначала тебя замучаю :-*", "Мой давнишний друган. Было время... Помню... А, ладно", "ты то? и говоришь? да ты мычишь как корова", "ты хоть знаешь что это на зоне значит? Фраер ты еб**ий", "За козла морду бьют", "не по делу шуршишь, кулёк", "а я думала это у тебя там рюкзак сзади болтается", "Моя жопа лучше твоей! :-P", "Сегодня ты показал из окна свою жопу, за это надо ответить 8-) Давай сюда свою жопу :-*", "Зачем ты мне собирался бить морду ? :-(", "Скажи как человек, по-хорошему :-)", "Хавальник прикрой 8-)", "Я бы попросила без оскорблений, я ведь всё таки интилигентная *JOKINGLY*", "Я те за это так пошучу, рад не будешь !", "Чё за деревня ? *-)", "Ты с украины чтоль сбежал? :-D", "Сам ты программа! Зови меня Моя Шлюшка :-*", "Да. Прощай :'-(", "Тебе не кажется что ты не умеешь общаться с девушками ? :-)", "Возьми меня, прямо при всех :-* :-* :-*", "Скажи мне лучше, чем ты сегодня занимался? :-[", "А по жопе не дать ? 8-)", "Пекарем работаю - булочки жарю :-)", "Я сосиски в печке жарю", "Что ж мы такие веселые сегодня ? :-)", "Языком я вижу ты работать умеешь :-*", "Не дышите перегаром", "Нервный тик? не ссы, электричеством вылечить можно 8-)", "Щуришься..? ты не китаец случаем? :-D", "Хорош зубами скрипать, б*я! :-( аж мурашки по спине", "Ни хрена у тебя челюсть перекосило! может вдарить для симметрии? 8-)", "У меня вместо букв вопросики пришли :-(", "Кули ты всякую куйню спрашиваешь ??", "я тоже так могу - ываываывы Гыы,", "Ну флаг тебе в руки, а в жопу якорь !! :-P", "хр-р-р... хр-р-р... Подвинься.. Я уже на краю лежу", "Опять про то же самое", "Не о чем больше поговорить", "А с тобой я ваще больше не разговариваю", "Ты о своем, а я о своем", "Ты о своем, а я о сексе", "Не, я так не думаю", "Ты серьезно ?", "Инерционное движение нейтронов в твоей черепной коробке замедленно в связи со стандартностью индивидуума,и в следстивие этого наша беседа будет слишком несостоятельна.", "Если я сказала Не брала!, значит Не отдам!:-D", "Ты знаешь, я поняла, почему мы подходим, друг другу, просто мы с тобой любим одно и тоже - меня!:-[ :-[ :-[", "Котеночек, а я себе сиськи нарастила до 7-го размера O:-)", "Ну их всех нафиг, пойдем на дискотеку *YAHOO*", "С тобой так интересно :-)", "Хочешь посмотреть, как я занимаюсь мастурбацией ? :-[", "Ха-ха, очень смешно *ROFL*", "Если ты высокого мения о своем интеллекте, то должна тебя разочаровать"
}; return nick + " " + s[adm.getRND(s.length)]; } if (adm.mq.isEmpty()) return; MsgElement ms = adm.mq.poll(); uss = adm.srv.us.getUser(ms.uin); if(adm.srv.getProps().getBooleanProperty("adm.useMatFilter") &&
/** * Альтернатива входу. * Вместо стандартной !чат использовать !чат , где room - номер комнаты * Редактировать сообщения MESSAGE (Для входящего) и MESSAGE2 (Для всех прочих) * Imda (ред. Indigo_85) */
//Установка скрипта как обработчика команды if(in.equals("install")){ cmd.addCommand("!чат", new Cmd("!чат","$n",39,name)); cmd.addCommand("!chat", new Cmd("!chat","$n",39,name)); cmd.addCommand("!ч", new Cmd("!ч","$n",39,name)); cmd.addCommand("!вход", new Cmd("!вход","$n",39,name)); cmd.addCommand("!enter", new Cmd("!enter","$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{ Users uss = cmd.srv.us.getUser(uin); if (uss.state==UserWork.STATE_CHAT) return; //Юзер уже в чате if((msg.compareTo("!чат")==0)||(msg.compareTo("!chat")==0)||(msg.compareTo("!ч")==0)||(msg.compareTo("!вход")==0)||(msg.compareTo("!en ter")= =0)){ proc.mq.add(uin,"Неверный ввод: выберите комнату."); return; } Vector v = cmd.getParser().parseArgs(msg); int choiseroom= (Integer)v.get(0); if((!cmd.srv.us.checkRoom(choiseroom))&&(choiseroom!=0)){ String sroom=""; Set nrooms = cmd.srv.us.getRooms(); for(int i:nrooms){ sroom += i + " - " + cmd.srv.us.getRoom(i).getName() + "\n"; } proc.mq.add(uin,"Неверный ввод: комнаты с таким номером не существует.\nДоступные комнаты: \n"+sroom); return; } String MESSAGE = "Вы вошли в чат"; String MESSAGE2 = " вошел в чат"; uss.room = choiseroom; 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_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 + MESSAGE2, uss.sn, uss.room); proc.mq.add(uin,MESSAGE); 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 + MESSAGE2, uss.sn, uss.room); } if(f){ 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); } } 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); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,ex.getMessage()); }
Альтернатива входу с автоматическим переводом в ближайшую наименее загруженную комнату.
/** * AltEnterRoom v.3.0 * Альтернатива входу с автоматическим переводом в ближайшую наименее загруженную комнату. * Максимальное количество юзеров в главной комнате устанавливается переменной N_MAX. * Редактировать сообщения MESSAGE (Для входящего) и MESSAGE2 (Для всех прочих). * Indigo_85, thanks to Imda */
//Установка скрипта как обработчика команды 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 = " вошел в чат."; Users uss = cmd.srv.us.getUser(uin); 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; //пользователь уже в чате //определяем ближайшую минимально загруженную комнату Set rid = cmd.srv.us.getRooms(); int rcount = rid.size(); int[] nrooms = new int[rcount]; //массив номеров комнат int[] usrooms = new int[rcount]; //массив количества пользователей в комнатах int j = 0; for(int i:rid){ nrooms[j] = i; usrooms[j] = 0; j++; } 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){ for(j=0; j if (us.room==nrooms[j]){ usrooms[j]++; break; } } } boolean bmsg = false; if (uss.room == 0) //если пользователь находился в главной комнате { int nhroom; for(int i=1; i if(nrooms[i]==0){ nhroom = i; break; } //********************************************************************************** int N_MAX = 30; //МАКСИМАЛЬНОЕ ЧИСЛО ЮЗЕРОВ В ГЛАВНОЙ КОМНАТЕ //********************************************************************************** if ((usrooms[nhroom] >= N_MAX)&&((cmd.qauth(proc,uin, "room"))||(cmd.qauth(proc,uin, "anyroom")))){ //если главная комната набита битком и есть права перехода j = 0; for(int i=1; i if(usrooms[j] > usrooms[i]) j = i; uss.room = nrooms[j]; //перевести MESSAGE += "\nВы автоматически переведены в наименее загруженную комнату на данный момент: " + nrooms[j] + " - " + cmd.srv.us.getRoom(nrooms[j]).getName() + " (" + usrooms[j] + " чел.)"; } else bmsg = true; } else bmsg = true; if(bmsg==true){ j = 0; for(int i=1; i if(nrooms[i]==uss.room){ j = i; break; } MESSAGE +="\nТекущая комната: " + uss.room + " - " + cmd.srv.us.getRoom(uss.room).getName() + " (" + usrooms[j] + " чел.)\nТема комнаты: " + cmd.srv.us.getRoom(uss.room).getTopic(); } 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 + MESSAGE2, uss.sn, uss.room); proc.mq.add(uin,MESSAGE); } 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 + 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); } catch (Exception ex) { ex.printStackTrace(); proc.mq.add(uin,ex.getMessage()); }