BLank826
如标题描述的那样,我自定义了一个物品,然后想通过玩家通过点击背包菜单,判断背包内有有没有这个物品。

物品为
public static ItemStack dzbh() {
    ItemStack i;
    i = new ItemStack(Material.PAPER);
    ItemMeta id = i.getItemMeta();
    id.setDisplayName("§3§2§1§6§l锻造保护符");
    ArrayList lore = new ArrayList();
    lore.add("§e用法:§a打开背包,将保护符放入背包");
    lore.add("§e作用:§a对装备附加锻造保护效果");
    lore.add("§e说明:");
    lore.add("§7  -§a保护装备锻造失败丢失锋利");
    lore.add("§7  -§c一个保护符可抵消一次锻造失败.");
    lore.add("§7  -§a保护符放入背包即可");
    id.setLore(lore);
    id.addEnchant(Enchantment.OXYGEN, 1, true);
    i.setItemMeta(id);
    return i;
}


2021.12 数据,可能有更多内容如标题描述的那样,我自定义了一个物品,然后想通过玩家通过点击背包菜单,判断背包内有有没有这个物品。


物品为
public static ItemStack dzbh() {
    ItemStack i;
    i = new ItemStack(Material.PAPER);
    ItemMeta id = i.getItemMeta();
    id.setDisplayName("§3§2§1§6§l锻造保护符");
    ArrayList lore = new ArrayList();
    lore.add("§e用法:§a打开背包,将保护符放入背包");
    lore.add("§e作用:§a对装备附加锻造保护效果");
    lore.add("§e说明:");
    lore.add("§7-§a保护装备锻造失败丢失锋利");
    lore.add("§7-§c一个保护符可抵消一次锻造失败.");
    lore.add("§7-§a保护符放入背包即可");
    id.setLore(lore);
    id.addEnchant(Enchantment.OXYGEN, 1, true);
    i.setItemMeta(id);
    return i;
}



和煦樱
  1. for(int i=0; i<玩家背包.size; i++){
  2.   if(玩家背包.getItem(i) == dzbh()){
  3.     Do sth
  4.     break;
  5.   }
  6. }
复制代码

秋韵
刚才打了几十行代码草稿居然不见了,真气人
我直接提供思路吧,在InventoryClickEvent事件中
判定点击某个格子后
遍历玩家的背包boolean hasItem = false;
Inventory inv = player.getInventory();
for (int i = 0;i < 40;i++) {
     ItemStack item = inv.getItem(i);
    接下来判定顺序:是否为null->是否有ItemMeta->是否有DisplayName->DisplayName是否包含你隐藏的特殊字符
    若判断为true,那hasItem = true;break;
}
接着
if (hasItem) {
  有该物品怎么怎么样
} else {
   没有怎么怎么样
}

a8105
2楼判断方式误导:
判断请使用equals而非==,==为比较内存地址
3楼判断方式并不需要那么复杂,因为是判断整个物品而不是物品名称或lore的关键词
只需要equals或者contains即可:
ItermStakc item=dzhb();
方式1:
player.getInventory().contains(item);
方式2:
ItemStack invItem=player.getInventory().getItem(slot);
if(invItem!=null && invItem.equals(item)){
    ...
}
如果物品可叠加,equals会判断失败,应该使用:
invItem.isSimilar(item);

阿狸哥哥
这个是淬炼插件么?

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