Создание плагина Майнкрафт
Здравствуйте посмотрел темы на пикабу станет ясно что уроков по написанию плагинов увы очень и очень мало. Зато запросов на разработку плагинов довольно много.
Работа с plugin.yml
Работа с командами
Написать плагин для Bukkit не так уж и сложно.Плагины могут перехватывать эвенты (события) изменять или анулировать результат к примеру эвенты входа и выхода с сервера игроков выглядят так:
Код:
public void onJoin(PlayerJoinEvent event) {
event.setJoinMessage(event.getPlayer().getName() + " вошел на сервер");
}
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
}
и добавляем
Код:
public void onEnable() {
getServer().broadcastMessage("Мой плагин включен");
}
public void onDisable() {
getServer().broadcastMessage("Мой плагин отключен");
}
public void onJoin(PlayerJoinEvent event) {
event.setJoinMessage(event.getPlayer().getName() + " зашел на сервер");
}
public void onQuit(PlayerQuitEvent event) {
event.setQuitMessage(event.getPlayer().getName() + " покинул сервер");
}
onEnable() - срабатывает когда плагин включается
onDisable() - срабатывает когда плагин выключается
с PlayerJoinEvent и PlayerQuitEvent сделать тоже самое(иморт)
Готово теперь можно скомпилировать код и плагин готов.
Знаете почему этого нет на Пикабу? Потому что для этого есть соответствующие сайты, например сайт, с которого был скопирован этот текст.
http://rubukkit.org/threads/sozdanie-plaginov-s-primerami.20143/
о! ну теперь то всё понятно !
ты жив ? Можно как-то дакачивать новому игроку на сервере мод? или ручками по старинке?