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


Готовые скрипты


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

#61 AssassinS

    Специалист

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

Отправлено 28 Август 2009 - 18:35

Название: Контроль привата
Цель: Защита от рекламы
Установка: создать файл с расширением *bsh в папке "/scripts/command"
Команда в чате: +лс
Автор: AssassinS

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


       
if(in.equals("install")){
    cmd.addCommand("+p", new Cmd("+p","$n $s",39,name));
    cmd.addCommand("+р", new Cmd("+р","$n $s",39,name));
    cmd.addCommand("+лс", new Cmd("+лс","$n $s",39,name));
    cmd.addAuth("pmsg","Отправка приватных сообщений");
    out="Ok";
    return;
}

if(!cmd.isChat(proc,uin)) return;
if(!cmd.auth(proc,uin, "pmsg")) return;

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;
   }

   String[] ch={"chat", "c*h*a*t", "чат", "ч*а*т", "c.h.a.t", "ч.а.т"};
 
   for(int i=0;i=0){
    	for(int j=0;j<10;j++)
    	    msg=msg.replaceAll(Integer.toString(j), "0");
        return;
    	}
   if(txt.length()>cmd.psp.getIntProperty("chat.MaxMsgSize")){
      txt = txt.substring(0,cmd.psp.getIntProperty("chat.MaxMsgSize"));
      proc.mq.add(uin,"Слишком длинное сообщение было обрезано: " + txt);
   }


   String im = "123456789"; //кому присылать уведомление
   Log.talk("CHAT: " + uss.sn + ">> Личное сообщение от " + cmd.srv.us.getUser(uin).localnick + " [" + cmd.srv.us.getUser(uin).id + "] : " + txt);
   cmd.srv.us.db.log(uss.id,uin,"OUT",">> Личное сообщение от " + cmd.srv.us.getUser(uin).localnick + " [" + cmd.srv.us.getUser(uin).id + "] : " + txt,uss.room);
   cmd.srv.getIcqProcess(uss.basesn).mq.add(uss.sn,"Личное сообщение от " + cmd.srv.us.getUser(uin).localnick + " [" + cmd.srv.us.getUser(uin).id + "] : " + txt);
   cmd.srv.getIcqProcess(cmd.srv.us.getUser(im).basesn).mq.add(im,"Отправлено личное сообщение пользователю " + uss.localnick +  "[" + uss.id + "]" + " от " + cmd.srv.us.getUser(uin).localnick + " [" + cmd.srv.us.getUser(uin).id + "] : " + txt);
   proc.mq.add(uin,"Сообщение пользователю [" + uss.id + "]"  + uss.localnick + " отправлено");
} catch (Exception ex) {   
      ex.printStackTrace();
      proc.mq.add(uin,"Ошибка "+ex.getMessage());
} 


Пример работы:

 AssassinS (19:29:35 28/08/2009)
+лс 3 привет

 ХХХХХХХХХ (19:29:36 28/08/2009)
Личное сообщение от AssassinS [3] : привет

 ХХХХХХХХХ  (19:29:36 28/08/2009)
Отправлено личное сообщение пользователю AssassinS[3] от AssassinS [3] : привет

 ХХХХХХХХХ  (19:29:36 28/08/2009)
Сообщение пользователю [3]AssassinS отправлено

 AssassinS (19:29:46 28/08/2009)
+лс 3 заходи в чат 123456789

То есть скрипт удаляет все сообщения со словами чат.

#62 Ar2r

    Dexsor

  • Специалисты
  • PipPipPipPipPip
  • 1 137 сообщений

Отправлено 01 Сентябрь 2009 - 10:57

Может кому пригодится! Универсальный скрипт вывода содержимого текстового файла (!чтение news или !чтение 1.09.09). смысл в том что не надо создавать много скриптов для вывода информации!
Цель: 1 скрипт ищет и выводит содержимое любого TXT файла , упрощение в работе, снижение нагрузки бота!
Установка: создать файл с расширением *bsh в папке "/scripts/command"и создать нужные тексты в папке text
Команда в чате: !чтение
Автор:Ar2r при поддержке Clo

/**
*
*Скрипт вывода содержимого любого текстового файла
*!чтение namefile
*Clo & Ar2r
*
*/

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("!чтение","$s",39,name));
   cmd.addCommand("!read", new Cmd("!read","$s",39,name));
   cmd.addAuth("txtread","Вывод текстового файла");
   out="Ok";
   return;
}

if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "txtread")) return;

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
					
					

#63 pomka23

    Пользователь

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

Отправлено 10 Сентябрь 2009 - 02:45

Название: Свадьба
Цель: Женить пользователей =)
Установка: создать 2 файла с расширением *bsh в папке "/scripts/command",создать папку users в корне бота.
Команда в чате: !свадба невесты жениха, !развести невесты жениха
Автор: masterzx + моя небольшая доработка)

Свадьба:

/**
*
*Скрипт свадьба пользователей, на основе banroom!
*!свадьба id(невесты) id(жениха)
*/


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 $n",39,name));
   cmd.addAuth("wedding","свадьба");
   out="Ok";
   return;
}

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

try{
   Vector v = cmd.getParser().parseArgs(msg);
//невеста
int i1 = (Integer)v.get(0);
//жених
int i2 = (Integer)v.get(1);
Users sss = cmd.srv.us.getUser(uin);
Users u = cmd.srv.us.getUser(i1);
Users uss = cmd.srv.us.getUser(i2);

// номер комнаты для свадьбы 
if((uss.room!=3) && (u.room!=3) && (sss.room!=3)) 
{
proc.mq.add(uin,"Свадьба может быть только в 3 комнате и молодожены тоже должны быть тут же..."); 
return;
}
// Проверка по базе если они вообще 
if((u.id==0) || (uss.id==0)){
proc.mq.add(uin,"Пользователь не найден");
return;
}
// проверка были ли замужем или женат один из юзеров 
File acu = new File ("./users/" + i1);
File acu1 = new File ("./users/" + i2);
if (acu.exists() || acu1.exists()){proc.mq.add(uin,"Пользователи уже в браке"); return;}

if((u.state != UserWork.STATE_CHAT) || (uss.state != UserWork.STATE_CHAT) ) {
proc.mq.add (uin,"Этого пользователя нет в чате.");
return;
}

// Оповещаем чат
cmd.srv.cq.addMsg("У пользователей " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + "свадьба*DRINK*!", u.sn, u.room);
//cmd.srv.cq.addMsg("У пользователей " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + "свадьба*DRINK*!", uss.sn, uss.room);

// Оповещаем юзера
cmd.srv.getIcqProcess(uss.basesn).mq.add(uss.sn,"Поздравляю у тебя свадьба, твоя невеста " + u.localnick + "[" + u.id + "]");
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Поздравляю у тебя свадьба, твой жених  " + uss.localnick + "[" + uss.id + "]");
OutputStreamWriter ow1 = new OutputStreamWriter(new FileOutputStream("./users/" + i2,true),"windows-1251");
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./users/" + i1,true),"windows-1251");

// Меняем ник у жены     
String nick = u.localnick + "(ж)" + uss.localnick;
String oldNick = u.localnick;
ow.write(u.localnick + "
");// пишем старый ник в фаил
ow.close();
u.localnick=nick;
cmd.srv.us.updateUser(u);
cmd.srv.us.db.event(u.id, uin , "reg", 0, "", nick);
cmd.srv.us.revokeUser(i1, "reg");// лишаем прав на смену ника

// Меняем ник у мужа
String nick1 = uss.localnick + "(м)" + oldNick;
String oldNick1 = uss.localnick;
ow1.write(uss.localnick + "
");//пишем старый ник в фаил
ow1.close();
uss.localnick=nick1;
cmd.srv.us.updateUser(uss);
cmd.srv.us.db.event(uss.id, uin , "reg", 1, "", nick1);
cmd.srv.us.revokeUser(i2, "reg");// лишаем прав на смену ника

// Сообщаем об успешном выполнении команды
proc.mq.add(uin,"Пользователи " + uss.localnick + "[" + uss.id + "] " + " и "  + u.localnick + "[" + u.id + "] " +  " обвенчались!");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}

Развод:

//**
//* Скрипт развести пользователей, на основе ubanroom !
//*!развести id(невесты) id(жениха)
//*/


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 $n",39,name));
   cmd.addAuth("wedding","свадьба");
   out="Ok";
   return;
}

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

try{
//Парсим строку аргументов
   Vector v = cmd.getParser().parseArgs(msg);
//Согласно шаблону, аргумент должн быть числом
// Жена
   int i1 = (Integer)v.get(0);
// Муж
   int i2 = (Integer)v.get(1);
// Находим юзера
   Users u = cmd.srv.us.getUser(i1);
   Users uss = cmd.srv.us.getUser(i2);
// Проверяем есть ли такой юзер ваще?
   if((u.id==0) || (uss.id==0)){
      proc.mq.add(uin,"Пользователи не найдены");
      return;
   }

   File acu = new File ("./users/" + i1);
   File acu1 = new File ("./users/" + i2);
   if ((!acu.exists() )|| (!acu1.exists())){proc.mq.add(uin,"Пользователи не были в браке"); return;}
   String nick = cmd.psp.loadText("./users/" + i1);
   String[] snick = nick.split("
");
   String nick1 = cmd.psp.loadText("./users/" + i2);
   String[] snick1 = nick1.split("
");
   if ((nick == "") || (nick1 == "")){proc.mq.add(uin,"Пользователи не были в браке"); return;}
   acu.delete();
   acu1.delete();
// Меняем ник у жены 
   u.localnick = snick[0];
   cmd.srv.us.updateUser(u);
   cmd.srv.us.db.event(u.id, uin, "reg", 0, "", snick[0]);
   cmd.srv.us.grantUser(i1, "reg");// возвращаем права на смену ника 
  
// Меняем ник у мужа 
   
   uss.localnick= snick1[0];
   cmd.srv.us.updateUser(uss);
   cmd.srv.us.db.event(uss.id, uin, "reg", 1, "", snick1[0]);
   cmd.srv.us.grantUser(i2, "reg");// возвращаем права на смену ника    

   // Сообщаем об успешном выполнении команды
   cmd.srv.cq.addMsg("Пользователи " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + " Развелись!", u.sn, u.room);
   //cmd.srv.cq.addMsg("Пользователи " + uss.localnick + "[" + uss.id + "] " + " и " + u.localnick + "[" + u.id + "] " + " Развелись!", uss.sn, uss.room);
   proc.mq.add(uin,"Брак распался...");

// Оповещаем юзера
cmd.srv.getIcqProcess(uss.basesn).mq.add(uss.sn,"Твой брак с " + u.localnick + "[" + u.id + "] был расторгнут.");
cmd.srv.getIcqProcess(u.basesn).mq.add(u.sn,"Твой брак с  " + uss.localnick + "[" + uss.id + "] был расторгнут.");

// Сюда нужно добавить команды на удаление файлов юзера
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}	
	


#64 HubMasster

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

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • ГородКумертау

Отправлено 13 Сентябрь 2009 - 15:46

Название: Mod вывода комнат по порядку с статистикой всего комнат, всего пользователей онлайн... и ещё добавлена реклама
Установка: Создать файл с расширением *.bsh и закинуть в папку "/scripts/command"
Создать файл "reklama" с расширением *.txt и закинуть в папку text
Команды в чате: !комнаты !lroom
Автор Moda: HubMasster

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!lroom", new Cmd("!lroom","",39,name));
   cmd.addCommand("!комнаты", new Cmd("!комнаты","",39,name));
   out="Ok";
   return;
}

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

try{
     Vector v = cmd.getParser().parseArgs(msg);
   Users persona = cmd.srv.us.getUser(uin);
   String d = "   |";
   String f = "|";
   String s = "Список комнат Чата:\n   |ID| - Комната (чел.)\n";
   String l = "   |";
   String z = "Чтобы создать свою комнаду, обратитесь к администрации чата, командой: !админам";
   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++;
    }
   void swap(int[] arr, int i, int j) {
        int t = arr[i];
        arr[i] = arr[j];
        arr[j] = t;
    }
   for(int i = rcount-1 ; i >= 0 ; i--){
            for(int j = 0 ; j < i ; j++){
                if( nrooms[j] > nrooms[j+1] )
                    swap(nrooms, j, j+1);
            }
        }
   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
					
					

#65 Junnior

    Новичок

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

Отправлено 05 Октябрь 2009 - 21:44

Скрипт для очистки таблицы log и events

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import ru.jimbot.Manager;
import java.sql.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!очистить", new Cmd("!очистить","",39,name));
   cmd.addAuth("clean","ОЧИСТКА БД");
   out="Ok";
   return;
}

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

try{
cmd.srv.us.db.executeQuery(" TRUNCATE `events` ");
cmd.srv.us.db.executeQuery(" TRUNCATE `log` ");
//Оповещаем
   proc.mq.add(uin,"БД очищена");
   }   catch (Exception ex) {
       ex.printStackTrace();
       proc.mq.add(uin,"ошибка "+ex.getMessage());
}/*Manager.restart();*/ 


#66 Человек

    Специалист

  • Пользователи
  • PipPipPipPip
  • 242 сообщений
  • ГородУдмуртия

Отправлено 08 Апрель 2010 - 21:24

Название: Смена статуса пользователя
Установка: Создать файл с расширением *.bsh и закинуть в папку "/scripts/command"
Автор: HellFaust, по моей просьбе!Спасибо ему за комментарии.

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import ru.jimbot.Manager;
import java.sql.*;

if(in.equals("install")){ // Установка  скрипта, как обработчика команды
        cmd.addCommand("!сстатус", new Cmd("!сстатус","$n $s",39,name));
        cmd.addAuth("chstatus","Изменить статус пользователю");
        out="Ok";
        return;
}

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

try{
        Vector v = cmd.getParser().parseArgs(msg); //парсим строку аргументов
        int id = (Integer)v.get(0); // берем ид юзера
        String sn = (String)v.get(1); //берем статус
        int len = sn.length(); //его длину
        Users us = cmd.srv.us.getUser(id); //определим юзера, которому сеняем
        if(us.id==0){ //проверим, есть ли вообще такой юзер
                proc.mq.add(uin,"Пользователь не найден");
                return;
        }
        if(sn.equals("")||sn.equals(" ")){ //Проверяем наличие статуса
                PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("DELETE FROM info WHERE type = 'STATUS' and user_id =" + us.id); //удаляем
                pst.execute(); // выполним sql
                pst.close(); // закроем соединение с базой
                proc.mq.add(uin,"Статус удален");
                return;
        }
        if(len<20){ // 20 это максимальная длина статуса
                PreparedStatement pst = cmd.srv.us.db.getDb().prepareStatement("DELETE FROM info WHERE type = 'STATUS' and user_id =" + us.id); //если не превышает допустимую длину удалим старый статус
                pst.execute(); // выполним sql
                pst.close(); // закроем соединение с базой
                cmd.srv.us.db.info(us.id, us.sn, "STATUS", 0, "", sn); //запишем новый
                Log.talk("Статус изменен: " + us.id + " - " + sn); //выведем в лог
                proc.mq.add(uin,"У пользователя " +us.localnick+" статус изменен на [" + sn + "]"); // опоаестим отправившего команду о успешном выполнении
				cmd.srv.cq.addMsg(uin,"У пользователя " +us.localnick+" статус изменен на [" + sn + "]");
        } else // если статус привысил допустимую длину
        proc.mq.add(uin,"Слишком длинный статус, максимум 30 символов!"); // оповестим о этом
} catch (Exception ex) { // если вдруг ошибка
        ex.printStackTrace(); // определим ее
        Log.talk("Ошибка изменения статуса: " + ex.getMessage()); // выведем в лог
        proc.mq.add(uin,"Ошибка изменения статуса "+ ex.getMessage()); // оповестим набравшего команду

ЗЫ: У меня скрипт работает прекрасно.Статусы записываются в БД в таблицу info

CREATE TABLE `info` (
  `id` bigint(20) NOT NULL auto_increment,
  `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `user_id` int(11) default NULL,
  `user_sn` varchar(50) default NULL,
  `type` varchar(10) default NULL,
  `user_id2` int(11) default NULL,
  `user_sn2` varchar(50) default NULL,
  `msg` text,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Сообщение отредактировал Человек: 08 Апрель 2010 - 21:37


#67 PRO-NewiX

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 746 сообщений
  • ГородПервоуральск

Отправлено 01 Август 2010 - 18:54

/**
* Скрипт Тайна имен. Например: !имя Ваня
* Pro-Newix
*/
import ru.jimbot.modules.http.HttpConnection;
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("!имя","$s",39,name));
out="Ok";
return;
}

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


try{ 
 Vector v = cmd.getParser().parseArgs(msg);
String name = (String)v.get(0);
String s = MainProps.getStringFromHTTP("http://names.astrostar.ru/?charset_test=%F2%E5%F1%F2&search="+name);
 s = s.split("<div class=\"tiny_block\"><index>")[1];
 s = s.split("<h1>Интересное про имена</h1>")[0];
 s = s.replace("\n",""); 
 s = s.replace("<h1>","Полное имя: "); 
 s = s.replace("</h1>","\n\n"); 
 s = s.replace("<p>",""); 
 s = s.replace("</p>","\n"); 
 s = s.replace("<em>","");
 s = s.replace("</em>","");
 s = s.replace("<br />","\n");
 s = s.replace("&mdash;","-");
 s = s.replace("&laquo;","<<");
 s = s.replace("&raquo;",">>");
 s = s.replace("&quot;","\"");  
 
proc.mq.add(uin,s);
}
catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Обшибка " + ex.getMessage());
}


#68 xakerok

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

  • Пользователи
  • PipPipPip
  • 184 сообщений
  • ГородРоссия Ишим

Отправлено 17 Август 2010 - 11:43

писать за бота
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import sun.io.*;
import ru.jimbot.modules.chat.ChatCommandProc;


//Установка скрипта как обработчика команды
if(in.equals("install")){
   cmd.addCommand("!отадмина", new Cmd("!отадмина","$s",39,name));
   cmd.addCommand("!от", new Cmd("!от","$s",39,name));
   cmd.addCommand("!admsay", new Cmd("!admsay","$s",39,name));
   cmd.addAuth("admsay","Послать сообщение от лица админа");                                                 
   out="Ok";
   return;
}


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

try{
     Vector v = cmd.getParser().parseArgs(msg);
     String text = (String)v.get(0);
     
int room = cmd.srv.us.getUser(uin).room;
//if(cmd.psp.getBooleanProperty("adm.useAdmin"))
cmd.radm.say(text,room);

} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
}

перевод(если был, то извиняюсь)
/**
* translate
*/

import ru.jimbot.modules.http.HttpConnection;
import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
import sun.io.*;



//Установка скрипта как обработчика команды
if(in.equals("install")){
cmd.addCommand("!translate", new Cmd("!translate","$c",39,name));
cmd.addCommand("!перевод", new Cmd("!перевод","$c",39,name));
out="Ok";
return;
}

// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) 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("{\"sentences\":","Варианты перевода: ");
//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;

// OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./text/slova",true),"windows-1251");
// ow.write(s+"<br>\n");
// ow.close();
Log.talk("!перевод" + uin);

//Резка и вывод сообщения 
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());
}

Сообщение отредактировал xakerok: 17 Август 2010 - 20:20


#69 lan666dante

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 767 сообщений
  • ГородТамбов

Отправлено 26 Август 2010 - 00:43

Скрипт покупки транспорта.
Автор: lan666dante(bezzzdelnick)
Скрытый текст

Сообщение отредактировал lan666dante: 26 Август 2010 - 00:59


#70 P@TRi()T

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

  • Пользователи
  • PipPipPip
  • 168 сообщений
  • ГородВоронеж

Отправлено 25 Сентябрь 2010 - 13:37

Название: скрипт отправки своего уина
/**
* Скрипт для отправки юзеру своего uina
*/

/**
* При вызове скрипта определены следующие переменные:
* ChatCommandProc cmd - ссылка на обработчик команд
* IcqProtocol proc - ссылка на процесс обработки icq
* String msg - текст сообщения с командой
* String uin - кто отправил сообщение
* String name - имя этого файла (при процедуре инсталяции скрипта)
*/

import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;

//Установка скрипта как обработчика команды
if(in.equals("install")){
cmd.addCommand("!uin", new Cmd("!uin","$n",39,name));
cmd.addCommand("!уин", new Cmd("!uin","$n",39,name));
cmd.addAuth("uin","команда отправки своего uina");
out="Ok";
return;
}
if(!cmd.isChat(proc,uin)) return;
if(!cmd.auth(proc,uin, "uin")) return;
try{
Vector v = cmd.getParser().parseArgs(msg);
int no = (Integer)v.get(0);
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;
}
Log.talk("CHAT: " + uss.sn + ">> Личное сообщение от " + cmd.srv.us.getUser(uin).localnick + ": Вот мою uin " + cmd.srv.us.getUser(uin).sn);
cmd.srv.us.db.log(uss.id,uin,"OUT",">> Личное сообщение от " + cmd.srv.us.getUser(uin).localnick + ": Вот мой uin " + cmd.srv.us.getUser(uin).sn,uss.room);
cmd.srv.getIcqProcess(uss.basesn).mq.add(uss.sn,"Личное сообщение от " + cmd.srv.us.getUser(uin).localnick + ": Вот мой uin " + cmd.srv.us.getUser(uin).sn);
proc.mq.add(uin,"Сообщение отправлено");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}


#71 чатовед

    Новичок

  • Пользователи
  • Pip
  • 36 сообщений
  • ГородСмоленск

Отправлено 25 Ноябрь 2010 - 19:08

Название: Вывод прогноза погоды
Установка:
- создать файл с расширением *.bsh в папке "/scripts/command"
- создать текстовый файл goroda.txt в папке "/text"
- в админке назначить полномочие pogoda группам пользователей
Команда в чате: !погода
Примечание: Подобный скрипт уже выкладывался на форуме. Но на сайте http://rp5.ru изменили кодировку ленты вывода.
В связи с чем скрипт перестал работать. Я выкладываю переделанный, рабочий скрипт.

Сам скрипт:
Скрытый текст
Содержимое файла goroda.txt
Скрытый текст




Для работы этого скрипта нужно что бы в исходниках, в классе MainProps.java был следующий метод:
Скрытый текст
В стандартном моде SPECa этого метода нет в классе MainProps.java
Что бы скрипт работал и на стандартном моде, надо добавить.
Ну это надо компилировать...

Сообщение отредактировал чатовед: 02 Декабрь 2010 - 19:23






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

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