java My Spigot Minecraft插件在我吃东西时不会说“yum”
我现在正在做一个插口插件。但是我有一些问题。我和听众之间有问题。我看过辅导课,但没用。当我在游戏中吃东西时,它不会说“好吃!”它没有任何作用。我试着修复它,但我做不到。我不认为是因为我把它放在同一个包里了
听众。爪哇:
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!");
}
}
Awdwa。爪哇(主要):
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;
}
}
}
# 1 楼答案
请删除侦听器中的
extends JavaPlugin
。类。这只需要在主管道内进行。类。你的听众。类默认情况下只应实现侦听器。然后还应该删除侦听器类中的构造函数和onEnable()方法,因为它们不是必需的然后,您应该改变在Main中注册事件的方式。类。你应该注册这样的活动:
(在registerEvents()方法中创建一个新的侦听器对象)