私は、静的な在庫を開き、クリックしてキットを入手するサインショップで bukkit プラグインを作成しています。インベントリの設定が完了しました。サインをクリックすると開き、欲しいアイテムがそこにあります。ただし、インベントリをクリックすると、最初の if ステートメントが false を返します。これが私のコードです:
@EventHandler
public void onInventoryClick(InventoryClickEvent e){
if (e.getInventory() == kitInvent){
Player player = (Player) e.getWhoClicked();
player.sendMessage("Kit Shop Opened");
if (e.getCurrentItem().getItemMeta().getDisplayName() == ChatColor.DARK_PURPLE + "Grenadier Kit"){
e.setCancelled(true);
player.getInventory().clear();
Potion potion = new Potion(PotionType.INSTANT_DAMAGE, 1);
potion.setSplash(true);
ItemStack grenadeStack = new ItemStack(Material.POTION, 32);
potion.apply(grenadeStack);
player.getInventory().addItem(grenadeStack);
}
}
}
「if (e.getInventory() == kitInvent)」の部分を通過できません。コメント アウトすると、「Kit Shop Opened」というメッセージが送信されるためです。
また、アイテムのタイトルをチェックする次の if ステートメントを正しく実行していますか? 私もそこに問題がありましたが、それが単に前の if ステートメントのせいなのかどうかはわかりませんでした。
どんな助けでも大歓迎です!