如何解决将头骨显示名称与单击它的人的名称进行比较
我正在尝试检查玩家是否点击了玩家头骨。因此我使用这种方法:
@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;
}
解决方法
不是一个完整的答案,而是为了优化您在第 6 行的代码替换:!(event.getCurrentItem().getItemMeta().getDisplayName() == player.getDisplayName())
由 event.getCurrentItem().getItemMeta().getDisplayName() != player.getDisplayName()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。