Как я выполнил несколько запросов на разработку плагинов

Периодически (не так чтобы очень часто), я смотрю что просят разработать участники форумов rubukkit и bukkit. Можно долго рассуждать на тему деления плагинов на категории. Есть интересные, есть банальные. Есть уникальные, а есть (и к сожалению таких гораздо больше) запросы, которые можно реализовать при помощи уже существующих плагинов…

Для себя, же я всегда выделяю ещё одну категорию, «такое можно легко сделать при помощи ReActions».


Легко — это значит буквально за пару минут. Конечно и более сложные идеи зачастую можно реализовать при помощи ReActions, но я всё же рассматриваю его именно как плагин для решения множества мелких задач. Хотя, всегда с восхищением взирал на креативность, которую проявляли некоторые пользователи плагина.

В общем, недавно зашёл на bukkit почитать запросы. И не удержался — сделал активаторы, реализующие запрошенные плагины. Вообще просьб, которые можно было бы закрыть при помощи ReActions я увидел гораздо больше, но оставлять ссылку на ReActions в каждой второй теме — это было бы слишком 😉

Итак, вот эти два запроса и как я их «выполнил».

Limited button presses with a time limit

Автор запрос просил сделать возможность ограничивать использования кнопок в течение какого-то периода времени. Т. е. нажал на кнопку, потом какое-то время ею пользоваться нельзя. Поскольку полная реализация того, что именно нужно автору запроса невозможна (кто его знает что можно к этой кнопке прикрутить — от раздачи призов, до телепортации в недра Незера), то я решил сделать небольшой ролик, который демонстрирует как быстро сделать кнопку, которая «работает» один раз в 10 секунд.

Такая «кнопка» при помощи ReActions создается довольно просто. Нужно всего-навсего воспользоваться флагом DELAY (или DELAY_PLAYER если нужно ограничить пользование кнопкой применительно к игроку, а не глобально) и действие CANCEL_EVENT (для отключения нажатия на кнопку).

Armour Potion Effects

Автор этого запроса просит сделать плагин, который позволяет привязать к каким-либо «предметам одежды» эффекты зелий, которые навешиваются на игрока до тех пор пока игрок не снимет это облачение. Здесь всё ещё проще. Нужно просто создать активатор ITEM_WEAR привязанный к определенному предмету, в котором просто производить наложение эффекта действием POTION на игрока на три секунды (повторная активация ITEM_WEAR по умолчанию происходит один раз в две секунды, поэтому трёх секунд на эффект будет достаточно).