Advertisement
Guest User

Stack Command

a guest
Dec 13th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. package de.SkyPvP.System.Commands;
  2.  
  3. import org.bukkit.command.Command;
  4. import org.bukkit.command.CommandExecutor;
  5. import org.bukkit.command.CommandSender;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.Listener;
  8. import org.bukkit.inventory.ItemStack;
  9.  
  10. import de.SkyPvP.System.Data.Data;
  11.  
  12. public class Command_Stack implements CommandExecutor, Listener {
  13.  
  14. @SuppressWarnings("deprecation")
  15. @Override
  16. public boolean onCommand(CommandSender sender, Command cmd, String str,
  17. String[] args) {
  18. if ((sender instanceof Player)) {
  19. Player p = (Player) sender;
  20. if (cmd.getName().equalsIgnoreCase("stack")) {
  21. if (p.hasPermission("system.stack")) {
  22. boolean ignoreMax = true;
  23. ItemStack[] items = p.getInventory().getContents();
  24. int len = items.length;
  25.  
  26. int affected = 0;
  27. for (int i = 0; i < len; i++) {
  28. ItemStack item = items[i];
  29. if ((item != null)
  30. && (item.getAmount() > 0)
  31. && ((ignoreMax) || (item.getMaxStackSize() != 1))) {
  32. int max = ignoreMax ? 64 : item.getMaxStackSize();
  33. if (item.getAmount() < max) {
  34. int needed = max - item.getAmount();
  35. for (int j = i + 1; j < len; j++) {
  36. ItemStack item2 = items[j];
  37. if ((item2 != null)
  38. && (item2.getAmount() > 0)
  39. && ((ignoreMax) || (item
  40. .getMaxStackSize() != 1))) {
  41. if ((item2.getTypeId() == item
  42. .getTypeId())
  43. && (item.getDurability() == item2
  44. .getDurability())
  45. && (((item.getItemMeta() == null) && (item2
  46. .getItemMeta() == null)) || ((item
  47. .getItemMeta() != null) && (item
  48. .getItemMeta()
  49. .equals(item2
  50. .getItemMeta()))))) {
  51. if (item2.getAmount() > needed) {
  52. item.setAmount(max);
  53. item2.setAmount(item2
  54. .getAmount() - needed);
  55. break;
  56. }
  57. items[j] = null;
  58. item.setAmount(item.getAmount()
  59. + item2.getAmount());
  60. needed = max - item.getAmount();
  61.  
  62. affected++;
  63. }
  64. }
  65. }
  66. }
  67. }
  68. }
  69. if (affected > 0) {
  70. p.getInventory().setContents(items);
  71. }
  72. p.sendMessage(Data.Prefix +"§7Alle deine Items wurden gestackt!");
  73. }else{
  74. p.sendMessage(Data.NOPERM);
  75. }
  76. }
  77. }
  78. return false;
  79. }
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement