我想写一个分解插件,判断物品的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插件,直接修改物品的名字就能分解。
是不是要遍历?
SX自带分解 不用修改名字啊 判断LORE就行了
Kazg 发表于 2020-4-21 18:10
SX自带分解 不用修改名字啊 判断LORE就行了
咋判断lore。
在sx的config里找到这个 Name随便改 比如我的Name是出售价格
Sell:
Name: 出售价格
我手上有一个材料的Lore是 出售价格:20元 放到分解中就可以分解20元 懂了吗
Sell:
Name: 出售价格
我手上有一个材料的Lore是 出售价格:20元 放到分解中就可以分解20元 懂了吗
如果解决了请给最佳
Kazg 发表于 2020-4-21 18:34
如果解决了请给最佳
我是说写插件,不是说改配置。
- ItemStack item = 你的物品
- ItemMeta meta = item.getItemMeta();
- String name = "目标名字";
- String lore = "目标lore";
- if(meta.hasDisplayName() && meta.getDisplayName().equals(name)){
- // 名字符合
- }
- if(meta.hasLore() && meta.getLore().contains(lore)){
- // lore符合
- }
大佬,这个是判定只要lore里面有一条这个lore就行,还是说判定只能有这一条lore。
其实你应该去编程开发去问的。
cioyenn 发表于 2020-4-21 19:15
大佬,这个是判定只要lore里面有一条这个lore就行,还是说判定只能有这一条lore。 ...
你可以自行搜索java list的contains方法
粘兽 发表于 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。
?????你是?