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

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

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("Добро пожаловать!");
}
}
 
Ошибки в консоли? Дебаг?
 
Попробуй добавить @Override к onEnable() и onDisable().
Ещё попробуй добавить implements Listener к главному классу
 
Вот пример, когда игрок заходит на сервер и получает сообщение: Добро пожаловать на сервер!

@EventHandler
public void join(PlayerJoinEvent e) {
Player p = (Player)e;
p.sendMessage("Добро пожаловать на сервер!");
}
 
Вот пример, когда игрок заходит на сервер и получает сообщение: Добро пожаловать на сервер!

@EventHandler
public void join(PlayerJoinEvent e) {
Player p = (Player)e;
p.sendMessage("Добро пожаловать на сервер!");
}
кастить эвент под игрока топ
 
Всем нужно учиться у такого "профессионала" как вы :lol:

Ответьте пожалуйста на вопросы:
  1. Для чего используется аннотация @Override? Является ли она обязательной к использованию?
  2. Для чего нужно писать `implements Listener` и в каких классах именно?
1. Для того, чтобы показать, что метод переопределяется от суперкласса. Функционала не меняет, но добавляет читаемость и понимание + может показать, что ты ошибся в названии метода, если тебе его нужно переопределить, а указываешь ошибочное имя, от чего работоспособность теряется.
2. "Реализует интерфейс Listener", а значит те классы, где ты будешь создавать методы-слушатели событий. К этому же ты должен регистрировать (PluginManager#registerEvents) все классы, которые реализуют Listener.

Непонятные термины с данного контекста лучше сразу загугль и изучи.
 
Не знаю почему, но не работает. Ядро 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("Добро пожаловать!");
}
}
Код выглядит вполне правильно (за исключением стиля, названия классов с большой пиши, сюда делай с отступами). Будет намного быстрее разобраться, если ты этот джарник сюда скинешь. Скорее всего у тебя проблема запуска плагина, либо ошибка при запуске, либо вообще его там нет (в plugins). Полные логи было бы полезно скинуть.
 
Замени:
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)
 
Замени:
Bukkit.getPluginManager().registerEvents(new Handler(), this);
на
Bukkit.getPluginManager().registerEvents(new Handler(this), this);
Зачем? Просто.[
/QUOTE]
Возможно, огорчу тебя, но этими действиями вряд ли что-то исправится
 
Не знаю почему, но не работает. Ядро 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("Добро пожаловать!");
}
}

У меня твой код прекрасно работает, поэтому возможно у тебя проблема в plugin.yml
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх