1921415038
通过直接ItemStack和手中物品是否一样时,成功,但是只要物品破坏了东西就不成功了,通过ItemMeta也是,Lore也是,请问通过什么方法能明确判断ItemStack和手中物品一样

a8105
不太懂你想表达的意思,贴上你判断的代码吧

1921415038
810587921 发表于 2018-6-11 19:42
不太懂你想表达的意思,贴上你判断的代码吧

public static boolean contrast(ItemStack tItemStack , ItemStack b2){
                if (tItemStack.equals(b2)) {
                        return true;
                }
                if (b2.getEnchantments() != null) {
                        return false;
                }
                if (tItemStack.getItemMeta().equals(b2.getItemMeta())) {
                        return true;
                }
                if (tItemStack.getItemMeta().getLore().equals(b2.getItemMeta().getLore()) ) {
                        return true;
                }
                if (tItemStack.isSimilar(b2) && tItemStack.getType().name().equals(b2.getType().name())) {
                        return true;
                }
                if (tItemStack.getData().equals(b2.getData()) && tItemStack.getType().name().equals(b2.getType().name())) {
                        return true;
                }
                return false;
        }

1921415038
810587921 发表于 2018-6-11 19:42
不太懂你想表达的意思,贴上你判断的代码吧

判断手里的物品是否是插件里面的物品,如果使用tItemStack.equals(b2)第一次会成功,但是物品耐久变了,就判断失败了

1921415038
810587921 发表于 2018-6-11 19:42
不太懂你想表达的意思,贴上你判断的代码吧

我知道了,是 if (b2.getEnchantments() != null) {
                         return false;
                 }的问题,但是怎么判断是否是附魔的

1921415038
810587921 发表于 2018-6-11 19:42
不太懂你想表达的意思,贴上你判断的代码吧

我知道怎么判断了,问题解决了,感谢大佬

a8105
1921415038 发表于 2018-6-11 21:10
我知道怎么判断了,问题解决了,感谢大佬

Bukkit的ItemStack类自带判断方法
需要数量符合直接equals即可
不需要就是你里面的tItemStack.isSimilar(b2)
不需要判断那么多东西

gyx497
Hhhh哈哈哈哈哈哈

404565377
这还不简单,直接equals就行了,物品破坏东西后损失耐久,就不成功了

2314587032
牛13233333333

第一页 上一页 下一页 最后一页