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


плагины для 0.5.0_alpha_3


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

#61 Serega

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

  • Специалисты
  • PipPip
  • 77 сообщений
  • ГородОктябрьский

Отправлено 01 Апрель 2011 - 19:00

Просмотр сообщения~...Alexei...~ (01 Апрель 2011 - 15:46) писал:

p.s а где теперь бд посмотреть можно?
Бот работает с БД SQLite и находится она в папке с сервисом...
Папка_с_ботом\services\Название_сервиса\db
К примеру: 0.5.0_alpha_3\services\ChatBot\db - БД чата
Скрытый текст


#62 Black_Kot

    Профи

  • Модераторы
  • 409 сообщений
  • ГородTokio

Отправлено 01 Апрель 2011 - 19:13

хм. для просмотра и редактирования баз данных SQLite есть еще бесплатный плагин к браузеру Mozilla Firefox, называется SQLite Manager.
скачать можно здесь http://code.google.c...sqlite-manager/
P.S. не реклама.

#63 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 816 сообщений
  • ГородТамбовская обл.

Отправлено 10 Апрель 2011 - 18:03

Делать было нечего, вот решил написать статейку, задавались разные вопросы связанные с этим.. авось пригодится кому нибудь...
Речь идет о расширении функционала чата, а именно командах для него..
Собственно как все это работает на 5 ветке.
Все намного проще чем кажется по началу:

И так, что мы имеем, есть плагин jimbot.сhat.command
в нем пакет с классами ru.jimbot.modules.chat.commands
Каждый отдельный класс это отдельная команда, так же здесь присутствует еще один класс CommandBuilder
собственно отсюда и попадают команды в основной плагин чата
Скрытый текст
здесь находится коллекция всех классов с командами

Рассмотрим на примере как добавить новую команду:
для примера возьмем простой метод отправки приватных сообщений из предыдущей ветки бота
Скрытый текст
первое что нам нужно сделать это создать класс где будут содержаться методы новой команды
назовем его CmdPrivate
Скрытый текст
сейчас здесь находятся основные методы которые должны содержаться в каждом классе команд
остановлюсь на некоторых из них
метод
    public Message exec(Message m) {
        this.m=m;
        return new Message(m.getSnOut(), m.getSnIn(), exec(m.getSnIn(), p.getArgs(m, "$n $s")));
    }
собственно с него все и начинается,
получаем сообщение с командой, если она содержит аргументы, то получаем их (p.getArgs(m, "$n $s")) и вызываем основной метод
public String exec(String uin, Vector v) в котором уже и будет переделанный код из старой ветки бота
сейчас этот метод пустой
    /**
     * Выполнение команды
     *
     * @param uin - от кого?
     * @param v - вектор параметров (могут быть как строки, так и числа)
     * @return - результат (если нужен)
     */
    public String exec(String uin, Vector v) {
    
         return null;
    }
вот так он будет выглядеть в итоге
Скрытый текст
начнем с отличий от старого метода,их не так много..
так как в новой ветки команды в отдельном плагине нам прежде всего нужно объявить нужные классы из чатмодуля
         UserWork uw =((ChatService)p.getService()).getUserWork();
         ChatConfig psp =((ChatService)p.getService()).getConfig();
         ChatQueue cq =((ChatService)p.getService()).getChatQueue();
         ChatCommandParser ccp =((ChatCommandParser)p);
и уже дальше использовать их в коде
отправка сообщений тоже здесь подверглась измененениям
раньше было
proc.mq.add(uin,"Слишком длинное сообщение было обрезано: " + txt);
сейчас
cq.sendMsg(new Message(m.getSnOut(), m.getSnIn(), "Слишком длинное сообщение было обрезано: " + txt));
где
m.getSnOut() - получаем из сообщения уин на который пришла команда(уин нашего чата)
m.getSnIn() - получаем из сообщения уин того кто прислал сообщение с командой
т.е.
cq.sendMsg(new Message(уин чата, уин кому отсылаем, "Сообщение "));
в принципе остальное почти не поменялось,
из сравнения старого и нового метода можно догадаться как что работает)
в итоге получаем готовый класс
Скрытый текст
теперь только осталось добавить его в класс CommandBuilder о котором я писал выше
Скрытый текст
если все сделать правильно в итоге получаем новую команду в чате

Сообщение отредактировал ~ёМАё~: 10 Апрель 2011 - 21:51


#64 6ap6apuc

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

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

Отправлено 15 Апрель 2011 - 20:23

По идеи осталось то же самое, можно спокоино 5 ветку, переделывать под игры :mrgreen: только мне кажется с викториной будут заморочки, и с остальными командами, в которых интерактива, или же так же все осталось?

#65 nek

    Профи

  • Модераторы
  • 2 293 сообщений

Отправлено 15 Апрель 2011 - 20:39

И почему же это тебе так кажется?
Может быть потому что ты ничего не понимаешь в вопросе, но желаешь показаться "своим"?

#66 Пушкожук

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 617 сообщений
  • ГородМосква

Отправлено 15 Апрель 2011 - 22:05

Просмотр сообщения6ap6apuc (15 Апрель 2011 - 20:23) писал:

По идеи осталось то же самое, можно спокоино 5 ветку, переделывать под игры :mrgreen:
А зачем? Чем тебя не устраивает 4-я ветка?

#67 Zloff

    Профи

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

Отправлено 15 Апрель 2011 - 22:56

вот не надо загажывать 5ку говно играми, викторину то еще можно и нужно. остальное только хлам

#68 daNce

    Профи

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

Отправлено 16 Апрель 2011 - 16:46

Zloff, кто что захочет, то и поставит!

#69 HITMAN

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений
  • ГородМожайск

Отправлено 24 Июнь 2012 - 16:30

Народ можете перезалить ссылку а то файл не существует





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

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