From 0439516140281eac14e746b5d11f5ab7d6f04513 Mon Sep 17 00:00:00 2001 From: Tomachi <8929706+book000@users.noreply.github.com> Date: Wed, 8 Jun 2022 18:36:32 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20elytra=E3=82=B3=E3=83=9E=E3=83=B3?= =?UTF-8?q?=E3=83=89=E5=AE=9F=E8=A1=8C=E6=99=82=E3=80=81=E3=81=84=E3=81=9A?= =?UTF-8?q?=E3=82=8C=E3=81=8B=E8=A3=85=E5=82=99=E3=81=97=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AF=E3=81=9D=E3=82=8C=E3=82=92?= =?UTF-8?q?=E8=A3=85=E5=82=99=E3=81=97=E3=81=AA=E3=81=84=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=20(#850)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jaoafa/mymaid4/command/Cmd_Elytra.java | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/jaoafa/mymaid4/command/Cmd_Elytra.java b/src/main/java/com/jaoafa/mymaid4/command/Cmd_Elytra.java index 00c2367a3..9769798eb 100644 --- a/src/main/java/com/jaoafa/mymaid4/command/Cmd_Elytra.java +++ b/src/main/java/com/jaoafa/mymaid4/command/Cmd_Elytra.java @@ -1,7 +1,7 @@ /* * jaoLicense * - * Copyright (c) 2021 jao Minecraft Server + * Copyright (c) 2022 jao Minecraft Server * * The following license applies to this project: jaoLicense * @@ -51,30 +51,42 @@ void giveElytra(CommandContext context) { PlayerInventory inv = player.getInventory(); ItemStack offhand = inv.getItemInOffHand(); - inv.setItemInOffHand(fireworks); - SendMessage(player, details(), "花火をオフハンドのアイテムと置きかえました。"); + boolean changed = false; - if (offhand.getType() != Material.AIR) { - if (player.getInventory().firstEmpty() == -1) { - player.getLocation().getWorld().dropItem(player.getLocation(), offhand); - SendMessage(player, details(), "インベントリがいっぱいだったため、既にオフハンドに持っていたアイテムはあなたの足元にドロップしました。"); - } else { - inv.addItem(offhand); + if (offhand.getType() != fireworks.getType()) { + inv.setItemInOffHand(fireworks); + SendMessage(player, details(), "花火をオフハンドのアイテムと置きかえました。"); + changed = true; + + if (offhand.getType() != Material.AIR) { + if (player.getInventory().firstEmpty() == -1) { + player.getLocation().getWorld().dropItem(player.getLocation(), offhand); + SendMessage(player, details(), "インベントリがいっぱいだったため、既にオフハンドに持っていたアイテムはあなたの足元にドロップしました。"); + } else { + inv.addItem(offhand); + } } } ItemStack chestplate = inv.getChestplate(); - inv.setChestplate(elytra); - SendMessage(player, details(), "エリトラを装備しました。"); + if (chestplate == null || chestplate.getType() != elytra.getType()) { + inv.setChestplate(elytra); + SendMessage(player, details(), "エリトラを装備しました。"); + changed = true; - if (chestplate != null && chestplate.getType() != Material.AIR) { - if (player.getInventory().firstEmpty() == -1) { - player.getLocation().getWorld().dropItem(player.getLocation(), chestplate); - SendMessage(player, details(), "インベントリがいっぱいだったため、既に胴体につけていたアイテムはあなたの足元にドロップしました。"); - } else { - inv.addItem(chestplate); + if (chestplate != null && chestplate.getType() != Material.AIR) { + if (player.getInventory().firstEmpty() == -1) { + player.getLocation().getWorld().dropItem(player.getLocation(), chestplate); + SendMessage(player, details(), "インベントリがいっぱいだったため、既に胴体につけていたアイテムはあなたの足元にドロップしました。"); + } else { + inv.addItem(chestplate); + } } } + + if (!changed) { + SendMessage(player, details(), "エリトラと花火は既に装備しています。"); + } } }