我对1.17.1的Spigot插件有问题。我试图实现一个事件,当不朽的图腾被点击时,它会打开一个库存。几个小时后,阅读了一些帖子,没有什么帮助我,我卡住了。有人能帮我吗?
这是我的代码:
public class HerrDesWindesTalisman implements Listener{
@EventHandler
public void onPlayerInteract (PlayerInteractEvent e) {
Player p = e.getPlayer();
Action a = e.getAction();
if(a.equals(Action.RIGHT_CLICK_AIR) || a.equals(Action.RIGHT_CLICK_BLOCK)) {
p.sendMessage("Warpmenü");
if(e.getItem() != null && e.getItem().getType().equals(Material.TOTEM_OF_UNDYING)) {
Inventory inv = Bukkit.createInventory(p, 27*9, "Ziele");
ItemStack item1 = new ItemStack(Material.ACACIA_DOOR);
ItemMeta imeta1 = item1.getItemMeta();
imeta1.setDisplayName("Reise nach Irgendwo");
item1.setItemMeta(imeta1);
inv.setItem(5, item1);
p.openInventory(inv);
}
}
}
}
首先,您应该检查此侦听器是否已注册。所以在您的主类中,不要忘记添加:
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(new HerrDesWindesTalisman(), this);
}
此外,库存的大小应该在9到54之间,并且是9的倍数。
实际上,你用的是“27*9”。我想你想的是27的尺码(所以9*3)。动手吧,用这一行:
Inventory inv = Bukkit.createInventory(p, 27, "Ziele");