Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап Создаем плагины на Bukkit

Продолжать?


  • Опрос закрыт .
Статус
Закрыто для дальнейших ответов.

DWortY

Новичок
Баллы
16
Имя в Minecraft
DWortY
Итак, я думаю все знают что такое плагины на Bukkit.
Есть множество разных Ядр:
  • Bukkit
  • Spigot
  • Cauldron
  • BungeeCord
Существует еще много различных ядр, сегодня разработаем плагин для Bukkit!
Итак начнем:
Нам понадобятся программы:
Начнем, запустим Eclipse. Видим стартовый экран.
Выберем путь к главной папке с плагинами (Проектами).
Закроем начал. страницу и создадим проект. Кликаем ПКМ по Package Explorer, Новый, Java Project.
Введем Название проекта и нажмем Готово.

Нажмем на папочку src ПКМ и создадим новый Package
назовем его например ru.dworty в нем создадим Class файл, назовем его Main.
Затем нажмем ПКМ на наш проект и нажмем Properties.
Далее Java Build Path -> Libraries -> Add External JARs -> Выберим ядро сервера. Готово.
Код:
package ru.dworty;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {
  
}

Затем наводим мышку на JavaPlugin и import.

Добавим методы при включении плагина и выключении.
Напишем
Код:
package ru.dworty;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {
    public void onEnable() {
      
    }
    public void onDisable() {
      
    }
}
Готово, теперь создадим первый класс отвечающий Handler'у.
Назовем класс Handler. В классе добавим евент выполнения.
Для этого введем код:
Код:
package ru.dworty;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class Handler implements Listener {
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
      
    }
}
Данный код изображает Евент который срабатывает при заходе
игрока на сервер. Давайте выведим ему сообщение в чат:
'Ты зашел на сервер!' красным цветом.
Напишем код:
Код:
package ru.dworty;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class Handler implements Listener {
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();
      
        p.sendMessage(ChatColor.RED + "Ты зашел на сервер");
    }
}
В следующих частях я обьясню как добавлять комманды в плагин.
Жду голосов!
 
Не стоит делать туториалы, если ты не опытный. Никому такое не нужно. Подучись и создавай.
 
1) Вместо Eclipse лучше всего использовать IntelliJ IDEA. Он половину кода может написать за программиста.
2) Объясняй. Почему мы должны создавать onEnable и onDisable? Что такое ивенты? Почему мы должны это писать? Что такое Handler? Почему в классе Main мы приписываем extends JavaPlugin? Почему мы не приписываем то же самое в Handler'е? Почему мы приписываем там какой-то implements Listener?
3) Хватит импортировать лишние библиотеки. Почему вы всё время пишете ChatColor.RED? Из-за этого ведь сообщение получается длинным и сложным для чтения? Почему мы не можем написать "§cТы зашёл на сервер!" вместо ChatColor.RED + "Ты зашёл на сервер!". Почему именно ChatColor? Правильно, потому что так написано во всех (во многих) туториалах. Отсюда мы видим "креативность" автора.
4) Почему мне кажется, что это вообще не сработает? Мы не увидим сообщение, так как не зарегистрировали этот самый PlayerJoinEvent. Хотя я могу ошибаться. Опять же - косяк автора. А из-за чего косяк? Из-за отсутствия опыта.
5) И конечно, перфекционист внутри меня просто не смог не обратить внимание на ошибки в словах
(ядер)
и
(выберем)
Насчёт пунктуации я заставил его (перфекциониста) заткнуться.

Я только начал
!!!
Не суди строго!
По-моему, автор только начал изучать плагины вообще. Такое чувство, что он посмотрел псевдотуториал и написал сюда то, что усвоил.

Извиняюсь за слишком конструктивную критику, но я действительно видел туториалы получше.
Голосую за второй вариант.
 
По-моему, автор только начал изучать плагины вообще.
посмотрите, какой гуру кодер нашелся, который даже доки открыть не может, и сыпет вопросами, туторы на которые, есть даже на русском
 
посмотрите, какой гуру кодер нашелся, который даже доки открыть не может, и сыпет вопросами, туторы на которые, есть даже на русском
Где же я, интересно, назвал себя гуру?
 
Скажу больше, он не отловит эвент, потому что то просто не зарегистрирован.
 
1) Вместо Eclipse лучше всего использовать IntelliJ IDEA. Он половину кода может написать за программиста.
2) Объясняй. Почему мы должны создавать onEnable и onDisable? Что такое ивенты? Почему мы должны это писать? Что такое Handler? Почему в классе Main мы приписываем extends JavaPlugin? Почему мы не приписываем то же самое в Handler'е? Почему мы приписываем там какой-то implements Listener?
3) Хватит импортировать лишние библиотеки. Почему вы всё время пишете ChatColor.RED? Из-за этого ведь сообщение получается длинным и сложным для чтения? Почему мы не можем написать "§cТы зашёл на сервер!" вместо ChatColor.RED + "Ты зашёл на сервер!". Почему именно ChatColor? Правильно, потому что так написано во всех (во многих) туториалах. Отсюда мы видим "креативность" автора.
4) Почему мне кажется, что это вообще не сработает? Мы не увидим сообщение, так как не зарегистрировали этот самый PlayerJoinEvent. Хотя я могу ошибаться. Опять же - косяк автора. А из-за чего косяк? Из-за отсутствия опыта.
5) И конечно, перфекционист внутри меня просто не смог не обратить внимание на ошибки в словах
(ядер)
и
(выберем)
Насчёт пунктуации я заставил его (перфекциониста) заткнуться.


По-моему, автор только начал изучать плагины вообще. Такое чувство, что он посмотрел псевдотуториал и написал сюда то, что усвоил.

Извиняюсь за слишком конструктивную критику, но я действительно видел туториалы получше.
Голосую за второй вариант.
Заедает клава, я говорил Я НАЧИНАЮЩИЙ !
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх