VKAPIBungee 2.0

Плагин для создания ВК ботов для сайта vk.com, с ивентами

  1. Gdame
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    • 1.17
    Source Code:
    https://github.com/U61vashka/VK-API-Bungee
    Contributors:
    Ubivashka
    THIS PLUGIN FOR CREATING CHAT BOTS IN VK.COM
    Данный плагин для создание чат ботов для сайта vk.com. В нем присутствуют ивенты

    На данный момент 43 ивента:
    VKJsonEvent
    VKMessageEvent

    VKMessageTypingEvent
    VKCallbackButtonPressEvent

    VKAudioNewEvent
    VKBoardDeleteEvent
    VKBoardEditEvent
    VKBoardNewEvent

    VKBoardRestoreEvent
    VKGroupChangePhotoEvent
    VKGroupChangeSettingsEvent
    VKGroupOfficersEdit
    VKLikeAddEvent
    VKLikeRemoveEvent
    VKMarketCommentDeleteEvent
    VKMarketCommentEditEvent
    VKMarketCommentRestoreEvent
    VKMessageAllowEvent
    VKMessageDenyEvent
    VKMessageEditEvent
    VKMessageReplyEvent
    VKPhotoCommentDeleteEvent
    VKPhotoCommentEditEvent
    VKPhotoCommentRestoreEvent
    VKPhotoNewEvent
    VKPollVoteNewEvent
    VKPostNewEvent
    VKPostReplyEditEvent
    VKPostReplyEvent
    VKPostReplyRestoreEvent
    VKPostRepostEvent
    VKUserBlockEvent
    VKUserUnblockEvent
    VKUserGroupLeaveEvent
    VKUserGroupJoinEvent
    VKVideoCommentDeleteEvent
    VKVideoCommentEditEvent
    VKVideoCommentEvent
    VKVideoCommentRestoreEvent
    VKVideoNewEvent

    В данный момент отсутвуют ивенты: VKMarketOrderNewEvent, VKMarketOrderEditEvent, ивенты связанный с VKPAY и VK Donut

    Вопросы/Ответы:
    Как отправлять сообщения?
    Код:

    Code (Java):
    //С использованием VKUtil
    //Отправка в личные сообщения юзеру. Могут возникнуть ошибки если группа не может отправить сообщения, подробнее читать тут: https://vk.com/dev/messages.send
    VKAPI.getInstance().vkutil.sendMSGtoUser(ID пользователя,Сообщение);

    //Отправка сообщения в беседу, или в личку юзера используя PeerId (int) ( Его можно получить если использовать message.getPeerId())
    VKAPI.getInstance().vkutil.sendMSGtoPeer(peerID,Сообщение);

    //Без использования VKUtil
    //Юзеру:
    try{
    VKAPI.getInstance().vk.messages().send(VKAPI.getInstance().actor).message("Сообщение").userId(ID пользователя).randomId(VKAPI.getInstance().random.nextInt(10000)).execute();
    } catch (ApiException | ClientException e) {
                e.printStackTrace();
    }
    //В беседу
    try{
    VKAPI.getInstance().vk.messages().send(VKAPI.getInstance().actor).message("Сообщение").peerId(message.getPeerId()).randomId(VKAPI.getInstance().random.nextInt(10000)).execute();
    } catch (ApiException | ClientException e) {
                e.printStackTrace();
    }

    Как использовать ивенты?
    Ответ: Точно так же как и обычные ивенты от банжи.

    Что требуется для запуска бота?
    Ответ: Токен и ID группы.

    Насколько большая нагрузка?
    Ответ: Нагрузки почти не заметно, потому что проверка ивентов происходит в асинхронном режиме.

    Как выглядит конфиг?
    Ответ:

    Code (Text):
    groupInfo:
      groupID: idВашейГруппы
      groupToken: 'ТутВашТокен' #ВНИМАНИЕ! Не делитесь ни с кем вашим токеном, иначе это даст доступ к боту
    settings:
      delay: 20 #ВНИМАНИЕ! Не ставьте слишком низкие числа ( не ниже 5)
      disableGroupListener: true #Плагин будет игнорировать сообщения от групп
    Как добавить кнопки?
    Ответ:

    Code (Java):
            //Создаём клавиатуру

           Keyboard keyboard = new Keyboard();

           //Создаём список который хранит все линии

           List<List<KeyboardButton>> allKey = new ArrayList<>();

           //Создаём для каждой линии список кнопок

           List<KeyboardButton> line1 = new ArrayList<>();

           List<KeyboardButton> line2 = new ArrayList<>();

           //Добавляем в первую линию кнопку с цветом DEFAULT

           line1.add(new KeyboardButton()
                   .setAction(new KeyboardButtonAction().setLabel("Дефолт кнопка").setType(TemplateActionTypeNames.TEXT))
                   .setColor(KeyboardButtonColor.DEFAULT));

           //Добавляем в первую линию кнопку с цветом NEGATIVE

           line1.add(new KeyboardButton()
                   .setAction(new KeyboardButtonAction().setLabel("Негативная кнопка").setType(TemplateActionTypeNames.TEXT))
                   .setColor(KeyboardButtonColor.NEGATIVE));

           //Добавляем в вторую линию кнопку с цветом POSITIVE

           line2.add(new KeyboardButton()
                   .setAction(new KeyboardButtonAction().setLabel("Позитивная кнопка").setType(TemplateActionTypeNames.TEXT))
                   .setColor(KeyboardButtonColor.POSITIVE));

           //Добавляем в вторую линию кнопку с цветом PRIMARY

           line2.add(new KeyboardButton()
                   .setAction(new KeyboardButtonAction().setLabel("Основная кнопка").setType(TemplateActionTypeNames.TEXT))
                   .setColor(KeyboardButtonColor.PRIMARY));

           //Добавляем линии в список

           allKey.add(line1);

           allKey.add(line2);

           //keyboard.setOneTime(true) при таком коде клавиатура исчезнет после её использования

           //Прикрепляем клавиатуру К сообщению, ВНИМАНИЕ!!! OneTime и Inline (true) не работают вместе

           keyboard.setInline(true);

           //Выставляем кнопки

           keyboard.setButtons(allKey);

           //Чтобы прикрепить к сообщению используем .keyboard(Клавиатура)

           //Пример:

           vk.messages().send(actor).message("Текст").peerId(message.getPeerId()).randomId(random.nextInt(10000))
                                            .keyboard(keyboard).execute();
    Результат:

    [​IMG]

    Если найдете баги пишите мне в ВК, либо в Discussions!

    Мой ВК: vk.com/bbaty45

    Использованная библиотека: https://github.com/VKCOM/vk-java-sdk
    MishaNeYT likes this.