From 15e97cc7b490133b8be10c90256b74695c416ffb Mon Sep 17 00:00:00 2001 From: Brianna Date: Mon, 16 Mar 2020 15:30:43 -0400 Subject: [PATCH 1/6] Added Public repo --- pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pom.xml b/pom.xml index f296e08..1d929e9 100644 --- a/pom.xml +++ b/pom.xml @@ -93,6 +93,10 @@ private http://repo.songoda.com/artifactory/private/ + + public + http://repo.songoda.com/artifactory/public/ + CodeMC https://repo.codemc.org/repository/maven-public From 4d713a5f08ccb70b040735edebed8f9167d5cc55 Mon Sep 17 00:00:00 2001 From: 0ddlyoko <0ddlyokoOfficial@gmail.com> Date: Thu, 20 Feb 2020 00:52:01 +0100 Subject: [PATCH 2/6] Update gitignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bd3743b..e69102e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ \.idea \target -UltimateStacker.iml \ No newline at end of file +UltimateStacker.iml +.settings/ +.classpath +.project \ No newline at end of file From 830c49c6f7b9ed66328ce318d1a31a92abab4c48 Mon Sep 17 00:00:00 2001 From: Giacomello Nathan <0ddlyokoOfficial@gmail.com> Date: Sun, 23 Feb 2020 16:48:26 +0100 Subject: [PATCH 3/6] Fix bug (https://www.youtube.com/watch?v=5eGjTv18OfY) --- .../com/songoda/ultimatestacker/UltimateStacker.java | 5 ++++- .../ultimatestacker/listeners/ItemListeners.java | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java b/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java index 2b7ed3e..40afc80 100644 --- a/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java +++ b/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java @@ -398,6 +398,9 @@ public class UltimateStacker extends SongodaPlugin { item.removeMetadata("US_AMT", INSTANCE); itemStack.setAmount(newAmount); } + // If amount is 0, Minecraft change the type to AIR + if (itemStack.getType() == Material.AIR) + return; item.setItemStack(itemStack); if ((blacklisted && !Settings.ITEM_HOLOGRAM_BLACKLIST.getBoolean()) @@ -419,7 +422,7 @@ public class UltimateStacker extends SongodaPlugin { public static int getActualItemAmount(Item item) { ItemStack itemStack = item.getItemStack(); int amount = itemStack.getAmount(); - if (amount >= (itemStack.getMaxStackSize() / 2) && item.hasMetadata("US_AMT")) { + if (/*amount >= (itemStack.getMaxStackSize() / 2) && */item.hasMetadata("US_AMT")) { return item.getMetadata("US_AMT").get(0).asInt(); } else { return amount; diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java index 0c98a43..347f664 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java @@ -81,12 +81,18 @@ public class ItemListeners implements Listener { @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onPickup(PlayerPickupItemEvent event) { if (!Settings.STACK_ITEMS.getBoolean()) return; - if (event.getItem().getItemStack().getAmount() < (event.getItem().getItemStack().getMaxStackSize() / 2)) return; + // Amount here is not the total amount of item (32 if more than 32) but the amount of item the player can retrieve + // ie there is x64 diamonds blocks (so 32), the player pick 8 items so the amount is 8 and not 32 + int amount = UltimateStacker.getActualItemAmount(event.getItem()); + if (/*event.getItem().getItemStack().getAmount()*/amount < (event.getItem().getItemStack().getMaxStackSize() / 2)) { + // Update + UltimateStacker.updateItemAmount(event.getItem(), event.getRemaining()); + return; + } event.setCancelled(true); event.getPlayer().playSound(event.getPlayer().getLocation(), CompatibleSound.ENTITY_ITEM_PICKUP.getSound(), .2f, (float) (1 + Math.random())); Methods.updateInventory(event.getItem(), event.getPlayer().getInventory()); } - } From 75eaf34127174719573695b2073405874c4e574b Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Sat, 21 Mar 2020 17:29:42 -0400 Subject: [PATCH 4/6] Added spawn command to spawn X amount of stacked mobs. --- .../ultimatestacker/UltimateStacker.java | 8 +- .../commands/CommandSpawn.java | 89 +++++++++++++++++++ 2 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/songoda/ultimatestacker/commands/CommandSpawn.java diff --git a/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java b/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java index 40afc80..12a3844 100644 --- a/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java +++ b/src/main/java/com/songoda/ultimatestacker/UltimateStacker.java @@ -14,12 +14,7 @@ import com.songoda.core.gui.GuiManager; import com.songoda.core.hooks.HologramManager; import com.songoda.core.hooks.WorldGuardHook; import com.songoda.core.utils.TextUtils; -import com.songoda.ultimatestacker.commands.CommandConvert; -import com.songoda.ultimatestacker.commands.CommandGiveSpawner; -import com.songoda.ultimatestacker.commands.CommandReload; -import com.songoda.ultimatestacker.commands.CommandRemoveAll; -import com.songoda.ultimatestacker.commands.CommandSettings; -import com.songoda.ultimatestacker.commands.CommandUltimateStacker; +import com.songoda.ultimatestacker.commands.*; import com.songoda.ultimatestacker.database.DataManager; import com.songoda.ultimatestacker.database.migrations._1_InitialMigration; import com.songoda.ultimatestacker.entity.EntityStack; @@ -120,6 +115,7 @@ public class UltimateStacker extends SongodaPlugin { .addSubCommand(new CommandRemoveAll()) .addSubCommand(new CommandReload()) .addSubCommand(new CommandGiveSpawner()) + .addSubCommand(new CommandSpawn()) .addSubCommand(new CommandConvert(guiManager)); this.entityUtils = new EntityUtils(); diff --git a/src/main/java/com/songoda/ultimatestacker/commands/CommandSpawn.java b/src/main/java/com/songoda/ultimatestacker/commands/CommandSpawn.java new file mode 100644 index 0000000..fc84581 --- /dev/null +++ b/src/main/java/com/songoda/ultimatestacker/commands/CommandSpawn.java @@ -0,0 +1,89 @@ +package com.songoda.ultimatestacker.commands; + +import com.songoda.core.commands.AbstractCommand; +import com.songoda.ultimatestacker.UltimateStacker; +import com.songoda.ultimatestacker.entity.EntityStack; +import com.songoda.ultimatestacker.utils.Methods; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * The current file has been created by Kiran Hart + * Date Created: 3/21/2020 + * Time Created: 1:02 PM + */ +public class CommandSpawn extends AbstractCommand { + + UltimateStacker instance; + + public CommandSpawn() { + super(true, "spawn"); + instance = UltimateStacker.getInstance(); + } + + @Override + protected ReturnType runCommand(CommandSender sender, String... args) { + Player p = (Player) sender; + + if (args.length < 2) return ReturnType.SYNTAX_ERROR; + + EntityType type = null; + for (EntityType types : EntityType.values()) { + String input = args[0].toUpperCase().replace("_", "").replace(" ", ""); + String compare = types.name().toUpperCase().replace("_", "").replace(" ", ""); + if (input.equals(compare)) + type = types; + } + + if (type == null) { + instance.getLocale().newMessage("&7The entity &6" + args[0] + " &7does not exist. Try one of these:").sendPrefixedMessage(sender); + StringBuilder list = new StringBuilder(); + + for (EntityType types : EntityType.values()) { + if (types.isSpawnable() && types.isAlive() && !types.toString().contains("ARMOR")) + list.append(types.name().toUpperCase().replace(" ", "_")).append("&7, &6"); + } + sender.sendMessage(Methods.formatText("&6" + list)); + } else { + Entity entity = p.getWorld().spawnEntity(p.getLocation(), type); + EntityStack stack = instance.getEntityStackManager().addStack(entity.getUniqueId(), (Methods.isInt(args[1])) ? Integer.parseInt(args[1]) : 1); + instance.getStackingTask().attemptSplit(stack, (LivingEntity) entity); + } + + return ReturnType.SUCCESS; + } + + @Override + protected List onTab(CommandSender sender, String... args) { + if (args.length == 1) { + return Arrays.stream(EntityType.values()) + .filter(types -> types.isSpawnable() && types.isAlive() && !types.toString().contains("ARMOR")) + .map(Enum::name).collect(Collectors.toList()); + } else if (args.length == 2) { + return Arrays.asList("1", "2", "3", "4", "5"); + } + return null; + } + + @Override + public String getPermissionNode() { + return "ultimatestacker.admin"; + } + + @Override + public String getSyntax() { + return "/us spawn "; + } + + @Override + public String getDescription() { + return "Spawns a stack of the specified entity at your location."; + } +} From 25fa0e19b995a27e496db858dee7c851b0cf0c49 Mon Sep 17 00:00:00 2001 From: Brianna Date: Sun, 22 Mar 2020 12:46:22 -0400 Subject: [PATCH 5/6] World blacklist for items. --- .../songoda/ultimatestacker/listeners/ItemListeners.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java index 347f664..d97aa09 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/ItemListeners.java @@ -17,6 +17,8 @@ import org.bukkit.event.inventory.InventoryPickupItemEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; +import java.util.List; + public class ItemListeners implements Listener { private final UltimateStacker instance; @@ -30,6 +32,9 @@ public class ItemListeners implements Listener { int maxItemStackSize = Settings.MAX_STACK_ITEMS.getInt(); if (!Settings.STACK_ITEMS.getBoolean()) return; + List disabledWorlds = Settings.DISABLED_WORLDS.getStringList(); + if (disabledWorlds.stream().anyMatch(worldStr -> event.getEntity().getWorld().getName().equalsIgnoreCase(worldStr))) return; + Item item = event.getTarget(); ItemStack itemStack = item.getItemStack(); @@ -68,6 +73,9 @@ public class ItemListeners implements Listener { public void onExist(ItemSpawnEvent event) { if (!Settings.STACK_ITEMS.getBoolean()) return; + List disabledWorlds = Settings.DISABLED_WORLDS.getStringList(); + if (disabledWorlds.stream().anyMatch(worldStr -> event.getEntity().getWorld().getName().equalsIgnoreCase(worldStr))) return; + ItemStack itemStack = event.getEntity().getItemStack(); if (itemStack.hasItemMeta() && itemStack.getItemMeta().hasDisplayName() && From 39fff80383317e4ab4b4302b490caaccafef9108 Mon Sep 17 00:00:00 2001 From: Brianna Date: Sun, 22 Mar 2020 15:53:08 -0400 Subject: [PATCH 6/6] version 1.11.7 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1d929e9..02f455e 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ com.songoda UltimateStacker 4.0.0 - 1.11.6 + 1.11.7 clean install UltimateStacker-${project.version}