Guf
Игрок
Итак, мальчики и девочки. Многие из нас играют в эту замечательную песочницу. И чуть меньше людей желают открыть свой сервер со своими шахматами и пионерками, со своим набором плагинов… Но случается и так, что нужного плагина порой не найти или нужна какая-то мелочовка, которая вшита только в монструозные плагины.
Сегодня я вас научу как писать плагины для сервера майнкрафта.
Подготовка.
Нам понадобятся следующие «инструменты»:
1. клиент minecraft;
2. сервер Bukkit;
3. Bukkit API;
4. среда разработки Eclipse;
5. базовые знания Java.
Если базовых знаний по Java нет, то я надеюсь, что хоть по какому-то языку программирования у вас есть базовые знания (тот же pascal abc). Если их нет то вам тут делать почти нечего .В таком случае бежим в гугл и ищем самоучители/учебники/справочники по Java.
Все ссылки даны в конце статьи.
Устанавливаем и запускаем Эклипс. Знакомить вас с его интерфейсом не стану. В Гугле можно много статей на эту тему найти.
Первым делом, создаем новый проект (Java Project).
В появившемся окне, в поле Project name, пишем любое название. В группе JREможно
выбрать версию библиотек Java, которые будут подключены к проекты. Хотя я не знаю на сколько это сильно влияет на результат, но всегда можно изменить эти параметры в настройках проекта и занаво пересобрать плагин.
.
Слева, в Package Explorer, мы увидим наше древо проекта. Там пока ничего путного нету. Даже компилировать нечего. Исправим ситуацию. Добавим сначало Пакет(package). Грубо говоря,
Пакет – это пространство имен(namespace) и служит для унификации переменных и функций.
В полу Name вводим имя пакета. Формат имени должен быть примерно такой: me.dmitriymx.firstplg.
Теперь добавим Class в пакет.
В поле Name вводим имя нового класса (у меня это DmxFirstPlugin).
Все остальные пункты оставляем как етсь и подтверждаем создание.
Вот вроде и всё с подготовкой… Хотя нет. Забыли про Bukkit API. Скачиваем в любую папку(лучше в ту же, где и workspace, чтобы не потерять) и подключаем его к проекту. Для этого кликаем пкм(правой кнопкой мыши) на папке вашего проекта в Package Explorer и выбираем Properties. В появившемся окне, слева, выбираем пункт Java Build Path. Справа теперь выбираем Libraries. Далее жмем кнопку Add External JARs и выбираем скаченный Bukkit API.
Создание каркаса для плагина
Теперь приступим непосредственно к программированию.
Изменим это
public class DmxFirstPlugin{
на это
public class DmxFirstPlugin extends JavaPlugin{
Эклипс подчеркнет нам JavaPlugin, указывая на ошибку в коде. Если подвести мышь к такому подчеркнутому коду, то откроется окошко с описанием ошибки и способы ее решения. В данном случае нам нужно импортировать класс из Bukkit API, для чего выбираем пункт Import ‘JavaPlugin’(org.bukkit.plugin.java). И сразу же замечаем. как над всем нашим кодом вписалась строчка
import org.bukkit.plugin.java.JavaPlugin;
Но вот опять Эклипсу что-то не нравится и он нам подчеркивает теперь класс DmxFirstPlugin. Повторяем трюк с подсказкой и выбираем первый пункт решения проблеммы: добавить недостоющие методы нашего класса. После этого, нам допишут 2 метода: onEnabled и onDisabled.
Событие onEnabled происходит, когда сервер подключает наш плагин при старте. Т.е. код расположенный в этом метоже будет выполнен самым первым. Именно по этому, onEnabled() используют как инициализацию плагина, прописывая там глобальные переменные и прочие подготовительные процедуры.
Событие onDisabled, соответственно. происходит при отключении плагина во время выключения сервера. Этот метод используют как деструктор, где освобождается память от уже ненужных данных и закрываются разного рода соединения(если, напиример, плагин подключался к бд)
Теперь «закрепим» на переменной вывод консоли сервера. для этого, перед всеми методами напишем:
private static final Logger mclog = Logger.getLogger("minecraft");
А в методах onEnabled и onDisabled:
public void onEnable() {
mclog.info("[DmxFirstPlugin] Start");
}
public void onDisable() {
mclog.info("[DmxFirstPlugin] Stop");
}
В итоге, должен получится вот такой вот код:
package me.dmitriymx.firstplg;
import java.util.logging.Logger;
import org.bukkit.plugin.java.JavaPlugin;
public class DmxFirstPlugin extends JavaPlugin{
private static final Logger mclog = Logger.getLogger("minecraft");
@Override
public void onDisable() {
mclog.info("[DmxFirstPlugin] Stop");
}
@Override
public void onEnable() {
mclog.info("[DmxFirstPlugin] Start");
Последний штрих перед компиляцией. Надо добавить файл описания для нашего плагина.
Клик пкм по src, New->File. В File name пишем plugin.yml. В него пишем следующий текст:
name: FirstSamplePlugin
main: me.dmitriymx.firstplg.DmxFirstPlugin
version: 1.0
А вот теперь компилация.
<CTRL+S> для сохранения кода. Клик пкм по папке src и выбираем Export. В окне открываем папку Java и выбираем там JAR file. После нажатия на Next, жмем на Browse и сохраняем файл сразу в папку плагинов сервера(plugins). Finish.
Запускаем сервер и убеждаемся, что все работает как мы хотим:
На сегодня всё. Мы получили каркас для будующих плагинов.
Сегодня я вас научу как писать плагины для сервера майнкрафта.
Подготовка.
Нам понадобятся следующие «инструменты»:
1. клиент minecraft;
2. сервер Bukkit;
3. Bukkit API;
4. среда разработки Eclipse;
5. базовые знания Java.
Если базовых знаний по Java нет, то я надеюсь, что хоть по какому-то языку программирования у вас есть базовые знания (тот же pascal abc). Если их нет то вам тут делать почти нечего .В таком случае бежим в гугл и ищем самоучители/учебники/справочники по Java.
Все ссылки даны в конце статьи.
Устанавливаем и запускаем Эклипс. Знакомить вас с его интерфейсом не стану. В Гугле можно много статей на эту тему найти.
Первым делом, создаем новый проект (Java Project).
В появившемся окне, в поле Project name, пишем любое название. В группе JREможно
выбрать версию библиотек Java, которые будут подключены к проекты. Хотя я не знаю на сколько это сильно влияет на результат, но всегда можно изменить эти параметры в настройках проекта и занаво пересобрать плагин.
.
Слева, в Package Explorer, мы увидим наше древо проекта. Там пока ничего путного нету. Даже компилировать нечего. Исправим ситуацию. Добавим сначало Пакет(package). Грубо говоря,
Пакет – это пространство имен(namespace) и служит для унификации переменных и функций.
В полу Name вводим имя пакета. Формат имени должен быть примерно такой: me.dmitriymx.firstplg.
Теперь добавим Class в пакет.
В поле Name вводим имя нового класса (у меня это DmxFirstPlugin).
Все остальные пункты оставляем как етсь и подтверждаем создание.
Вот вроде и всё с подготовкой… Хотя нет. Забыли про Bukkit API. Скачиваем в любую папку(лучше в ту же, где и workspace, чтобы не потерять) и подключаем его к проекту. Для этого кликаем пкм(правой кнопкой мыши) на папке вашего проекта в Package Explorer и выбираем Properties. В появившемся окне, слева, выбираем пункт Java Build Path. Справа теперь выбираем Libraries. Далее жмем кнопку Add External JARs и выбираем скаченный Bukkit API.
Создание каркаса для плагина
Теперь приступим непосредственно к программированию.
Изменим это
public class DmxFirstPlugin{
на это
public class DmxFirstPlugin extends JavaPlugin{
Эклипс подчеркнет нам JavaPlugin, указывая на ошибку в коде. Если подвести мышь к такому подчеркнутому коду, то откроется окошко с описанием ошибки и способы ее решения. В данном случае нам нужно импортировать класс из Bukkit API, для чего выбираем пункт Import ‘JavaPlugin’(org.bukkit.plugin.java). И сразу же замечаем. как над всем нашим кодом вписалась строчка
import org.bukkit.plugin.java.JavaPlugin;
Но вот опять Эклипсу что-то не нравится и он нам подчеркивает теперь класс DmxFirstPlugin. Повторяем трюк с подсказкой и выбираем первый пункт решения проблеммы: добавить недостоющие методы нашего класса. После этого, нам допишут 2 метода: onEnabled и onDisabled.
Событие onEnabled происходит, когда сервер подключает наш плагин при старте. Т.е. код расположенный в этом метоже будет выполнен самым первым. Именно по этому, onEnabled() используют как инициализацию плагина, прописывая там глобальные переменные и прочие подготовительные процедуры.
Событие onDisabled, соответственно. происходит при отключении плагина во время выключения сервера. Этот метод используют как деструктор, где освобождается память от уже ненужных данных и закрываются разного рода соединения(если, напиример, плагин подключался к бд)
Теперь «закрепим» на переменной вывод консоли сервера. для этого, перед всеми методами напишем:
private static final Logger mclog = Logger.getLogger("minecraft");
А в методах onEnabled и onDisabled:
public void onEnable() {
mclog.info("[DmxFirstPlugin] Start");
}
public void onDisable() {
mclog.info("[DmxFirstPlugin] Stop");
}
В итоге, должен получится вот такой вот код:
package me.dmitriymx.firstplg;
import java.util.logging.Logger;
import org.bukkit.plugin.java.JavaPlugin;
public class DmxFirstPlugin extends JavaPlugin{
private static final Logger mclog = Logger.getLogger("minecraft");
@Override
public void onDisable() {
mclog.info("[DmxFirstPlugin] Stop");
}
@Override
public void onEnable() {
mclog.info("[DmxFirstPlugin] Start");
Последний штрих перед компиляцией. Надо добавить файл описания для нашего плагина.
Клик пкм по src, New->File. В File name пишем plugin.yml. В него пишем следующий текст:
name: FirstSamplePlugin
main: me.dmitriymx.firstplg.DmxFirstPlugin
version: 1.0
А вот теперь компилация.
<CTRL+S> для сохранения кода. Клик пкм по папке src и выбираем Export. В окне открываем папку Java и выбираем там JAR file. После нажатия на Next, жмем на Browse и сохраняем файл сразу в папку плагинов сервера(plugins). Finish.
Запускаем сервер и убеждаемся, что все работает как мы хотим:
На сегодня всё. Мы получили каркас для будующих плагинов.