Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [MECH] KeyCombinator 0.1 - комбинации кнопок!

Larin

Старожил
Пользователь
Баллы
103
Сделал свой первый публичный плагин(второй, в первом был всего 1 класс =)).
Что это такое? Этот плагин позволяет создавать свои комбинации кнопок и выполнять команды при совпадении комбинации введённой пользователем с комбинацией в конфиге.
Доступные "кнопки": ПКМ по воздуху, по блоку; ЛКМ по воздуху, по блоку; Шифт(кнопка "красться"), и кнопка рывка.
Как настраивать?
В папке с плагином появятся 2 папки.
Код:
commands и sequences
В этих папках хранятся комбинации и команды.
При первом запуске появляются 2 конфига, они служат примером.
В папке commands есть файл example.yml, в этом файле хранятся команды, которые будут выполнены при совпадении комбинации.
Пример:
YAML:
PLAYER:
  - 'say %player_name% executed %keycombinator_sequence%!'
CONSOLE:
  - 'say %player_name% hahaha!'

В блоке PLAYER команды выполняются от имени игрока, в блоке CONSOLE из консоли.
Имя файла с командами является именем блока команд.

В папке с комбинациями есть файл example.yml, в этом файле хранится комбинация и названия блоков команд, которые будут выполнены при совпадении команд.
Пример:
YAML:
commands:
- example
sequence:
- RMB_AIR
- SPRINT
- SNEAK

commands - названия блоков команд, которые будут исполнены.
sequence - комбинация, необходимая для выполнения блоков команд.

Permissions:
YAML:
keycombinator.sequence.ИМЯ_КОМБИНАЦИИ
Имя комбинации - название файла с комбинацией.

Кнопки, которые отслеживаются:
Код:
LMB_BLOCK - ЛКМ по блоку
LMB_AIR - ЛКМ - по воздуху
RMB_BLOCK - ПКМ по блоку
RMB_AIR - ПКМ по воздуху
SNEAK - нажатие кнопки "красться"(def: shift)
SPRINT - бег игрока.(w+w или ctrl+w)

ПКМ по воздуху не отслеживается, если в руках ничего нет!(особенность майна).

Для работы вставок необходим PlaceholderAPI!

Скачать:
https://github.com/XakepSDK/KeyCombinator/releases/tag/0.1

Тестировано на версии: Spigot 1.10.2 (проверил только комбинации и нашел 1,5 бага =))

TODO:
1. Пофиксить баги, которые знаю.
2. Привести код в порядок.
3. Комбинации в инвентаре.
4. Запись комбинаций из игры.
5. Запись блоков команд из игры.

Жду критику.
@CoolBoy
@Dereku
@Mr_RoboMan

Все, кого вспомнил на данный момент... Зовите еще.
 
Последнее редактирование:
Можно ли отслеживать нажатия клавиши Enter?
 
Отлично, благодаря тебе я узнал о существовании этих ивентов:
Код:
    @EventHandler
    public void onPlayerSprint(PlayerToggleSprintEvent event) {
        if(event.isSprinting()) {
            callKeyPressEvent(event.getPlayer(), Key.SPRINT);
        }
    }

    @EventHandler
    public void onPlayerSneak(PlayerToggleSneakEvent event) {
        if(event.isSneaking()) {
            callKeyPressEvent(event.getPlayer(), Key.SNEAK);
        }
    }
Я в своей версии делал костыли из прослушивания PlayerMoveEvent раз в 10 тиков... И проверки бежит ли игрок/сидит ли игрок -_-
 
Отлично, благодаря тебе я узнал о существовании этих ивентов:
Код:
    @EventHandler
    public void onPlayerSprint(PlayerToggleSprintEvent event) {
        if(event.isSprinting()) {
            callKeyPressEvent(event.getPlayer(), Key.SPRINT);
        }
    }

    @EventHandler
    public void onPlayerSneak(PlayerToggleSneakEvent event) {
        if(event.isSneaking()) {
            callKeyPressEvent(event.getPlayer(), Key.SNEAK);
        }
    }
Я в своей версии делал костыли из прослушивания PlayerMoveEvent раз в 10 тиков... И проверки бежит ли игрок/сидит ли игрок -_-
=) Не зря же я всегда посылаю JavaDocs читать :D
Also, в моём плагине 2 своих эвента есть, их можно слушать в любом другом плагине.
@alexandrage
Вспомнил еще.
Ну же! Жду отзывы =)
 
Я тут 1ну игру вспомнил, там нужно было нажать компинацию кнопок чтоб босса вызвать D.
 
А мне это напоминает чит-коды для gta, когда просто вводишь код.
Да не, там есть некий нпс, он говорит комбинацию для вызова босса. Идем в команату босса, шмякаем кнопки, типо колдуем.
P.s а если по теме, чатгуард Пи не выдаст за флуд командами ?)
 
SkillAPI использует(использовала) такую систему для каста скиллов. Очень интересно)
 
Намальна
D83DDC4C.png
 
ПКМ по воздуху не отслеживается, если в руках ничего нет!(особенность майна).
Может стоит подрубить какой-нибудь ProtocolLib и всё-таки попробовать сделать поддержку? Хотя не уверен, что клиент информирует сервер в случае отсутствия предмета...
И да, что-то мне подсказывает, что в GM2 тоже может не работать ЛКМ или ПКМ по блоку/воздуху.
 
Может стоит подрубить какой-нибудь ProtocolLib и всё-таки попробовать сделать поддержку? Хотя не уверен, что клиент информирует сервер в случае отсутствия предмета...
И да, что-то мне подсказывает, что в GM2 тоже может не работать ЛКМ или ПКМ по блоку/воздуху.
Вряд ли, в бакките была бы тогда поддержка.
 
Спасибо за плагин :)
Комбинации и команды создаются в разных файлах? То есть сделал я одну комбинацию, а следующую делать в другом файле?
Я тут 1ну игру вспомнил, там нужно было нажать компинацию кнопок чтоб босса вызвать D.
Мне лично нужен был плагин для каста магии, у которой есть кудлаун, так что норм.
 
Спасибо за плагин :)
Комбинации и команды создаются в разных файлах? То есть сделал я одну комбинацию, а следующую делать в другом файле?

Мне лично нужен был плагин для каста магии, у которой есть кудлаун, так что норм.
Да, в другом файле.
P.S. плагин еще не закончен. Было лень сегодня доделывать.
 

Поделиться этой страницей

Назад
Верх