cioyenn
我想写一个分解插件,判断物品的lore和名字,
ItemStack itemStack = new ItemStack(getConfig().getInt("FenJie." + s + ".ItemID"));
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(getConfig().getString("FenJie." + s + ".ItemName"));
itemStack.setItemMeta(itemMeta);
我这样写的时候,他虽然说判定了名字,但是我用sx做出来的物品,就不能分解,用lore插件,直接修改物品的名字就能分解。
是不是要遍历?

Kazah
SX自带分解 不用修改名字啊 判断LORE就行了

cioyenn
Kazg 发表于 2020-4-21 18:10
SX自带分解 不用修改名字啊 判断LORE就行了

咋判断lore。

Kazah
在sx的config里找到这个 Name随便改 比如我的Name是出售价格
Sell:
    Name: 出售价格

我手上有一个材料的Lore是 出售价格:20元 放到分解中就可以分解20元 懂了吗

Kazah
如果解决了请给最佳

cioyenn
Kazg 发表于 2020-4-21 18:34
如果解决了请给最佳

我是说写插件,不是说改配置。

粘兽
  1.     ItemStack item = 你的物品
  2.     ItemMeta meta = item.getItemMeta();

  3.     String name = "目标名字";
  4.     String lore = "目标lore";
  5.     if(meta.hasDisplayName() && meta.getDisplayName().equals(name)){
  6.         // 名字符合
  7.     }
  8.     if(meta.hasLore() && meta.getLore().contains(lore)){
  9.         // lore符合
  10.     }
复制代码

cioyenn

大佬,这个是判定只要lore里面有一条这个lore就行,还是说判定只能有这一条lore。

阿狸哥哥
其实你应该去编程开发去问的。

cioyenn
阿狸哥哥 发表于 2020-4-21 19:42
其实你应该去编程开发去问的。

阿里?

粘兽
cioyenn 发表于 2020-4-21 19:15
大佬,这个是判定只要lore里面有一条这个lore就行,还是说判定只能有这一条lore。 ...

你可以自行搜索java list的contains方法

cioyenn
粘兽 发表于 2020-4-21 21:59
你可以自行搜索java list的contains方法

ItemStack itemStack = new ItemStack(getConfig().getInt("ItemID"));
                ItemMeta itemMeta = itemStack.getItemMeta();
                itemStack.setItemMeta(itemMeta);
                String name = getConfig().getString("ItemName");
                String lore = getConfig().getString("ItemLore");
                if (itemMeta.hasDisplayName() && itemMeta.getDisplayName().equals(name)) {
                    inventory.clear(13);
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), getConfig().getString("Command").replace("%player%" , player.getName()));
                    player.sendMessage("分解成功");
                }
                if (itemMeta.hasLore() && itemMeta.getLore().contains(lore)) {
                    inventory.clear(13);
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), getConfig().getString("Command").replace("%player%" , player.getName()));
                    player.sendMessage("分解成功");
                }
这样写他还是不判定lore和name。

阿狸哥哥

?????你是?