[ Привет Гость] [Группа: Гости ] [ Вход ]

  • Страница 1 из 1
  • 1
Модератор форума: ICE, HellFire, KLA$  
JimBot » JimBot » скрипты на JimBot » Коды 0.4.0 ((Коды в исходники))
Коды 0.4.0
Alex^_^Дата: Вторник, 13.04.2010, 20:03 | Сообщение # 1
Administrator
Группа:Администраторы
Сообщений:770
Награды:6
Репутация:1132
Статус:Онлайн
Правила:
В данной теме выкладываются только готовые коды, которые прошли тест и 100% рабочие.
Для тех кто выкладывает коды:

- Указываем название кода
- Указываем смысл его работы
- Указываем процесс установки


с уважением, Alex^_^

=>жми (-1)

Alex^_^Дата: Вторник, 13.04.2010, 20:04 | Сообщение # 2
Administrator
Группа:Администраторы
Сообщений:770
Награды:6
Репутация:1132
Статус:Онлайн
присвоение группы с оповещением в общий чат

Code
/**  
* !setgroup  
* @param proc  
* @param uin  
* @param v  
*/  
public void commandSetgroup(IcqProtocol proc, String uin, Vector v){  
if(!isChat(proc,uin) && !psp.testAdmin(uin)) return;  
if(!auth(proc,uin, "authwrite")) return;  
try{  
String s1 = (String)v.get(1);  
int id = (Integer)v.get(0);  
Users uss = srv.us.getUser(id);  

if(uss.id!=id){  
// proc.mq.add(uin,"Пользователь не найден");  
proc.mq.add(uin, Messages.getString("ChatCommandProc.commandSetgroup.0"));  
return;  
}  
if(!testUserGroup(s1)){  
// proc.mq.add(uin,"Нет такой группы пользователей");  
proc.mq.add(uin, Messages.getString("ChatCommandProc.commandSetgroup.1"));  
return;  
}  
uss.group = s1;  
boolean f = srv.us.setUserPropsValue(id, "group", s1) &&  
srv.us.setUserPropsValue(id, "grant", "") &&  
srv.us.setUserPropsValue(id, "revoke", "");  
srv.us.clearCashAuth(id);  
if(f) {  
proc.mq.add(uin, Messages.getString("ChatCommandProc.commandSetgroup.2"));  
srv.cq.addMsg("Пользователю " + uss.localnick + "[" + uss.id + "], была присвоена группа ["+ srv.us.getUserGroup(uss.id) + "]", "", uss.room);  
proc.mq.add(uss.sn, "Вам присвоена группа [" + srv.us.getUserGroup(uss.id) + "]" );  
}  
else  
proc.mq.add(uin, Messages.getString("ChatCommandProc.commandSetgroup.3")); //proc.mq.add(uin,"Произошла ошибка");  
} catch (Exception ex){  
ex.printStackTrace();  
proc.mq.add(uin, Messages.getString("ChatCommandProc.err", new Object[] {ex.getMessage()}));  
}  
}



с уважением, Alex^_^

=>жми (-1)

Alex^_^Дата: Вторник, 13.04.2010, 20:06 | Сообщение # 3
Administrator
Группа:Администраторы
Сообщений:770
Награды:6
Репутация:1132
Статус:Онлайн
пароль на комнату и оповещение из какой в какую комнату ушёл юзер

Code
/**  
* !room  
* @param proc  
* @param uin  
* @param v  
*/  
public void commandRoom(IcqProtocol proc, String uin, Vector v){  
if(!isChat(proc,uin)) return;  
if(!auth(proc,uin, "room")) return;  
try{  
int i = (Integer)v.get(0);  
String pass = (String)v.get(1);  
Users uss = srv.us.getUser(uin);  
if(uss.room==i){  
proc.mq.add(uin,"Ты уже сидишь в этой комнате!");  
} else  
if(qauth(proc,uin, "anyroom") || srv.us.checkRoom(i)){  
if (!srv.us.getRoom(i).checkPass(pass) && !psp.testAdmin(uin)) {  
proc.mq.add(uin,"Не верный пароль!");  
return;}  
srv.cq.addMsg(uss.localnick + " ушел из комнаты [" + uss.room + "] в комнату [" + i + " - " + srv.us.getRoom(i).getName() + "]", uin, uss.room);  
srv.cq.addMsg(uss.localnick + " ушел из комнаты [" + uss.room + "] в комнату [" + i + " - " + srv.us.getRoom(i).getName() + "]", uin, i);  
uss.room=i;  
srv.us.updateUser(uss);  
srv.cq.changeUserRoom(uin, i);  
srv.cq.addMsg(uss.localnick + " вошел в комнату [" + uss.room + "]", uin, uss.room);  
int room = srv.us.getUser(uin).room;  
Enumeration<String> e = srv.cq.uq.keys();  
int cnt=0;  
while(e.hasMoreElements()){  
String g = e.nextElement();  
Users us = srv.us.getUser(g);  
if(us.room==room){  
cnt++;  
}  
}  
proc.mq.add(uin,"Ты перешел в комнату " + i + " - " + srv.us.getRoom(i).getName() +  
(srv.us.getRoom(i).getTopic().equals("") ? "" : ("\nТема: " + srv.us.getRoom(i).getTopic()))+ "\nПользователей в комнате: "+" [" +cnt+ "]");  
} else {  
proc.mq.add(uin,"Такой комнаты не существует! Некуда переходить.");  
}  
} catch (Exception ex) {  
ex.printStackTrace();  
proc.mq.add(uin,ex.getMessage());  
}  
}


с уважением, Alex^_^

=>жми (-1)

Alex^_^Дата: Вторник, 13.04.2010, 20:07 | Сообщение # 4
Administrator
Группа:Администраторы
Сообщений:770
Награды:6
Репутация:1132
Статус:Онлайн
RobAdmin

Code
/**  
* This library is free software; you can redistribute it and/or  
* modify it under the terms of the GNU Lesser General Public  
* License as published by the Free Software Foundation; either  
* version 2.1 of the License, or (at your option) any later version.  

* This library is distributed in the hope that it will be useful,  
* but WITHOUT ANY WARRANTY; without even the implied warranty of  
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  
* Lesser General Public License for more details.  

* You should have received a copy of the GNU Lesser General Public  
* License along with this library; if not, write to the Free Software  
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  
*/  

package ru.jimbot.modules.chat;  

import java.util.concurrent.ConcurrentLinkedQueue;  
import java.util.concurrent.ConcurrentHashMap;  
//import org.pr_dim.jImBot.modules.IcqProc;  
import java.util.Random;  

import ru.jimbot.modules.WorkScript;  
import ru.jimbot.protocol.IcqProtocol;  
import ru.jimbot.util.*;  
import bsh.Interpreter;  
import java.io.FileInputStream;  
import java.io.InputStreamReader;  
import java.util.Vector;  
import java.io.*;  
import java.text.DateFormat;  
import java.text.FieldPosition;  
import java.util.Date;  
import java.util.HashMap;  
import java.util.HashSet;  
import java.util.TimeZone;  
import java.util.concurrent.ConcurrentHashMap;  
import java.util.Iterator;  
import ru.jimbot.*;  
import ru.jimbot.db.*;  
import ru.jimbot.modules.AbstractCommandProcessor;  
import ru.jimbot.modules.AbstractServer;  
import ru.jimbot.modules.Cmd;  
import ru.jimbot.modules.CommandParser;  
import ru.jimbot.modules.WorkScript;  
import ru.jimbot.modules.anek.AnekProps;  
import ru.jimbot.protocol.IcqProtocol;  
import ru.jimbot.util.*;  

/**  
* Виртуальный админ в чате  
*  
* @author Prolubnikov Dmitry  
*/  
public class RobAdmin implements Runnable {  
public String NICK = "Админ";  
public String ALT_NICK="admin;админ";  
//Определение зафлуживания админа  
private String lastSN="";  
private long lastTime=0;  
public int lastCount = 0;  
private Thread th;  
int sleepAmount = 1000;  
long cTime=System.currentTimeMillis(); //Время последнего сообщения, для определения паузы  
long stTime = 0; //Время последнего вывода статистики  
public ChatServer srv;  
public ConcurrentLinkedQueue <MsgElement> mq;  
public ConcurrentHashMap <String,Integer> uins;  
ConcurrentHashMap <String,Integer> test1, test2;  
private String[][] chg = {{"y","у"},{"Y","у"},{"k","к"},{"K","к"},{"e","е"},  
{"E","е"},{"h","н"},{"H","н"},{"r","г"},{"3","з"},{"x","х"},{"X","х"},  
{"b","в"},{"B", "в"},{"a","а"},{"A","а"},{"p","р"},{"P","р"},{"c","с"},  
{"C","с"},{"6","б"}};  
private Random r = new Random();  

/** Creates a new instance of RobAdmin */  
public RobAdmin(ChatServer s) {  
srv = s;  
mq = new ConcurrentLinkedQueue();  
uins = new ConcurrentHashMap();  
uins.put("0",0);  
test1 = new ConcurrentHashMap();  
test2 = new ConcurrentHashMap();  
}  

/**  
* Добавление в очередь нового задания  
*/  
public void parse(IcqProtocol proc, String uin, String msg, int room){  
cTime = System.currentTimeMillis();  
mq.add(new MsgElement(msg,uin,proc,room));  
}  

/**  
* Замена похожих букв на русские  
*/  
public String changeChar(String s){  
for(int i=0;i<chg.length;i++){  
s = s.replace(chg[i][0],chg[i][1]);  
}  
return s;  
}  

private void parse(){  
WorkScript.getInstance(srv.getName()).startAdminScript(this);  
// try {  
// Interpreter bsh = new Interpreter();  
// bsh.set("adm", this);  
// bsh.eval(WorkScript.getScripts().getScript("./services/" +  
// srv.getName() + "/scripts/admin.bsh"));  
// bsh = null;  
// } catch (Exception ex){  
// ex.printStackTrace();  
// Log.info(ex.getMessage());  
// }  
}  

/**  
* Обработка событий по времени  
*/  
private void timeEvent(){  
if(testTime()){  
cTime = System.currentTimeMillis();  
if(testRnd(ChatProps.getInstance(srv.getName()).getIntProperty("adm.sayAloneProbability"))){  
if(srv.cq.uq.size()<=0) return;  
say(getAlone(), 0);  
}  
}  
}  

public void say(String m, int room){  
cTime = System.currentTimeMillis();  
String s = NICK + ": " + m;  
Log.info(s);  
srv.us.db.log(0,"admin","OUT", s, room);  
srv.cq.addMsg(s,"",room);  
}  

/**  
* Проверка на мат, вариант 1  
*/  
public boolean testMat1(String msg){  
String[] s = msg.trim().split(" ");  
for(int i=1;i<s.length;i++){  
if(!test(s[i], ChatProps.getInstance(srv.getName()).getStringProperty("adm.noMatString").split(";"))){  
if(test(s[i], ChatProps.getInstance(srv.getName()).getStringProperty("adm.matString").split(";")))  
return true;  
}  
}  
return false;  
}  

/**  
* Проверка на совпадение слов в сообщении  
*/  
public boolean test(String msg, String[] testStr){  
for(int i=0;i<testStr.length;i++){  
if(msg.toLowerCase().indexOf(testStr[i])>=0) return true;  
}  
return false;  
}  

/**  
* Проверка на наличие имени админа  
*/  
public boolean testName(String s){  
return test(s,ALT_NICK.split(";"));  
}  

/**  
* Проверка на наличие приветствия  
*/  
public boolean testHi(String s){  
String t = "прив;прев;здоров;здрас;здрав;хай;хой;хелл;добр;даро";  
return test(s,t.split(";"));  
}  
/**  
* Определение времени запуска бота  
*/  
private long getTimeStart(){  
long t = 0;  
try{  
File f = new File("./state");  
t = f.lastModified();  
} catch (Exception ex) {  
ex.printStackTrace();  
}  
return t;  
}  

private long getUpTime(){  
return System.currentTimeMillis()-getTimeStart();  
}  

private String getTime(long t){  
Date dt = new Date(t);  
DateFormat df = DateFormat.getTimeInstance(DateFormat.MEDIUM);  
df.setTimeZone(TimeZone.getTimeZone("GMT"));  
return (t/86400000) + " дней " + df.format(dt);  
}  
public boolean testStat(String s){  
String t = "stat;стат";  
return test(s,t.split(";"));  
}  

public boolean testFlood(String sn){  
if(sn.equalsIgnoreCase(lastSN)){  
if((System.currentTimeMillis()-lastTime)<ChatProps.getInstance(srv.getName()).getIntProperty("adm.ma xSayAdminTimeout")*60*1000){  
return true;  
} else {  
lastTime = System.currentTimeMillis();  
lastCount = 0;  
return false;  
}  
} else {  
lastSN = sn;  
lastTime = System.currentTimeMillis();  
lastCount = 0;  
return false;  
}  
}  

/**  
* Вывод статистики по запросу  
*/  
public void sayStat(int room){  
long test = ChatProps.getInstance(srv.getName()).getIntProperty("adm.getStatTimeout")*60*1000;  

if((System.currentTimeMillis()-stTime)<test){  
say("Ну вас нафиг... нашли дурака... работай тут, считай... дайте передохнуть хоть немного.", room);  
return;  
}  
stTime = System.currentTimeMillis();  
String s = "За последние сутки:\n";  
s += "Всего зашло в чат: " + srv.us.statUsersCount();  
s += "\nБот запущен: " + new Date(getTimeStart());  
s += "\nВремя работы: " + getTime(getUpTime());  
s += "\nОтправлено сообщений: " + srv.us.statMsgCount();  
s += "\nКикнутых юзеров: " + srv.us.statKickUsersCount();  
s += "\nЗарегистрировано пользователей: " + srv.us.statRegCount();  
s += "\nВсего киков: " + srv.us.statKickCount();  
s += "\nЗабанено юзеров: " + srv.us.statBanUsersCount();  
s += "\nСамые болтливые пользователи:\n" + srv.us.statUsersTop();  
say(s, room);  
}  

/**  
* Проверка на первышение интервала ожидания  
*/  
public boolean testTime(){  
return (System.currentTimeMillis()-cTime)>ChatProps.getInstance(srv.getName()).getIntProperty("adm.sayAloneTime")*60000;  
}  

public int getRND(int i){  
return r.nextInt(i);  
}  

/**  
* Событие с вероятностью 1/i  
*/  
public boolean testRnd(int i){  
if(i<=1)  
return false;  
else  
return r.nextInt(i)==1;  
}  

/**  
* Приветствие  
*/  
public String getHi(String name){  
String[] s = {"Привет","Хай","Приветствую","Здравствуй","Здоров"};  
return s[getRND(s.length)] + " " + name + "!";  
}  

/**  
* Фразы про одиночество  
*/  
public String getAlone(){  
String[] s = {  
"Здесь так тихо...",  
"Ну и чего все замолчали?",  
"Ну и молчите дальше, я тоже буду молчать :-\\",  
"Алле! тут есть кто-нибудь? А-а-а-а!!! Я что тут один?!"  
};  
return s[getRND(s.length)];  
}  

/**  
* Фразы при упоминении админа  
*/  
public String getAdmin(){  
String[] s = {  
"А, че?",  
"хр-р-р... хр-р-р...",  
"Опять про то же самое?",  
"Не о чем больше поговорить?",  
"А с тобой я ваще больше не разговариваю",  
"Ты о своем, а я о своем",  
"Не, я так не думаю",  
"Ты серьезно?",  
"С тобой так интересно!",  
"Ха-ха, очень смешно...",  
"Если ты высокого мения о своем интеллекте, то должен тебя разочаровать"  
};  
return s[getRND(s.length)];  
}  

public void start(){  
th = new Thread(this);  
th.setPriority(Thread.NORM_PRIORITY);  
th.start();  
}  

public synchronized void stop() {  
th = null;  
notify();  
}  

public void run() {  
Thread me = Thread.currentThread();  
while (th == me) {  
parse();  
timeEvent();  
try {  
th.sleep(sleepAmount);  
} catch (InterruptedException e) { break; }  
}  
th=null;  
}  
}


с уважением, Alex^_^

=>жми (-1)

Alex^_^Дата: Вторник, 13.04.2010, 20:07 | Сообщение # 5
Administrator
Группа:Администраторы
Сообщений:770
Награды:6
Репутация:1132
Статус:Онлайн
Должен исключать антикик для testAdmin при длительном молчании.

Code
/**  
        * Проверка молчунов  
        * @param uin  
        */  

       public void testState(String uin){  
           if(psp.testAdmin(uin)) return;  
           long t = floodMap.get(uin).getDeltaTime();  
           if(t>(psp.getIntProperty("chat.autoKickTimeWarn")*60000) &&  
                   !warnFlag.contains(uin)){  
               Log.info("Warning to " + uin);  
               srv.getIcqProcess(srv.us.getUser(uin).basesn).mq.add(uin,"Предупреждение!\nПредупреждение!\nПредупреждение!\n\nВы слишком долго молчите и будете удалены из чата! Не молчите!");  
               warnFlag.add(uin);  
           }  
           if(t>(psp.getIntProperty("chat.autoKickTime")*60000)){  
               Log.talk("Autokick to " + uin);  
               warnFlag.remove(uin);  
               kick(srv.getIcqProcess(srv.us.getUser(uin).basesn),uin);  
           }  
       }


с уважением, Alex^_^

=>жми (-1)

JimBot » JimBot » скрипты на JimBot » Коды 0.4.0 ((Коды в исходники))
  • Страница 1 из 1
  • 1
Поиск:
Новые темы
Раздача ICQ (New)
Установка чата на vds сервер
Обмен кнопками)
Рисуночки))
Раздача Icq
jImBot Mod Desmond (2 декабря 2010 г.)
Флудилка
Раздача @mail.ru ящиков
Горячие темы
Рисуночки))
jImBot v.0.4.0 pre game
Скрипты для Jimbot 0.4.0
Раздача ICQ (New)
Флудилка
mod 0.4.0 by dimax & warik
скрипты для JimBot 0.3.6
Вакансии:)
Активные пользователи

Alex^_^
Сообщений: 770

ICE
Сообщений: 129

♥_ЭйВа_♥
Сообщений: 104

HellFire
Сообщений: 44

Vlad
Сообщений: 32

[ADM]RoMbl4
Сообщений: 31

KLA$
Сообщений: 28

Er[R]or
Сообщений: 16

HParaLoN
Сообщений: 15
Новые пользователи на сайте
swbforever-38
↓ ↓ ↓ ↓ ↓
kla$4731
↓ ↓ ↓ ↓ ↓
muslimalashari
↓ ↓ ↓ ↓ ↓
info_bot_2
↓ ↓ ↓ ↓ ↓
BOPOH
↓ ↓ ↓ ↓ ↓
Valeria
↓ ↓ ↓ ↓ ↓
RakiLLet
↓ ↓ ↓ ↓ ↓
realpepper
↓ ↓ ↓ ↓ ↓
defaultNick3824
↓ ↓ ↓ ↓ ↓