2. Пишем свой первый скрипт. Итог

spec аватар

И так. В прошлой статье мы разобрали исходные тексты бота и определили как проще всего создать свой скрипт "списав" его с конкретного примера в исходниках. Приступим.

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

//Установка скрипта как обработчика команды
if(in.equals("install")){
	cmd.addCommand("!txt", new Cmd("!txt","",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{
	//Прочитаем текст из файла
	String s = cmd.psp.loadText("./text/text1.txt");
	//Разбиваем текст на куски, в качестве разделителя будет использовате тег <br>
	String[] ss = s.split("<br>");
	//По очереди отсылаем куски текста юзеру, точнее - помещаем их в очередь
	//исходящих сообщений уина, на котоором этот юзер сидит.
	for(int i=0;i<ss.length;i++){
		proc.mq.add(uin,ss[i]);
	}
} catch (Exception ex) {
    ex.printStackTrace();
    proc.mq.add(uin,"Ошибка "+ex.getMessage());
} 

 И так, что мы тут видим? Во первых, я указал объект полномочий txtread - вы естественно придумаете свой, подходящий по смыслу задуманной команды. И название ей тоже подберете свое. Далее, конструкция try - catch занимается обработкой исключительных ситуаций в нашем скрипте, то есть ошибок. Прошу обратить внимание, что я использовал конструкцию cmd.psp.loadText, а не просто psp.loadText, как это используется в исходных текстах бота. Причина была указана в предыдущей статье.

 Хелп в боте разбивается на части, так сложилось исторически от старых версий бота. Сейчас бот умеет автоматически разбивать отправляемые сообщения на куски. Если вас не устраивает как он это делает - вставте в нужных местах текста символы <br>. В следующей строке происходит как раз такое преобразование строки в строковый массив.

 Затем мы видим цикл, перебирающий элементы этого массива, и отправляющий их пользователю, набравшему команду.

 Вот вобщем то и весь скрипт. В следующий раз попробуем написать чего-нибудь посложнее :)

5
Your rating: Нет Average: 5 (5 votes)

Комментарии

BosZZZ аватар
Всё работает!
BosZZZ аватар
Наберите ещё на других примерах скриптов))