【问题标题】:Compare a skulls display name to the name from the person who clicked it将头骨显示名称与单击它的人的名称进行比较
【发布时间】: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


【解决方案1】:

不是一个完整的答案,但要优化第 6 行的代码替换:!(event.getCurrentItem().getItemMeta().getDisplayName() == player.getDisplayName())event.getCurrentItem().getItemMeta().getDisplayName() != player.getDisplayName()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 2015-05-25
    • 1970-01-01
    相关资源
    最近更新 更多