当我吃东西时,我的 Spigot Minecraft 插件没有说“yum”

Faz*_*kin 0 java plugins minecraft

我现在正在开发一个 Spigot 插件。但我遇到了一些问题。我对听众有问题。我看过教程,但没有用。当我在游戏中吃东西时,它不会说“好吃!” 它什么也不做。我试图修复它,但我不能。我不认为是因为我把它放在同一个包里。

监听器.java:

package adawda.awdwa;

import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemConsumeEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Listeners extends JavaPlugin implements Listener
{
    public Listeners(Awdwa plugin)
    {

    }
    public void onEnable()
    {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerItemConsume(PlayerItemConsumeEvent event)
    {
        event.getPlayer().sendMessage("Yum!");
    }
}
Run Code Online (Sandbox Code Playgroud)

Awdwa.java(主):

package adawda.awdwa;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerBedEnterEvent;
import org.bukkit.event.player.PlayerItemConsumeEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

import java.util.Arrays;

public final class Awdwa extends JavaPlugin implements CommandExecutor {
    public Location homeLoc;
    @Override
    public void onEnable() {
        // Plugin startup logic
        PluginManager pm = getServer().getPluginManager();
        Listeners listener = new Listeners(this);
        pm.registerEvents(listener,this);
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
    public void onPlayerJoin(PlayerJoinEvent event)
    {
        Bukkit.broadcastMessage("Naber, " + event.getPlayer().getName()+"!");
    }
    public void onPlayerBedEnter(PlayerBedEnterEvent event)
    {
        Bukkit.broadcastMessage("birisi uyuyor.. daha do?rusu çal???yor.");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        String cmdName = cmd.getName().toLowerCase();
        Player p = (Player) sender;
        if (cmdName.equals("example")) {
            sender.sendMessage("UwU it works!");
            return true;
        } else if(cmdName.equals("sethome")) {
            homeLoc = p.getLocation();
            return true;
        } else if(cmdName.equals("home")) {
            p.teleport(homeLoc);
            return  true;
        } else if(cmdName.equals("kedi")) {
            World w = getServer().getWorld("world");
            int i = 0;
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            w.spawnEntity(p.getLocation(), EntityType.CAT);
            return true;
        }
        else {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

请删除extends JavaPlugin您的Listeners.class。这仅在Main.class 中需要。默认情况下,您的Listeners.class应仅实现 Listener。然后,您还应该删除 Listeners 类中的构造函数和 onEnable() 方法,因为它们不是必需的。

然后,您应该更改在Main.class中注册事件的方式。您应该注册这样的事件:

pm.registerEvents(new Listeners(), this);
Run Code Online (Sandbox Code Playgroud)

(在 registerEvents() 方法中创建一个新的 Listeners 对象)