Как вернуть тип блока в сообщении для Spigot 1.13.2 - PullRequest
2 голосов
/ 26 марта 2019

Я пытаюсь получить тип блока, по которому игрок щелкнул правой кнопкой мыши, и вернуть его обратно как сообщение, отправленное игроку в игре. В настоящее время я не получаю абсолютно ничего.

public class BlockIdentifier extends JavaPlugin {
    public void onEnable(){
        getLogger().info("BlockIdentifier started!");
    }

    @EventHandler
    public void onInteract(PlayerInteractEvent event){
        Action action = event.getAction();
        Player player = event.getPlayer();
        Block block = event.getClickedBlock();

        if(action.equals(Action.LEFT_CLICK_BLOCK)){
            player.sendMessage(block.getType().toString());
        }

    }

    public void onDisable(){
        getLogger().info("BlockIdentifier stopped!");
    }
}

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Помимо того, что Darkilen предложил (реализация Listener), вам необходимо зарегистрировать свои события / слушателя в onEnable, используя:

getServer().getPluginManager().registerEvents​(Listener listener, Plugin plugin)

Для вашего случая это будет выглядеть так:

public void onEnable(){
    getLogger().info("BlockIdentifier started!");
    getServer().getPluginManager().registerEvents(this, this);
}
1 голос
/ 27 марта 2019

Вы забыли орудия Listener:

public class BlockIdentifier extends JavaPlugin implements Listener

...