From 787cfa089b64393abd835736bad35fc2432e9147 Mon Sep 17 00:00:00 2001 From: jascotty2 Date: Sun, 29 Sep 2019 10:19:37 -0500 Subject: [PATCH 1/4] validate check config strings --- .../songoda/ultimatestacker/entity/Check.java | 16 +++++++++++++++- .../ultimatestacker/utils/EntityUtils.java | 15 ++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/entity/Check.java b/src/main/java/com/songoda/ultimatestacker/entity/Check.java index fa6e454..a8dd5df 100644 --- a/src/main/java/com/songoda/ultimatestacker/entity/Check.java +++ b/src/main/java/com/songoda/ultimatestacker/entity/Check.java @@ -1,5 +1,8 @@ package com.songoda.ultimatestacker.entity; +import java.util.HashMap; +import java.util.Map; + public enum Check { SPAWN_REASON(false), @@ -35,7 +38,14 @@ public enum Check { PHANTOM_SIZE(true), CAT_TYPE(true); - private boolean isEnabledByDefault; + private final boolean isEnabledByDefault; + private final static Map checks = new HashMap(); + + static { + for (Check c : values()) { + checks.put(c.name(), c); + } + } Check(boolean isEnabledByDefault) { this.isEnabledByDefault = isEnabledByDefault; @@ -44,4 +54,8 @@ public enum Check { public boolean isEnabledByDefault() { return isEnabledByDefault; } + + public static Check getCheck(String name) { + return name != null ? checks.get(name.toUpperCase()) : null; + } } diff --git a/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java b/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java index b82de0d..8b3839b 100644 --- a/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java +++ b/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java @@ -17,12 +17,12 @@ public class EntityUtils { UltimateStacker plugin = UltimateStacker.getInstance(); - private List checks = Settings.STACK_CHECKS.getStringList(); - private boolean stackFlyingDown = Settings.ONLY_STACK_FLYING_DOWN.getBoolean(); - private boolean keepFire = Settings.KEEP_FIRE.getBoolean(); - private boolean keepPotion = Settings.KEEP_POTION.getBoolean(); - private boolean stackWholeChunk = Settings.STACK_WHOLE_CHUNK.getBoolean(); - private int searchRadius = Settings.SEARCH_RADIUS.getInt(); + private final List checks = Settings.STACK_CHECKS.getStringList(); + private final boolean stackFlyingDown = Settings.ONLY_STACK_FLYING_DOWN.getBoolean(); + private final boolean keepFire = Settings.KEEP_FIRE.getBoolean(); + private final boolean keepPotion = Settings.KEEP_POTION.getBoolean(); + private final boolean stackWholeChunk = Settings.STACK_WHOLE_CHUNK.getBoolean(); + private final int searchRadius = Settings.SEARCH_RADIUS.getInt(); private final Map cachedChunks = new HashMap<>(); @@ -251,7 +251,8 @@ public class EntityUtils { entityList.removeIf(entity -> entity.getLocation().getY() > initalEntity.getLocation().getY()); for (String checkStr : checks) { - Check check = Check.valueOf(checkStr); + Check check = Check.getCheck(checkStr); + if (check == null) continue; switch (check) { case SPAWN_REASON: { if (initalEntity.hasMetadata("US_REASON")) From 6c94c12a03da2d672bd587673adbfd740bfa21b6 Mon Sep 17 00:00:00 2001 From: jascotty2 Date: Fri, 4 Oct 2019 15:36:56 -0500 Subject: [PATCH 2/4] use new core setting accessor --- .../java/com/songoda/ultimatestacker/settings/Settings.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/settings/Settings.java b/src/main/java/com/songoda/ultimatestacker/settings/Settings.java index 559a076..1211408 100644 --- a/src/main/java/com/songoda/ultimatestacker/settings/Settings.java +++ b/src/main/java/com/songoda/ultimatestacker/settings/Settings.java @@ -5,8 +5,6 @@ import com.songoda.core.configuration.ConfigSetting; import com.songoda.ultimatestacker.UltimateStacker; import com.songoda.ultimatestacker.entity.Check; import com.songoda.ultimatestacker.entity.Split; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.EntityDamageEvent; import java.util.Arrays; import java.util.Collections; @@ -15,7 +13,7 @@ import java.util.stream.Collectors; public class Settings { - static final Config config = UltimateStacker.getInstance().getConfig().getCoreConfig(); + static final Config config = UltimateStacker.getInstance().getCoreConfig(); public static final ConfigSetting STACK_SEARCH_TICK_SPEED = new ConfigSetting(config, "Main.Stack Search Tick Speed", 5, "The speed in which a new stacks will be created.", From 3bd1937432d0202ee4582b87789e8952ea62271b Mon Sep 17 00:00:00 2001 From: Brianna Date: Sat, 5 Oct 2019 11:56:30 -0400 Subject: [PATCH 3/4] Added setting for auto adding spawners to inventory. --- .../ultimatestacker/listeners/BlockListeners.java | 12 +++++++++--- .../songoda/ultimatestacker/settings/Settings.java | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java index 6eaa4e1..e74e216 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java @@ -89,7 +89,7 @@ public class BlockListeners implements Listener { if (overflowItem != null) { if (player.getInventory().firstEmpty() == -1) - block.getLocation().getWorld().dropItemNaturally(block.getLocation().add(.5, 0, .5), overflowItem); + block.getWorld().dropItemNaturally(block.getLocation().add(.5, 0, .5), overflowItem); else player.getInventory().addItem(overflowItem); } @@ -180,8 +180,14 @@ public class BlockListeners implements Listener { plugin.updateHologram(stack); } - if (player.hasPermission("ultimatestacker.spawner.nosilkdrop") || item != null && item.getEnchantments().containsKey(Enchantment.SILK_TOUCH) && player.hasPermission("ultimatestacker.spawner.silktouch")) - block.getWorld().dropItemNaturally(block.getLocation(), Methods.getSpawnerItem(blockType, amt)); + if (player.hasPermission("ultimatestacker.spawner.nosilkdrop") || item.getEnchantments().containsKey(Enchantment.SILK_TOUCH) && player.hasPermission("ultimatestacker.spawner.silktouch")) { + ItemStack spawner = Methods.getSpawnerItem(blockType, amt); + if (player.getInventory().firstEmpty() == -1 || !Settings.SPAWNERS_TO_INVENTORY.getBoolean()) + block.getWorld().dropItemNaturally(block.getLocation().add(.5, 0, .5), spawner); + else + player.getInventory().addItem(spawner); + } + } private int getSpawnerAmount(ItemStack item) { diff --git a/src/main/java/com/songoda/ultimatestacker/settings/Settings.java b/src/main/java/com/songoda/ultimatestacker/settings/Settings.java index 1211408..bbe6ec6 100644 --- a/src/main/java/com/songoda/ultimatestacker/settings/Settings.java +++ b/src/main/java/com/songoda/ultimatestacker/settings/Settings.java @@ -215,6 +215,10 @@ public class Settings { "Should eggs convert spawners? If enabled you will", "still need to give perms for it to work."); + public static final ConfigSetting SPAWNERS_TO_INVENTORY = new ConfigSetting(config, "Spawners.Add Spawners To Inventory On Drop", false, + "Should broken spawners be added directly to the players inventory?", + "Alternatively they will drop to the ground?"); + public static final ConfigSetting MAX_STACK_SPAWNERS = new ConfigSetting(config, "Spawners.Max Stack Size", 5, "What should the max a spawner can stack to be?"); From 236c8b6262ae7e9dcb37db8e3bffbd4e750786ac Mon Sep 17 00:00:00 2001 From: Brianna Date: Sat, 5 Oct 2019 11:56:56 -0400 Subject: [PATCH 4/4] version 1.10.14 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dc32180..3a3a943 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ stages: variables: name: "UltimateStacker" path: "/builds/$CI_PROJECT_PATH" - version: "1.10.13" + version: "1.10.14" build: stage: build