Skip to content
This repository has been archived by the owner on Aug 2, 2023. It is now read-only.

Commit

Permalink
feat: elytraコマンド実行時、いずれか装備している場合はそれを装備しないように (#850)
Browse files Browse the repository at this point in the history
  • Loading branch information
book000 authored Jun 8, 2022
1 parent d557655 commit 0439516
Showing 1 changed file with 29 additions and 17 deletions.
46 changes: 29 additions & 17 deletions src/main/java/com/jaoafa/mymaid4/command/Cmd_Elytra.java
Original file line number Diff line number Diff line change
@@ -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
*
Expand Down Expand Up @@ -51,30 +51,42 @@ void giveElytra(CommandContext<CommandSender> 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(), "エリトラと花火は既に装備しています。");
}
}
}

0 comments on commit 0439516

Please sign in to comment.