Создание плагина Майнкрафт

Здравствуйте посмотрел темы на пикабу станет ясно что уроков по написанию плагинов увы очень и очень мало. Зато запросов на разработку плагинов довольно много.

Работа с plugin.yml

Работа с командами



Написать плагин для Bukkit не так уж и сложно.Плагины могут перехватывать эвенты (события) изменять или анулировать результат к примеру эвенты входа и выхода с сервера игроков выглядят так:

Код:

@EventHandler

public void onJoin(PlayerJoinEvent event) {

event.setJoinMessage(event.getPlayer().getName() + " вошел на сервер");

}

@EventHandler

public void onQuit(PlayerQuitEvent event) {

event.setQuitMessage(event.getPlayer().getName() + " покинул сервер");

}

Рассмотрим их повнимательнее. "@EventHandler" перед функцией означает что дальше идёт перехват эвента, то есть когда игрок заходит или выходит с сервера будет срабатывать та или иная функция при этом в переменную "event" будут переданы некоторые значения.

event.getPlayer() - мы получим игрока который вошел или вышел

event.getQuitMessage() - мы получим сообщение которое будет выведено в игре

Изменить игрока не получится зато можно изменить сообщение:

event.setJoinMessage(event.getPlayer().getName() + " вошел на сервер");

Рассмотрим этот код:

event.setJoinMessage() - задаёт выводимое сообщение тоесть мы можем написать event.setJoinMessage("Hello World!") и у игроков в игре будет выведено сообщение "Hello World!"

event.getPlayer().getName() - этим можно получить имя игрока и если передавать значение переменной то оно будет String :

String playername = event.getPlayer().getName();

Так инициализируется переменная playername содержащая текстовую информацию,

в конце должен стоять знак ";" означающий завершение строки иначе при компиляции будет ошибка.

Дальше идёт " + " вошел на сервер"" при объединении переменной и текста между ними ставится знак "+" а текст оборачивается в кавычки , пример:


Код:

String a = "Hello";

String b = "World";

event.setJoinMessage(a + " " + b + "!");

на экран будет выведено "Hello World!"

замете что знак + не заменяется на пробел а просто играет роль связующего.


Теперь давайте приступим к написанию самого плагина.


Во первых понадобится программа для компиляции кода, я посоветую использовать

NetBeans IDE

выберете для Java EE. После установки нужно скачать craftbukkit.

Теперь зайдите в NetBeans и нажмите "Создать проект" (светло коричневая папка с плюсиком в панеле инструментов)

Выберете Java => Приложение Java , введите папку и название проекта после в поле создать главный класс ставте галочку и вводите MyProject.Main

MyProject - пакет классов (папка) можно ввести название вашего плагина но не должно быть пробелов

Main - главный класс проекта

Нажмите готово и у вас должен будет создаться проект и открыться класс Main

Теперь заходим в папку с проектом и создаём папку lib в неё помещаем скачанный craftbukkit после переключаемся сново в NetBeans жмём правой кнопкой по проекту (слева) заходим в свойства, в открывшемся окне выбираем "Библиотеки" и жмём "добавить папку или jar" и выбираем craftbukkit.jar, жмём ок и ещё раз ок.

Возвращаемся к главному классу

Меняем

Код:

public class Main { {

на

Код:

public class Main extends JavaPlugin implements Listener { {

JavaPlugin и Listener будут подчёркнуты красным нажимаем на них и зажимаем Alt+Enter появется подсказка жмём "Добавить оператор импорта org.bukkit.event.Listener"

потом по другому слову тоже самое и выбираем "Добавить оператор импорта org.bukkit.plugin.java.JavaPlugin"

убираем

Код:

public static void main(String[] args) {

// TODO code application logic here

}

и добавляем

Код:

@Override

public void onEnable() {

getServer().broadcastMessage("Мой плагин включен");

}

@Override

public void onDisable() {

getServer().broadcastMessage("Мой плагин отключен");

}

@EventHandler

public void onJoin(PlayerJoinEvent event) {

event.setJoinMessage(event.getPlayer().getName() + " зашел на сервер");

}

@EventHandler

public void onQuit(PlayerQuitEvent event) {

event.setQuitMessage(event.getPlayer().getName() + " покинул сервер");

}

onEnable() - срабатывает когда плагин включается

onDisable() - срабатывает когда плагин выключается

с PlayerJoinEvent и PlayerQuitEvent сделать тоже самое(иморт)

Готово теперь можно скомпилировать код и плагин готов.

4
Автор поста оценил этот комментарий

Знаете почему этого нет на Пикабу? Потому что для этого есть соответствующие  сайты, например сайт, с которого был скопирован этот текст.

http://rubukkit.org/threads/sozdanie-plaginov-s-primerami.20143/

1
Автор поста оценил этот комментарий
Зачем это мне здесь? Я на Пикабу деградировать захожу:)
1
Автор поста оценил этот комментарий

о! ну теперь то всё понятно !

0
Автор поста оценил этот комментарий
Привет. Я сам не геймер. Есть у меня сын. Ему 6 лет. Играет в телефоне в игрушки. И понравилось ему играть в Майнкрафт. Правда , сам Майнкрафт платный в гуглплей. Играет в похожие игры. Хочет оригинал. Я через 4пда скачал что-то , там ещё моды какие то , но я не шарю. В общем , не идёт. Там вроде даже для 2.3 андроид , но у меня на 5.0 не идёт. Не знаю , что делать. Хочу на ноутбуке поставить ему . Какие шаги нужны для этого. Пока не по сети чтобы играл. Пусть поучится. Ноут не игровой. Простой dexp. Пару лет ноуту, из разряда 15000 р. Я думаю , для Майнкрафта не нужно крутых видеокарт и прочих наворотов. Можешь обьяснить или помочь?
раскрыть ветку
0
Автор поста оценил этот комментарий

ты жив ? Можно как-то дакачивать новому игроку на сервере мод? или ручками по старинке?