1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как отправить сообщение игроку?

Тема в разделе "Разработка плагинов для новичков", создана пользователем KislBall, 13 апр 2019.

Метки:
Статус темы:
Закрыта.
  1. Автор темы
    KislBall

    KislBall Участник

    Баллы:
    31
    Имя в Minecraft:
    KislBall
    Не знаю почему, но не работает. Ядро Spigot 1.13.2.
    main.java:
    package kb.pl;

    import org.bukkit.Bukkit;
    import org.bukkit.plugin.java.JavaPlugin;

    public class main extends JavaPlugin {
    public void onEnable(){
    getLogger().info("PlayGround By: KislBall");
    Bukkit.getPluginManager().registerEvents(new Handler(), this);
    //getCommand("country").setExecutor(new country());
    }
    public void onDisable(){

    }
    }
    Handler.java:
    package kb.pl;

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

    public class Handler implements Listener{
    @EventHandler
    public void join(PlayerJoinEvent e){
    e.getPlayer().sendMessage("Добро пожаловать!");
    }
    }
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    player.sendMessage(текст)
     
  3. StepByStep

    StepByStep Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    StepByStepler
    Ошибки в консоли? Дебаг?
     
  4. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Попробуй добавить @Override к onEnable() и onDisable().
    Ещё попробуй добавить implements Listener к главному классу
     
  5. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    У него главный класс не Listener, ему не нужен туда этот интерфейс.
     
  6. DeethzzCoder

    DeethzzCoder Активный участник Пользователь

    Баллы:
    76
    Очень полезный совет!:good::good:
     
  7. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Полезнее твоего :nerd:
     
  8. DeethzzCoder

    DeethzzCoder Активный участник Пользователь

    Баллы:
    76
    Ты вообще знаешь зачем нужна аннотация Override?)
     
  9. nutrolshok

    nutrolshok Активный участник Пользователь

    Баллы:
    76
    Вот пример, когда игрок заходит на сервер и получает сообщение: Добро пожаловать на сервер!

    @EventHandler
    public void join(PlayerJoinEvent e) {
    Player p = (Player)e;
    p.sendMessage("Добро пожаловать на сервер!");
    }
     
  10. WhileInside

    WhileInside Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    WhileInside
    кастить эвент под игрока топ
     
  11. LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    1. Для того, чтобы показать, что метод переопределяется от суперкласса. Функционала не меняет, но добавляет читаемость и понимание + может показать, что ты ошибся в названии метода, если тебе его нужно переопределить, а указываешь ошибочное имя, от чего работоспособность теряется.
    2. "Реализует интерфейс Listener", а значит те классы, где ты будешь создавать методы-слушатели событий. К этому же ты должен регистрировать (PluginManager#registerEvents) все классы, которые реализуют Listener.

    Непонятные термины с данного контекста лучше сразу загугль и изучи.
     
  12. LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Код выглядит вполне правильно (за исключением стиля, названия классов с большой пиши, сюда делай с отступами). Будет намного быстрее разобраться, если ты этот джарник сюда скинешь. Скорее всего у тебя проблема запуска плагина, либо ошибка при запуске, либо вообще его там нет (в plugins). Полные логи было бы полезно скинуть.
     
  13. TheSkiffSailor

    TheSkiffSailor Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    Замени:
    Bukkit.getPluginManager().registerEvents(new Handler(), this);
    на
    Bukkit.getPluginManager().registerEvents(new Handler(this), this);
    Зачем? Просто.

    @Евент
    PHP:
    @EventHandler

    public void on(PlayerJoinEvent e) {
    Player p e.getPlayer();
    p.sendMessage("Приует!");
    }
    Не забудь дать в студию plugin.yml
    Там обязательно должно быть 3 такие строки:
    name: НазваниеПлагина
    main: путь к главному класу(в твоем случае main: kb.pl.Main)
    version: Версия (например version: 1.0)
     
  14. NN_KOF3STx

    NN_KOF3STx Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    Возможно, огорчу тебя, но этими действиями вряд ли что-то исправится
     
  15. NN_KOF3STx

    NN_KOF3STx Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    У меня твой код прекрасно работает, поэтому возможно у тебя проблема в plugin.yml
     
Статус темы:
Закрыта.

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