From bd44173a145cf28f51a80d517ed1bd4c3cd4e27e Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Thu, 28 Jun 2018 11:13:18 -0700 Subject: [PATCH] Fix /invsee (#79) --- .../command/Command_invsee.java | 85 +++++++++++++------ 1 file changed, 61 insertions(+), 24 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java index b64ae40f..8b8bbd25 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java @@ -9,10 +9,9 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = " Look into another player's inventory, optionally take items out.", usage = "/ [offhand | armor]", aliases = "inv,insee") +@CommandParameters(description = "Look into another player's inventory, optionally take items out.", usage = "/ [offhand | armor]", aliases = "inv,insee") public class Command_invsee extends FreedomCommand { - @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -38,38 +37,76 @@ public class Command_invsee extends FreedomCommand if (plugin.al.isAdmin(player) && !plugin.al.isAdmin(playerSender)) { - msg("You can't spy on admins!"); + msg("You cannot spy on administrators."); return true; } - if(args.length >= 2) + + Inventory inv; + + if (plugin.al.isAdmin(player)) { - if (args[1].equals("offhand")) + if (args.length > 1) { - ItemStack offhand = player.getInventory().getItemInOffHand(); - if (offhand == null) + if (args[1].equals("offhand")) { - msg("That player has nothing in their offhand."); + ItemStack offhand = player.getInventory().getItemInOffHand(); + if (offhand == null) + { + msg("That player has nothing in their offhand."); + return true; + } + Inventory inventory = server.createInventory(null, 9, player.getName() + "'s offhand"); + inventory.setItem(1, offhand); + playerSender.openInventory(inventory); + return true; + } + else if (args[1].equals("armor")) + { + Inventory inventory = server.createInventory(null, 9, player.getName() + "'s armor"); + inventory.setContents(player.getInventory().getArmorContents()); + playerSender.openInventory(inventory); return true; } - Inventory inventory = server.createInventory(null, 9, player.getName() + "'s offhand"); - inventory.setItem(1, offhand); - playerSender.openInventory(inventory); - return true; - } - if (args[1].equals("armor")) - { - Inventory inventory = server.createInventory(null, 9, player.getName() + "'s armor"); - inventory.setContents(player.getInventory().getArmorContents()); - playerSender.openInventory(inventory); - return true; } + inv = player.getInventory(); + playerSender.closeInventory(); + playerSender.openInventory(inv); + return true; + } + + if (!plugin.al.isAdmin(player)) + { + if (args.length > 1) + { + if (args[1].equals("offhand")) + { + ItemStack offhand = player.getInventory().getItemInOffHand(); + if (offhand == null) + { + msg("That player has nothing in their offhand."); + return true; + } + Inventory inventory = server.createInventory(null, 9, player.getName() + "'s offhand"); + inventory.setItem(1, offhand); + playerSender.openInventory(inventory); + return true; + } + else if (args[1].equals("armor")) + { + Inventory inventory = server.createInventory(null, 9, player.getName() + "'s armor"); + inventory.setContents(player.getInventory().getArmorContents()); + playerSender.openInventory(inventory); + return true; + } + } + inv = player.getInventory(); + playerSender.closeInventory(); + FPlayer fPlayer = plugin.pl.getPlayer(playerSender); + fPlayer.setInvSee(true); + playerSender.openInventory(inv); + return true; } - playerSender.closeInventory(); - FPlayer fPlayer = plugin.pl.getPlayer(playerSender); - fPlayer.setInvSee(true); - Inventory playerInv = player.getInventory(); - playerSender.openInventory(playerInv); return true; } }