[Guide] Создание плагинов под бетку, часть 2(Эвенты)

[Guide] Создание плагинов под бетку, часть 2(Эвенты)
И снова здравствуйте. Я уже рассказывал о включении и выключении плагина и еще пару вещей. В этом гайде я собираюсь показать как именно нужно создавать эвенты на версии меньше 1.1 релиза. Это не так уж и сложно, если все понять. Нужно будет создать 3 листенера и каждый Java класс для него. Листенеры именно BlockListener, EntityListener, PlayerListener.

Итак, с прошлого гайда у нас остался вот такой вот код:

Сейчас мы будем его усовершенствовать. Для начала прописываем внутрь onEnable () вот что:

Делаем примерно 2 пробела для большей удобности и дописываем еще:

PluginManager pm — И есть ключ к эвентам, без него никак. Хотя можно обойтись без pm просто прописав .getServer (), но для большей удобности лучше дать значение ПлагинМенеджеру.
Делаем еще один проблем и снова добавляем:

Это уже наши Листенеры. Пока что в BlockListener будет некоторая ошибка, но к концу гайда она пройдет. Для каждого типа нужен свой Листенер. Т.е. если попробовать сделать что-то связанное с игроком в EntityListener или в BlockListener, то это выдаст ошибку. Связанное с игроком — PlayerListener, Энтити — EntityListener, блоки, собственно, в BlockListener.

Делаем еще один пробел и там уже будут регистрация эвентов.
Ну, а пока идем в самый верх и после extends JavaPlugin{ пишем:

main нужно заменить на название своего главного класса!
Создаем Java классы EntityListener, PlayerListener, bListener.

Переходим в EntityListener:
Внутри нужно расширить класс. Заменяйте public class EntityListener { на public class EntityListener extends org.bukkit.event.entity.EntityListener {
Внутри пишем: public static main plugin;
Опять же, main заменяется на название своего класса
Чуть снизу дописываем:

Энтити листенер готов! Вот вам пример:

Этот пример позволяет свиньям выпадать седло, если на свинье было седло и она погибла.
Итак, идем к PlayerListener:
там заменяем public class PlayerListener { на public class PlayerListener extends org.bukkit.event.player.PlayerListener {
Внутри прописываем:
public main plugin;
public org.bukkit.Server server;
И снова пишем:

PlayerListener готов тоже!
Теперь к bListener. Сейчас в главном классе могут быть ошибки, так как мы еще не сделали внутри пару вещей. Итак, идем в класс БлокЛистенер. Заменяем public class bListener{ на public class bListener extends BlockListener{
Все готово! Теперь вы научились создавать эвенты на бете!
Осталось только зарегистрировать эти эвенты в основном классе.
Идем в основной класс, снизу листенеров прописываем вот что:
pm.registerEvent(Event.Type.PLAYER_MOVE, pListener, priority, plugin);
Итак
pm - ПлагинМенеджер
Event.Type - Тип эвента, заменяете на свой
pListener - листенер, где находится эвент. Скажу еще раз - Нельзя делать Ентити эвент в блоклистенере и т.п., это приведет к ошибке!

Ну и все! Все готово! У вас есть эвенты, вы можете творить чудеса!

Вот как получилось у меня.






Голосуй за новость:
(+6.206-0.20)
  • Просмотров: 1 432
  • Комментариев: 0
Рекомендуемое для Вас:
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию.

Последние сообщения с форума

Название темы Автор Статистика Последнее сообщение
Ищу АКТЕРА для съмок ВИДЕО по майнкрафту.

Тема в разделе: Новости

Junkie16

Просмотров: 57

Ответов: 0

Автор: Junkie16

Вчера, 22:10

Видео/Стримы канал Ritterydam

Тема в разделе: Флудильня

ritterydam

Просмотров: 110884

Ответов: 531

Автор: ritterydam

Вчера, 21:43

Загружается мир до 100% и все 1.16.5

Тема в разделе: Техническая поддержка сайта

Romanov_2

Просмотров: 67

Ответов: 0

Автор: Romanov_2

Вчера, 20:20

Помогите со сборкой на версии 1.7.10

Тема в разделе: Ваши вопросы по Minecraft

Zelsovich8321

Просмотров: 232

Ответов: 5

Автор: egg2003

Вчера, 15:06

Крутой сервер 1.20.4

Тема в разделе: Игры

Ytenok

Просмотров: 110

Ответов: 0

Автор: Ytenok

Вчера, 13:06