【发布时间】:2021-01-18 13:59:36
【问题描述】:
我正在尝试检查玩家是否点击了玩家头骨。因此我使用这种方法:
@EventHandler
public void onCLick(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
if(event.getView().getTitle().equals("Inventory")) {
event.setCancelled(true);
if(!(event.getCurrentItem().getItemMeta().getDisplayName() == player.getDisplayName())) {
player.sendMessage("other player");
}else{
player.sendMessage("yourself");
}
}
但是如果我点击自己的头骨,我会得到另一个“玩家输出”,我不知道为什么……
这是我创建骷髅物品的方式:
private ItemStack createSkull(Player player, String... lore) {
ItemStack skull = new ItemStack(Material.PLAYER_HEAD);
SkullMeta meta = (SkullMeta) skull.getItemMeta();
meta.setDisplayName(player.getDisplayName());
meta.setOwningPlayer(player);
meta.setLore(Arrays.asList(lore));
skull.setItemMeta(meta);
return skull;
}
【问题讨论】:
-
尝试通过调用
.equals()或.equalsIgnoreCase()将播放器的显示名称与项目的显示名称进行比较
标签: compare minecraft bukkit inventory