From 83e4bafc69709a6355a55ae95ed87d9b2ac526bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= <43724816+Aurelien30000@users.noreply.github.com> Date: Tue, 26 May 2020 14:19:12 +0200 Subject: [PATCH 001/295] Bee stacking (#88) Slice bees when entering a hive. Co-authored-by: Nathat23 --- .../java/uk/antiperson/stackmob/StackMob.java | 1 + .../stackmob/listeners/BeeListener.java | 34 +++++++++++++++++++ src/main/resources/config.yml | 2 ++ 3 files changed, 37 insertions(+) create mode 100644 src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index eb522a55..ba85e3b8 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -138,6 +138,7 @@ private void registerEvents() throws InvocationTargetException, NoSuchMethodExce registerEvent(SpawnListener.class); registerEvent(TargetListener.class); registerEvent(PlayerListener.class); + registerEvent(BeeListener.class); } private void registerEvent(Class clazz) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java new file mode 100644 index 00000000..46210919 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java @@ -0,0 +1,34 @@ +package uk.antiperson.stackmob.listeners; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityEnterBlockEvent; +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.entity.StackEntity; + +@ListenerMetadata(config = "events.divide.enter-block") +public class BeeListener implements Listener { + + private final StackMob sm; + + public BeeListener(StackMob sm) { + this.sm = sm; + } + + @EventHandler (ignoreCancelled = true) + public void onEntityEnterBlockEvent(EntityEnterBlockEvent event) { + final LivingEntity bee = (LivingEntity) event.getEntity(); + + if (sm.getEntityManager().isStackedEntity(bee)) { + final StackEntity oldBee = sm.getEntityManager().getStackEntity(bee); + + if (oldBee.isSingle()) { + return; + } + + oldBee.slice(); + } + } + +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 42a010dc..4e606079 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -107,6 +107,8 @@ events: divide: nametag: true tame: true + # Only bees now + enter-block: true remove-stack-data: # Should we remove the stack data of an entity that was unstacked as a result of nametag division/split? # Setting this to false will cause entities that were nametagged to potentially become stacked again. From e3207afcb77774cfcc88c23ce1b5c76a56229558 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 10 Jun 2020 12:36:03 +0100 Subject: [PATCH 002/295] Part fix for #26 Fixes the issue if the mob killed is a leader. --- .../antiperson/stackmob/entity/death/KillStepDamage.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java index d9a7e6f0..4fceb65e 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java @@ -1,6 +1,7 @@ package uk.antiperson.stackmob.entity.death; import org.bukkit.attribute.Attribute; +import org.bukkit.attribute.AttributeModifier; import org.bukkit.entity.LivingEntity; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; @@ -19,6 +20,12 @@ public int calculateStep() { double healthBefore = ((LivingEntity)getDead().getEntity().getLastDamageCause().getEntity()).getHealth(); double damageDone = getEntity().getLastDamageCause().getFinalDamage(); double damageLeft = Math.abs(healthBefore - damageDone); + for (AttributeModifier modifier : getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getModifiers()) { + if (!modifier.getName().equals("Leader zombie bonus")) { + continue; + } + getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).removeModifier(modifier); + } double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); double divided = damageLeft / maxHealth; int entities = (int) Math.floor(divided); From 9cd53b8d05996171d26ac1bd54b35a44d74487d1 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 13 Jun 2020 21:47:52 +0100 Subject: [PATCH 003/295] Remove stack data when animal gets tamed (fixes #99) --- src/main/java/uk/antiperson/stackmob/listeners/TameListener.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java index e0d86fe3..701b952e 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java @@ -21,5 +21,6 @@ public void onTame(EntityTameEvent event) { return; } stackEntity.slice(); + stackEntity.removeStackData(); } } From 5dc2bd51be3a17ff3c8685fffdf1e89445089c68 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 14 Jun 2020 15:59:55 +0100 Subject: [PATCH 004/295] Various fixes regarding leads. (fixes #95) When a leashed mob is removed when merging, a lead will be dropped. Mobs sliced from a stack will now become unleashed while the bigger stack remains leashed. Added leash trait check. --- .../stackmob/entity/StackEntity.java | 33 +++++++++++++++---- .../stackmob/entity/traits/TraitManager.java | 1 + .../stackmob/entity/traits/trait/Leash.java | 26 +++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 8d6efa05..c538cae7 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -1,8 +1,10 @@ package uk.antiperson.stackmob.entity; +import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.LivingEntity; import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; import uk.antiperson.stackmob.StackMob; @@ -105,6 +107,10 @@ public int getMaxSize() { */ public void remove() { entity.remove(); + if (getEntity().isLeashed()) { + ItemStack leash = new ItemStack(Material.LEAD, 1); + getWorld().dropItemNaturally(entity.getLocation(), leash); + } } /** @@ -193,10 +199,7 @@ public boolean merge(StackEntity toMerge) { public StackEntity splitIfNotEnough(int itemAmount) { // If there is not enough food, then spawn a new stack with the remaining. if (getSize() > itemAmount) { - StackEntity notFed = duplicate(); - notFed.setSize(getSize() - itemAmount); - setSize(itemAmount); - return notFed; + return slice(itemAmount); } return null; } @@ -220,16 +223,32 @@ public boolean isSingle() { } /** - * Makes this stack singular and spawns another stack with the remaining stack size. + * Makes this stack smaller by 1 and spawns another stack with the remaining stack size. * @return stack with the remaining stack size. */ public StackEntity slice() { + return slice(1); + } + + /** + * Makes this stack smaller and spawns another stack with the remaining stack size. + * @param amount amount to + * @return stack with the remaining stack size. + */ + public StackEntity slice(int amount) { if (isSingle()) { throw new UnsupportedOperationException("Stack size must be greater than 1 to slice!"); } + if (amount >= getSize()) { + throw new UnsupportedOperationException("Slice amount is bigger than the stack size!"); + } StackEntity duplicate = duplicate(); - duplicate.setSize(getSize() - 1); - setSize(1); + duplicate.setSize(getSize() - amount); + setSize(amount); + if (getEntity().isLeashed()) { + duplicate.getEntity().setLeashHolder(getEntity().getLeashHolder()); + getEntity().setLeashHolder(null); + } return duplicate; } diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java index b1f99215..819cba3d 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java @@ -33,6 +33,7 @@ public void registerTraits() throws InstantiationException, IllegalAccessExcepti registerTrait(ZombieBaby.class); registerTrait(BeeNectar.class); registerTrait(BeeStung.class); + registerTrait(Leash.class); } /** diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java new file mode 100644 index 00000000..399fcfb7 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java @@ -0,0 +1,26 @@ +package uk.antiperson.stackmob.entity.traits.trait; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Mob; +import uk.antiperson.stackmob.entity.traits.Trait; +import uk.antiperson.stackmob.entity.traits.TraitMetadata; + +@TraitMetadata(entity = Mob.class, path = "leashed") +public class Leash implements Trait { + + @Override + public boolean checkTrait(LivingEntity first, LivingEntity nearby) { + if (first.getLeashHolder() != nearby.getLeashHolder()) { + return true; + } + return false; + } + + @Override + public void applyTrait(LivingEntity spawned, LivingEntity dead) { + if (!dead.isLeashed()) { + return; + } + spawned.setLeashHolder(dead.getLeashHolder()); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 4e606079..3cd2b082 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -67,6 +67,7 @@ traits: fox-type: true bee-nectar: true bee-stung: true + leashed: true # Prevent stacked mobs from targeting players. # Similar to no-ai, but allows for movement of entities. From 389f3537758fc6eff60b8299066e78dbf458f1d2 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 15 Jun 2020 19:28:52 +0100 Subject: [PATCH 005/295] Allow entity type in spawn command to be lowercase (fixes #100) --- src/main/java/uk/antiperson/stackmob/commands/Commands.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/commands/Commands.java b/src/main/java/uk/antiperson/stackmob/commands/Commands.java index 9046ccc5..fbd0eb59 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/Commands.java +++ b/src/main/java/uk/antiperson/stackmob/commands/Commands.java @@ -104,7 +104,7 @@ public boolean validateArgs(CommandArgument[] argumentTypes, String[] args) { break; case ENTITY_TYPE: try { - EntityType.valueOf(args[i]); + EntityType.valueOf(args[i].toUpperCase()); } catch (IllegalArgumentException e) { return false; } From 6bebb7cf1b930c0f397fec4eeb335491c527f87b Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 29 Jun 2020 21:27:37 +0100 Subject: [PATCH 006/295] Fix leash error --- .../uk/antiperson/stackmob/entity/traits/trait/Leash.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java index 399fcfb7..017c40ee 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Leash.java @@ -10,10 +10,10 @@ public class Leash implements Trait { @Override public boolean checkTrait(LivingEntity first, LivingEntity nearby) { - if (first.getLeashHolder() != nearby.getLeashHolder()) { + if (first.isLeashed() != nearby.isLeashed()) { return true; } - return false; + return first.isLeashed() && first.getLeashHolder() != nearby.getLeashHolder(); } @Override From 18a2ebfd2c0ddaa243d569b6126b2028a4596957 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 29 Jun 2020 21:29:08 +0100 Subject: [PATCH 007/295] Remove unused method --- .../stackmob/config/SpecialConfigFile.java | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java b/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java index b043fc9f..eb295e3f 100644 --- a/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java +++ b/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java @@ -56,27 +56,4 @@ private ConfigValue get(EntityType type, String path) { return new ConfigValue(path, get(path)); } - /** - * Gets the custom config path for this entity if it has been specified. If not this will just be the normal value. - * @param type the entity type - * @param path the config path. - * @return the path for this config path and entity. - */ - private String getPath(EntityType type, String path) { - if (!isFileLoaded()) { - throw new UnsupportedOperationException("Configuration file has not been loaded!"); - } - // Check if the specified general config path is overridden by an entity specific equivalent. - String customPath = "custom." + type + "." + path; - if (isSet(customPath)) { - return customPath; - } - // Check if this entity specific path is specified to clone another path. - String clone = "custom." + type + ".clone"; - String clonePath = "custom." + getString(clone) + "." + path; - if (isString(clonePath)) { - return clonePath; - } - return path; - } } From 55545e84d9e1705bfb127a7510a4347881e22ebc Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 29 Jun 2020 21:29:17 +0100 Subject: [PATCH 008/295] Increment version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ac3c083f..e58cc2c4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.2.0 + 5.2.1 src/main/java From 06a31073f2b5e33b9a6291f354a7bd8576ef4260 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 30 Jun 2020 10:55:14 +0100 Subject: [PATCH 009/295] Fix Tag NullPointerException --- .../uk/antiperson/stackmob/entity/Tag.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Tag.java b/src/main/java/uk/antiperson/stackmob/entity/Tag.java index 14e05961..ff3d5136 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Tag.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Tag.java @@ -30,15 +30,8 @@ public void update() { entity.setCustomNameVisible(false); return; } - String typeString = sm.getEntityTranslation().getTranslatedName(entity.getType()); - if (typeString.length() == 0) { - StackableMobHook smh = sm.getHookManager().getApplicableHook(stackEntity); - typeString = smh != null ? smh.getDisplayName(entity) : entity.getType().toString(); - typeString = typeString == null ? entity.getType().toString() : typeString; - typeString = WordUtils.capitalizeFully(typeString.replaceAll("[^A-Za-z0-9]", " ")); - } String displayName = sm.getMainConfig().getTagFormat(entity.getType()); - displayName = StringUtils.replace(displayName, "%type%", typeString); + displayName = StringUtils.replace(displayName, "%type%", getEntityName()); displayName = StringUtils.replace(displayName, "%size%", stackEntity.getSize() + ""); displayName = ChatColor.translateAlternateColorCodes('&', displayName); entity.setCustomName(displayName); @@ -47,6 +40,18 @@ public void update() { } } + private String getEntityName() { + LivingEntity entity = stackEntity.getEntity(); + String typeString = sm.getEntityTranslation().getTranslatedName(entity.getType()); + if (typeString != null && typeString.length() > 0) { + return typeString; + } + StackableMobHook smh = sm.getHookManager().getApplicableHook(stackEntity); + typeString = smh != null ? smh.getDisplayName(entity) : entity.getType().toString(); + typeString = typeString == null ? entity.getType().toString() : typeString; + return WordUtils.capitalizeFully(typeString.replaceAll("[^A-Za-z0-9]", " ")); + } + public void sendPacket(Player player, boolean tagVisible) { if (!Utilities.isNewBukkit()) { ProtocolLibHook protocolLibHook = sm.getHookManager().getProtocolLibHook(); From ce8940c5fabf5e1e9b5277007f04f0fa55c21718 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 30 Jun 2020 11:05:16 +0100 Subject: [PATCH 010/295] Fix NoSuchMethodError on spigot servers --- .../stackmob/entity/StackEntity.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 36290e81..0cb02d1c 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -214,14 +214,22 @@ public StackEntity splitIfNotEnough(int itemAmount) { * @return a clone of this entity. */ public StackEntity duplicate() { + StackEntity cloneStack = sm.getEntityManager().getStackEntity(spawnClone()); + cloneStack.setSize(1); + sm.getTraitManager().applyTraits(cloneStack, this); + sm.getHookManager().onSpawn(cloneStack); + return cloneStack; + } + + private LivingEntity spawnClone() { LivingEntity entity = sm.getHookManager().spawnClone(getEntity().getLocation(), this); - CreatureSpawnEvent.SpawnReason spawnReason = Utilities.isPaper() ? getEntity().getEntitySpawnReason() : CreatureSpawnEvent.SpawnReason.CUSTOM; - entity = entity == null ? (LivingEntity) getWorld().spawnEntity(getEntity().getLocation(), getEntity().getType(), spawnReason) : entity; - StackEntity stackEntity = sm.getEntityManager().getStackEntity(entity); - stackEntity.setSize(1); - sm.getTraitManager().applyTraits(stackEntity, this); - sm.getHookManager().onSpawn(stackEntity); - return stackEntity; + if (entity != null) { + return entity; + } + if (Utilities.isPaper()) { + return (LivingEntity) getWorld().spawnEntity(getEntity().getLocation(), getEntity().getType(), getEntity().getEntitySpawnReason()); + } + return (LivingEntity) getWorld().spawnEntity(getEntity().getLocation(), getEntity().getType()); } public boolean isSingle() { From b93ab912f189199a86b756fed06071b82eb5ee0d Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 30 Jun 2020 12:41:55 +0100 Subject: [PATCH 011/295] Increment version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e58cc2c4..2a2896ee 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.2.1 + 5.2.2 src/main/java From 40f3ce2506c09b91843f533901baaf4bb38aeb13 Mon Sep 17 00:00:00 2001 From: antiPerson Date: Wed, 1 Jul 2020 20:04:37 +0100 Subject: [PATCH 012/295] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ce37c00..1d2ce8ce 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ # StackMob-5 -StackMob redefined for 1.14 only. Uses NBT rather than databases/yaml files so performance will be greatly improved. +StackMob redefined for 1.15 and 1.16. Uses NBT rather than databases/yaml files so performance will be greatly improved compared to previous versions of StackMob. + +Spigot: https://www.spigotmc.org/resources/stackmob-enhance-your-servers-performance-without-the-sacrifice.29999/ + +StackMob is a plugin that reduces the strain of mobs on your server by 'stacking' them together, therefore you can have 1 entity instead of 30 entities. StackMob aims to try and not break vanilla mechanics, however this is not always pratical and/or possible. + +It is recomended to use StackMob in conjunction with a farm limiter plugin for the best results. + From ac2dc81be84be57de320c8c15d544bf1cac2a78a Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 14 Jul 2020 00:37:59 +0100 Subject: [PATCH 013/295] Fix stack data being removed before the entity is sliced when a nametag is used. --- .../antiperson/stackmob/listeners/TagInteractListener.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java index 9ca9509b..7996d584 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java @@ -35,12 +35,11 @@ public void onTagInteract(PlayerInteractEntityEvent event) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getRightClicked()); + if (!stackEntity.isSingle()) { + stackEntity.slice(); + } if (sm.getMainConfig().removeStackDataOnDivide("nametag")) { stackEntity.removeStackData(); } - if (stackEntity.isSingle()) { - return; - } - stackEntity.slice(); } } From d325765a2ba49f890e88e916ca00ba201132bdb3 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 14 Jul 2020 22:19:09 +0100 Subject: [PATCH 014/295] Fix default config option --- src/main/resources/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 3545c6b0..cac777fc 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -197,7 +197,7 @@ wait-to-stack: types-whitelist: - ZOMBIE - SKELETON - - PIG_ZOMBIE + - ZOMBIFIED_PIGLIN - CREEPER - ENDERMAN types-whitelist-invert: false From 2af3d66ce9924ee2f7974ea43b321806d1f62e85 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 18 Jul 2020 10:33:07 +0100 Subject: [PATCH 015/295] Fix lead being dropped when stack dies while leash trait is enabled, allowing duplication (fixes #113) --- .../java/uk/antiperson/stackmob/StackMob.java | 1 + .../stackmob/listeners/LeashListener.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index 890bf1be..1a94973b 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -141,6 +141,7 @@ private void registerEvents() throws InvocationTargetException, NoSuchMethodExce registerEvent(TargetListener.class); registerEvent(PlayerListener.class); registerEvent(BeeListener.class); + registerEvent(LeashListener.class); } private void registerEvent(Class clazz) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { diff --git a/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java b/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java new file mode 100644 index 00000000..d30e3fae --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java @@ -0,0 +1,31 @@ +package uk.antiperson.stackmob.listeners; + +import org.bukkit.Material; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDropItemEvent; +import uk.antiperson.stackmob.StackMob; + +@ListenerMetadata(config = "traits.leashed") +public class LeashListener implements Listener { + + private final StackMob sm; + public LeashListener(StackMob sm) { + this.sm = sm; + } + + @EventHandler + public void onLeash(EntityDropItemEvent event) { + if (event.getItemDrop().getItemStack().getType() != Material.LEAD) { + return; + } + if (!sm.getEntityManager().isStackedEntity((LivingEntity) event.getEntity())) { + return; + } + if (!event.getEntity().isDead()) { + return; + } + event.setCancelled(true); + } +} From 9b10cca86a426f00111e3b2aa7737dc978fe759f Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 18 Jul 2020 10:55:22 +0100 Subject: [PATCH 016/295] Blacklist natural spawn reason in default config --- src/main/resources/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index cac777fc..f9a356fe 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -27,7 +27,7 @@ worlds-blacklist-invert: false types-blacklist: [VILLAGER] types-blacklist-invert: false # If the entity's spawns reason is listed below, do not stack. -reason-blacklist: [] +reason-blacklist: [NATURAL] reason-blacklist-invert: false display-name: From 6457165de6e219742958cced1163d4137b5d2e6a Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 18 Jul 2020 12:31:27 +0100 Subject: [PATCH 017/295] Support for 1.16 hex color codes. --- .../uk/antiperson/stackmob/entity/Tag.java | 5 +++-- .../antiperson/stackmob/utils/Utilities.java | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Tag.java b/src/main/java/uk/antiperson/stackmob/entity/Tag.java index ff3d5136..ff3c1f1f 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Tag.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Tag.java @@ -2,7 +2,6 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.WordUtils; -import org.bukkit.ChatColor; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import uk.antiperson.stackmob.StackMob; @@ -33,7 +32,7 @@ public void update() { String displayName = sm.getMainConfig().getTagFormat(entity.getType()); displayName = StringUtils.replace(displayName, "%type%", getEntityName()); displayName = StringUtils.replace(displayName, "%size%", stackEntity.getSize() + ""); - displayName = ChatColor.translateAlternateColorCodes('&', displayName); + displayName = Utilities.translateColorCodes(displayName); entity.setCustomName(displayName); if (sm.getMainConfig().getTagMode(entity.getType()) == TagMode.ALWAYS) { entity.setCustomNameVisible(true); @@ -68,4 +67,6 @@ public void sendPacket(Player player, boolean tagVisible) { sm.getLogger().log(Level.WARNING,"An error occurred while sending packet. Is StackMob updated to support your server version?"); } } + + } diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index e6f7b4fc..4364500e 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -1,6 +1,6 @@ package uk.antiperson.stackmob.utils; -import org.bukkit.ChatColor; +import net.md_5.bungee.api.ChatColor; import java.io.File; import java.io.IOException; @@ -9,16 +9,29 @@ import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.concurrent.CompletableFuture; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Utilities { public static final String PREFIX = ChatColor.DARK_GREEN + "StackMob " + ChatColor.GRAY + ">> " + ChatColor.RESET; - public static final String SLIME_METADATA = "deathcount"; - public static final String DISCORD = "https://discord.gg/fz9xzuB"; public static final String GITHUB = "https://github.com/Nathat23/StackMob-5"; public static final String GITHUB_DEFAULT_CONFIG = GITHUB + "/tree/master/src/main/resources"; + private static final Pattern hexPattern = Pattern.compile("&#([a-zA-Z0-9]){6}"); + + public static String translateColorCodes(String toTranslate) { + Matcher matcher = hexPattern.matcher(toTranslate); + while (matcher.find()) { + net.md_5.bungee.api.ChatColor chatColor = net.md_5.bungee.api.ChatColor.of(matcher.group().substring(1,8)); + String before = toTranslate.substring(0, matcher.start()); + String after = toTranslate.substring(matcher.end()); + toTranslate = before + chatColor + after; + matcher = hexPattern.matcher(toTranslate); + } + return ChatColor.translateAlternateColorCodes('&', toTranslate); + } public static CompletableFuture downloadFile(File filePath, String url) { return CompletableFuture.supplyAsync(() -> { From 362fbd0b36586387dc8735fdfd7ff7dde4dbfd02 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 18 Jul 2020 12:35:31 +0100 Subject: [PATCH 018/295] Add config comment for colour codes. --- src/main/resources/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f9a356fe..1fc7fbea 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -32,6 +32,7 @@ reason-blacklist-invert: false display-name: # The formatting of the name tag which is shown when the stack size is above the threshold. + # Both legacy and RGB hex color codes are supported, these need to be prefixed by the '&' symbol. # Placeholders: # %type% - the entity's type # %size% - the size of the stack From f7373316c15e0a6c15a8b9abc63bf5e188c8a93e Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 18 Jul 2020 12:35:46 +0100 Subject: [PATCH 019/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2a2896ee..a81bc8e2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.2.2 + 5.2.3 src/main/java From 8f005654bc440244e689a0b59e5c109f643b6c16 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 10 Aug 2020 15:53:11 +0100 Subject: [PATCH 020/295] Give default spawnreason rather than null. --- .../uk/antiperson/stackmob/commands/subcommands/ForceStack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java b/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java index 2501ce2b..1f513547 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java +++ b/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java @@ -36,7 +36,7 @@ public boolean onCommand(User sender, String[] args) { if ((entity instanceof Tameable) && (((Tameable) entity)).isTamed() && !(args.length > 0 && args[0].equals("tamed"))) { continue; } - CreatureSpawnEvent.SpawnReason reason = Utilities.isPaper() ? entity.getEntitySpawnReason() : null; + CreatureSpawnEvent.SpawnReason reason = Utilities.isPaper() ? entity.getEntitySpawnReason() : CreatureSpawnEvent.SpawnReason.DEFAULT; if (sm.getMainConfig().isEntityBlacklisted(entity, reason)) { continue; } From 453b1e2fe7d76ab45c9547011d857990083822a7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 10 Aug 2020 15:55:30 +0100 Subject: [PATCH 021/295] Add SHOULDER_ENTITY to default config so that parrots don't stack on demount. --- src/main/resources/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 1fc7fbea..0b1aa6f6 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -27,7 +27,9 @@ worlds-blacklist-invert: false types-blacklist: [VILLAGER] types-blacklist-invert: false # If the entity's spawns reason is listed below, do not stack. -reason-blacklist: [NATURAL] +reason-blacklist: + - SHOULDER_ENTITY + - NATURAL reason-blacklist-invert: false display-name: From 2bf1632ab4f5fb801bba57a1872600f3e5c07622 Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 14:59:29 +1000 Subject: [PATCH 022/295] Some general changes Please review these changes before merging. --- .../entity/traits/trait/DrownedItem.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java index 35961d75..3c273332 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java @@ -13,22 +13,20 @@ public class DrownedItem implements Trait { private final List materials = Arrays.asList(Material.NAUTILUS_SHELL, Material.TRIDENT); - + @Override - public boolean checkTrait(LivingEntity first, LivingEntity nearby) { + public boolean checkTrait (LivingEntity first, LivingEntity nearby) { Drowned oriDrowned = (Drowned) first; Drowned nearDrowned = (Drowned) nearby; - if(materials.contains(oriDrowned.getEquipment().getItemInMainHand().getType()) || - materials.contains(nearDrowned.getEquipment().getItemInMainHand().getType())){ - if(oriDrowned.getEquipment().getItemInMainHand().getType() != - nearDrowned.getEquipment().getItemInMainHand().getType()){ - return true; - } + EntityEquipment oriEquipment = oriDrowned.getEquipment(); + EntityEquipment nearEquipment = nearDrowned.getEquipment(); + if (oriEquipment == null && nearEquipment == null) return true; + if (oriEquipment == null || nearEquipment == null) return false; + if (oriEquipment.getItemInMainHand().getType() == nearEquipment.getItemInMainHand().getType()) { + return materials.contains(oriEquipment.getItemInMainHand().getType()); } - if(materials.contains(oriDrowned.getEquipment().getItemInOffHand().getType()) || - materials.contains(nearDrowned.getEquipment().getItemInOffHand().getType())){ - return oriDrowned.getEquipment().getItemInOffHand().getType() != - nearDrowned.getEquipment().getItemInOffHand().getType(); + if (oriEquipment.getItemInOffHand().getType() == nearEquipment.getItemInOffHand().getType()) { + return materials.contains(oriEquipment.getItemInOffHand().getType()); } return false; } From 6b9d03ab532c97ff6a9348790017f4e4395b6aae Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:02:57 +1000 Subject: [PATCH 023/295] null check --- src/main/java/uk/antiperson/stackmob/entity/Drops.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Drops.java b/src/main/java/uk/antiperson/stackmob/entity/Drops.java index 3b9b4528..eba62642 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Drops.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Drops.java @@ -30,7 +30,8 @@ public Map calculateDrops(int deathAmount, List o if (sm.getMainConfig().getDropTypeBlacklist(dead.getType()).contains(dead.getType().toString())) { return items; } - if (sm.getMainConfig().getDropReasonBlacklist(dead.getType()).contains(dead.getLastDamageCause().getCause().toString())) { + EntityDamageEvent lastDamageCause = dead.getLastDamageCause(); + if (lastDamageCause == null || sm.getMainConfig().getDropReasonBlacklist(dead.getType()).contains(lastDamageCause.getCause().toString())) { return items; } for (int i = 0; i < deathAmount; i++) { From 4795579f5bfe602a24aec8cdc2c0044f1452e43a Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:03:37 +1000 Subject: [PATCH 024/295] Add import --- src/main/java/uk/antiperson/stackmob/entity/Drops.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Drops.java b/src/main/java/uk/antiperson/stackmob/entity/Drops.java index eba62642..87971548 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Drops.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Drops.java @@ -6,6 +6,7 @@ import org.bukkit.entity.ExperienceOrb; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Mob; +import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.loot.LootContext; import uk.antiperson.stackmob.StackMob; From c8a4ea92965bc30f80e91d28ed2c364e0550eb52 Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:04:32 +1000 Subject: [PATCH 025/295] add import --- .../uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java index 3c273332..b046621e 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java @@ -3,6 +3,7 @@ import org.bukkit.Material; import org.bukkit.entity.Drowned; import org.bukkit.entity.LivingEntity; +import org.bukkit.inventory.EntityEquipment; import uk.antiperson.stackmob.entity.traits.Trait; import uk.antiperson.stackmob.entity.traits.TraitMetadata; From 841989c9d3628b8598a97f91051dfb819ed3741e Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:13:10 +1000 Subject: [PATCH 026/295] General improvements --- .../uk/antiperson/stackmob/entity/StackEntity.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 0cb02d1c..46044486 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -59,10 +59,7 @@ public boolean shouldWait(CreatureSpawnEvent.SpawnReason spawnReason) { if (!sm.getMainConfig().getWaitingTypes(getEntity().getType()).contains(getEntity().getType().toString())) { return false; } - if (!sm.getMainConfig().getWaitingReasons(getEntity().getType()).contains(spawnReason.toString())) { - return false; - } - return true; + return sm.getMainConfig().getWaitingReasons(getEntity().getType()).contains(spawnReason.toString()); } public void makeWait() { @@ -173,10 +170,7 @@ public boolean checkNearby(StackEntity nearby) { if (sm.getHookManager().checkHooks(this, nearby)) { return false; } - if (nearby.getEntity().isDead() || getEntity().isDead()) { - return false; - } - return true; + return !nearby.getEntity().isDead() && !getEntity().isDead(); } /** From a75ed02f58bd719ff3d67fc226cd7adc9c0e65cb Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:15:51 +1000 Subject: [PATCH 027/295] Use if else instead of switch --- .../listeners/BreedInteractListener.java | 52 +++++++++---------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java index 37a47c54..2eea597e 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java @@ -41,34 +41,30 @@ public void onBreedInteract(PlayerInteractEntityEvent event) { if (stackEntity.isSingle()) { return; } - switch (sm.getMainConfig().getListenerMode(animals.getType(), "breed")) { - case SPLIT: - stackEntity.slice(); - break; - case MULTIPLY: - int itemAmount = event.getPlayer().getInventory().getItemInMainHand().getAmount(); - EntityUtils.removeHandItem(event.getPlayer(), stackEntity.getSize()); - stackEntity.splitIfNotEnough(itemAmount); - if (itemAmount == 1) { - return; - } - double kAmount = stackEntity.getSize() / 2D; - int kidAmount = (int) Math.floor(kAmount); - if (kAmount > kidAmount) { - stackEntity.duplicate(); - stackEntity.incrementSize(-1); - } - stackEntity.getDrops().dropExperience(event.getRightClicked().getLocation(),1,7, kidAmount); - // Spawn the kid - StackEntity kid = stackEntity.duplicate(); - kid.setSize(kidAmount); - ((Animals) kid.getEntity()).setBaby(); - // Update the adult - animals.setBreed(false); - animals.setBreedCause(event.getPlayer().getUniqueId()); - break; + ListenerMode breed = sm.getMainConfig().getListenerMode(animals.getType(), "breed"); + if (breed == ListenerMode.SPLIT) { + stackEntity.slice(); + } else if (breed == ListenerMode.MULTIPLY) { + int itemAmount = event.getPlayer().getInventory().getItemInMainHand().getAmount(); + EntityUtils.removeHandItem(event.getPlayer(), stackEntity.getSize()); + stackEntity.splitIfNotEnough(itemAmount); + if (itemAmount == 1) { + return; + } + double kAmount = stackEntity.getSize() / 2D; + int kidAmount = (int) Math.floor(kAmount); + if (kAmount > kidAmount) { + stackEntity.duplicate(); + stackEntity.incrementSize(-1); + } + stackEntity.getDrops().dropExperience(event.getRightClicked().getLocation(),1,7, kidAmount); + // Spawn the kid + StackEntity kid = stackEntity.duplicate(); + kid.setSize(kidAmount); + ((Animals) kid.getEntity()).setBaby(); + // Update the adult + animals.setBreed(false); + animals.setBreedCause(event.getPlayer().getUniqueId()); } } - - } From d364a56d47a9f1251ea30d69a128a6f8b522ce4c Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:22:29 +1000 Subject: [PATCH 028/295] Use if else instead of switch --- .../stackmob/listeners/DyeListener.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java index 0993896f..50c6b96f 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java @@ -37,16 +37,13 @@ public void onDyeListener(PlayerInteractEntityEvent event) { if (stackEntity.isSingle()) { return; } - switch (sm.getMainConfig().getListenerMode(sheep.getType(), "dye")) { - case SPLIT: - StackEntity slice = stackEntity.slice(); - ((Colorable) slice.getEntity()).setColor(sheep.getColor()); - break; - case MULTIPLY: - stackEntity.splitIfNotEnough(event.getPlayer().getInventory().getItemInMainHand().getAmount()); - EntityUtils.removeHandItem(event.getPlayer(), stackEntity.getSize()); - sheep.setColor(DyeColor.valueOf(handItem.getType().toString().replace("_DYE", ""))); - break; + ListenerMode mode = sm.getMainConfig().getListenerMode(sheep.getType(), "dye"); + if (mode == ListenerMode.SPLIT) { + ((Colorable) stackEntity.slice().getEntity()).setColor(sheep.getColor()); + } else if (mode == ListenerMode.MULTIPLY) { + stackEntity.splitIfNotEnough(event.getPlayer().getInventory().getItemInMainHand().getAmount()); + EntityUtils.removeHandItem(event.getPlayer(), stackEntity.getSize()); + sheep.setColor(DyeColor.valueOf(handItem.getType().toString().replace("_DYE", ""))); } } } From 27d7fb389f3d18e12f78573035342a33d09a3a48 Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:35:05 +1000 Subject: [PATCH 029/295] null check --- .../uk/antiperson/stackmob/listeners/ExplosionListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java index d5baf634..3dadcdb3 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java @@ -24,7 +24,7 @@ public void onExplosion(EntityExplodeEvent event) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getEntity()); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return; } double multiplier = ThreadLocalRandom.current().nextDouble(0.4, 0.6); From 224fd0c421ea5bb3a9a75e2ca5ab4287bcc77193 Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:35:53 +1000 Subject: [PATCH 030/295] Update BeeListener.java --- src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java index 46210919..1e5ac954 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java @@ -23,7 +23,7 @@ public void onEntityEnterBlockEvent(EntityEnterBlockEvent event) { if (sm.getEntityManager().isStackedEntity(bee)) { final StackEntity oldBee = sm.getEntityManager().getStackEntity(bee); - if (oldBee.isSingle()) { + if (oldBee == null || oldBee.isSingle()) { return; } From eab4c7bf7529d0b84dcfc7df3e0b8686b392b32a Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:38:46 +1000 Subject: [PATCH 031/295] Null check and changed switch to if else --- .../stackmob/listeners/ShearListener.java | 71 +++++++++---------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java index 495b8d0c..3e20cd1b 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java @@ -60,47 +60,46 @@ private ItemStack shearLogic(LivingEntity entity, ItemStack item) { return null; } StackEntity stackEntity = sm.getEntityManager().getStackEntity(entity); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return null; } - switch (sm.getMainConfig().getListenerMode(entity.getType(), "shear")) { - case SPLIT: - StackEntity slice = stackEntity.slice(); - if (slice.getEntity() instanceof Sheep) { - ((Sheep) slice.getEntity()).setSheared(false); - } - break; - case MULTIPLY: - Damageable damageable = (Damageable) item.getItemMeta(); - int health = item.getType().getMaxDurability() - damageable.getDamage(); - stackEntity.splitIfNotEnough(health); - int damage = health - stackEntity.getSize(); - if (damage > 0) { - damageable.setDamage(damageable.getDamage() + stackEntity.getSize()); - item.setItemMeta((ItemMeta) damageable); - } else { - item = new ItemStack(Material.AIR); - } - if (entity instanceof Sheep) { - Sheep sheared = (Sheep) entity; - LootContext lootContext = new LootContext.Builder(sheared.getLocation()).lootedEntity(sheared).build(); - Collection loot = sheared.getLootTable().populateLoot(ThreadLocalRandom.current(), lootContext); - for(ItemStack itemStack : loot){ - if(itemStack.getData() instanceof Wool) { - int woolAmount = (int) Math.round(stackEntity.getSize() * ThreadLocalRandom.current().nextDouble(1,2)); - Drops.dropItem(sheared.getLocation(), itemStack, woolAmount); - } + ListenerMode shear = sm.getMainConfig().getListenerMode(entity.getType(), "shear"); + if (shear == ListenerMode.SPLIT) { + StackEntity slice = stackEntity.slice(); + if (slice.getEntity() instanceof Sheep) { + ((Sheep) slice.getEntity()).setSheared(false); + } + } else if (shear == ListenerMode.MULTIPLY) { + Damageable damageable = (Damageable) item.getItemMeta(); + int health = item.getType().getMaxDurability() - damageable.getDamage(); + stackEntity.splitIfNotEnough(health); + int damage = health - stackEntity.getSize(); + if (damage > 0) { + damageable.setDamage(damageable.getDamage() + stackEntity.getSize()); + item.setItemMeta((ItemMeta) damageable); + } else { + item = new ItemStack(Material.AIR); + } + if (entity instanceof Sheep) { + Sheep sheared = (Sheep) entity; + LootContext lootContext = new LootContext.Builder(sheared.getLocation()).lootedEntity(sheared).build(); + Collection loot = sheared.getLootTable().populateLoot(ThreadLocalRandom.current(), lootContext); + for (ItemStack itemStack : loot) { + if (itemStack.getData() instanceof Wool) { + int woolAmount = (int) Math.round(stackEntity.getSize() * ThreadLocalRandom.current().nextDouble(1, 2)); + Drops.dropItem(sheared.getLocation(), itemStack, woolAmount); } - return item; } - MushroomCow mushroomCow = (MushroomCow) entity; - ItemStack mushrooms = new ItemStack(Material.RED_MUSHROOM,1); - Drops.dropItem(mushroomCow.getLocation(), mushrooms, (stackEntity.getSize() - 1) * 5); - // Spawn separate normal cow for the rest of the stack. - Entity cow = mushroomCow.getWorld().spawnEntity(mushroomCow.getLocation(), EntityType.COW); - StackEntity stackCow = sm.getEntityManager().getStackEntity((LivingEntity) cow); - stackCow.setSize(stackEntity.getSize() - 1); return item; + } + MushroomCow mushroomCow = (MushroomCow) entity; + ItemStack mushrooms = new ItemStack(Material.RED_MUSHROOM, 1); + Drops.dropItem(mushroomCow.getLocation(), mushrooms, (stackEntity.getSize() - 1) * 5); + // Spawn separate normal cow for the rest of the stack. + Entity cow = mushroomCow.getWorld().spawnEntity(mushroomCow.getLocation(), EntityType.COW); + StackEntity stackCow = sm.getEntityManager().getStackEntity((LivingEntity) cow); + stackCow.setSize(stackEntity.getSize() - 1); + return item; } return null; } From 1663b2747a1846dd4406937b69ad6d9386f40255 Mon Sep 17 00:00:00 2001 From: LogGits Date: Wed, 9 Sep 2020 15:39:17 +1000 Subject: [PATCH 032/295] Null check --- .../uk/antiperson/stackmob/listeners/ExplosionListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java index d5baf634..3dadcdb3 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ExplosionListener.java @@ -24,7 +24,7 @@ public void onExplosion(EntityExplodeEvent event) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getEntity()); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return; } double multiplier = ThreadLocalRandom.current().nextDouble(0.4, 0.6); From 7496210aa8a5a0f8aea1a19be689b8d0903d5db8 Mon Sep 17 00:00:00 2001 From: antiPerson Date: Wed, 9 Sep 2020 18:05:08 +0100 Subject: [PATCH 033/295] 5.3 (in progress) (#118) * Store stack entities in hashset rather than making new instances. This allows us to iterate all entities that have been stacked. This should mean performance gains are to be expected as NBT doesn't need to be checked for every entity in the world. * Store the waiting status and wait count in the StackEntity class rather than with NBT. * Fix ConcurrentModificationException * Store stack size in StackEntity class * Replace duplicated drop stack logic. * Update NMS for Minecraft 1.16.2 * Change server version detection to make it forward compatible. * Fix accidental removal of registration of listener. * Add entity removal listener. * Improve performance. * Fix exception on entity transform * Add ability to give command arguments a name. * Validate stack size before spawning stack in spawnstack subcommand * Don't add remainder to list is there is none. * Fix no error message if the provided subcommand doesn't match. * Add more info to statistics command. * Fix slime split NPE. * Return empty list if config value is null * Add ability to skip the death animation (#117) * Fix the distance dependant tag visibility option when more than one player is in range of the entity. Also removes the need for reflection, may have performance increases. * Remove chunk listener. * Update dependencies and increment version * Move method call * Update worldguard and worldedit dependencies. * Add metrics id. * Revert "Remove chunk listener." This reverts commit 5b01ca2a * Remove chunk unload listener --- pom.xml | 18 ++-- .../java/uk/antiperson/stackmob/StackMob.java | 19 ++-- .../stackmob/commands/CommandArgument.java | 16 +++- .../stackmob/commands/Commands.java | 5 + .../commands/subcommands/SpawnStack.java | 11 ++- .../stackmob/commands/subcommands/Stats.java | 36 +++++++ .../stackmob/config/MainConfig.java | 8 +- .../stackmob/config/SpecialConfigFile.java | 4 +- .../uk/antiperson/stackmob/entity/Drops.java | 12 +-- .../stackmob/entity/EntityManager.java | 84 +++++++++++++++- .../stackmob/entity/StackEntity.java | 93 +++++++++++++----- .../uk/antiperson/stackmob/entity/Tag.java | 9 +- .../stackmob/listeners/ChunkListener.java | 22 +++++ .../stackmob/listeners/DeathListener.java | 30 +++--- .../stackmob/listeners/RemoveListener.java | 33 +++++++ .../stackmob/listeners/SlimeListener.java | 3 + .../stackmob/listeners/SpawnListener.java | 16 +++- .../stackmob/listeners/TransformListener.java | 2 +- .../antiperson/stackmob/tasks/MergeTask.java | 96 ++++++++++--------- .../antiperson/stackmob/utils/NMSHelper.java | 24 ++--- .../antiperson/stackmob/utils/Utilities.java | 21 +++- src/main/resources/config.yml | 2 + 22 files changed, 411 insertions(+), 153 deletions(-) create mode 100644 src/main/java/uk/antiperson/stackmob/commands/subcommands/Stats.java create mode 100644 src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java create mode 100644 src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java diff --git a/pom.xml b/pom.xml index a81bc8e2..2617a393 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.2.3 + 5.3.0 src/main/java @@ -94,31 +94,31 @@ com.destroystokyo.paper paper-api - 1.16.1-R0.1-SNAPSHOT + 1.16.2-R0.1-SNAPSHOT provided - org.spigotmc - spigot - 1.16.1-R0.1-SNAPSHOT + com.destroystokyo.paper + paper + 1.16.2-R0.1-SNAPSHOT provided com.sk89q.worldguard - worldguard-legacy - 7.0.0-SNAPSHOT + worldguard-bukkit + 7.0.4-SNAPSHOT provided com.sk89q.worldedit worldedit-bukkit - 7.1.0-SNAPSHOT + 7.2.0-SNAPSHOT provided org.bstats bstats-bukkit - 1.5 + 1.7 compile diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index 1a94973b..a1c8dffa 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -29,7 +29,6 @@ public class StackMob extends JavaPlugin { private final NamespacedKey stackKey = new NamespacedKey(this, "stack-size"); - private final NamespacedKey waitKey = new NamespacedKey(this, "wait-key"); private final NamespacedKey toolKey = new NamespacedKey(this, "stack-tool"); private MainConfig config; @@ -91,12 +90,18 @@ public void onEnable() { break; } })); - Metrics metrics = new Metrics(this); + Metrics metrics = new Metrics(this, 522); metrics.addCustomChart(new Metrics.SimplePie("stackmobbridge", () -> String.valueOf(Bukkit.getPluginManager().isPluginEnabled("StackMobBridge")))); if (metrics.isEnabled()) { getLogger().info("bStats anonymous data collection has been enabled!"); } itemTools = new ItemTools(this); + getEntityManager().registerAllEntities(); + } + + @Override + public void onDisable() { + getEntityManager().unregisterAllEntities(); } private void loadConfig() { @@ -112,7 +117,7 @@ private void loadConfig() { private void register() { int stackInterval = getMainConfig().getStackInterval(); new MergeTask(this).runTaskTimer(this, 5, stackInterval); - if (Utilities.isNewBukkit() || getHookManager().getProtocolLibHook() != null) { + if (Utilities.isNativeVersion() || getHookManager().getProtocolLibHook() != null) { int tagInterval = getMainConfig().getTagNearbyInterval(); new TagTask(this).runTaskTimer(this, 5, tagInterval); } else { @@ -142,6 +147,10 @@ private void registerEvents() throws InvocationTargetException, NoSuchMethodExce registerEvent(PlayerListener.class); registerEvent(BeeListener.class); registerEvent(LeashListener.class); + registerEvent(ChunkListener.class); + if (Utilities.isPaper()) { + registerEvent(RemoveListener.class); + } } private void registerEvent(Class clazz) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { @@ -208,10 +217,6 @@ public NamespacedKey getStackKey() { return stackKey; } - public NamespacedKey getWaitKey() { - return waitKey; - } - public NamespacedKey getToolKey() { return toolKey; } diff --git a/src/main/java/uk/antiperson/stackmob/commands/CommandArgument.java b/src/main/java/uk/antiperson/stackmob/commands/CommandArgument.java index 415daab9..9c9a03af 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/CommandArgument.java +++ b/src/main/java/uk/antiperson/stackmob/commands/CommandArgument.java @@ -12,10 +12,12 @@ public class CommandArgument { private final ArgumentType type; private final boolean optional; private final List expectedArguments; - public CommandArgument(ArgumentType type, boolean optional, List expectedArguments) { + private final String name; + private CommandArgument(ArgumentType type, boolean optional, List expectedArguments, String name) { this.type = type; this.optional = optional; this.expectedArguments = expectedArguments; + this.name = name; } public ArgumentType getType() { @@ -49,16 +51,20 @@ public List getExpectedArguments() { return strings; } - public static CommandArgument construct(ArgumentType type) { - return new CommandArgument(type, false, null); + public String getName() { + return name; } public static CommandArgument construct(ArgumentType type, boolean optional) { - return new CommandArgument(type, optional, null); + return new CommandArgument(type, optional, null, null); + } + + public static CommandArgument construct(ArgumentType type, boolean optional, String name) { + return new CommandArgument(type, optional,null, name); } public static CommandArgument construct(ArgumentType type, boolean optional, List expectedArguments) { - return new CommandArgument(type, optional, expectedArguments); + return new CommandArgument(type, optional, expectedArguments, null); } } diff --git a/src/main/java/uk/antiperson/stackmob/commands/Commands.java b/src/main/java/uk/antiperson/stackmob/commands/Commands.java index b54f527e..728a01cb 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/Commands.java +++ b/src/main/java/uk/antiperson/stackmob/commands/Commands.java @@ -33,6 +33,7 @@ public void registerSubCommands() { subCommands.add(new GiveTool(sm)); subCommands.add(new Reload(sm)); subCommands.add(new ForceStack(sm)); + subCommands.add(new Stats(sm)); } @Override @@ -50,6 +51,8 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command if (argumentType.getExpectedArguments().size() <= 3 && argumentType.getExpectedArguments().size() > 0) { argumentType.getExpectedArguments().forEach(argument -> options.append(argument).append("/")); options.deleteCharAt(options.length() - 1); + } else if (argumentType.getName() != null) { + options.append(argumentType.getName()); } else { options.append(argumentType.getType()); } @@ -77,7 +80,9 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command return false; } subCommand.onCommand(new User(commandSender), (String[]) ArrayUtils.remove(strings, 0)); + return false; } + commandSender.sendMessage(Utilities.PREFIX + ChatColor.RED + "Invalid subcommand!"); return false; } diff --git a/src/main/java/uk/antiperson/stackmob/commands/subcommands/SpawnStack.java b/src/main/java/uk/antiperson/stackmob/commands/subcommands/SpawnStack.java index 46ee34a8..97f5e408 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/subcommands/SpawnStack.java +++ b/src/main/java/uk/antiperson/stackmob/commands/subcommands/SpawnStack.java @@ -13,20 +13,21 @@ public class SpawnStack extends SubCommand { private final StackMob sm; public SpawnStack(StackMob sm) { - super(CommandArgument.construct(ArgumentType.ENTITY_TYPE), CommandArgument.construct(ArgumentType.INTEGER)); + super(CommandArgument.construct(ArgumentType.ENTITY_TYPE, false), CommandArgument.construct(ArgumentType.INTEGER, false, "stack size")); this.sm = sm; } @Override public boolean onCommand(User sender, String[] args) { Player player = (Player) sender.getSender(); - Entity entity = player.getWorld().spawnEntity(player.getLocation(), EntityType.valueOf(args[0].toUpperCase())); - StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) entity); + EntityType entityType = EntityType.valueOf(args[0].toUpperCase()); int newSize = Integer.parseInt(args[1]); - if (newSize > stackEntity.getMaxSize()) { - sender.sendError("New stack value is too large! (max = " + stackEntity.getMaxSize() + ")"); + if (newSize > sm.getMainConfig().getMaxStack(entityType)) { + sender.sendError("New stack value is too large! (max = " + sm.getMainConfig().getMaxStack(entityType) + ")"); return false; } + LivingEntity entity = (LivingEntity) player.getWorld().spawnEntity(player.getLocation(), entityType); + StackEntity stackEntity = sm.getEntityManager().registerStackedEntity(entity); stackEntity.setSize(newSize); sender.sendSuccess("A new stack has been spawned."); return false; diff --git a/src/main/java/uk/antiperson/stackmob/commands/subcommands/Stats.java b/src/main/java/uk/antiperson/stackmob/commands/subcommands/Stats.java new file mode 100644 index 00000000..c17ceb0a --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/commands/subcommands/Stats.java @@ -0,0 +1,36 @@ +package uk.antiperson.stackmob.commands.subcommands; + +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.commands.CommandMetadata; +import uk.antiperson.stackmob.commands.SubCommand; +import uk.antiperson.stackmob.commands.User; +import uk.antiperson.stackmob.entity.StackEntity; + +@CommandMetadata(command = "stats", playerReq = false, desc = "View mob stacking statistics") +public class Stats extends SubCommand { + + private final StackMob sm; + public Stats(StackMob sm) { + this.sm = sm; + } + + @Override + public boolean onCommand(User sender, String[] args) { + int total = 0; + int waiting = 0; + int full = 0; + for (StackEntity stackEntity : sm.getEntityManager().getStackEntities()) { + if (stackEntity.isWaiting()) { + waiting += 1; + } + if (stackEntity.isMaxSize()) { + full += 1; + } + total += stackEntity.getSize(); + } + sender.sendInfo("Statistics:"); + sender.sendRawMessage("Total stack entities: " + sm.getEntityManager().getStackEntities().size() + " (" + total + " single entities.)"); + sender.sendRawMessage("Full stacks: " + full + " Waiting to stack: " + waiting); + return false; + } +} diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 50000f06..b9e722fe 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -193,12 +193,16 @@ public DeathType getDeathType(LivingEntity dead) { private Collection getDeathSection(LivingEntity dead) { TreeMap array = new TreeMap<>(); - for (String key : getConfigurationSection("death").getKeys(false)) { - array.put(getInt(dead.getType(), "death." + key + ".priority"), key); + for (DeathType type : DeathType.values()) { + array.put(getInt(dead.getType(), "death." + type + ".priority"), type.toString()); } return array.values(); } + public boolean isSkipDeathAnimation(EntityType type) { + return getBoolean(type, "death.skip-animation"); + } + @Override public void updateFile() throws IOException { if (isSet("check-area.x")) { diff --git a/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java b/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java index eb295e3f..ff3172ee 100644 --- a/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java +++ b/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java @@ -4,6 +4,7 @@ import org.bukkit.entity.EntityType; import uk.antiperson.stackmob.StackMob; +import java.util.Collections; import java.util.List; public abstract class SpecialConfigFile extends ConfigFile { @@ -14,7 +15,8 @@ public SpecialConfigFile(StackMob sm, String filePath) { public ConfigList getList(EntityType type, String path) { ConfigValue configValue = get(type, path); - return configValue.getValue() instanceof List ? ConfigList.getConfigList(this, new ConfigValue(configValue.getPath(), configValue.getValue())) : null; + configValue = configValue.getValue() instanceof List ? configValue : new ConfigValue(path, Collections.emptyList()); + return ConfigList.getConfigList(this, configValue); } public boolean getBoolean(EntityType type, String path) { diff --git a/src/main/java/uk/antiperson/stackmob/entity/Drops.java b/src/main/java/uk/antiperson/stackmob/entity/Drops.java index 3b9b4528..9e438bc1 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Drops.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Drops.java @@ -9,6 +9,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.loot.LootContext; import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.utils.Utilities; import java.util.*; import java.util.concurrent.ThreadLocalRandom; @@ -77,15 +78,8 @@ public static void dropItems(Location location, Map items) { } public static void dropItem(Location location, ItemStack stack, int amount) { - double inStacks = (double) amount / (double) stack.getMaxStackSize(); - double floor = Math.floor(inStacks); - double leftOver = inStacks - floor; - for (int i = 0; i < floor; i++) { - stack.setAmount(stack.getMaxStackSize()); - location.getWorld().dropItemNaturally(location, stack); - } - if (leftOver > 0) { - stack.setAmount((int) Math.round(leftOver * stack.getMaxStackSize())); + for (int itemAmount : Utilities.split(amount, stack.getMaxStackSize())) { + stack.setAmount(itemAmount); location.getWorld().dropItemNaturally(location, stack); } } diff --git a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java index 08d78456..80a91e7e 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java @@ -1,25 +1,103 @@ package uk.antiperson.stackmob.entity; +import org.bukkit.Bukkit; +import org.bukkit.Chunk; +import org.bukkit.World; +import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Mob; import org.bukkit.persistence.PersistentDataType; import uk.antiperson.stackmob.StackMob; +import java.util.Collection; +import java.util.HashSet; + public class EntityManager { private final StackMob sm; + private final HashSet stackEntities; public EntityManager(StackMob sm) { this.sm = sm; + stackEntities = new HashSet<>(); } public boolean isStackedEntity(LivingEntity entity) { return entity.getPersistentDataContainer().has(sm.getStackKey(), PersistentDataType.INTEGER); } + public HashSet getStackEntities() { + return stackEntities; + } + public StackEntity getStackEntity(LivingEntity entity) { - return new StackEntity(sm, entity); + for (StackEntity stackEntity : stackEntities) { + if (stackEntity.getEntity().getUniqueId().equals(entity.getUniqueId())) { + return stackEntity; + } + } + return null; + } + + public void registerAllEntities() { + for (World world : Bukkit.getWorlds()) { + for (Chunk chunk : world.getLoadedChunks()) { + registerStackedEntities(chunk); + } + } + } + + public void unregisterAllEntities() { + for (World world : Bukkit.getWorlds()) { + for (Chunk chunk : world.getLoadedChunks()) { + unregisterStackedEntities(chunk); + } + } + } + + public void registerStackedEntities(Chunk chunk) { + for (Entity entity : chunk.getEntities()) { + if (!(entity instanceof Mob)) { + continue; + } + if (!sm.getEntityManager().isStackedEntity((LivingEntity) entity)) { + continue; + } + sm.getEntityManager().registerStackedEntity((LivingEntity) entity); + } } - public boolean isWaiting(LivingEntity entity) { - return entity.getPersistentDataContainer().has(sm.getWaitKey(), PersistentDataType.INTEGER); + public void unregisterStackedEntities(Chunk chunk) { + for (Entity entity : chunk.getEntities()) { + if (!(entity instanceof Mob)) { + continue; + } + if (!sm.getEntityManager().isStackedEntity((LivingEntity) entity)) { + continue; + } + sm.getEntityManager().unregisterStackedEntity((LivingEntity) entity); + } } + + public StackEntity registerStackedEntity(LivingEntity entity) { + StackEntity stackEntity = new StackEntity(sm, this, entity); + stackEntities.add(stackEntity); + return stackEntity; + } + + public void registerStackedEntity(StackEntity entity) { + stackEntities.add(entity); + } + + public void unregisterStackedEntity(LivingEntity entity) { + StackEntity stackEntity = getStackEntity(entity); + if (stackEntity == null) { + throw new UnsupportedOperationException("Attempted to unregister entity that isn't stacked!"); + } + unregisterStackedEntity(stackEntity); + } + + public void unregisterStackedEntity(StackEntity stackEntity) { + stackEntities.remove(stackEntity); + } + } diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 0cb02d1c..4b335aa9 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -13,10 +13,15 @@ public class StackEntity { private final LivingEntity entity; + private final EntityManager entityManager; private final StackMob sm; - public StackEntity(StackMob sm, LivingEntity entity) { + private boolean waiting; + private int waitCount; + private int stackSize; + public StackEntity(StackMob sm, EntityManager entityManager, LivingEntity entity) { this.sm = sm; this.entity = entity; + this.entityManager = entityManager; } /** @@ -41,6 +46,7 @@ public void setSize(int newSize, boolean update) { newSize = getMaxSize(); } entity.getPersistentDataContainer().set(sm.getStackKey(), PersistentDataType.INTEGER, newSize); + stackSize = newSize; if (update) { getTag().update(); } @@ -48,10 +54,33 @@ public void setSize(int newSize, boolean update) { public void removeStackData() { entity.getPersistentDataContainer().remove(sm.getStackKey()); - getTag().update(); entity.setCustomNameVisible(false); + entityManager.unregisterStackedEntity(this); + getTag().update(); + } + + /** + * In order to not break mob grinders, stacked entities can have a waiting status. + * This waiting status means that this stacked entity will be ignored on all stacking attempts until the count reaches 0 + * @return whether this entity is currently waiting + */ + public boolean isWaiting() { + return waiting; } + /** + * Gets the wait count for this entity. + * @return the wait count for this entity + */ + public int getWaitCount() { + return waitCount; + } + + /** + * Whether this entity should wait. + * @param spawnReason the spawn reason of the entity. + * @return whether this entity should wait. + */ public boolean shouldWait(CreatureSpawnEvent.SpawnReason spawnReason) { if (!sm.getMainConfig().isWaitingEnabled(getEntity().getType())) { return false; @@ -65,19 +94,28 @@ public boolean shouldWait(CreatureSpawnEvent.SpawnReason spawnReason) { return true; } + /** + * In order to not break mob grinders, stacked entities can have a waiting status. + * This waiting status means that this stacked entity will be ignored on all stacking attempts until the count reaches 0. + */ public void makeWait() { - int time = sm.getMainConfig().getWaitingTime(getEntity().getType()); - getEntity().getPersistentDataContainer().set(sm.getWaitKey(), PersistentDataType.INTEGER, time); + if (isWaiting()) { + throw new UnsupportedOperationException("Stack is already waiting!"); + } + waitCount = sm.getMainConfig().getWaitingTime(getEntity().getType()); + waiting = true; } + /** + * Increment the waiting count. + */ public void incrementWait() { - int currentWaiting = getEntity().getPersistentDataContainer().getOrDefault(sm.getWaitKey(), PersistentDataType.INTEGER, 0); - if (currentWaiting < 1) { - getEntity().getPersistentDataContainer().remove(sm.getWaitKey()); + if (waitCount < 1) { + waiting = false; setSize(1); return; } - getEntity().getPersistentDataContainer().set(sm.getWaitKey(), PersistentDataType.INTEGER, currentWaiting - 1); + waitCount -= 1; } /** @@ -93,7 +131,10 @@ public void incrementSize(int increment) { * @return the current stack size for this entity. */ public int getSize() { - return entity.getPersistentDataContainer().getOrDefault(sm.getStackKey(), PersistentDataType.INTEGER, 1); + if (stackSize == 0) { + stackSize = getEntity().getPersistentDataContainer().getOrDefault(sm.getStackKey(), PersistentDataType.INTEGER, 1); + } + return stackSize; } /** @@ -108,7 +149,14 @@ public int getMaxSize() { * Removes this entity. */ public void remove() { + remove(true); + } + + public void remove(boolean unregister) { entity.remove(); + if (unregister) { + entityManager.unregisterStackedEntity(this); + } if (getEntity().isLeashed()) { ItemStack leash = new ItemStack(Material.LEAD, 1); getWorld().dropItemNaturally(entity.getLocation(), leash); @@ -160,45 +208,44 @@ public boolean isMaxSize() { * @param nearby another entity * @return if the given entity and this entity should stack. */ - public boolean checkNearby(StackEntity nearby) { + public boolean match(StackEntity nearby) { if (getEntity().getType() != nearby.getEntity().getType()) { return false; } - if (nearby.isMaxSize()) { - return false; - } if (sm.getTraitManager().checkTraits(this, nearby)) { return false; } if (sm.getHookManager().checkHooks(this, nearby)) { return false; } - if (nearby.getEntity().isDead() || getEntity().isDead()) { - return false; - } return true; } + public boolean canStack() { + return !getEntity().isDead() && !isMaxSize() && !isWaiting(); + } + /** * Merge this stack with another stack, providing they are similar. * @param toMerge stack to merge with. - * @return whether the merge was successful + * @param unregister whether to unregister the entity that is removed. + * @return the entity that was removed */ - public boolean merge(StackEntity toMerge) { + public StackEntity merge(StackEntity toMerge, boolean unregister) { StackEntity entity1 = toMerge.getSize() < getSize() ? toMerge : this; StackEntity entity2 = toMerge.getSize() < getSize() ? this : toMerge; if (EventHelper.callStackMergeEvent(entity1, entity2).isCancelled()) { - return false; + return null; } int totalSize = entity1.getSize() + entity2.getSize(); if (totalSize > getMaxSize()) { toMerge.setSize(totalSize - entity2.getMaxSize()); setSize(entity2.getMaxSize()); - return true; + return null; } entity2.incrementSize(entity1.getSize()); - entity1.remove(); - return true; + entity1.remove(unregister); + return entity1; } public StackEntity splitIfNotEnough(int itemAmount) { @@ -214,7 +261,7 @@ public StackEntity splitIfNotEnough(int itemAmount) { * @return a clone of this entity. */ public StackEntity duplicate() { - StackEntity cloneStack = sm.getEntityManager().getStackEntity(spawnClone()); + StackEntity cloneStack = sm.getEntityManager().registerStackedEntity(spawnClone()); cloneStack.setSize(1); sm.getTraitManager().applyTraits(cloneStack, this); sm.getHookManager().onSpawn(cloneStack); diff --git a/src/main/java/uk/antiperson/stackmob/entity/Tag.java b/src/main/java/uk/antiperson/stackmob/entity/Tag.java index ff3c1f1f..a37cb615 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Tag.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Tag.java @@ -52,7 +52,7 @@ private String getEntityName() { } public void sendPacket(Player player, boolean tagVisible) { - if (!Utilities.isNewBukkit()) { + if (!Utilities.isNativeVersion()) { ProtocolLibHook protocolLibHook = sm.getHookManager().getProtocolLibHook(); if (protocolLibHook == null) { return; @@ -60,12 +60,7 @@ public void sendPacket(Player player, boolean tagVisible) { protocolLibHook.sendPacket(player, stackEntity.getEntity(), tagVisible); return; } - try { - NMSHelper.sendPacket(player, stackEntity.getEntity(), tagVisible); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - sm.getLogger().log(Level.WARNING,"An error occurred while sending packet. Is StackMob updated to support your server version?"); - } + NMSHelper.sendPacket(player, stackEntity.getEntity(), tagVisible); } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java new file mode 100644 index 00000000..9a2b508b --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java @@ -0,0 +1,22 @@ +package uk.antiperson.stackmob.listeners; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.world.ChunkLoadEvent; +import org.bukkit.event.world.ChunkUnloadEvent; +import uk.antiperson.stackmob.StackMob; + +public class ChunkListener implements Listener { + + private StackMob sm; + public ChunkListener(StackMob sm) { + this.sm = sm; + } + + @EventHandler + public void onChunkLoad(ChunkLoadEvent event) { + sm.getEntityManager().registerStackedEntities(event.getChunk()); + } + + +} diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java index 41cbeb1a..aa23e75f 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java @@ -30,23 +30,26 @@ public void onStackDeath(EntityDeathEvent event) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); - if (stackEntity.isSingle()) { - return; - } - event.getEntity().setCustomName(""); - event.getEntity().setCustomNameVisible(false); DeathMethod deathMethod = calculateDeath(stackEntity); int deathStep = Math.min(stackEntity.getSize(), deathMethod.calculateStep()); EventHelper.callStackDeathEvent(stackEntity, deathStep); - if (stackEntity.getSize() > deathStep) { - StackEntity spawned = stackEntity.duplicate(); - spawned.setSize(stackEntity.getSize() - deathStep); - deathMethod.onSpawn(spawned); + int toMultiply = deathStep - 1; + if (deathStep < stackEntity.getSize()) { + if (sm.getMainConfig().isSkipDeathAnimation(event.getEntityType())) { + toMultiply = deathStep; + event.setCancelled(true); + stackEntity.incrementSize(-deathStep); + deathMethod.onSpawn(stackEntity); + } else { + StackEntity spawned = stackEntity.duplicate(); + spawned.setSize(stackEntity.getSize() - deathStep); + deathMethod.onSpawn(spawned); + stackEntity.removeStackData(); + } } - if (deathStep <= 1) { + if (toMultiply == 0) { return; } - int toMultiply = deathStep - 1; int experience = stackEntity.getDrops().calculateDeathExperience(toMultiply, event.getDroppedExp()); Map drops = stackEntity.getDrops().calculateDrops(toMultiply, event.getDrops()); Drops.dropItems(event.getEntity().getLocation(), drops); @@ -59,10 +62,9 @@ public void onStackDeath(EntityDeathEvent event) { if (event.getEntity() instanceof Slime && sm.getMainConfig().isSlimeMultiEnabled(event.getEntityType())) { event.getEntity().setMetadata("deathcount", new FixedMetadataValue(sm, toMultiply)); } - } - public DeathMethod calculateDeath(StackEntity entity){ + public DeathMethod calculateDeath(StackEntity entity) { DeathType deathType = sm.getMainConfig().getDeathType(entity.getEntity()); try { return deathType.getStepClass().getDeclaredConstructor(StackMob.class, StackEntity.class).newInstance(sm, entity); @@ -72,6 +74,4 @@ public DeathMethod calculateDeath(StackEntity entity){ } - - } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java b/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java new file mode 100644 index 00000000..51f31444 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java @@ -0,0 +1,33 @@ +package uk.antiperson.stackmob.listeners; + +import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Mob; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.entity.StackEntity; + +public class RemoveListener implements Listener { + + private final StackMob sm; + public RemoveListener(StackMob sm) { + this.sm = sm; + } + + @EventHandler + public void onEntityRemove(EntityRemoveFromWorldEvent event) { + if (!(event.getEntity() instanceof Mob)) { + return; + } + LivingEntity livingEntity = (LivingEntity) event.getEntity(); + if (!sm.getEntityManager().isStackedEntity(livingEntity)) { + return; + } + StackEntity stackEntity = sm.getEntityManager().getStackEntity(livingEntity); + if (stackEntity == null) { + return; + } + sm.getEntityManager().unregisterStackedEntity(stackEntity); + } +} diff --git a/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java index 4e9bd457..79f22ee3 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java @@ -19,6 +19,9 @@ public SlimeListener(StackMob sm) { @EventHandler public void onSlimeSplit(SlimeSplitEvent event) { + if (!sm.getEntityManager().isStackedEntity(event.getEntity())) { + return; + } StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); if (stackEntity.isSingle()) { return; diff --git a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java index 1a18527e..d4cb08e2 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java @@ -28,7 +28,7 @@ public void onSpawn(CreatureSpawnEvent event) { if (sm.getEntityManager().isStackedEntity(event.getEntity())) { return; } - StackEntity original = sm.getEntityManager().getStackEntity(event.getEntity()); + StackEntity original = sm.getEntityManager().registerStackedEntity(event.getEntity()); if (original.shouldWait(event.getSpawnReason())) { original.makeWait(); return; @@ -39,13 +39,21 @@ public void onSpawn(CreatureSpawnEvent event) { continue; } StackEntity nearby = sm.getEntityManager().getStackEntity((LivingEntity) entity); - if (sm.getMainConfig().getStackThresholdEnabled(entity.getType()) && nearby.getSize() == 1) { + if (nearby == null) { + continue; + } + if (!nearby.canStack()) { continue; } - if (!original.checkNearby(nearby)) { + if (!original.match(nearby)) { + continue; + } + if (sm.getMainConfig().getStackThresholdEnabled(entity.getType()) && nearby.getSize() == 1) { continue; } - if (nearby.merge(original)) { + StackEntity removed = nearby.merge(original, true); + if (removed != null) { + removed.removeStackData(); return; } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TransformListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TransformListener.java index 6b671737..1da3fb54 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TransformListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TransformListener.java @@ -23,7 +23,7 @@ public void onTransform(EntityTransformEvent event){ return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getEntity()); - StackEntity transformed = sm.getEntityManager().getStackEntity((LivingEntity) event.getTransformedEntity()); + StackEntity transformed = sm.getEntityManager().registerStackedEntity((LivingEntity) event.getTransformedEntity()); transformed.setSize(stackEntity.getSize()); } } diff --git a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java index 855ec3fa..a20e7521 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java @@ -1,13 +1,12 @@ package uk.antiperson.stackmob.tasks; -import org.bukkit.Bukkit; -import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Mob; import org.bukkit.scheduler.BukkitRunnable; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; +import uk.antiperson.stackmob.utils.Utilities; import java.util.HashSet; import java.util.Set; @@ -15,68 +14,71 @@ public class MergeTask extends BukkitRunnable { private final StackMob sm; + public MergeTask(StackMob sm) { this.sm = sm; } public void run() { - for (World world : Bukkit.getWorlds()) { - for (LivingEntity entity : world.getEntitiesByClass(Mob.class)) { - StackEntity original = sm.getEntityManager().getStackEntity(entity); - if (!sm.getEntityManager().isStackedEntity(entity)) { - if (sm.getEntityManager().isWaiting(original.getEntity())) { - original.incrementWait(); - } + HashSet toRemove = new HashSet<>(); + for (StackEntity original : sm.getEntityManager().getStackEntities()) { + if (original.isWaiting()) { + original.incrementWait(); + continue; + } + if (!original.canStack()) { + continue; + } + Integer[] searchRadius = sm.getMainConfig().getStackRadius(original.getEntity().getType()); + Set matches = new HashSet<>(); + for (Entity nearby : original.getEntity().getNearbyEntities(searchRadius[0], searchRadius[1], searchRadius[2])) { + if (!(nearby instanceof Mob)) { continue; } - if (original.isMaxSize()) { + if (!sm.getEntityManager().isStackedEntity((LivingEntity) nearby)) { continue; } - Integer[] searchRadius = sm.getMainConfig().getStackRadius(entity.getType()); - Set matches = new HashSet<>(); - for (Entity nearby : entity.getNearbyEntities(searchRadius[0], searchRadius[1], searchRadius[2])) { - if (!(nearby instanceof Mob)) { - continue; - } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) nearby)) { - continue; - } - StackEntity nearbyStack = sm.getEntityManager().getStackEntity((LivingEntity) nearby); - if (!original.checkNearby(nearbyStack)) { - continue; - } - if (nearbyStack.getSize() > 1 || original.getSize() > 1) { - if (nearbyStack.merge(original)) { - break; - } - } - matches.add(nearbyStack); + StackEntity nearbyStack = sm.getEntityManager().getStackEntity((LivingEntity) nearby); + if (nearbyStack == null) { + continue; } - if (!sm.getMainConfig().getStackThresholdEnabled(entity.getType())) { + if (!nearbyStack.canStack()) { continue; } - int threshold = sm.getMainConfig().getStackThreshold(entity.getType()) - 1; - int size = matches.size(); - if (size < threshold) { + if (!original.match(nearbyStack)) { continue; } - matches.forEach(StackEntity::remove); - if (size >= original.getMaxSize()) { - double divided = (double) size / (double) original.getMaxSize(); - double fullStacks = Math.floor(divided); - double leftOver = divided - fullStacks; - for (int i = 0; i < fullStacks; i++) { - StackEntity stackEntity = original.duplicate(); - stackEntity.setSize(original.getMaxSize()); - } - if (leftOver > 0) { - StackEntity stackEntity = original.duplicate(); - stackEntity.setSize((int) Math.round(leftOver * original.getMaxSize())); + if (nearbyStack.getSize() > 1 || original.getSize() > 1) { + StackEntity removed = nearbyStack.merge(original, false); + if (removed != null) { + toRemove.add(removed); + break; } - return; } - original.incrementSize(size); + matches.add(nearbyStack); + } + if (!sm.getMainConfig().getStackThresholdEnabled(original.getEntity().getType())) { + continue; + } + int threshold = sm.getMainConfig().getStackThreshold(original.getEntity().getType()) - 1; + int size = matches.size(); + if (size < threshold) { + continue; + } + for (StackEntity match : matches) { + match.remove(false); + toRemove.add(match); + } + if (size >= original.getMaxSize()) { + for (int stackSize : Utilities.split(size, original.getMaxSize())) { + StackEntity stackEntity = original.duplicate(); + stackEntity.setSize(stackSize); + } + return; } + original.incrementSize(size); } + toRemove.forEach(stackEntity -> sm.getEntityManager().unregisterStackedEntity(stackEntity)); } + } diff --git a/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java b/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java index 28af8787..8353c574 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java +++ b/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java @@ -1,25 +1,21 @@ package uk.antiperson.stackmob.utils; -import net.minecraft.server.v1_16_R1.DataWatcher; -import net.minecraft.server.v1_16_R1.DataWatcherObject; -import net.minecraft.server.v1_16_R1.PacketPlayOutEntityMetadata; -import org.bukkit.craftbukkit.v1_16_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; -import org.bukkit.entity.Entity; +import net.minecraft.server.v1_16_R2.DataWatcher; +import net.minecraft.server.v1_16_R2.DataWatcherObject; +import net.minecraft.server.v1_16_R2.DataWatcherRegistry; +import net.minecraft.server.v1_16_R2.PacketPlayOutEntityMetadata; +import org.bukkit.craftbukkit.v1_16_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; import org.bukkit.entity.Player; -import java.lang.reflect.Field; public class NMSHelper { - public static void sendPacket(Player player, Entity entity, boolean tagVisible) throws NoSuchFieldException, IllegalAccessException { + public static void sendPacket(Player player, org.bukkit.entity.Entity entity, boolean tagVisible) { CraftEntity craftEntity = (CraftEntity) entity; - Field field = net.minecraft.server.v1_16_R1.Entity.class.getDeclaredField("ay"); - field.setAccessible(true); - DataWatcherObject datawatcherobject = (DataWatcherObject) field.get(null); - DataWatcher watcher = craftEntity.getHandle().getDataWatcher(); - watcher.set(datawatcherobject, tagVisible); - PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(craftEntity.getHandle().getId(), watcher, false); + DataWatcher watcher = new DataWatcher(craftEntity.getHandle()); + watcher.register(new DataWatcherObject<>(3, DataWatcherRegistry.i), tagVisible); + PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(craftEntity.getHandle().getId(), watcher, true); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); } } diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index 4364500e..cd308d60 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -8,6 +8,8 @@ import java.net.URL; import java.nio.file.Files; import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -33,6 +35,19 @@ public static String translateColorCodes(String toTranslate) { return ChatColor.translateAlternateColorCodes('&', toTranslate); } + public static List split(int dividend, int divisor) { + int fullAmount = dividend / divisor; + int remainder = dividend % divisor; + List numbers = new ArrayList<>(fullAmount + 1); + for (int i = 0; i < fullAmount; i++) { + numbers.add(divisor); + } + if (remainder > 0) { + numbers.add(remainder); + } + return numbers; + } + public static CompletableFuture downloadFile(File filePath, String url) { return CompletableFuture.supplyAsync(() -> { try { @@ -54,7 +69,11 @@ public static boolean isPaper() { } public static boolean isNewBukkit() { - return Package.getPackage("net.minecraft.server.v1_16_R1") != null; + return Package.getPackage("net.minecraft.server.v1_15_R1") == null; + } + + public static boolean isNativeVersion() { + return Package.getPackage("net.minecraft.server.v1_16_R2") != null; } public enum DownloadResult { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0b1aa6f6..ee962693 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -124,6 +124,8 @@ events: # How entities should die death: + # Rather than spawn a new entity in place of the killed entity, just decrease the stack size instead. (**) + skip-animation: false # Death options: # SINGLE - Only one entity dies. # ALL - Every entity dies. From 4f626d34b7bdf9cb2d295c280d5242e4ec9f27ae Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 9 Sep 2020 18:32:07 +0100 Subject: [PATCH 034/295] Add missing null checks --- .../antiperson/stackmob/listeners/BreedInteractListener.java | 2 +- .../java/uk/antiperson/stackmob/listeners/DyeListener.java | 2 +- .../uk/antiperson/stackmob/listeners/TagInteractListener.java | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java index 2eea597e..e42a8821 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java @@ -38,7 +38,7 @@ public void onBreedInteract(PlayerInteractEntityEvent event) { } Animals animals = (Animals) event.getRightClicked(); StackEntity stackEntity = sm.getEntityManager().getStackEntity(animals); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return; } ListenerMode breed = sm.getMainConfig().getListenerMode(animals.getType(), "breed"); diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java index 50c6b96f..425d594c 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java @@ -34,7 +34,7 @@ public void onDyeListener(PlayerInteractEntityEvent event) { } Sheep sheep = (Sheep) event.getRightClicked(); StackEntity stackEntity = sm.getEntityManager().getStackEntity(sheep); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return; } ListenerMode mode = sm.getMainConfig().getListenerMode(sheep.getType(), "dye"); diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java index 7996d584..479cb9f4 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TagInteractListener.java @@ -35,6 +35,9 @@ public void onTagInteract(PlayerInteractEntityEvent event) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getRightClicked()); + if (stackEntity == null) { + return; + } if (!stackEntity.isSingle()) { stackEntity.slice(); } From 1277d256851336a1951b4646e0e6c4919ea982ab Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 9 Sep 2020 18:32:25 +0100 Subject: [PATCH 035/295] Increment version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2617a393..ea9cd4d1 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.0 + 5.3.1 src/main/java From 42c380d52a3150f048b5bb9666f15666789834fd Mon Sep 17 00:00:00 2001 From: LogGits Date: Fri, 11 Sep 2020 05:48:21 +1000 Subject: [PATCH 036/295] A few extra null checks (#127) * Slime null check * TameListener null check --- .../java/uk/antiperson/stackmob/listeners/SlimeListener.java | 2 +- .../java/uk/antiperson/stackmob/listeners/TameListener.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java index 79f22ee3..70c628ca 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/SlimeListener.java @@ -23,7 +23,7 @@ public void onSlimeSplit(SlimeSplitEvent event) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return; } if (!event.getEntity().hasMetadata(Utilities.SLIME_METADATA)) { diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java index 093381ea..8304ea13 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java @@ -17,7 +17,7 @@ public TameListener(StackMob sm) { @EventHandler public void onTame(EntityTameEvent event) { StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); - if (stackEntity.isSingle()) { + if (stackEntity == null || stackEntity.isSingle()) { return; } stackEntity.slice(); From 9c7b9051c61723a1912f6a9e6a1aaaa569fda9de Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 12 Sep 2020 11:39:07 +0100 Subject: [PATCH 037/295] Fix forcestack command --- .../uk/antiperson/stackmob/commands/subcommands/ForceStack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java b/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java index 1f513547..806e9999 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java +++ b/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java @@ -40,7 +40,7 @@ public boolean onCommand(User sender, String[] args) { if (sm.getMainConfig().isEntityBlacklisted(entity, reason)) { continue; } - sm.getEntityManager().getStackEntity(entity).setSize(1); + sm.getEntityManager().registerStackedEntity(entity).setSize(1); count++; } } From b9b7f75e9552edaa21fb30a5178221b9bb07cf4b Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 12 Sep 2020 12:33:41 +0100 Subject: [PATCH 038/295] Compare entity ids rather than uuids, seems to help performance a lot. --- src/main/java/uk/antiperson/stackmob/entity/EntityManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java index 80a91e7e..263abf8e 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java @@ -31,7 +31,7 @@ public HashSet getStackEntities() { public StackEntity getStackEntity(LivingEntity entity) { for (StackEntity stackEntity : stackEntities) { - if (stackEntity.getEntity().getUniqueId().equals(entity.getUniqueId())) { + if (stackEntity.getEntity().getEntityId() == entity.getEntityId()) { return stackEntity; } } From 52d9bad29443055cf75a5f7e6455532cbd206bf7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 12 Sep 2020 12:33:53 +0100 Subject: [PATCH 039/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ea9cd4d1..ab69a2e1 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.1 + 5.3.2 src/main/java From 0765d85f0721277ef01bf2754091b43c77cdbd1f Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 13 Sep 2020 14:30:05 +0100 Subject: [PATCH 040/295] Remove invalid entities on MergeTask (fixes #129) --- src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java index a20e7521..8da37b10 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java @@ -27,6 +27,9 @@ public void run() { continue; } if (!original.canStack()) { + if (!original.getEntity().isValid()) { + toRemove.add(original); + } continue; } Integer[] searchRadius = sm.getMainConfig().getStackRadius(original.getEntity().getType()); From 617e798f45ee7dd9ef05d3a400b72021a900ca40 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 13 Sep 2020 14:30:23 +0100 Subject: [PATCH 041/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ab69a2e1..77845256 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.2 + 5.3.3 src/main/java From 25e82e11c8e980bd05abd350e9d9c5ca89d18321 Mon Sep 17 00:00:00 2001 From: LogGits Date: Sun, 13 Sep 2020 23:32:48 +1000 Subject: [PATCH 042/295] Null check (#130) should fix this error: ``` WARN 21:48:00 [StackMob]: Task #3080 for StackMob v5.3.2 generated an exception Console 21:48:00 java.lang.NullPointerException: null at uk.antiperson.stackmob.tasks.TagTask.run(TagTask.java:44) ~[?:?] at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftTask.run(CraftTask.java:99) ~[patched_1.16.3.jar:git-Paper-195] at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.3.jar:git-Paper-195] at net.minecraft.server.v1_16_R2.MinecraftServer.b(MinecraftServer.java:1296) ~[patched_1.16.3.jar:git-Paper-195] at net.minecraft.server.v1_16_R2.DedicatedServer.b(DedicatedServer.java:371) ~[patched_1.16.3.jar:git-Paper-195] at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1211) ~[patched_1.16.3.jar:git-Paper-195] at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:999) ~[patched_1.16.3.jar:git-Paper-195] at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.3.jar:git-Paper-195] at java.lang.Thread.run(Thread.java:834) [?:?] ``` --- src/main/java/uk/antiperson/stackmob/tasks/TagTask.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java b/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java index 7c82bc78..76de4b16 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java @@ -41,6 +41,9 @@ public void run() { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) entity); + if (stackEntity == null) { + return; + } int threshold = sm.getMainConfig().getTagThreshold(stackEntity.getEntity().getType()); if (stackEntity.getSize() <= threshold) { return; From 59496627b91ac5513ce21b4d890000c6702c8084 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 15 Sep 2020 20:41:26 +0100 Subject: [PATCH 043/295] Revert "Remove chunk unload listener" This reverts commit 79339e0d --- .../java/uk/antiperson/stackmob/listeners/ChunkListener.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java index 9a2b508b..f636d098 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ChunkListener.java @@ -18,5 +18,8 @@ public void onChunkLoad(ChunkLoadEvent event) { sm.getEntityManager().registerStackedEntities(event.getChunk()); } - + @EventHandler + public void onChunkUnload(ChunkUnloadEvent event) { + sm.getEntityManager().unregisterStackedEntities(event.getChunk()); + } } From af8346b4ad3c18721726ed6b8b4b6eb688d06312 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 15 Sep 2020 20:49:10 +0100 Subject: [PATCH 044/295] Fix remove subcommand. --- .../stackmob/commands/subcommands/Remove.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/commands/subcommands/Remove.java b/src/main/java/uk/antiperson/stackmob/commands/subcommands/Remove.java index f0235933..d7be958a 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/subcommands/Remove.java +++ b/src/main/java/uk/antiperson/stackmob/commands/subcommands/Remove.java @@ -3,9 +3,11 @@ import org.bukkit.entity.*; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.commands.*; +import uk.antiperson.stackmob.entity.StackEntity; import java.util.Arrays; -import java.util.List; +import java.util.HashSet; +import java.util.Set; import java.util.function.Function; @CommandMetadata(command = "remove", playerReq = true, desc = "Remove all entities") @@ -19,7 +21,6 @@ public Remove(StackMob sm) { @Override public boolean onCommand(User sender, String[] args) { - Player player = (Player) sender.getSender(); Function function = entity -> entity instanceof Mob; if (args.length == 1) { switch (args[0]) { @@ -31,16 +32,15 @@ public boolean onCommand(User sender, String[] args) { break; } } - List entities = player.getWorld().getLivingEntities(); - for (LivingEntity entity : entities) { - if (!function.apply(entity)) { + Set toRemove = new HashSet<>(); + for (StackEntity stackEntity : sm.getEntityManager().getStackEntities()) { + if (!function.apply(stackEntity.getEntity())) { continue; } - if (!sm.getEntityManager().isStackedEntity(entity)) { - continue; - } - entity.remove(); + stackEntity.remove(false); + toRemove.add(stackEntity); } + toRemove.forEach(stackEntity -> sm.getEntityManager().unregisterStackedEntity(stackEntity)); sender.sendSuccess("Entities matching your criteria have been removed."); return false; } From 2e670da8f6c8256d52efcb14d7650b3a77793195 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 22 Sep 2020 17:41:33 +0100 Subject: [PATCH 045/295] Use paper events on paper servers --- src/main/java/uk/antiperson/stackmob/StackMob.java | 3 ++- .../stackmob/listeners/RemoveListener.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index a1c8dffa..1954f208 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -147,9 +147,10 @@ private void registerEvents() throws InvocationTargetException, NoSuchMethodExce registerEvent(PlayerListener.class); registerEvent(BeeListener.class); registerEvent(LeashListener.class); - registerEvent(ChunkListener.class); if (Utilities.isPaper()) { registerEvent(RemoveListener.class); + } else { + registerEvent(ChunkListener.class); } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java b/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java index 51f31444..8f55f72c 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java @@ -1,5 +1,6 @@ package uk.antiperson.stackmob.listeners; +import com.destroystokyo.paper.event.entity.EntityAddToWorldEvent; import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Mob; @@ -30,4 +31,16 @@ public void onEntityRemove(EntityRemoveFromWorldEvent event) { } sm.getEntityManager().unregisterStackedEntity(stackEntity); } + + @EventHandler + public void onEntityAdd(EntityAddToWorldEvent event) { + if (!(event.getEntity() instanceof Mob)) { + return; + } + LivingEntity livingEntity = (LivingEntity) event.getEntity(); + if (!sm.getEntityManager().isStackedEntity(livingEntity)) { + return; + } + sm.getEntityManager().registerStackedEntity(livingEntity); + } } From a263e8a67995b98fb22aa250e9e9d4b80a20bdae Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 22 Sep 2020 17:41:57 +0100 Subject: [PATCH 046/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 77845256..ca9a99dc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.3 + 5.3.5 src/main/java From e292039d00c5ffb85483a4afcd6383ada964687c Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 26 Sep 2020 11:26:34 +0100 Subject: [PATCH 047/295] Use base health value to calculate death step (#141) --- .../stackmob/entity/death/KillStepDamage.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java index 4fceb65e..5a75240c 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java @@ -1,7 +1,6 @@ package uk.antiperson.stackmob.entity.death; import org.bukkit.attribute.Attribute; -import org.bukkit.attribute.AttributeModifier; import org.bukkit.entity.LivingEntity; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; @@ -20,13 +19,7 @@ public int calculateStep() { double healthBefore = ((LivingEntity)getDead().getEntity().getLastDamageCause().getEntity()).getHealth(); double damageDone = getEntity().getLastDamageCause().getFinalDamage(); double damageLeft = Math.abs(healthBefore - damageDone); - for (AttributeModifier modifier : getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getModifiers()) { - if (!modifier.getName().equals("Leader zombie bonus")) { - continue; - } - getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).removeModifier(modifier); - } - double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); + double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue(); double divided = damageLeft / maxHealth; int entities = (int) Math.floor(divided); leftOverDamage = (divided - entities) * maxHealth; @@ -35,7 +28,7 @@ public int calculateStep() { @Override public void onSpawn(StackEntity spawned) { - double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); + double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue(); StackableMobHook smh = sm.getHookManager().getApplicableHook(spawned); if (smh instanceof MythicMobsHook) { sm.getServer().getScheduler().runTaskLater(sm, bukkitTask -> { From a89c8eada3e7e1db28088c18000cc8bc70eb3640 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 27 Sep 2020 10:00:52 +0100 Subject: [PATCH 048/295] Make sure to remove the stack data of single mobs when tamed. Fixes tamed mobs and untamed mobs merging. --- .../java/uk/antiperson/stackmob/listeners/TameListener.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java index 8304ea13..5957bd58 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TameListener.java @@ -17,10 +17,12 @@ public TameListener(StackMob sm) { @EventHandler public void onTame(EntityTameEvent event) { StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); - if (stackEntity == null || stackEntity.isSingle()) { + if (stackEntity == null) { return; } - stackEntity.slice(); + if (!stackEntity.isSingle()) { + stackEntity.slice(); + } stackEntity.removeStackData(); } } From 330ba47e4f77e3d298199f5ca15fcf41283ec5a7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 28 Sep 2020 18:48:02 +0100 Subject: [PATCH 049/295] Prevent error when shearing a sheep with shears in offhand (fixes #143) --- .../stackmob/listeners/ShearListener.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java index 3e20cd1b..047cb42f 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java @@ -7,6 +7,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockShearEntityEvent; import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; @@ -33,11 +34,16 @@ public void onShearSheep(PlayerShearEntityEvent event) { if (event.isCancelled()) { return; } - ItemStack is = shearLogic((LivingEntity) event.getEntity(), event.getPlayer().getInventory().getItemInMainHand()); + EquipmentSlot equipmentSlot = findShears(event.getPlayer()); + if (equipmentSlot == null) { + sm.getLogger().info("A player just managed to shear an entity while not holding shears."); + return; + } + ItemStack is = shearLogic((LivingEntity) event.getEntity(), event.getPlayer().getInventory().getItem(equipmentSlot)); if (is == null) { return; } - event.getPlayer().getInventory().setItemInMainHand(is); + event.getPlayer().getInventory().setItem(equipmentSlot, is); } @EventHandler @@ -55,6 +61,19 @@ public void onShearSheep(BlockShearEntityEvent event) { }); } + private EquipmentSlot findShears(Player player) { + for (EquipmentSlot equipmentSlot : EquipmentSlot.values()) { + if (equipmentSlot != EquipmentSlot.HAND && equipmentSlot != EquipmentSlot.OFF_HAND) { + continue; + } + if (player.getInventory().getItem(equipmentSlot).getType() != Material.SHEARS) { + continue; + } + return equipmentSlot; + } + return null; + } + private ItemStack shearLogic(LivingEntity entity, ItemStack item) { if (!((entity instanceof Sheep) || (entity instanceof MushroomCow))) { return null; From 25020ea93b1956638d5a2a8789ed65a61aaf4ca1 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 4 Oct 2020 11:41:48 +0100 Subject: [PATCH 050/295] Add StackSpawnEvent --- .../stackmob/events/EventHelper.java | 7 ++++ .../stackmob/events/StackSpawnEvent.java | 42 +++++++++++++++++++ .../stackmob/listeners/SpawnListener.java | 4 ++ 3 files changed, 53 insertions(+) create mode 100644 src/main/java/uk/antiperson/stackmob/events/StackSpawnEvent.java diff --git a/src/main/java/uk/antiperson/stackmob/events/EventHelper.java b/src/main/java/uk/antiperson/stackmob/events/EventHelper.java index b242e079..9fa21cec 100644 --- a/src/main/java/uk/antiperson/stackmob/events/EventHelper.java +++ b/src/main/java/uk/antiperson/stackmob/events/EventHelper.java @@ -1,6 +1,7 @@ package uk.antiperson.stackmob.events; import org.bukkit.Bukkit; +import org.bukkit.entity.LivingEntity; import uk.antiperson.stackmob.entity.StackEntity; public class EventHelper { @@ -16,4 +17,10 @@ public static StackDeathEvent callStackDeathEvent(StackEntity dead, int deathSte Bukkit.getPluginManager().callEvent(event); return event; } + + public static StackSpawnEvent callStackSpawnEvent(LivingEntity spawned) { + StackSpawnEvent event = new StackSpawnEvent(spawned); + Bukkit.getPluginManager().callEvent(event); + return event; + } } diff --git a/src/main/java/uk/antiperson/stackmob/events/StackSpawnEvent.java b/src/main/java/uk/antiperson/stackmob/events/StackSpawnEvent.java new file mode 100644 index 00000000..00bca12d --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/events/StackSpawnEvent.java @@ -0,0 +1,42 @@ +package uk.antiperson.stackmob.events; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * Event called when a newly spawned entity is about to be stacked. + */ +public class StackSpawnEvent extends Event implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private final LivingEntity livingEntity; + + public StackSpawnEvent(LivingEntity livingEntity) { + this.livingEntity = livingEntity; + } + + public LivingEntity getLivingEntity() { + return livingEntity; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancel) { + this.cancelled = cancel; + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java index d4cb08e2..0bc8a3e8 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java @@ -8,6 +8,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; +import uk.antiperson.stackmob.events.EventHelper; public class SpawnListener implements Listener { @@ -28,6 +29,9 @@ public void onSpawn(CreatureSpawnEvent event) { if (sm.getEntityManager().isStackedEntity(event.getEntity())) { return; } + if (EventHelper.callStackSpawnEvent(event.getEntity()).isCancelled()) { + return; + } StackEntity original = sm.getEntityManager().registerStackedEntity(event.getEntity()); if (original.shouldWait(event.getSpawnReason())) { original.makeWait(); From bff7a47a116825c2303b8b0f9f0283eb4ffa4ab7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 17 Oct 2020 19:39:54 +0100 Subject: [PATCH 051/295] Allow minimum kill-step and maximum kill-step to be the same. --- src/main/java/uk/antiperson/stackmob/entity/death/KillStep.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStep.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStep.java index 47569b4e..b9fe93ed 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStep.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStep.java @@ -16,6 +16,6 @@ public KillStep(StackMob sm, StackEntity dead) { public int calculateStep() { int maxStep = getStackMob().getMainConfig().getMaxDeathStep(getEntity().getType()); int minStep = getStackMob().getMainConfig().getMinDeathStep(getEntity().getType()); - return ThreadLocalRandom.current().nextInt(minStep, maxStep); + return minStep == maxStep ? maxStep : ThreadLocalRandom.current().nextInt(minStep, maxStep); } } From 3f70c66eb8b7e1318c027a82af4d3ba4d68fc96b Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 18 Oct 2020 10:12:20 +0100 Subject: [PATCH 052/295] Spawn experience orb if death event is cancelled. (fixes #150) --- .../uk/antiperson/stackmob/listeners/DeathListener.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java index aa23e75f..35121364 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java @@ -1,6 +1,8 @@ package uk.antiperson.stackmob.listeners; import org.bukkit.Statistic; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.ExperienceOrb; import org.bukkit.entity.Slime; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -54,6 +56,10 @@ public void onStackDeath(EntityDeathEvent event) { Map drops = stackEntity.getDrops().calculateDrops(toMultiply, event.getDrops()); Drops.dropItems(event.getEntity().getLocation(), drops); event.setDroppedExp(experience); + if (event.isCancelled()) { + ExperienceOrb orb = (ExperienceOrb) event.getEntity().getWorld().spawnEntity(event.getEntity().getLocation(), EntityType.EXPERIENCE_ORB); + orb.setExperience(experience); + } if (sm.getMainConfig().isPlayerStatMulti(event.getEntityType())) { if (event.getEntity().getKiller() != null) { event.getEntity().getKiller().incrementStatistic(Statistic.KILL_ENTITY, event.getEntityType(), toMultiply); From bd4f70b5f9158662124308f633f5b2011c67d504 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 22 Oct 2020 20:43:50 +0100 Subject: [PATCH 053/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ca9a99dc..bd4d97b8 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.5 + 5.3.6 src/main/java From 9dc9c332d01909d2782c01d64f5e76793256418b Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 22 Oct 2020 20:44:13 +0100 Subject: [PATCH 054/295] Add method to StackDeathEvent to change the death step. --- .../stackmob/events/StackDeathEvent.java | 15 ++++++++++++++- .../stackmob/listeners/DeathListener.java | 4 +++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/events/StackDeathEvent.java b/src/main/java/uk/antiperson/stackmob/events/StackDeathEvent.java index d1d46146..e7ec76cf 100644 --- a/src/main/java/uk/antiperson/stackmob/events/StackDeathEvent.java +++ b/src/main/java/uk/antiperson/stackmob/events/StackDeathEvent.java @@ -9,7 +9,7 @@ public class StackDeathEvent extends StackEvent { private static final HandlerList handlers = new HandlerList(); - private final int deathStep; + private int deathStep; public StackDeathEvent(StackEntity stackEntity, int deathStep) { super(stackEntity); @@ -31,4 +31,17 @@ public static HandlerList getHandlerList() { public int getDeathStep() { return deathStep; } + + /** + * Set the amount of entities to be removed from the stack. + */ + public void setDeathStep(int deathStep) { + if (deathStep < 0) { + throw new IllegalArgumentException("Death step must be greater than or equal to one."); + } + if (deathStep > getStackEntity().getSize()) { + throw new IllegalArgumentException("Death step cannot be greater than the size of the killed entity!"); + } + this.deathStep = deathStep; + } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java index 35121364..bc9de14b 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java @@ -15,6 +15,7 @@ import uk.antiperson.stackmob.entity.StackEntity; import uk.antiperson.stackmob.entity.death.DeathMethod; import uk.antiperson.stackmob.events.EventHelper; +import uk.antiperson.stackmob.events.StackDeathEvent; import java.lang.reflect.InvocationTargetException; import java.util.Map; @@ -34,7 +35,8 @@ public void onStackDeath(EntityDeathEvent event) { StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); DeathMethod deathMethod = calculateDeath(stackEntity); int deathStep = Math.min(stackEntity.getSize(), deathMethod.calculateStep()); - EventHelper.callStackDeathEvent(stackEntity, deathStep); + StackDeathEvent stackDeathEvent = EventHelper.callStackDeathEvent(stackEntity, deathStep); + deathStep = stackDeathEvent.getDeathStep(); int toMultiply = deathStep - 1; if (deathStep < stackEntity.getSize()) { if (sm.getMainConfig().isSkipDeathAnimation(event.getEntityType())) { From 5fd0a1d918e744b7c58ac326c360c8a53df2ca3e Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 1 Nov 2020 14:47:03 +0000 Subject: [PATCH 055/295] Add null check for damage cause (fixes #153) --- src/main/java/uk/antiperson/stackmob/config/MainConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index b9e722fe..9705b0ce 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -179,7 +179,7 @@ public boolean isEntityBlacklisted(LivingEntity entity, CreatureSpawnEvent.Spawn public DeathType getDeathType(LivingEntity dead) { for (String key : getDeathSection(dead)) { ConfigList reasons = getList(dead.getType(), "death." + key + ".reason-blacklist"); - if (reasons.contains(dead.getLastDamageCause().getCause().toString())) { + if (dead.getLastDamageCause() != null && reasons.contains(dead.getLastDamageCause().getCause().toString())) { continue; } ConfigList types = getList(dead.getType(), "death." + key + ".type-blacklist"); From 3df85e59b3d6a0f0d07c8ce20b9a0e30996f32b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= <43724816+Aurelien30000@users.noreply.github.com> Date: Thu, 5 Nov 2020 21:08:19 +0100 Subject: [PATCH 056/295] Update to 1.16.4 (#154) --- pom.xml | 12 ++++++------ .../uk/antiperson/stackmob/utils/NMSHelper.java | 16 ++++++++-------- .../uk/antiperson/stackmob/utils/Utilities.java | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index bd4d97b8..cc8415ee 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.6 + 5.3.7 src/main/java @@ -94,13 +94,13 @@ com.destroystokyo.paper paper-api - 1.16.2-R0.1-SNAPSHOT + 1.16.4-R0.1-SNAPSHOT provided - com.destroystokyo.paper - paper - 1.16.2-R0.1-SNAPSHOT + org.spigotmc + spigot + 1.16.4-R0.1-SNAPSHOT provided @@ -142,4 +142,4 @@ - \ No newline at end of file + diff --git a/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java b/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java index 8353c574..9a6eca2b 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java +++ b/src/main/java/uk/antiperson/stackmob/utils/NMSHelper.java @@ -1,17 +1,17 @@ package uk.antiperson.stackmob.utils; -import net.minecraft.server.v1_16_R2.DataWatcher; -import net.minecraft.server.v1_16_R2.DataWatcherObject; -import net.minecraft.server.v1_16_R2.DataWatcherRegistry; -import net.minecraft.server.v1_16_R2.PacketPlayOutEntityMetadata; -import org.bukkit.craftbukkit.v1_16_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; +import net.minecraft.server.v1_16_R3.DataWatcher; +import net.minecraft.server.v1_16_R3.DataWatcherObject; +import net.minecraft.server.v1_16_R3.DataWatcherRegistry; +import net.minecraft.server.v1_16_R3.PacketPlayOutEntityMetadata; +import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; - public class NMSHelper { - public static void sendPacket(Player player, org.bukkit.entity.Entity entity, boolean tagVisible) { + public static void sendPacket(Player player, Entity entity, boolean tagVisible) { CraftEntity craftEntity = (CraftEntity) entity; DataWatcher watcher = new DataWatcher(craftEntity.getHandle()); watcher.register(new DataWatcherObject<>(3, DataWatcherRegistry.i), tagVisible); diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index cd308d60..4df2bde4 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -73,7 +73,7 @@ public static boolean isNewBukkit() { } public static boolean isNativeVersion() { - return Package.getPackage("net.minecraft.server.v1_16_R2") != null; + return Package.getPackage("net.minecraft.server.v1_16_R3") != null; } public enum DownloadResult { From 69ffe6cdef539b3f9903207147d728a96a53b071 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 23 Nov 2020 19:37:09 +0000 Subject: [PATCH 057/295] Add null check for damage cause (fixes #156) --- .../uk/antiperson/stackmob/entity/death/KillStepDamage.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java index 5a75240c..4b97fd13 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java @@ -16,6 +16,9 @@ public KillStepDamage(StackMob sm, StackEntity dead) { @Override public int calculateStep() { + if (getDead().getEntity().getLastDamageCause() == null) { + return 1; + } double healthBefore = ((LivingEntity)getDead().getEntity().getLastDamageCause().getEntity()).getHealth(); double damageDone = getEntity().getLastDamageCause().getFinalDamage(); double damageLeft = Math.abs(healthBefore - damageDone); From 12a9d47eb140b062e44439ecb0be99dfc27c9f73 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 24 Nov 2020 21:02:13 +0000 Subject: [PATCH 058/295] Fix error when damage amount is extremely high, fixes parrot cookie bug. --- .../uk/antiperson/stackmob/entity/death/KillStepDamage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java index 4b97fd13..9224dc78 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java @@ -21,8 +21,8 @@ public int calculateStep() { } double healthBefore = ((LivingEntity)getDead().getEntity().getLastDamageCause().getEntity()).getHealth(); double damageDone = getEntity().getLastDamageCause().getFinalDamage(); - double damageLeft = Math.abs(healthBefore - damageDone); double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue(); + double damageLeft = Math.min(maxHealth * (getDead().getSize() - 1), Math.abs(healthBefore - damageDone)); double divided = damageLeft / maxHealth; int entities = (int) Math.floor(divided); leftOverDamage = (divided - entities) * maxHealth; From aae67ef1b15e792d514e241eb9701df38d126c11 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 5 Dec 2020 19:57:50 +0000 Subject: [PATCH 059/295] Add spawn delay on mob death (#160) --- .../stackmob/listeners/DeathListener.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java index bc9de14b..fcc64a63 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java @@ -1,12 +1,17 @@ package uk.antiperson.stackmob.listeners; +import org.bukkit.Material; import org.bukkit.Statistic; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; import org.bukkit.entity.ExperienceOrb; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Slime; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.metadata.FixedMetadataValue; import uk.antiperson.stackmob.StackMob; @@ -45,10 +50,13 @@ public void onStackDeath(EntityDeathEvent event) { stackEntity.incrementSize(-deathStep); deathMethod.onSpawn(stackEntity); } else { - StackEntity spawned = stackEntity.duplicate(); - spawned.setSize(stackEntity.getSize() - deathStep); - deathMethod.onSpawn(spawned); stackEntity.removeStackData(); + int finalDeathStep = deathStep; + sm.getServer().getScheduler().runTask(sm, () -> { + StackEntity spawned = stackEntity.duplicate(); + spawned.setSize(stackEntity.getSize() - finalDeathStep); + deathMethod.onSpawn(spawned); + }); } } if (toMultiply == 0) { From b1492176e545a61ebe3c0945455f88619dcb2ff7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 8 Dec 2020 11:37:36 +0000 Subject: [PATCH 060/295] Fix leads being dropped when stack is killed on a leash. --- .../uk/antiperson/stackmob/listeners/DeathListener.java | 6 ++++++ .../uk/antiperson/stackmob/listeners/LeashListener.java | 7 +++---- src/main/java/uk/antiperson/stackmob/utils/Utilities.java | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java index fcc64a63..f6aee112 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java @@ -21,6 +21,7 @@ import uk.antiperson.stackmob.entity.death.DeathMethod; import uk.antiperson.stackmob.events.EventHelper; import uk.antiperson.stackmob.events.StackDeathEvent; +import uk.antiperson.stackmob.utils.Utilities; import java.lang.reflect.InvocationTargetException; import java.util.Map; @@ -43,6 +44,11 @@ public void onStackDeath(EntityDeathEvent event) { StackDeathEvent stackDeathEvent = EventHelper.callStackDeathEvent(stackEntity, deathStep); deathStep = stackDeathEvent.getDeathStep(); int toMultiply = deathStep - 1; + if (sm.getMainConfig().getBoolean("traits.leashed")) { + if (event.getEntity().isLeashed() && (stackEntity.getSize() - deathStep) != 0) { + event.getEntity().setMetadata(Utilities.NO_LEASH_METADATA, new FixedMetadataValue(sm, true)); + } + } if (deathStep < stackEntity.getSize()) { if (sm.getMainConfig().isSkipDeathAnimation(event.getEntityType())) { toMultiply = deathStep; diff --git a/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java b/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java index d30e3fae..0d3624a7 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/LeashListener.java @@ -6,6 +6,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDropItemEvent; import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.utils.Utilities; @ListenerMetadata(config = "traits.leashed") public class LeashListener implements Listener { @@ -20,12 +21,10 @@ public void onLeash(EntityDropItemEvent event) { if (event.getItemDrop().getItemStack().getType() != Material.LEAD) { return; } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) event.getEntity())) { - return; - } - if (!event.getEntity().isDead()) { + if (!event.getEntity().hasMetadata(Utilities.NO_LEASH_METADATA)) { return; } + event.getEntity().removeMetadata(Utilities.NO_LEASH_METADATA, sm); event.setCancelled(true); } } diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index 4df2bde4..be471aed 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -18,6 +18,7 @@ public class Utilities { public static final String PREFIX = ChatColor.DARK_GREEN + "StackMob " + ChatColor.GRAY + ">> " + ChatColor.RESET; public static final String SLIME_METADATA = "deathcount"; + public static final String NO_LEASH_METADATA = "stop-leash"; public static final String DISCORD = "https://discord.gg/fz9xzuB"; public static final String GITHUB = "https://github.com/Nathat23/StackMob-5"; public static final String GITHUB_DEFAULT_CONFIG = GITHUB + "/tree/master/src/main/resources"; From d49602644363544a8c7ebc2e992adb75cddb0a30 Mon Sep 17 00:00:00 2001 From: antiPerson Date: Sun, 20 Dec 2020 16:32:58 +0000 Subject: [PATCH 061/295] 5.4 (#163) * Add methods of handling picked up items (#134) * Increment version * remove debug message * refactoring * Add limit for breed, dye and shear events when configured to use MULTIPLY ListenerMode * Create EntityFood enum * Delete EntityUtils and move remaining methods to Utilities * Multiply the correct mushroom type according to mooshroom variant. * Fix mooshroom shearing NullPointerException * Replace player hand searching loop --- pom.xml | 2 +- .../java/uk/antiperson/stackmob/StackMob.java | 1 + .../stackmob/config/MainConfig.java | 10 +++ .../stackmob/entity/EntityFood.java | 83 +++++++++++++++++++ .../stackmob/entity/StackEntity.java | 35 ++++++++ .../stackmob/listeners/BeeListener.java | 18 ++-- .../listeners/BreedInteractListener.java | 51 ++++++------ .../stackmob/listeners/DyeListener.java | 16 ++-- .../stackmob/listeners/EquipListener.java | 26 ++++++ .../stackmob/listeners/ShearListener.java | 82 +++++++++--------- .../stackmob/listeners/TargetListener.java | 6 +- .../stackmob/utils/EntityUtils.java | 83 ------------------- .../antiperson/stackmob/utils/Utilities.java | 16 ++++ src/main/resources/config.yml | 13 +++ 14 files changed, 276 insertions(+), 166 deletions(-) create mode 100644 src/main/java/uk/antiperson/stackmob/entity/EntityFood.java create mode 100644 src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java delete mode 100644 src/main/java/uk/antiperson/stackmob/utils/EntityUtils.java diff --git a/pom.xml b/pom.xml index cc8415ee..8f69002b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.3.7 + 5.4.0 src/main/java diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index 1954f208..3165cab5 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -147,6 +147,7 @@ private void registerEvents() throws InvocationTargetException, NoSuchMethodExce registerEvent(PlayerListener.class); registerEvent(BeeListener.class); registerEvent(LeashListener.class); + registerEvent(EquipListener.class); if (Utilities.isPaper()) { registerEvent(RemoveListener.class); } else { diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 9705b0ce..1f650924 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -5,6 +5,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.event.entity.CreatureSpawnEvent; import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.entity.StackEntity; import uk.antiperson.stackmob.entity.death.DeathType; import uk.antiperson.stackmob.entity.TagMode; import uk.antiperson.stackmob.listeners.ListenerMode; @@ -162,6 +163,11 @@ public ListenerMode getListenerMode(EntityType type, String eventKey) { return ListenerMode.valueOf(getString(type, "events." + eventKey + ".mode")); } + public int getEventMultiplyLimit(EntityType type, String eventKey, int stackSize) { + int limit = getInt(type, "events." + eventKey + ".limit"); + return limit == -1 ? stackSize : Math.min(stackSize, limit); + } + public boolean isWorldBlacklisted(EntityType type, World world) { return getList(type, "worlds-blacklist").contains(world.getName()); } @@ -203,6 +209,10 @@ public boolean isSkipDeathAnimation(EntityType type) { return getBoolean(type, "death.skip-animation"); } + public StackEntity.EquipItemMode getEquipItemMode(EntityType type) { + return StackEntity.EquipItemMode.valueOf(getString(type, "events.equip.mode")); + } + @Override public void updateFile() throws IOException { if (isSet("check-area.x")) { diff --git a/src/main/java/uk/antiperson/stackmob/entity/EntityFood.java b/src/main/java/uk/antiperson/stackmob/entity/EntityFood.java new file mode 100644 index 00000000..70469d7f --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/entity/EntityFood.java @@ -0,0 +1,83 @@ +package uk.antiperson.stackmob.entity; + +import org.bukkit.Material; +import org.bukkit.Tag; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Tameable; + +import java.util.function.Predicate; + +public enum EntityFood { + COW(Material.WHEAT), + SHEEP(Material.WHEAT), + MUSHROOM_COW(Material.WHEAT), + PIG(Material.CARROT, Material.BEETROOT, Material.POTATO), + CHICKEN(Material.WHEAT_SEEDS, Material.BEETROOT_SEEDS, Material.MELON_SEEDS, Material.PUMPKIN_SEEDS), + HORSE(Tameable::isTamed, Material.GOLDEN_CARROT, Material.GOLDEN_APPLE), + WOLF(Tameable::isTamed, Material.BEEF, + Material.CHICKEN, + Material.COD, + Material.MUTTON, + Material.PORKCHOP, + Material.RABBIT, + Material.SALMON, + Material.COOKED_BEEF, + Material.COOKED_CHICKEN, + Material.COOKED_COD, + Material.COOKED_MUTTON, + Material.COOKED_PORKCHOP, + Material.COOKED_RABBIT, + Material.COOKED_SALMON), + OCELOT(Material.SALMON, Material.COD, Material.PUFFERFISH, Material.TROPICAL_FISH), + RABBIT(Material.CARROT, Material.GOLDEN_CARROT, Material.DANDELION), + LLAMA(Material.HAY_BLOCK), + TURTLE(Material.SEAGRASS), + PANDA(Material.BAMBOO), + FOX(Material.SWEET_BERRIES), + CAT(Tameable::isTamed, Material.SALMON, Material.COD), + BEE(Tag.FLOWERS.getValues().toArray(new Material[0])), + HOGLIN(Material.matchMaterial("CRIMSON_FUNGUS")), + INVALID; + + private final Predicate predicate; + private final Material[] foods; + EntityFood(Predicate predicate, Material... foods) { + this.predicate = predicate; + this.foods = foods; + } + + EntityFood(Material... foods) { + this.predicate = null; + this.foods = foods; + } + + public Material[] getFoods() { + return foods; + } + + public Predicate getPredicate() { + return predicate; + } + + public static EntityFood matchFood(EntityType type) { + try { + return EntityFood.valueOf(type.toString()); + } catch (IllegalArgumentException e) { + return EntityFood.INVALID; + } + } + + public static boolean isCorrectFood(Entity entity, Material type) { + EntityFood food = matchFood(entity.getType()); + if (food.getPredicate() != null && !food.getPredicate().getClass().isAssignableFrom(entity.getClass())) { + return false; + } + for (Material material : food.getFoods()) { + if (material == type) { + return true; + } + } + return false; + } +} diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index a27213b9..f82f1e1f 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -10,6 +10,9 @@ import uk.antiperson.stackmob.events.EventHelper; import uk.antiperson.stackmob.utils.Utilities; +import java.util.HashSet; +import java.util.Set; + public class StackEntity { private final LivingEntity entity; @@ -18,6 +21,7 @@ public class StackEntity { private boolean waiting; private int waitCount; private int stackSize; + private Set equiptItems; public StackEntity(StackMob sm, EntityManager entityManager, LivingEntity entity) { this.sm = sm; this.entity = entity; @@ -158,6 +162,7 @@ public void remove(boolean unregister) { ItemStack leash = new ItemStack(Material.LEAD, 1); getWorld().dropItemNaturally(entity.getLocation(), leash); } + dropEquipItems(); } /** @@ -219,6 +224,11 @@ public boolean match(StackEntity nearby) { } public boolean canStack() { + if (equiptItems != null && !equiptItems.isEmpty()) { + if (sm.getMainConfig().getEquipItemMode(getEntity().getType()) == EquipItemMode.PREVENT_STACK) { + return false; + } + } return !getEntity().isDead() && !isMaxSize() && !isWaiting(); } @@ -310,4 +320,29 @@ public StackEntity slice(int amount) { return duplicate; } + + public void addEquipItem(ItemStack equipt) { + if (equiptItems == null) { + equiptItems = new HashSet<>(); + } + equiptItems.add(equipt); + } + + private void dropEquipItems() { + if (equiptItems == null) { + return; + } + if (sm.getMainConfig().getEquipItemMode(getEntity().getType()) != EquipItemMode.DROP_ITEMS) { + return; + } + for (ItemStack itemStack : equiptItems) { + getEntity().getWorld().dropItemNaturally(getEntity().getLocation(), itemStack); + } + } + + public enum EquipItemMode { + IGNORE, + DROP_ITEMS, + PREVENT_STACK + } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java index 1e5ac954..37157f2e 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/BeeListener.java @@ -18,17 +18,15 @@ public BeeListener(StackMob sm) { @EventHandler (ignoreCancelled = true) public void onEntityEnterBlockEvent(EntityEnterBlockEvent event) { - final LivingEntity bee = (LivingEntity) event.getEntity(); - - if (sm.getEntityManager().isStackedEntity(bee)) { - final StackEntity oldBee = sm.getEntityManager().getStackEntity(bee); - - if (oldBee == null || oldBee.isSingle()) { - return; - } - - oldBee.slice(); + LivingEntity bee = (LivingEntity) event.getEntity(); + if (!sm.getEntityManager().isStackedEntity(bee)) { + return; + } + final StackEntity oldBee = sm.getEntityManager().getStackEntity(bee); + if (oldBee == null || oldBee.isSingle()) { + return; } + oldBee.slice(); } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java index e42a8821..c6a3667a 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/BreedInteractListener.java @@ -8,7 +8,8 @@ import org.bukkit.inventory.ItemStack; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; -import uk.antiperson.stackmob.utils.EntityUtils; +import uk.antiperson.stackmob.entity.EntityFood; +import uk.antiperson.stackmob.utils.Utilities; @ListenerMetadata(config = "events.breed.enabled") public class BreedInteractListener implements Listener { @@ -29,14 +30,14 @@ public void onBreedInteract(PlayerInteractEntityEvent event) { if (!(event.getRightClicked() instanceof Animals)) { return; } - if (!((Animals) event.getRightClicked()).canBreed()) { + Animals animals = (Animals) event.getRightClicked(); + if (!animals.canBreed()) { return; } ItemStack foodItem = event.getPlayer().getInventory().getItemInMainHand(); - if (!EntityUtils.isCorrectFood(event.getRightClicked(), foodItem.getType())) { + if (!EntityFood.isCorrectFood(event.getRightClicked(), foodItem.getType())) { return; } - Animals animals = (Animals) event.getRightClicked(); StackEntity stackEntity = sm.getEntityManager().getStackEntity(animals); if (stackEntity == null || stackEntity.isSingle()) { return; @@ -44,27 +45,27 @@ public void onBreedInteract(PlayerInteractEntityEvent event) { ListenerMode breed = sm.getMainConfig().getListenerMode(animals.getType(), "breed"); if (breed == ListenerMode.SPLIT) { stackEntity.slice(); - } else if (breed == ListenerMode.MULTIPLY) { - int itemAmount = event.getPlayer().getInventory().getItemInMainHand().getAmount(); - EntityUtils.removeHandItem(event.getPlayer(), stackEntity.getSize()); - stackEntity.splitIfNotEnough(itemAmount); - if (itemAmount == 1) { - return; - } - double kAmount = stackEntity.getSize() / 2D; - int kidAmount = (int) Math.floor(kAmount); - if (kAmount > kidAmount) { - stackEntity.duplicate(); - stackEntity.incrementSize(-1); - } - stackEntity.getDrops().dropExperience(event.getRightClicked().getLocation(),1,7, kidAmount); - // Spawn the kid - StackEntity kid = stackEntity.duplicate(); - kid.setSize(kidAmount); - ((Animals) kid.getEntity()).setBaby(); - // Update the adult - animals.setBreed(false); - animals.setBreedCause(event.getPlayer().getUniqueId()); + return; + } + int itemAmount = event.getPlayer().getInventory().getItemInMainHand().getAmount(); + stackEntity.splitIfNotEnough(itemAmount); + if (itemAmount == 1) { + Utilities.removeHandItem(event.getPlayer(), 1); + return; + } + int kidAmount = sm.getMainConfig().getEventMultiplyLimit(animals.getType(), "breed", stackEntity.getSize() / 2); + int parentAmount = kidAmount * 2; + if (stackEntity.getSize() > parentAmount) { + stackEntity.slice(parentAmount); } + Utilities.removeHandItem(event.getPlayer(), parentAmount); + stackEntity.getDrops().dropExperience(event.getRightClicked().getLocation(),1,7, kidAmount); + // Spawn the kid + StackEntity kid = stackEntity.duplicate(); + kid.setSize(kidAmount); + ((Animals) kid.getEntity()).setBaby(); + // Update the adult + animals.setBreed(false); + animals.setBreedCause(event.getPlayer().getUniqueId()); } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java index 425d594c..f88d2635 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DyeListener.java @@ -9,7 +9,7 @@ import org.bukkit.material.Colorable; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; -import uk.antiperson.stackmob.utils.EntityUtils; +import uk.antiperson.stackmob.utils.Utilities; @ListenerMetadata(config = "events.dye.enabled") public class DyeListener implements Listener { @@ -29,7 +29,7 @@ public void onDyeListener(PlayerInteractEntityEvent event) { return; } ItemStack handItem = event.getPlayer().getInventory().getItemInMainHand(); - if (!EntityUtils.isDye(handItem)) { + if (!Utilities.isDye(handItem)) { return; } Sheep sheep = (Sheep) event.getRightClicked(); @@ -40,10 +40,14 @@ public void onDyeListener(PlayerInteractEntityEvent event) { ListenerMode mode = sm.getMainConfig().getListenerMode(sheep.getType(), "dye"); if (mode == ListenerMode.SPLIT) { ((Colorable) stackEntity.slice().getEntity()).setColor(sheep.getColor()); - } else if (mode == ListenerMode.MULTIPLY) { - stackEntity.splitIfNotEnough(event.getPlayer().getInventory().getItemInMainHand().getAmount()); - EntityUtils.removeHandItem(event.getPlayer(), stackEntity.getSize()); - sheep.setColor(DyeColor.valueOf(handItem.getType().toString().replace("_DYE", ""))); + return; + } + stackEntity.splitIfNotEnough(event.getPlayer().getInventory().getItemInMainHand().getAmount()); + int limit = sm.getMainConfig().getEventMultiplyLimit(sheep.getType(), "dye", stackEntity.getSize()); + if (stackEntity.getSize() > limit) { + stackEntity.slice(limit); } + Utilities.removeHandItem(event.getPlayer(), stackEntity.getSize()); + sheep.setColor(DyeColor.valueOf(handItem.getType().toString().replace("_DYE", ""))); } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java b/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java new file mode 100644 index 00000000..6d5ed6ca --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java @@ -0,0 +1,26 @@ +package uk.antiperson.stackmob.listeners; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityPickupItemEvent; +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.entity.StackEntity; + +@ListenerMetadata(config = "events.equip.enabled") +public class EquipListener implements Listener { + + private final StackMob sm; + + public EquipListener(StackMob sm) { + this.sm = sm; + } + + @EventHandler + public void onEntityEquip(EntityPickupItemEvent event) { + if (!sm.getEntityManager().isStackedEntity(event.getEntity())) { + return; + } + StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); + stackEntity.addEquipItem(event.getItem().getItemStack()); + } +} diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java index 047cb42f..b6733a6d 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java @@ -16,6 +16,7 @@ import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.Drops; import uk.antiperson.stackmob.entity.StackEntity; +import uk.antiperson.stackmob.utils.Utilities; import java.util.Collection; import java.util.concurrent.ThreadLocalRandom; @@ -62,14 +63,14 @@ public void onShearSheep(BlockShearEntityEvent event) { } private EquipmentSlot findShears(Player player) { - for (EquipmentSlot equipmentSlot : EquipmentSlot.values()) { - if (equipmentSlot != EquipmentSlot.HAND && equipmentSlot != EquipmentSlot.OFF_HAND) { - continue; - } - if (player.getInventory().getItem(equipmentSlot).getType() != Material.SHEARS) { - continue; - } - return equipmentSlot; + EquipmentSlot hand = checkSlot(player, EquipmentSlot.HAND); + EquipmentSlot offHand = checkSlot(player, EquipmentSlot.OFF_HAND); + return hand == null ? offHand : hand; + } + + private EquipmentSlot checkSlot(Player player, EquipmentSlot slot) { + if (player.getInventory().getItem(slot).getType() == Material.SHEARS) { + return slot; } return null; } @@ -88,39 +89,46 @@ private ItemStack shearLogic(LivingEntity entity, ItemStack item) { if (slice.getEntity() instanceof Sheep) { ((Sheep) slice.getEntity()).setSheared(false); } - } else if (shear == ListenerMode.MULTIPLY) { - Damageable damageable = (Damageable) item.getItemMeta(); - int health = item.getType().getMaxDurability() - damageable.getDamage(); - stackEntity.splitIfNotEnough(health); - int damage = health - stackEntity.getSize(); - if (damage > 0) { - damageable.setDamage(damageable.getDamage() + stackEntity.getSize()); - item.setItemMeta((ItemMeta) damageable); - } else { - item = new ItemStack(Material.AIR); - } - if (entity instanceof Sheep) { - Sheep sheared = (Sheep) entity; - LootContext lootContext = new LootContext.Builder(sheared.getLocation()).lootedEntity(sheared).build(); - Collection loot = sheared.getLootTable().populateLoot(ThreadLocalRandom.current(), lootContext); - for (ItemStack itemStack : loot) { - if (itemStack.getData() instanceof Wool) { - int woolAmount = (int) Math.round(stackEntity.getSize() * ThreadLocalRandom.current().nextDouble(1, 2)); - Drops.dropItem(sheared.getLocation(), itemStack, woolAmount); - } + return null; + } + int limit = sm.getMainConfig().getEventMultiplyLimit(entity.getType(), "shear", stackEntity.getSize()); + Damageable damageable = (Damageable) item.getItemMeta(); + int health = item.getType().getMaxDurability() - damageable.getDamage(); + int amount = Math.min(health, limit); + stackEntity.splitIfNotEnough(amount); + int damage = health - amount; + if (damage > 0) { + damageable.setDamage(damageable.getDamage() + amount); + item.setItemMeta((ItemMeta) damageable); + } else { + item = new ItemStack(Material.AIR); + } + if (entity instanceof Sheep) { + Sheep sheared = (Sheep) entity; + LootContext lootContext = new LootContext.Builder(sheared.getLocation()).lootedEntity(sheared).build(); + Collection loot = sheared.getLootTable().populateLoot(ThreadLocalRandom.current(), lootContext); + for (ItemStack itemStack : loot) { + if (itemStack.getData() instanceof Wool) { + int woolAmount = (int) Math.round(amount * ThreadLocalRandom.current().nextDouble(1, 2)); + Drops.dropItem(sheared.getLocation(), itemStack, woolAmount); } - return item; } - MushroomCow mushroomCow = (MushroomCow) entity; - ItemStack mushrooms = new ItemStack(Material.RED_MUSHROOM, 1); - Drops.dropItem(mushroomCow.getLocation(), mushrooms, (stackEntity.getSize() - 1) * 5); - // Spawn separate normal cow for the rest of the stack. - Entity cow = mushroomCow.getWorld().spawnEntity(mushroomCow.getLocation(), EntityType.COW); - StackEntity stackCow = sm.getEntityManager().getStackEntity((LivingEntity) cow); - stackCow.setSize(stackEntity.getSize() - 1); return item; } - return null; + MushroomCow mushroomCow = (MushroomCow) entity; + ItemStack mushrooms = new ItemStack(getMaterial(mushroomCow), 1); + Drops.dropItem(mushroomCow.getLocation(), mushrooms, (amount - 1) * 5); + // Spawn separate normal cow for the rest of the stack. + Entity cow = mushroomCow.getWorld().spawnEntity(mushroomCow.getLocation(), EntityType.COW); + StackEntity stackCow = sm.getEntityManager().registerStackedEntity((LivingEntity) cow); + stackCow.setSize(amount - 1); + return item; } + private Material getMaterial(MushroomCow mushroomCow) { + if (!Utilities.isNewBukkit()) { + return Material.RED_MUSHROOM; + } + return mushroomCow.getVariant() == MushroomCow.Variant.RED ? Material.RED_MUSHROOM : Material.BROWN_MUSHROOM; + } } diff --git a/src/main/java/uk/antiperson/stackmob/listeners/TargetListener.java b/src/main/java/uk/antiperson/stackmob/listeners/TargetListener.java index fe5758a2..8867e0aa 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/TargetListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/TargetListener.java @@ -26,10 +26,8 @@ public void onMobTarget(EntityTargetEvent event) { if (sm.getMainConfig().getTargetingDisabledTypes(event.getEntityType()).contains(event.getEntityType().toString())) { return; } - if (Utilities.isPaper()) { - if (sm.getMainConfig().getTargetingDisabledReasons(event.getEntityType()).contains(event.getEntity().getEntitySpawnReason())){ - return; - } + if (Utilities.isPaper() && sm.getMainConfig().getTargetingDisabledReasons(event.getEntityType()).contains(event.getEntity().getEntitySpawnReason())){ + return; } event.setCancelled(true); } diff --git a/src/main/java/uk/antiperson/stackmob/utils/EntityUtils.java b/src/main/java/uk/antiperson/stackmob/utils/EntityUtils.java deleted file mode 100644 index 5bf705a3..00000000 --- a/src/main/java/uk/antiperson/stackmob/utils/EntityUtils.java +++ /dev/null @@ -1,83 +0,0 @@ -package uk.antiperson.stackmob.utils; - -import org.bukkit.Material; -import org.bukkit.Tag; -import org.bukkit.entity.*; -import org.bukkit.inventory.ItemStack; - -public class EntityUtils { - - - public static boolean isCorrectFood(Entity entity, Material type) { - switch (entity.getType()) { - case COW: - case SHEEP: - case MUSHROOM_COW: - return type == Material.WHEAT; - case PIG: - return (type == Material.CARROT || type == Material.BEETROOT || type == Material.POTATO); - case CHICKEN: - return type == Material.WHEAT_SEEDS - || type == Material.MELON_SEEDS - || type == Material.BEETROOT_SEEDS - || type == Material.PUMPKIN_SEEDS; - case HORSE: - return (type == Material.GOLDEN_APPLE || type == Material.GOLDEN_CARROT) && ((Horse)entity).isTamed(); - case WOLF: - return (type == Material.BEEF - || type == Material.CHICKEN - || type == Material.COD - || type == Material.MUTTON - || type == Material.PORKCHOP - || type == Material.RABBIT - || type == Material.SALMON - || type == Material.COOKED_BEEF - || type == Material.COOKED_CHICKEN - || type == Material.COOKED_COD - || type == Material.COOKED_MUTTON - || type == Material.COOKED_PORKCHOP - || type == Material.COOKED_RABBIT - || type == Material.COOKED_SALMON) - && ((Wolf) entity).isTamed(); - case OCELOT: - return (type == Material.SALMON - || type == Material.COD - || type == Material.PUFFERFISH - || type == Material.TROPICAL_FISH); - case RABBIT: - return type == Material.CARROT || type == Material.GOLDEN_CARROT || type == Material.DANDELION; - case LLAMA: - return type == Material.HAY_BLOCK; - case TURTLE: - return type == Material.SEAGRASS; - case PANDA: - return type == Material.BAMBOO; - case FOX: - return type == Material.SWEET_BERRIES; - case CAT: - return (type == Material.COD || type == Material.SALMON) && ((Cat) entity).isTamed(); - case BEE: - return Tag.FLOWERS.isTagged(type); - } - if (Utilities.isNewBukkit()) { - return entity.getType() == EntityType.HOGLIN && type == Material.CRIMSON_FUNGUS; - } - return false; - } - - public static boolean isDye(ItemStack material) { - return material.getType().toString().endsWith("_DYE"); - } - - public static void removeHandItem(Player player, int itemAmount) { - if (itemAmount == player.getInventory().getItemInMainHand().getAmount()) { - player.getInventory().setItemInMainHand(null); - return; - } - ItemStack is = player.getInventory().getItemInMainHand(); - is.setAmount(is.getAmount() - itemAmount); - player.getInventory().setItemInMainHand(is); - } - - -} diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index be471aed..cc048d85 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -1,6 +1,8 @@ package uk.antiperson.stackmob.utils; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import java.io.File; import java.io.IOException; @@ -77,6 +79,20 @@ public static boolean isNativeVersion() { return Package.getPackage("net.minecraft.server.v1_16_R3") != null; } + public static boolean isDye(ItemStack material) { + return material.getType().toString().endsWith("_DYE"); + } + + public static void removeHandItem(Player player, int itemAmount) { + if (itemAmount == player.getInventory().getItemInMainHand().getAmount()) { + player.getInventory().setItemInMainHand(null); + return; + } + ItemStack is = player.getInventory().getItemInMainHand(); + is.setAmount(is.getAmount() - itemAmount); + player.getInventory().setItemInMainHand(is); + } + public enum DownloadResult { SUCCESSFUL, ERROR diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index ee962693..cfa28be0 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -89,24 +89,37 @@ disable-targeting: # What should be done when these entity actions occur. (*) events: + # When an entity picks up armor or other equipment + equip: + enabled: true + # IGNORE - do not take picked up equipment into consideration when stacking + # DROP_ITEMS - drop picked up items when about to stack + # PREVENT_STACK - do not stack this entity. + mode: IGNORE # When an entity is feed its food. breed: enabled: true # MULTIPLY - spawn as many baby entities possible providing there is enough food fed. # SPLIT - slice off an entity to that it can be bred normally. mode: MULTIPLY + # Limit the amount of baby entities spawned when using MULTIPLY mode. -1 = disabled. + limit: -1 # When an entity is dyed. dye: enabled: true # MULTIPLY - dye as many entities possible providing there is enough dye. # SPLIT - slice off an entity to that it can be dyed normally. mode: MULTIPLY + # Limit the amount of sheep dyed when using MULTIPLY mode. -1 = disabled. + limit: -1 # When an entity is sheared. shear: enabled: true # MULTIPLY - shear as many entities possible providing the shears have enough durability. # SPLIT - slice off an entity to that it can be sheared normally. mode: MULTIPLY + # Limit the amount of sheep sheared when using MULTIPLY mode. -1 = disabled. + limit: -1 multiply: # Chicken eggs and turtle scutes. drops: true From 1edf9cec7dac0fd19a59e8e6b29003ee059e8f7d Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 3 Jan 2021 10:10:49 +0000 Subject: [PATCH 062/295] Make sure that when merging two stacks with a combined size larger than the maximum size, the largest stack becomes full. --- .../stackmob/entity/StackEntity.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index f82f1e1f..1e6ef5bb 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -239,20 +239,22 @@ public boolean canStack() { * @return the entity that was removed */ public StackEntity merge(StackEntity toMerge, boolean unregister) { - StackEntity entity1 = toMerge.getSize() < getSize() ? toMerge : this; - StackEntity entity2 = toMerge.getSize() < getSize() ? this : toMerge; - if (EventHelper.callStackMergeEvent(entity1, entity2).isCancelled()) { + boolean toMergeBigger = toMerge.getSize() > getSize(); + StackEntity smallest = toMergeBigger ? this : toMerge; + StackEntity biggest = toMergeBigger ? toMerge : this; + if (EventHelper.callStackMergeEvent(smallest, biggest).isCancelled()) { return null; } - int totalSize = entity1.getSize() + entity2.getSize(); - if (totalSize > getMaxSize()) { - toMerge.setSize(totalSize - entity2.getMaxSize()); - setSize(entity2.getMaxSize()); + int totalSize = smallest.getSize() + biggest.getSize(); + int maxSize = getMaxSize(); + if (totalSize > maxSize) { + smallest.setSize(totalSize - maxSize); + biggest.setSize(maxSize); return null; } - entity2.incrementSize(entity1.getSize()); - entity1.remove(unregister); - return entity1; + biggest.incrementSize(smallest.getSize()); + smallest.remove(unregister); + return smallest; } public StackEntity splitIfNotEnough(int itemAmount) { From c56634d1538a0bb667082b80d8e574c0985bc725 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 3 Jan 2021 10:15:21 +0000 Subject: [PATCH 063/295] Update pom --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 8f69002b..84e29d67 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.7.0 + 3.8.1 1.8 1.8 @@ -46,7 +46,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.1.0 + 3.2.4 @@ -118,7 +118,7 @@ org.bstats bstats-bukkit - 1.7 + 1.8 compile From 41d699db7c404a2cab7a9c5b102e70a77cdfb8ac Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 3 Jan 2021 10:26:36 +0000 Subject: [PATCH 064/295] Fix stack threshold removing stacks with a size bigger than one. (#165) --- src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java index 8da37b10..f2ea0865 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java @@ -57,6 +57,7 @@ public void run() { toRemove.add(removed); break; } + continue; } matches.add(nearbyStack); } From f4e3d21b5d56e270afff2fc899da81461187de5e Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 6 Jan 2021 16:06:20 +0000 Subject: [PATCH 065/295] Add spawn reason blacklist for death amount types. --- .../stackmob/config/MainConfig.java | 5 +++++ src/main/resources/config.yml | 19 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 1f650924..95bb5fd9 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -9,6 +9,7 @@ import uk.antiperson.stackmob.entity.death.DeathType; import uk.antiperson.stackmob.entity.TagMode; import uk.antiperson.stackmob.listeners.ListenerMode; +import uk.antiperson.stackmob.utils.Utilities; import java.io.IOException; import java.util.*; @@ -188,6 +189,10 @@ public DeathType getDeathType(LivingEntity dead) { if (dead.getLastDamageCause() != null && reasons.contains(dead.getLastDamageCause().getCause().toString())) { continue; } + ConfigList spawnReasons = getList(dead.getType(), "death." + key + ".spawn-reason-blacklist"); + if (Utilities.isPaper() && spawnReasons.contains(dead.getEntitySpawnReason())) { + continue; + } ConfigList types = getList(dead.getType(), "death." + key + ".type-blacklist"); if (types.contains(dead.getType().toString())) { continue; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index cfa28be0..879ab704 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -139,31 +139,42 @@ events: death: # Rather than spawn a new entity in place of the killed entity, just decrease the stack size instead. (**) skip-animation: false - # Death options: + # Death amount options: # SINGLE - Only one entity dies. # ALL - Every entity dies. # STEP - A random amount dies. # STEP_DAMAGE - An amount that depends on the damage done dies. # + # Each death option has it's own blacklist for entity traits: + # reason-blacklist - the last damage cause of the entity, which results in is death. + # spawn-reason-blacklist - the spawn reason of the entity (**) + # type-blacklist - entity type + # # The priority 1 is highest and 4 is lowest. - # If the killed entity is blacklisted, either by type or death reasons, by the highest priority method, - # then it will attempt to use the next highest priority death method. + # If the killed entity is blacklisted, either by type, spawn reason or death reasons (the last damage cause), + # by the highest priority method, then it will attempt to use the next highest priority death method. SINGLE: priority: 4 reason-blacklist: [] reason-blacklist-invert: false + spawn-reason-blacklist: [] + spawn-reason-blacklist-invert: false type-blacklist: [] type-blacklist-invert: false ALL: priority: 3 reason-blacklist: [] reason-blacklist-invert: false + spawn-reason-blacklist: [ ] + spawn-reason-blacklist-invert: false type-blacklist: [] type-blacklist-invert: false STEP: priority: 2 reason-blacklist: [] reason-blacklist-invert: false + spawn-reason-blacklist: [ ] + spawn-reason-blacklist-invert: false type-blacklist: [] type-blacklist-invert: false max-step: 5 @@ -172,6 +183,8 @@ death: priority: 1 reason-blacklist: [] reason-blacklist-invert: false + spawn-reason-blacklist: [ ] + spawn-reason-blacklist-invert: false type-blacklist: [] type-blacklist-invert: false From be5ea7694de1c3f4165468bb055b9301a1267cab Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 6 Jan 2021 16:08:55 +0000 Subject: [PATCH 066/295] Remove unnecessary conversion of DeathType to string when determining the death section. --- .../antiperson/stackmob/config/MainConfig.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 95bb5fd9..709f00ed 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -184,28 +184,28 @@ public boolean isEntityBlacklisted(LivingEntity entity, CreatureSpawnEvent.Spawn } public DeathType getDeathType(LivingEntity dead) { - for (String key : getDeathSection(dead)) { - ConfigList reasons = getList(dead.getType(), "death." + key + ".reason-blacklist"); + for (DeathType type : getDeathSection(dead)) { + ConfigList reasons = getList(dead.getType(), "death." + type + ".reason-blacklist"); if (dead.getLastDamageCause() != null && reasons.contains(dead.getLastDamageCause().getCause().toString())) { continue; } - ConfigList spawnReasons = getList(dead.getType(), "death." + key + ".spawn-reason-blacklist"); + ConfigList spawnReasons = getList(dead.getType(), "death." + type + ".spawn-reason-blacklist"); if (Utilities.isPaper() && spawnReasons.contains(dead.getEntitySpawnReason())) { continue; } - ConfigList types = getList(dead.getType(), "death." + key + ".type-blacklist"); + ConfigList types = getList(dead.getType(), "death." + type + ".type-blacklist"); if (types.contains(dead.getType().toString())) { continue; } - return DeathType.valueOf(key); + return type; } throw new UnsupportedOperationException("Configuration error - unable to determine death type!"); } - private Collection getDeathSection(LivingEntity dead) { - TreeMap array = new TreeMap<>(); + private Collection getDeathSection(LivingEntity dead) { + TreeMap array = new TreeMap<>(); for (DeathType type : DeathType.values()) { - array.put(getInt(dead.getType(), "death." + type + ".priority"), type.toString()); + array.put(getInt(dead.getType(), "death." + type + ".priority"), type); } return array.values(); } From 08248c9f045f7b6070cf2bd8df8c915665a46ca3 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 6 Jan 2021 16:09:23 +0000 Subject: [PATCH 067/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 84e29d67..e03a06a4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.4.0 + 5.4.1 src/main/java From 9583acdcd91699acb421396d751bb3bfc523b6e8 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 6 Jan 2021 16:24:43 +0000 Subject: [PATCH 068/295] Add spigot javadoc references to config --- src/main/resources/config.yml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 879ab704..34e41b45 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,9 +1,14 @@ -# StackMob 5.0 Configuration file - by antiPerson and contributors. +# StackMob ${project.version} Configuration file - by antiPerson and contributors. # # Most options can be customised for specific entity types, for details about this, see the end of this file. # Asterisk meaning: # (*) This option cannot be overridden in the 'custom' section at the end of this file. # (**) The following option requires the use of Paper (https://papermc.io) because the API needed is not in Spigot. +# Spigot JavaDoc Reference: +# (1) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html +# (2) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html +# (3) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html +# (4) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html # # If the comments have been removed, you can find a version with comments at https://github.com/Nathat23/StackMob-5/tree/master/src/main/resources @@ -23,10 +28,10 @@ stack: # Names of worlds where there should be no stacking worlds-blacklist: [] worlds-blacklist-invert: false -# Types of entity which should not stack +# Types of entity which should not stack (3) types-blacklist: [VILLAGER] types-blacklist-invert: false -# If the entity's spawns reason is listed below, do not stack. +# If the entity's spawn reason is listed below, do not stack. (2) reason-blacklist: - SHOULDER_ENTITY - NATURAL @@ -146,9 +151,9 @@ death: # STEP_DAMAGE - An amount that depends on the damage done dies. # # Each death option has it's own blacklist for entity traits: - # reason-blacklist - the last damage cause of the entity, which results in is death. - # spawn-reason-blacklist - the spawn reason of the entity (**) - # type-blacklist - entity type + # reason-blacklist - the last damage cause of the entity, which results in is death. (1) + # spawn-reason-blacklist - the spawn reason of the entity. (**) (2) + # type-blacklist - entity type. (3) # # The priority 1 is highest and 4 is lowest. # If the killed entity is blacklisted, either by type, spawn reason or death reasons (the last damage cause), @@ -192,16 +197,16 @@ death: drops: enabled: true use-loot-tables: true - # If each mob should only drop one of the items in the list. + # If each mob should only drop one of the items in the list. (4) one-per-stack: [] one-per-stack-invert: false - # Items that should not be dropped. + # Items that should not be dropped. (4) item-blacklist: [] item-blacklist-invert: false - # Death reasons that should not mean that drops are multiplied. + # Death reasons that should not mean that drops are multiplied. (1) reason-blacklist: [] reason-blacklist-invert: false - # Types of entity for which drops should not be dropped for. + # Types of entity for which drops should not be dropped for. (3) type-blacklist: [] type-blacklist-invert: false @@ -211,7 +216,7 @@ experience: # The bounds that should be used for the random multiplier. multiplier-min: 0.5 multiplier-max: 0.8 - # Types of entity for which exp should not be dropped for. + # Types of entity for which exp should not be dropped for. (3) type-blacklist: [] type-blacklist-invert: false @@ -224,7 +229,7 @@ wait-to-stack: enabled: true # For (x) times the stack task fires after spawn, don't stack this entity. wait-time: 5 - # Entity types that this should work for. + # Entity types that this should work for. (3) types-whitelist: - ZOMBIE - SKELETON @@ -232,7 +237,7 @@ wait-to-stack: - CREEPER - ENDERMAN types-whitelist-invert: false - # Spawn reasons that this should work for. + # Spawn reasons that this should work for. (2) reasons-whitelist: - SPAWNER reasons-whitelist-invert: false From 3ed1bf81d4b64a22291c2a33ba9920accf64227a Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 6 Jan 2021 16:25:58 +0000 Subject: [PATCH 069/295] Add missed javadoc references --- src/main/resources/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 34e41b45..602cadae 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -85,10 +85,10 @@ traits: # Similar to no-ai, but allows for movement of entities. disable-targeting: enabled: false - # If the entity's type is listed below, do not disable targeting. + # If the entity's type is listed below, do not disable targeting. (3) type-blacklist: [] type-blacklist-invert: false - # If the entity's spawns reason is listed below, do not disable targeting (**) + # If the entity's spawns reason is listed below, do not disable targeting (**) (2) reason-blacklist: [] reason-blacklist-invert: false From 7f7dec12bf8a0f3b3c2685c25263c87031815a3d Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 7 Jan 2021 12:01:34 +0000 Subject: [PATCH 070/295] Add missing Paper checks --- .../java/uk/antiperson/stackmob/listeners/DeathListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java index f6aee112..a09a5f45 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/DeathListener.java @@ -72,7 +72,7 @@ public void onStackDeath(EntityDeathEvent event) { Map drops = stackEntity.getDrops().calculateDrops(toMultiply, event.getDrops()); Drops.dropItems(event.getEntity().getLocation(), drops); event.setDroppedExp(experience); - if (event.isCancelled()) { + if (Utilities.isPaper() && event.isCancelled()) { ExperienceOrb orb = (ExperienceOrb) event.getEntity().getWorld().spawnEntity(event.getEntity().getLocation(), EntityType.EXPERIENCE_ORB); orb.setExperience(experience); } From 6518a5466226cbebdd4aef77217c55d3e7d124d1 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 7 Jan 2021 12:02:03 +0000 Subject: [PATCH 071/295] Add missing Paper checks again --- src/main/java/uk/antiperson/stackmob/config/MainConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 709f00ed..840a55b9 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -211,7 +211,7 @@ private Collection getDeathSection(LivingEntity dead) { } public boolean isSkipDeathAnimation(EntityType type) { - return getBoolean(type, "death.skip-animation"); + return getBoolean(type, "death.skip-animation") && Utilities.isPaper(); } public StackEntity.EquipItemMode getEquipItemMode(EntityType type) { From eb3a99c895394f35b1a9273dd5430010fa580908 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 7 Jan 2021 12:05:34 +0000 Subject: [PATCH 072/295] Add paper nag --- src/main/java/uk/antiperson/stackmob/StackMob.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index 3165cab5..7971316c 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -97,6 +97,10 @@ public void onEnable() { } itemTools = new ItemTools(this); getEntityManager().registerAllEntities(); + if (!Utilities.isPaper()) { + getLogger().info("It has been detected that you are not using Paper (https://papermc.io)."); + getLogger().info("StackMob makes use of Paper's API, which means you're missing out on features."); + } } @Override From d005d1d0c5e1efebfbc4e60d4b562189209c2631 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 11 Jan 2021 14:03:42 +0000 Subject: [PATCH 073/295] Replace depreciated method. --- .../java/uk/antiperson/stackmob/listeners/ShearListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java index b6733a6d..9badf077 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java @@ -1,6 +1,7 @@ package uk.antiperson.stackmob.listeners; import org.bukkit.Material; +import org.bukkit.Tag; import org.bukkit.block.Dispenser; import org.bukkit.entity.*; import org.bukkit.event.EventHandler; @@ -108,7 +109,7 @@ private ItemStack shearLogic(LivingEntity entity, ItemStack item) { LootContext lootContext = new LootContext.Builder(sheared.getLocation()).lootedEntity(sheared).build(); Collection loot = sheared.getLootTable().populateLoot(ThreadLocalRandom.current(), lootContext); for (ItemStack itemStack : loot) { - if (itemStack.getData() instanceof Wool) { + if (Tag.WOOL.isTagged(itemStack.getType())) { int woolAmount = (int) Math.round(amount * ThreadLocalRandom.current().nextDouble(1, 2)); Drops.dropItem(sheared.getLocation(), itemStack, woolAmount); } From f928cb2655fe810c7a4e96520232743750cbd2f9 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 13 Jan 2021 20:53:58 +0000 Subject: [PATCH 074/295] Use ordinal instead --- .../stackmob/utils/StackingTool.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java b/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java index 8d4da0b2..769ee94d 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java +++ b/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java @@ -33,7 +33,7 @@ public int getModeId() { public ToolMode getMode() { for (ToolMode t : ToolMode.values()) { - if (t.getId() == getModeId()) { + if (t.ordinal() == getModeId()) { return t; } } @@ -88,19 +88,11 @@ public void performAction(StackEntity clicked) { } enum ToolMode { - MODIFY(1), - SLICE(2), - REMOVE_SINGLE(3), - REMOVE_CHUNK(4); - - private final int id; - ToolMode(int id) { - this.id = id; - } + MODIFY, + SLICE, + REMOVE_SINGLE, + REMOVE_CHUNK - public int getId() { - return id; - } } private class ModifyPrompt extends NumericPrompt { From 1426a4325dd0aa0a7c083eaa3f9e172000826d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= <43724816+Aurelien30000@users.noreply.github.com> Date: Sat, 16 Jan 2021 23:32:55 +0100 Subject: [PATCH 075/295] Fixes tool (#170) Adapts stacking tool to new tool id (fixes mistake). --- src/main/java/uk/antiperson/stackmob/utils/StackingTool.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java b/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java index 769ee94d..bb575f16 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java +++ b/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java @@ -42,7 +42,7 @@ public ToolMode getMode() { public void shiftMode() { ItemMeta itemMeta = itemStack.getItemMeta(); - int nextMode = (getModeId() + 1) > ToolMode.values().length ? 1 : getModeId() + 1; + int nextMode = (getModeId() + 1) >= ToolMode.values().length ? 0 : getModeId() + 1; itemMeta.getPersistentDataContainer().set(sm.getToolKey(), PersistentDataType.INTEGER, nextMode); itemStack.setItemMeta(itemMeta); player.getInventory().setItemInMainHand(itemStack); From bd8488d1f4b9c5cdbaf2e1f7f1ea33fa1d386b0e Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 18 Jan 2021 21:15:01 +0000 Subject: [PATCH 076/295] Fix parsing of int values when getting double values from config. --- .../java/uk/antiperson/stackmob/config/SpecialConfigFile.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java b/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java index ff3172ee..650778d3 100644 --- a/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java +++ b/src/main/java/uk/antiperson/stackmob/config/SpecialConfigFile.java @@ -26,6 +26,9 @@ public boolean getBoolean(EntityType type, String path) { public double getDouble(EntityType type, String path) { Object value = getValue(type, path); + if (value instanceof Integer) { + return NumberUtils.toInt(value.toString()); + } return value instanceof Double ? NumberUtils.toDouble(value.toString()) : 0; } From b7eed68745ef45f68585d3b28a732308f2c4dc96 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 23 Jan 2021 21:20:11 +0000 Subject: [PATCH 077/295] Use predicates in forcestack subcommand. --- .../commands/subcommands/ForceStack.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java b/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java index 806e9999..5551025b 100644 --- a/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java +++ b/src/main/java/uk/antiperson/stackmob/commands/subcommands/ForceStack.java @@ -11,6 +11,7 @@ import uk.antiperson.stackmob.utils.Utilities; import java.util.Arrays; +import java.util.function.Predicate; @CommandMetadata(command = "forcestack", playerReq = false, desc = "Force all currently loaded entities to stack") public class ForceStack extends SubCommand { @@ -24,16 +25,23 @@ public ForceStack(StackMob sm) { @Override public boolean onCommand(User sender, String[] args) { int count = 0; - + Predicate predicate = null; + if (args.length > 0) { + switch (args[0].toLowerCase()) { + case "named": + predicate = pEntity -> pEntity.getCustomName() != null; + break; + case "tamed": + predicate = pEntity -> (pEntity instanceof Tameable) && ((Tameable) pEntity).isTamed(); + break; + } + } for (World world : Bukkit.getWorlds()) { for (LivingEntity entity : world.getEntitiesByClass(Mob.class)) { if (sm.getEntityManager().isStackedEntity(entity)) { continue; } - if (entity.getCustomName() != null && !(args.length > 0 && args[0].equals("named"))) { - continue; - } - if ((entity instanceof Tameable) && (((Tameable) entity)).isTamed() && !(args.length > 0 && args[0].equals("tamed"))) { + if (predicate != null && !predicate.test(entity)) { continue; } CreatureSpawnEvent.SpawnReason reason = Utilities.isPaper() ? entity.getEntitySpawnReason() : CreatureSpawnEvent.SpawnReason.DEFAULT; @@ -44,8 +52,8 @@ public boolean onCommand(User sender, String[] args) { count++; } } - - sender.sendSuccess(count + " entities has been forced to stack!"); + String entityType = predicate != null ? args[0].toLowerCase() + " " : ""; + sender.sendSuccess(count + " " + entityType + "entities have been forced to stack!"); return false; } } From 4622fe7f9bad57599441b9aa41f671e230310423 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 3 Feb 2021 17:52:44 +0000 Subject: [PATCH 078/295] Use EquipmentSlots in DrownedItem trait class. --- .../entity/traits/trait/DrownedItem.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java index b046621e..6b693164 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java @@ -4,6 +4,8 @@ import org.bukkit.entity.Drowned; import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.EntityEquipment; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; import uk.antiperson.stackmob.entity.traits.Trait; import uk.antiperson.stackmob.entity.traits.TraitMetadata; @@ -14,6 +16,7 @@ public class DrownedItem implements Trait { private final List materials = Arrays.asList(Material.NAUTILUS_SHELL, Material.TRIDENT); + private final List slots = Arrays.asList(EquipmentSlot.HAND, EquipmentSlot.OFF_HAND); @Override public boolean checkTrait (LivingEntity first, LivingEntity nearby) { @@ -23,11 +26,15 @@ public boolean checkTrait (LivingEntity first, LivingEntity nearby) { EntityEquipment nearEquipment = nearDrowned.getEquipment(); if (oriEquipment == null && nearEquipment == null) return true; if (oriEquipment == null || nearEquipment == null) return false; - if (oriEquipment.getItemInMainHand().getType() == nearEquipment.getItemInMainHand().getType()) { - return materials.contains(oriEquipment.getItemInMainHand().getType()); - } - if (oriEquipment.getItemInOffHand().getType() == nearEquipment.getItemInOffHand().getType()) { - return materials.contains(oriEquipment.getItemInOffHand().getType()); + for (EquipmentSlot equipmentSlot : slots) { + ItemStack oriItemStack = oriEquipment.getItem(equipmentSlot); + ItemStack nearItemStack = nearEquipment.getItem(equipmentSlot); + if (!oriItemStack.isSimilar(nearItemStack)) { + continue; + } + if (materials.contains(oriItemStack.getType())) { + return true; + } } return false; } @@ -36,11 +43,11 @@ public boolean checkTrait (LivingEntity first, LivingEntity nearby) { public void applyTrait(LivingEntity spawned, LivingEntity dead) { Drowned oriDrowned = (Drowned) dead; Drowned spawnDrowned = (Drowned) spawned; - if(materials.contains(oriDrowned.getEquipment().getItemInMainHand().getType())){ - spawnDrowned.getEquipment().setItemInMainHand(oriDrowned.getEquipment().getItemInMainHand()); - } - if(materials.contains(oriDrowned.getEquipment().getItemInOffHand().getType())){ - spawnDrowned.getEquipment().setItemInOffHand(oriDrowned.getEquipment().getItemInOffHand()); + for (EquipmentSlot equipmentSlot : slots) { + ItemStack item = oriDrowned.getEquipment().getItem(equipmentSlot); + if (materials.contains(item.getType())) { + spawnDrowned.getEquipment().setItem(equipmentSlot, item); + } } } } From ddb013e09428626d40db4c58f29f4a0750728d78 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 5 Feb 2021 14:47:51 +0000 Subject: [PATCH 079/295] store reference of tag class --- .../java/uk/antiperson/stackmob/entity/StackEntity.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 1e6ef5bb..8de9ae6c 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -22,6 +22,8 @@ public class StackEntity { private int waitCount; private int stackSize; private Set equiptItems; + private Tag tag; + public StackEntity(StackMob sm, EntityManager entityManager, LivingEntity entity) { this.sm = sm; this.entity = entity; @@ -186,7 +188,10 @@ public World getWorld() { * @return a new instance of Tag for this entity. */ public Tag getTag() { - return new Tag(sm, this); + if (tag == null) { + tag = new Tag(sm, this); + } + return tag; } /** From a104898105bc1bc85c8442bbd360d5c981f1b431 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 5 Feb 2021 15:24:23 +0000 Subject: [PATCH 080/295] misc StackEntity changes --- .../stackmob/entity/EntityManager.java | 2 +- .../stackmob/entity/StackEntity.java | 28 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java index 263abf8e..58be6f63 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java @@ -79,7 +79,7 @@ public void unregisterStackedEntities(Chunk chunk) { } public StackEntity registerStackedEntity(LivingEntity entity) { - StackEntity stackEntity = new StackEntity(sm, this, entity); + StackEntity stackEntity = new StackEntity(sm, entity); stackEntities.add(stackEntity); return stackEntity; } diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 8de9ae6c..d28e7ceb 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -24,10 +24,10 @@ public class StackEntity { private Set equiptItems; private Tag tag; - public StackEntity(StackMob sm, EntityManager entityManager, LivingEntity entity) { + public StackEntity(StackMob sm, LivingEntity entity) { this.sm = sm; this.entity = entity; - this.entityManager = entityManager; + this.entityManager = sm.getEntityManager(); } /** @@ -222,14 +222,11 @@ public boolean match(StackEntity nearby) { if (sm.getTraitManager().checkTraits(this, nearby)) { return false; } - if (sm.getHookManager().checkHooks(this, nearby)) { - return false; - } - return true; + return sm.getHookManager().checkHooks(this, nearby); } public boolean canStack() { - if (equiptItems != null && !equiptItems.isEmpty()) { + if (hasEquipItem()) { if (sm.getMainConfig().getEquipItemMode(getEntity().getType()) == EquipItemMode.PREVENT_STACK) { return false; } @@ -294,7 +291,7 @@ private LivingEntity spawnClone() { } public boolean isSingle() { - return getSize() < 2; + return getSize() == 1; } /** @@ -327,22 +324,29 @@ public StackEntity slice(int amount) { return duplicate; } + public Set getEquiptItems() { + return equiptItems; + } + + public boolean hasEquipItem() { + return getEquiptItems() != null && !getEquiptItems().isEmpty(); + } public void addEquipItem(ItemStack equipt) { - if (equiptItems == null) { + if (!hasEquipItem()) { equiptItems = new HashSet<>(); } - equiptItems.add(equipt); + getEquiptItems().add(equipt); } private void dropEquipItems() { - if (equiptItems == null) { + if (!hasEquipItem()) { return; } if (sm.getMainConfig().getEquipItemMode(getEntity().getType()) != EquipItemMode.DROP_ITEMS) { return; } - for (ItemStack itemStack : equiptItems) { + for (ItemStack itemStack : getEquiptItems()) { getEntity().getWorld().dropItemNaturally(getEntity().getLocation(), itemStack); } } From ed59b93b83fded89e692940bf1062387fe0b8c03 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 5 Feb 2021 15:45:37 +0000 Subject: [PATCH 081/295] Move Tag and TagMode into StackEntity --- .../stackmob/config/MainConfig.java | 5 +- .../stackmob/entity/StackEntity.java | 61 ++++++++++++++++- .../uk/antiperson/stackmob/entity/Tag.java | 67 ------------------- .../antiperson/stackmob/entity/TagMode.java | 7 -- .../uk/antiperson/stackmob/tasks/TagTask.java | 3 +- 5 files changed, 62 insertions(+), 81 deletions(-) delete mode 100644 src/main/java/uk/antiperson/stackmob/entity/Tag.java delete mode 100644 src/main/java/uk/antiperson/stackmob/entity/TagMode.java diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 840a55b9..2041b12d 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -7,7 +7,6 @@ import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; import uk.antiperson.stackmob.entity.death.DeathType; -import uk.antiperson.stackmob.entity.TagMode; import uk.antiperson.stackmob.listeners.ListenerMode; import uk.antiperson.stackmob.utils.Utilities; @@ -50,8 +49,8 @@ public int getTagThreshold(EntityType type) { return getInt(type, "display-name.threshold"); } - public TagMode getTagMode(EntityType type) { - return TagMode.valueOf(getString(type, "display-name.visibility")); + public StackEntity.TagMode getTagMode(EntityType type) { + return StackEntity.TagMode.valueOf(getString(type, "display-name.visibility")); } public Integer[] getTagNeabyRadius() { diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index d28e7ceb..fab4b76f 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -1,13 +1,19 @@ package uk.antiperson.stackmob.entity; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.WordUtils; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.events.EventHelper; +import uk.antiperson.stackmob.hook.StackableMobHook; +import uk.antiperson.stackmob.hook.hooks.ProtocolLibHook; +import uk.antiperson.stackmob.utils.NMSHelper; import uk.antiperson.stackmob.utils.Utilities; import java.util.HashSet; @@ -189,7 +195,7 @@ public World getWorld() { */ public Tag getTag() { if (tag == null) { - tag = new Tag(sm, this); + tag = new Tag(); } return tag; } @@ -222,7 +228,7 @@ public boolean match(StackEntity nearby) { if (sm.getTraitManager().checkTraits(this, nearby)) { return false; } - return sm.getHookManager().checkHooks(this, nearby); + return sm.getHookManager().checkHooks(this, nearby); } public boolean canStack() { @@ -356,4 +362,55 @@ public enum EquipItemMode { DROP_ITEMS, PREVENT_STACK } + + public enum TagMode { + ALWAYS, + HOVER, + NEARBY + } + + public class Tag { + + public void update() { + LivingEntity entity = getEntity(); + int threshold = sm.getMainConfig().getTagThreshold(entity.getType()); + if (getSize() <= threshold) { + entity.setCustomName(null); + entity.setCustomNameVisible(false); + return; + } + String displayName = sm.getMainConfig().getTagFormat(entity.getType()); + displayName = StringUtils.replace(displayName, "%type%", getEntityName()); + displayName = StringUtils.replace(displayName, "%size%", getSize() + ""); + displayName = Utilities.translateColorCodes(displayName); + entity.setCustomName(displayName); + if (sm.getMainConfig().getTagMode(entity.getType()) == TagMode.ALWAYS) { + entity.setCustomNameVisible(true); + } + } + + private String getEntityName() { + LivingEntity entity = getEntity(); + String typeString = sm.getEntityTranslation().getTranslatedName(entity.getType()); + if (typeString != null && typeString.length() > 0) { + return typeString; + } + StackableMobHook smh = sm.getHookManager().getApplicableHook(StackEntity.this); + typeString = smh != null ? smh.getDisplayName(entity) : entity.getType().toString(); + typeString = typeString == null ? entity.getType().toString() : typeString; + return WordUtils.capitalizeFully(typeString.replaceAll("[^A-Za-z0-9]", " ")); + } + + public void sendPacket(Player player, boolean tagVisible) { + if (!Utilities.isNativeVersion()) { + ProtocolLibHook protocolLibHook = sm.getHookManager().getProtocolLibHook(); + if (protocolLibHook == null) { + return; + } + protocolLibHook.sendPacket(player, getEntity(), tagVisible); + return; + } + NMSHelper.sendPacket(player, getEntity(), tagVisible); + } + } } diff --git a/src/main/java/uk/antiperson/stackmob/entity/Tag.java b/src/main/java/uk/antiperson/stackmob/entity/Tag.java deleted file mode 100644 index a37cb615..00000000 --- a/src/main/java/uk/antiperson/stackmob/entity/Tag.java +++ /dev/null @@ -1,67 +0,0 @@ -package uk.antiperson.stackmob.entity; - -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.WordUtils; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import uk.antiperson.stackmob.StackMob; -import uk.antiperson.stackmob.hook.StackableMobHook; -import uk.antiperson.stackmob.hook.hooks.ProtocolLibHook; -import uk.antiperson.stackmob.utils.NMSHelper; -import uk.antiperson.stackmob.utils.Utilities; - -import java.util.logging.Level; - -public class Tag { - - private final StackEntity stackEntity; - private final StackMob sm; - public Tag(StackMob sm, StackEntity stackEntity) { - this.stackEntity = stackEntity; - this.sm = sm; - } - - public void update() { - LivingEntity entity = stackEntity.getEntity(); - int threshold = sm.getMainConfig().getTagThreshold(entity.getType()); - if (stackEntity.getSize() <= threshold) { - entity.setCustomName(null); - entity.setCustomNameVisible(false); - return; - } - String displayName = sm.getMainConfig().getTagFormat(entity.getType()); - displayName = StringUtils.replace(displayName, "%type%", getEntityName()); - displayName = StringUtils.replace(displayName, "%size%", stackEntity.getSize() + ""); - displayName = Utilities.translateColorCodes(displayName); - entity.setCustomName(displayName); - if (sm.getMainConfig().getTagMode(entity.getType()) == TagMode.ALWAYS) { - entity.setCustomNameVisible(true); - } - } - - private String getEntityName() { - LivingEntity entity = stackEntity.getEntity(); - String typeString = sm.getEntityTranslation().getTranslatedName(entity.getType()); - if (typeString != null && typeString.length() > 0) { - return typeString; - } - StackableMobHook smh = sm.getHookManager().getApplicableHook(stackEntity); - typeString = smh != null ? smh.getDisplayName(entity) : entity.getType().toString(); - typeString = typeString == null ? entity.getType().toString() : typeString; - return WordUtils.capitalizeFully(typeString.replaceAll("[^A-Za-z0-9]", " ")); - } - - public void sendPacket(Player player, boolean tagVisible) { - if (!Utilities.isNativeVersion()) { - ProtocolLibHook protocolLibHook = sm.getHookManager().getProtocolLibHook(); - if (protocolLibHook == null) { - return; - } - protocolLibHook.sendPacket(player, stackEntity.getEntity(), tagVisible); - return; - } - NMSHelper.sendPacket(player, stackEntity.getEntity(), tagVisible); - } - - -} diff --git a/src/main/java/uk/antiperson/stackmob/entity/TagMode.java b/src/main/java/uk/antiperson/stackmob/entity/TagMode.java deleted file mode 100644 index e542a2d5..00000000 --- a/src/main/java/uk/antiperson/stackmob/entity/TagMode.java +++ /dev/null @@ -1,7 +0,0 @@ -package uk.antiperson.stackmob.entity; - -public enum TagMode { - ALWAYS, - HOVER, - NEARBY -} diff --git a/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java b/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java index 76de4b16..217a1928 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java @@ -8,7 +8,6 @@ import org.bukkit.scheduler.BukkitRunnable; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; -import uk.antiperson.stackmob.entity.TagMode; import java.util.List; @@ -37,7 +36,7 @@ public void run() { if (entity.isDead()) { continue; } - if (sm.getMainConfig().getTagMode(entity.getType()) != TagMode.NEARBY) { + if (sm.getMainConfig().getTagMode(entity.getType()) != StackEntity.TagMode.NEARBY) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) entity); From 0e211fd2ffc74c6ed281c9025aacc701345204dd Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 6 Feb 2021 11:18:23 +0000 Subject: [PATCH 082/295] Add ability to prevent mythicmobs from stacking. --- .../stackmob/entity/death/KillStepDamage.java | 4 +-- .../antiperson/stackmob/hook/HookManager.java | 3 ++- .../hook/hooks/MythicMobsNoStackHook.java | 27 +++++++++++++++++++ ...MobsHook.java => MythicMobsStackHook.java} | 7 ++--- src/main/resources/config.yml | 9 ++++--- 5 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsNoStackHook.java rename src/main/java/uk/antiperson/stackmob/hook/hooks/{MythicMobsHook.java => MythicMobsStackHook.java} (89%) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java index 9224dc78..307f76b4 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java @@ -5,7 +5,7 @@ import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; import uk.antiperson.stackmob.hook.StackableMobHook; -import uk.antiperson.stackmob.hook.hooks.MythicMobsHook; +import uk.antiperson.stackmob.hook.hooks.MythicMobsStackHook; public class KillStepDamage extends DeathMethod { @@ -33,7 +33,7 @@ public int calculateStep() { public void onSpawn(StackEntity spawned) { double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue(); StackableMobHook smh = sm.getHookManager().getApplicableHook(spawned); - if (smh instanceof MythicMobsHook) { + if (smh instanceof MythicMobsStackHook) { sm.getServer().getScheduler().runTaskLater(sm, bukkitTask -> { if (!spawned.getEntity().isDead()) { spawned.getEntity().setHealth(maxHealth - leftOverDamage); diff --git a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java index d65b9d7d..b8208ebb 100644 --- a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java +++ b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java @@ -42,7 +42,8 @@ public void registerOnLoad() throws InstantiationException, IllegalAccessExcepti */ public void registerHooks() throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { registerHook(WorldGuardHook.class); - registerHook(MythicMobsHook.class); + registerHook(MythicMobsStackHook.class); + registerHook(MythicMobsNoStackHook.class); registerHook(McmmoHook.class); registerHook(CitizensHook.class); registerHook(JobsHook.class); diff --git a/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsNoStackHook.java b/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsNoStackHook.java new file mode 100644 index 00000000..28be6f97 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsNoStackHook.java @@ -0,0 +1,27 @@ +package uk.antiperson.stackmob.hook.hooks; + +import io.lumine.xikage.mythicmobs.MythicMobs; +import org.bukkit.entity.LivingEntity; +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.hook.Hook; +import uk.antiperson.stackmob.hook.HookMetadata; +import uk.antiperson.stackmob.hook.SegregatedMobHook; + +@HookMetadata(name = "MythicMobs", config = "mythicmobs.prevent-stack") +public class MythicMobsNoStackHook extends Hook implements SegregatedMobHook { + + private MythicMobs mythicMobs; + public MythicMobsNoStackHook(StackMob sm) { + super(sm); + } + + @Override + public boolean isCustomMob(LivingEntity entity) { + return mythicMobs.getMobManager().isActiveMob(entity.getUniqueId()); + } + + @Override + public void onEnable() { + mythicMobs = (MythicMobs) getPlugin(); + } +} diff --git a/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsHook.java b/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsStackHook.java similarity index 89% rename from src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsHook.java rename to src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsStackHook.java index 8400d715..fa10f489 100644 --- a/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsHook.java +++ b/src/main/java/uk/antiperson/stackmob/hook/hooks/MythicMobsStackHook.java @@ -8,13 +8,14 @@ import uk.antiperson.stackmob.config.ConfigList; import uk.antiperson.stackmob.hook.Hook; import uk.antiperson.stackmob.hook.HookMetadata; +import uk.antiperson.stackmob.hook.SegregatedMobHook; import uk.antiperson.stackmob.hook.StackableMobHook; -@HookMetadata(name = "MythicMobs", config = "mythicmobs.enabled") -public class MythicMobsHook extends Hook implements StackableMobHook { +@HookMetadata(name = "MythicMobs", config = "mythicmobs.stack") +public class MythicMobsStackHook extends Hook implements StackableMobHook { private MythicMobs mythicMobs; - public MythicMobsHook(StackMob sm) { + public MythicMobsStackHook(StackMob sm) { super(sm); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 602cadae..7b8d5996 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -247,9 +247,12 @@ hooks: # Allows the custom 'entity-stacking' flag to be used in worldguard regions. worldguard: true mythicmobs: - enabled: true - blacklist: [] - blacklist-invert: false + stack: false + # Blacklist of MythicMob types (uses the internal name) + stack-blacklist: [ ] + stack-blacklist-invert: false + # When this option is enabled, MythicMobs will not stack. + prevent-stack: true # Prevent citizens npcs from stacking. citizens: true # Prevent stacked entities from giving mcmmo experience. From a1ae304ab41b2f3ff909c5c44818e4bfc205471f Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 7 Feb 2021 16:45:15 +0000 Subject: [PATCH 083/295] Add ability to remove stack data on newly spawned entities. --- .../stackmob/entity/StackEntity.java | 20 +++++++++++++++++++ .../stackmob/listeners/SpawnListener.java | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index fab4b76f..175b109f 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -25,6 +25,7 @@ public class StackEntity { private final EntityManager entityManager; private final StackMob sm; private boolean waiting; + private boolean forgetOnSpawn; private int waitCount; private int stackSize; private Set equiptItems; @@ -71,6 +72,25 @@ public void removeStackData() { getTag().update(); } + /** + * Returns whether the entity will have its stack data removed on spawn. + * See {@link #setForgetOnSpawn(boolean)} for further details. + * @return whether the entity will have its stack data removed on spawn. + */ + public boolean isForgetOnSpawn() { + return forgetOnSpawn; + } + + /** + * Make it so that the entity will have its stack data removed in the spawn event. + * This will only work if the entity already has stack data. + * If you are a plugin developer, use {@link uk.antiperson.stackmob.events.StackSpawnEvent} instead. + * @param forgetOnSpawn whether the entity should have its stack data removed in the spawn event. + */ + public void setForgetOnSpawn(boolean forgetOnSpawn) { + this.forgetOnSpawn = forgetOnSpawn; + } + /** * In order to not break mob grinders, stacked entities can have a waiting status. * This waiting status means that this stacked entity will be ignored on all stacking attempts until the count reaches 0 diff --git a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java index 0bc8a3e8..32f14032 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java @@ -27,6 +27,10 @@ public void onSpawn(CreatureSpawnEvent event) { return; } if (sm.getEntityManager().isStackedEntity(event.getEntity())) { + StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); + if (stackEntity.isForgetOnSpawn()) { + stackEntity.removeStackData(); + } return; } if (EventHelper.callStackSpawnEvent(event.getEntity()).isCancelled()) { From 9ce005eeb77a938e66cd8752f6e72c7489613e03 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 7 Feb 2021 16:46:46 +0000 Subject: [PATCH 084/295] Stacking tool improvements. - Allows stacking tool to be used on unstacked mobs. - Add SLICE_ALL tool mode. --- .../stackmob/listeners/PlayerListener.java | 6 +- .../stackmob/utils/StackingTool.java | 94 +++++++++++++------ 2 files changed, 65 insertions(+), 35 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/PlayerListener.java b/src/main/java/uk/antiperson/stackmob/listeners/PlayerListener.java index 44944fec..8f6db378 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/PlayerListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/PlayerListener.java @@ -28,15 +28,11 @@ public void onPlayerInteract(PlayerInteractAtEntityEvent event) { if (!sm.getItemTools().isStackingTool(event.getPlayer().getInventory().getItemInMainHand())) { return; } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) event.getRightClicked())) { - return; - } StackingTool stackingTool = new StackingTool(sm, event.getPlayer()); if (event.getPlayer().isSneaking()) { stackingTool.shiftMode(); return; } - StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getRightClicked()); - stackingTool.performAction(stackEntity); + stackingTool.performAction((LivingEntity) event.getRightClicked()); } } diff --git a/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java b/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java index bb575f16..9be30130 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java +++ b/src/main/java/uk/antiperson/stackmob/utils/StackingTool.java @@ -14,13 +14,18 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.commands.User; import uk.antiperson.stackmob.entity.StackEntity; +import java.util.HashSet; +import java.util.Set; + public class StackingTool { private final Player player; private final ItemStack itemStack; private final StackMob sm; + public StackingTool(StackMob sm, Player player) { this.sm = sm; this.player = player; @@ -49,66 +54,98 @@ public void shiftMode() { player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("Shifted mode to " + getMode())); } - public void performAction(StackEntity clicked) { + public void performAction(LivingEntity clicked) { + User user = new User(player); + if (!sm.getEntityManager().isStackedEntity(clicked)) { + if (getMode() != ToolMode.MODIFY) { + user.sendError("You cannot use " + getMode() + " on an unstacked entity!"); + return; + } + startConversation(clicked); + return; + } + StackEntity stackEntity = sm.getEntityManager().getStackEntity(clicked); switch (getMode()) { case MODIFY: - ConversationFactory factory = new ConversationFactory(sm) - .withTimeout(25) - .withFirstPrompt(new ModifyPrompt(clicked)) - .withLocalEcho(false) - .withPrefix(conversationContext -> Utilities.PREFIX) - .addConversationAbandonedListener(new ExitPrompt()); - Conversation conversation = factory.buildConversation(player); - conversation.begin(); - break; + startConversation(clicked); + return; case SLICE: - if (!clicked.isSingle()) { - clicked.slice(); - clicked.removeStackData(); - break; + case SLICE_ALL: + if (stackEntity.isSingle()) { + user.sendError("Entity is single, therefore it cannot be sliced!"); + return; + } + int sliceNo = getMode() == ToolMode.SLICE ? 1 : stackEntity.getSize() - 1; + StackEntity slice = stackEntity; + Set slices = new HashSet<>(); + for (int i = 0; i < sliceNo; i++) { + slice = slice.slice(); + slices.add(slice); + } + stackEntity.removeStackData(); + if (getMode() == ToolMode.SLICE_ALL) { + slices.forEach(sliced -> sliced.setForgetOnSpawn(true)); } - player.sendMessage("Entity is single so cannot be sliced!"); break; case REMOVE_CHUNK: - for (Entity e : clicked.getEntity().getChunk().getEntities()) { + for (Entity e : clicked.getChunk().getEntities()) { if (!(e instanceof Mob)) { continue; } if (!sm.getEntityManager().isStackedEntity((LivingEntity) e)) { continue; } - StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) e); - stackEntity.removeStackData(); + StackEntity nearby = sm.getEntityManager().getStackEntity((LivingEntity) e); + nearby.removeStackData(); } break; case REMOVE_SINGLE: - clicked.removeStackData(); + stackEntity.removeStackData(); break; } + user.sendSuccess("Action performed successfully."); + } + + private void startConversation(LivingEntity stackEntity) { + ConversationFactory factory = new ConversationFactory(sm) + .withTimeout(25) + .withFirstPrompt(new ModifyPrompt(stackEntity)) + .withLocalEcho(false) + .withPrefix(conversationContext -> Utilities.PREFIX) + .addConversationAbandonedListener(new ExitPrompt()); + Conversation conversation = factory.buildConversation(player); + conversation.begin(); } enum ToolMode { MODIFY, SLICE, + SLICE_ALL, REMOVE_SINGLE, REMOVE_CHUNK - } private class ModifyPrompt extends NumericPrompt { - private final StackEntity stackEntity; - public ModifyPrompt(StackEntity stackEntity) { - this.stackEntity = stackEntity; + private final LivingEntity livingEntity; + private final int maxSize; + + public ModifyPrompt(LivingEntity livingEntity) { + this.livingEntity = livingEntity; + this.maxSize = sm.getMainConfig().getMaxStack(livingEntity.getType()); } @Nullable @Override protected Prompt acceptValidatedInput(@NotNull ConversationContext conversationContext, @NotNull Number number) { - if (stackEntity.getEntity().isDead()) { + if (livingEntity.isDead()) { conversationContext.getForWhom().sendRawMessage(Utilities.PREFIX + ChatColor.RED + "Entity is no longer valid. Modification has been cancelled."); return Prompt.END_OF_CONVERSATION; } + StackEntity stackEntity = sm.getEntityManager().getStackEntity(livingEntity); + if (stackEntity == null) { + stackEntity = sm.getEntityManager().registerStackedEntity(livingEntity); + } stackEntity.setSize(number.intValue()); conversationContext.getForWhom().sendRawMessage(Utilities.PREFIX + ChatColor.GREEN + "Stack value has been updated."); return Prompt.END_OF_CONVERSATION; @@ -123,18 +160,15 @@ public String getPromptText(@NotNull ConversationContext conversationContext) { @Nullable @Override protected String getFailedValidationText(@NotNull ConversationContext context, @NotNull String invalidInput) { - return Utilities.PREFIX + ChatColor.RED + "Invalid input. Accepted sizes: 1-" + stackEntity.getMaxSize(); + return Utilities.PREFIX + ChatColor.RED + "Invalid input. Accepted sizes: 1-" + maxSize; } @Override protected boolean isNumberValid(@NotNull ConversationContext context, @NotNull Number input) { - if (input.intValue() > stackEntity.getMaxSize()) { - return false; - } - if (input.intValue() < 1) { + if (input.intValue() > maxSize) { return false; } - return true; + return !(input.intValue() < 1); } } From 5ffb27ecd314b44689f6d7c0f1792755ad9075a4 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 8 Feb 2021 22:20:46 +0000 Subject: [PATCH 085/295] Add a few couple checks in item pickup listener. --- .../stackmob/listeners/EquipListener.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java b/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java index 6d5ed6ca..bed2b40a 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/EquipListener.java @@ -1,11 +1,16 @@ package uk.antiperson.stackmob.listeners; +import org.bukkit.Material; +import org.bukkit.entity.Mob; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityPickupItemEvent; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; +import java.util.Arrays; +import java.util.List; + @ListenerMetadata(config = "events.equip.enabled") public class EquipListener implements Listener { @@ -17,10 +22,26 @@ public EquipListener(StackMob sm) { @EventHandler public void onEntityEquip(EntityPickupItemEvent event) { + if (!(event.getEntity() instanceof Mob)) { + return; + } + if (!isArmour(event.getItem().getItemStack().getType())) { + return; + } if (!sm.getEntityManager().isStackedEntity(event.getEntity())) { return; } StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); stackEntity.addEquipItem(event.getItem().getItemStack()); } + + private boolean isArmour(Material material) { + List endings = Arrays.asList("HELMET", "CHESTPLATE", "LEGGINGS", "BOOTS", "AXE", "SHOVEL", "HOE", "SWORD", "SHIELD"); + for (String ending : endings) { + if (material.toString().endsWith(ending)) { + return true; + } + } + return false; + } } From a5990309899899fb6bf4ee92a42ac4895bb6b000 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 8 Feb 2021 22:40:12 +0000 Subject: [PATCH 086/295] Remove hand items when spawning drowned with DROWNED spawn reason. (#176) --- .../stackmob/entity/StackEntity.java | 18 +++++++++++++++++- .../entity/traits/trait/DrownedItem.java | 16 +++++----------- .../antiperson/stackmob/utils/Utilities.java | 5 +++++ 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 1e6ef5bb..cbe3df88 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -4,6 +4,7 @@ import org.bukkit.World; import org.bukkit.entity.LivingEntity; import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; import uk.antiperson.stackmob.StackMob; @@ -270,10 +271,25 @@ public StackEntity splitIfNotEnough(int itemAmount) { * @return a clone of this entity. */ public StackEntity duplicate() { - StackEntity cloneStack = sm.getEntityManager().registerStackedEntity(spawnClone()); + LivingEntity clone = spawnClone(); + StackEntity cloneStack = sm.getEntityManager().registerStackedEntity(clone); cloneStack.setSize(1); sm.getTraitManager().applyTraits(cloneStack, this); sm.getHookManager().onSpawn(cloneStack); + // Remove equipment if is a drowned + if (Utilities.isPaper() && clone.getEntitySpawnReason() == CreatureSpawnEvent.SpawnReason.DROWNED) { + for (EquipmentSlot equipmentSlot : Utilities.HAND_SLOTS) { + if (clone.getEquipment() == null) { + break; + } + for (Material material : Utilities.DROWNED_MATERIALS) { + if (clone.getEquipment().getItem(equipmentSlot).getType() != material) { + continue; + } + clone.getEquipment().setItem(equipmentSlot, null, true); + } + } + } return cloneStack; } diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java index 6b693164..f24fcd45 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/DrownedItem.java @@ -1,6 +1,5 @@ package uk.antiperson.stackmob.entity.traits.trait; -import org.bukkit.Material; import org.bukkit.entity.Drowned; import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.EntityEquipment; @@ -8,15 +7,10 @@ import org.bukkit.inventory.ItemStack; import uk.antiperson.stackmob.entity.traits.Trait; import uk.antiperson.stackmob.entity.traits.TraitMetadata; - -import java.util.Arrays; -import java.util.List; +import uk.antiperson.stackmob.utils.Utilities; @TraitMetadata(entity = Drowned.class, path = "drowned-hand-item") public class DrownedItem implements Trait { - - private final List materials = Arrays.asList(Material.NAUTILUS_SHELL, Material.TRIDENT); - private final List slots = Arrays.asList(EquipmentSlot.HAND, EquipmentSlot.OFF_HAND); @Override public boolean checkTrait (LivingEntity first, LivingEntity nearby) { @@ -26,13 +20,13 @@ public boolean checkTrait (LivingEntity first, LivingEntity nearby) { EntityEquipment nearEquipment = nearDrowned.getEquipment(); if (oriEquipment == null && nearEquipment == null) return true; if (oriEquipment == null || nearEquipment == null) return false; - for (EquipmentSlot equipmentSlot : slots) { + for (EquipmentSlot equipmentSlot : Utilities.HAND_SLOTS) { ItemStack oriItemStack = oriEquipment.getItem(equipmentSlot); ItemStack nearItemStack = nearEquipment.getItem(equipmentSlot); if (!oriItemStack.isSimilar(nearItemStack)) { continue; } - if (materials.contains(oriItemStack.getType())) { + if (Utilities.DROWNED_MATERIALS.contains(oriItemStack.getType())) { return true; } } @@ -43,9 +37,9 @@ public boolean checkTrait (LivingEntity first, LivingEntity nearby) { public void applyTrait(LivingEntity spawned, LivingEntity dead) { Drowned oriDrowned = (Drowned) dead; Drowned spawnDrowned = (Drowned) spawned; - for (EquipmentSlot equipmentSlot : slots) { + for (EquipmentSlot equipmentSlot : Utilities.HAND_SLOTS) { ItemStack item = oriDrowned.getEquipment().getItem(equipmentSlot); - if (materials.contains(item.getType())) { + if (Utilities.DROWNED_MATERIALS.contains(item.getType())) { spawnDrowned.getEquipment().setItem(equipmentSlot, item); } } diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index cc048d85..9fca8adc 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -1,7 +1,9 @@ package uk.antiperson.stackmob.utils; import net.md_5.bungee.api.ChatColor; +import org.bukkit.Material; import org.bukkit.entity.Player; +import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import java.io.File; @@ -11,6 +13,7 @@ import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.regex.Matcher; @@ -25,6 +28,8 @@ public class Utilities { public static final String GITHUB = "https://github.com/Nathat23/StackMob-5"; public static final String GITHUB_DEFAULT_CONFIG = GITHUB + "/tree/master/src/main/resources"; private static final Pattern hexPattern = Pattern.compile("&#([a-zA-Z0-9]){6}"); + public static final List DROWNED_MATERIALS = Arrays.asList(Material.NAUTILUS_SHELL, Material.TRIDENT); + public static final List HAND_SLOTS = Arrays.asList(EquipmentSlot.HAND, EquipmentSlot.OFF_HAND); public static String translateColorCodes(String toTranslate) { Matcher matcher = hexPattern.matcher(toTranslate); From d49026b54c6b0c32425c9e9e8a76ed157068e68c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= <43724816+Aurelien30000@users.noreply.github.com> Date: Sun, 14 Feb 2021 00:18:46 +0100 Subject: [PATCH 087/295] Fixes merging inconsistency (#171) --- .../uk/antiperson/stackmob/entity/StackEntity.java | 8 ++++---- .../uk/antiperson/stackmob/tasks/MergeTask.java | 13 +++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index cbe3df88..4612d4b6 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -241,13 +241,13 @@ public boolean canStack() { */ public StackEntity merge(StackEntity toMerge, boolean unregister) { boolean toMergeBigger = toMerge.getSize() > getSize(); - StackEntity smallest = toMergeBigger ? this : toMerge; - StackEntity biggest = toMergeBigger ? toMerge : this; + final StackEntity smallest = toMergeBigger ? this : toMerge; + final StackEntity biggest = toMergeBigger ? toMerge : this; if (EventHelper.callStackMergeEvent(smallest, biggest).isCancelled()) { return null; } - int totalSize = smallest.getSize() + biggest.getSize(); - int maxSize = getMaxSize(); + final int totalSize = smallest.getSize() + biggest.getSize(); + final int maxSize = getMaxSize(); if (totalSize > maxSize) { smallest.setSize(totalSize - maxSize); biggest.setSize(maxSize); diff --git a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java index f2ea0865..5429af9e 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java @@ -21,7 +21,7 @@ public MergeTask(StackMob sm) { public void run() { HashSet toRemove = new HashSet<>(); - for (StackEntity original : sm.getEntityManager().getStackEntities()) { + originals: for (StackEntity original : sm.getEntityManager().getStackEntities()) { if (original.isWaiting()) { original.incrementWait(); continue; @@ -52,9 +52,12 @@ public void run() { continue; } if (nearbyStack.getSize() > 1 || original.getSize() > 1) { - StackEntity removed = nearbyStack.merge(original, false); + final StackEntity removed = nearbyStack.merge(original, false); if (removed != null) { toRemove.add(removed); + if (original == removed) { + continue originals; + } break; } continue; @@ -73,8 +76,10 @@ public void run() { match.remove(false); toRemove.add(match); } - if (size >= original.getMaxSize()) { - for (int stackSize : Utilities.split(size, original.getMaxSize())) { + if (size + original.getSize() > original.getMaxSize()) { + final int toCompleteStack = (original.getMaxSize() - original.getSize()); + original.incrementSize(toCompleteStack); + for (int stackSize : Utilities.split(size - toCompleteStack, original.getMaxSize())) { StackEntity stackEntity = original.duplicate(); stackEntity.setSize(stackSize); } From 0ab00c0f8bc0cbbdc2fd757da4343dc2ddbb581e Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Mon, 15 Feb 2021 08:54:51 +0000 Subject: [PATCH 088/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e03a06a4..75801289 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.4.1 + 5.4.2 src/main/java From 7d901e19302f59edfde05a3d683ec14e8878940e Mon Sep 17 00:00:00 2001 From: HauserGrim <37507220+HauserGrim@users.noreply.github.com> Date: Fri, 19 Feb 2021 12:40:24 +0200 Subject: [PATCH 089/295] Turtle has egg trait (#188) --- .../stackmob/entity/traits/TraitManager.java | 3 +++ .../entity/traits/trait/TurtleHasEgg.java | 20 +++++++++++++++++++ src/main/resources/config.yml | 2 ++ 3 files changed, 25 insertions(+) create mode 100644 src/main/java/uk/antiperson/stackmob/entity/traits/trait/TurtleHasEgg.java diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java index 719a02f6..d4e2f0d1 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java @@ -41,6 +41,9 @@ public void registerTraits() throws InstantiationException, IllegalAccessExcepti } registerTrait(ZoglinBaby.class); registerTrait(PiglinBaby.class); + if (Utilities.isPaper()) { + registerTrait(TurtleHasEgg.class); + } } /** diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/TurtleHasEgg.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/TurtleHasEgg.java new file mode 100644 index 00000000..7bd849f6 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/TurtleHasEgg.java @@ -0,0 +1,20 @@ +package uk.antiperson.stackmob.entity.traits.trait; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Turtle; +import uk.antiperson.stackmob.entity.traits.Trait; +import uk.antiperson.stackmob.entity.traits.TraitMetadata; + +@TraitMetadata(entity = Turtle.class, path = "has-egg") +public class TurtleHasEgg implements Trait { + + @Override + public boolean checkTrait(LivingEntity first, LivingEntity nearby) { + return ((Turtle) first).hasEgg() || ((Turtle) nearby).hasEgg(); + } + + @Override + public void applyTrait(LivingEntity spawned, LivingEntity dead) { + ((Turtle) spawned).setHasEgg(((Turtle) spawned).hasEgg()); + } +} \ No newline at end of file diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 602cadae..f2230e1c 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -80,6 +80,8 @@ traits: zoglin-baby: true piglin-baby: true leashed: true + # Prevent pregnant turtles from stacking. (**) + has-egg: true # Prevent stacked mobs from targeting players. # Similar to no-ai, but allows for movement of entities. From 9a47a96b7d6ce589ce15bb0125dae5468e912b78 Mon Sep 17 00:00:00 2001 From: antiPerson Date: Sat, 13 Mar 2021 09:59:56 +0000 Subject: [PATCH 090/295] Create LICENSE --- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f288702d --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. From 36d05ca62018360cf5f20c9b34664bb1c0dbd86c Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 13 Mar 2021 13:58:56 +0000 Subject: [PATCH 091/295] Add distance utility method. --- .../java/uk/antiperson/stackmob/utils/Utilities.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index cc048d85..62e8e1d0 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -1,6 +1,7 @@ package uk.antiperson.stackmob.utils; import net.md_5.bungee.api.ChatColor; +import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -93,6 +94,15 @@ public static void removeHandItem(Player player, int itemAmount) { player.getInventory().setItemInMainHand(is); } + public static double distance(Location locationA, Location locationB) { + double xDist = locationA.getX() - locationB.getX(); + double yDist = locationA.getY() - locationB.getY(); + double zDist = locationA.getZ() - locationB.getZ(); + double xzDiagonal = Math.pow(xDist, 2) + Math.pow(zDist, 2); + double diagonal = xzDiagonal + Math.pow(yDist, 2); + return Math.sqrt(diagonal); + } + public enum DownloadResult { SUCCESSFUL, ERROR From 7ae82eed3d12f74e7b960b5138147ce80554a7b9 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 13 Mar 2021 14:04:55 +0000 Subject: [PATCH 092/295] Update pom --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index e03a06a4..145dd86d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.4.1 + 5.5.0 src/main/java @@ -94,13 +94,13 @@ com.destroystokyo.paper paper-api - 1.16.4-R0.1-SNAPSHOT + 1.16.5-R0.1-SNAPSHOT provided org.spigotmc spigot - 1.16.4-R0.1-SNAPSHOT + 1.16.5-R0.1-SNAPSHOT provided From f9cfd7852df7ac1c63df655cb730da6a10a7c2d3 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 13 Mar 2021 22:46:51 +0000 Subject: [PATCH 093/295] Fix boolean being inverted --- src/main/java/uk/antiperson/stackmob/entity/StackEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 175b109f..40464737 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -248,7 +248,7 @@ public boolean match(StackEntity nearby) { if (sm.getTraitManager().checkTraits(this, nearby)) { return false; } - return sm.getHookManager().checkHooks(this, nearby); + return !sm.getHookManager().checkHooks(this, nearby); } public boolean canStack() { From 864af8a3f71b438af18db90beb83e1e9334268fe Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 19 Mar 2021 09:30:47 +0000 Subject: [PATCH 094/295] Store version compatibility in constants. --- .../java/uk/antiperson/stackmob/utils/Utilities.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java index 62e8e1d0..fe1e2761 100644 --- a/src/main/java/uk/antiperson/stackmob/utils/Utilities.java +++ b/src/main/java/uk/antiperson/stackmob/utils/Utilities.java @@ -26,6 +26,9 @@ public class Utilities { public static final String GITHUB = "https://github.com/Nathat23/StackMob-5"; public static final String GITHUB_DEFAULT_CONFIG = GITHUB + "/tree/master/src/main/resources"; private static final Pattern hexPattern = Pattern.compile("&#([a-zA-Z0-9]){6}"); + private static final boolean usingPaper = Package.getPackage("com.destroystokyo.paper") != null; + private static final boolean usingLegacy = Package.getPackage("net.minecraft.server.v1_15_R1") != null; + private static final boolean usingNative = Package.getPackage("net.minecraft.server.v1_16_R3") != null; public static String translateColorCodes(String toTranslate) { Matcher matcher = hexPattern.matcher(toTranslate); @@ -69,15 +72,15 @@ public static CompletableFuture downloadFile(File filePath, Stri } public static boolean isPaper() { - return Package.getPackage("com.destroystokyo.paper") != null; + return usingPaper; } public static boolean isNewBukkit() { - return Package.getPackage("net.minecraft.server.v1_15_R1") == null; + return usingLegacy; } public static boolean isNativeVersion() { - return Package.getPackage("net.minecraft.server.v1_16_R3") != null; + return usingNative; } public static boolean isDye(ItemStack material) { From fefa89297a8ba0fc6538056c39fd147b6a7abcb9 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 19 Mar 2021 10:16:56 +0000 Subject: [PATCH 095/295] Add potion effect merging and trait. --- .../stackmob/entity/StackEntity.java | 15 ++++++++++++ .../stackmob/entity/traits/TraitManager.java | 1 + .../stackmob/entity/traits/trait/Potion.java | 23 +++++++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 40 insertions(+) create mode 100644 src/main/java/uk/antiperson/stackmob/entity/traits/trait/Potion.java diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 40464737..9b800bad 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -9,6 +9,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; +import org.bukkit.potion.PotionEffect; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.events.EventHelper; import uk.antiperson.stackmob.hook.StackableMobHook; @@ -280,11 +281,25 @@ public StackEntity merge(StackEntity toMerge, boolean unregister) { biggest.setSize(maxSize); return null; } + mergePotionEffects(biggest, smallest); biggest.incrementSize(smallest.getSize()); smallest.remove(unregister); return smallest; } + public void mergePotionEffects(StackEntity toKeep, StackEntity toRemove) { + if (!sm.getMainConfig().isTraitEnabled("potion-effect")) { + return; + } + for (PotionEffect potionEffect : toRemove.getEntity().getActivePotionEffects()) { + double combinedSize = toKeep.getSize() + toRemove.getSize(); + double percentOfTotal = toRemove.getSize() / combinedSize; + int newDuration = (int) Math.ceil(potionEffect.getDuration() * percentOfTotal); + PotionEffect newPotion = new PotionEffect(potionEffect.getType(), newDuration, potionEffect.getAmplifier()); + toKeep.getEntity().addPotionEffect(newPotion); + } + } + public StackEntity splitIfNotEnough(int itemAmount) { // If there is not enough food, then spawn a new stack with the remaining. if (getSize() > itemAmount) { diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java index 719a02f6..2cf6885a 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java @@ -36,6 +36,7 @@ public void registerTraits() throws InstantiationException, IllegalAccessExcepti registerTrait(BeeNectar.class); registerTrait(BeeStung.class); registerTrait(Leash.class); + registerTrait(Potion.class); if (!Utilities.isNewBukkit()) { return; } diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Potion.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Potion.java new file mode 100644 index 00000000..955f8dd2 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/Potion.java @@ -0,0 +1,23 @@ +package uk.antiperson.stackmob.entity.traits.trait; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Mob; +import org.bukkit.potion.PotionEffect; +import uk.antiperson.stackmob.entity.traits.Trait; +import uk.antiperson.stackmob.entity.traits.TraitMetadata; + +@TraitMetadata(entity = Mob.class, path = "potion-effect") +public class Potion implements Trait { + + @Override + public boolean checkTrait(LivingEntity first, LivingEntity nearby) { + return false; + } + + @Override + public void applyTrait(LivingEntity spawned, LivingEntity dead) { + for (PotionEffect potionEffect : dead.getActivePotionEffects()) { + spawned.addPotionEffect(potionEffect); + } + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7b8d5996..d80c554d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -80,6 +80,7 @@ traits: zoglin-baby: true piglin-baby: true leashed: true + potion-effect: true # Prevent stacked mobs from targeting players. # Similar to no-ai, but allows for movement of entities. From 08957a4b0410cb74fb0da84d48845ef8bb866989 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 21 Mar 2021 09:20:27 +0000 Subject: [PATCH 096/295] Change location of multiplied drops (fixes #194) --- src/main/java/uk/antiperson/stackmob/entity/Drops.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Drops.java b/src/main/java/uk/antiperson/stackmob/entity/Drops.java index 4e9b147e..8cb93f27 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Drops.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Drops.java @@ -80,9 +80,10 @@ public static void dropItems(Location location, Map items) { } public static void dropItem(Location location, ItemStack stack, int amount) { + Location dropLocation = location.add(0,1,0); for (int itemAmount : Utilities.split(amount, stack.getMaxStackSize())) { stack.setAmount(itemAmount); - location.getWorld().dropItemNaturally(location, stack); + location.getWorld().dropItem(dropLocation, stack); } } From 7e6e5acbc234a68ecc64a45be82fb5787ecbafa7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 21 Mar 2021 11:47:30 +0000 Subject: [PATCH 097/295] Add option to only attempt to stack entities if they have moved. --- .../stackmob/config/MainConfig.java | 8 +++++++ .../stackmob/entity/StackEntity.java | 21 +++++++++++++++++++ .../antiperson/stackmob/tasks/MergeTask.java | 8 +++++++ src/main/resources/config.yml | 7 +++++++ 4 files changed, 44 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java index 2041b12d..6e141ec9 100644 --- a/src/main/java/uk/antiperson/stackmob/config/MainConfig.java +++ b/src/main/java/uk/antiperson/stackmob/config/MainConfig.java @@ -41,6 +41,14 @@ public int getStackInterval() { return getInt("stack.interval"); } + public boolean isCheckHasMoved() { + return getBoolean("stack.check-location.enabled"); + } + + public double getCheckHasMovedDistance() { + return getDouble("stack.check-location.distance"); + } + public String getTagFormat(EntityType type) { return getString(type, "display-name.format"); } diff --git a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java index 9b800bad..0261ff1c 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java +++ b/src/main/java/uk/antiperson/stackmob/entity/StackEntity.java @@ -2,6 +2,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.WordUtils; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.LivingEntity; @@ -27,6 +28,7 @@ public class StackEntity { private final StackMob sm; private boolean waiting; private boolean forgetOnSpawn; + private Location lastLocation; private int waitCount; private int stackSize; private Set equiptItems; @@ -73,6 +75,25 @@ public void removeStackData() { getTag().update(); } + /** + * Returns the location of the entity where it was last checked for stacking. + * @return the location of the entity where it was last checked for stacking, null if 'stack.check-location' is disabled. + */ + public Location getLastLocation() { + if (lastLocation == null && sm.getMainConfig().isCheckHasMoved()) { + lastLocation = entity.getLocation(); + } + return lastLocation; + } + + /** + * Sets the location of the entity where it was last checked for stacking. + * @param lastLocation the location of the entity where it was last checked for stacking. + */ + public void setLastLocation(Location lastLocation) { + this.lastLocation = lastLocation; + } + /** * Returns whether the entity will have its stack data removed on spawn. * See {@link #setForgetOnSpawn(boolean)} for further details. diff --git a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java index f2ea0865..ad4ee45e 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java @@ -21,6 +21,8 @@ public MergeTask(StackMob sm) { public void run() { HashSet toRemove = new HashSet<>(); + boolean checkHasMoved = sm.getMainConfig().isCheckHasMoved(); + double checkHasMovedDistance = sm.getMainConfig().getCheckHasMovedDistance(); for (StackEntity original : sm.getEntityManager().getStackEntities()) { if (original.isWaiting()) { original.incrementWait(); @@ -32,6 +34,12 @@ public void run() { } continue; } + if (checkHasMoved) { + if (Utilities.distance(original.getEntity().getLocation(), original.getLastLocation()) < checkHasMovedDistance) { + continue; + } + original.setLastLocation(original.getEntity().getLocation()); + } Integer[] searchRadius = sm.getMainConfig().getStackRadius(original.getEntity().getType()); Set matches = new HashSet<>(); for (Entity nearby : original.getEntity().getNearbyEntities(searchRadius[0], searchRadius[1], searchRadius[2])) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d80c554d..ae72824d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -24,6 +24,13 @@ stack: threshold: enabled: true amount: 5 + # Only find matches for this mob if it has moved from the last time nearby mobs were checked. (*) + # This may break grinders etc, which is why for now it is disabled by default. + # Please give feedback at https://github.com/Nathat23/StackMob-5/issues/198 + check-location: + enabled: false + # The distance threshold for the check + distance: 1.0 # Names of worlds where there should be no stacking worlds-blacklist: [] From d6b17e5b45fd4e9dac790dc2b511f0e43bcda82c Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 21 Mar 2021 12:04:47 +0000 Subject: [PATCH 098/295] misc config changes --- src/main/resources/config.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index ae72824d..32c4be4e 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,4 +1,5 @@ # StackMob ${project.version} Configuration file - by antiPerson and contributors. +# If the comments have been removed, you can find a version with comments at https://github.com/Nathat23/StackMob-5/tree/master/src/main/resources # # Most options can be customised for specific entity types, for details about this, see the end of this file. # Asterisk meaning: @@ -9,8 +10,6 @@ # (2) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html # (3) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html # (4) https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html -# -# If the comments have been removed, you can find a version with comments at https://github.com/Nathat23/StackMob-5/tree/master/src/main/resources stack: # The maximum size that a stack can have. @@ -165,7 +164,7 @@ death: # # The priority 1 is highest and 4 is lowest. # If the killed entity is blacklisted, either by type, spawn reason or death reasons (the last damage cause), - # by the highest priority method, then it will attempt to use the next highest priority death method. + # by the highest priority method, then we will attempt to use the next highest priority death method. SINGLE: priority: 4 reason-blacklist: [] @@ -257,6 +256,7 @@ hooks: mythicmobs: stack: false # Blacklist of MythicMob types (uses the internal name) + # This blacklist does not take effect if the prevent-stack option is enabled below. stack-blacklist: [ ] stack-blacklist-invert: false # When this option is enabled, MythicMobs will not stack. @@ -284,5 +284,3 @@ hooks: # # The cloned custom options can still be overridden. # stack: # max-size: 5 - - From 47a28d29ed5119f90f0d4ac49a9e505a59b736a1 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 21 Mar 2021 12:40:13 +0000 Subject: [PATCH 099/295] Add debug message --- .../stackmob/entity/death/KillStepDamage.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java index 307f76b4..2253db50 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java +++ b/src/main/java/uk/antiperson/stackmob/entity/death/KillStepDamage.java @@ -1,7 +1,9 @@ package uk.antiperson.stackmob.entity.death; import org.bukkit.attribute.Attribute; +import org.bukkit.attribute.AttributeInstance; import org.bukkit.entity.LivingEntity; +import org.jetbrains.annotations.Nullable; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; import uk.antiperson.stackmob.hook.StackableMobHook; @@ -31,7 +33,9 @@ public int calculateStep() { @Override public void onSpawn(StackEntity spawned) { - double maxHealth = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue(); + AttributeInstance attribute = getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH); + AttributeInstance spawnedAttribute = spawned.getEntity().getAttribute(Attribute.GENERIC_MAX_HEALTH); + double maxHealth = attribute.getBaseValue(); StackableMobHook smh = sm.getHookManager().getApplicableHook(spawned); if (smh instanceof MythicMobsStackHook) { sm.getServer().getScheduler().runTaskLater(sm, bukkitTask -> { @@ -40,6 +44,14 @@ public void onSpawn(StackEntity spawned) { } }, 5); } - spawned.getEntity().setHealth(maxHealth - leftOverDamage); + try { + spawned.getEntity().setHealth(maxHealth - leftOverDamage); + } catch (IllegalArgumentException e) { + sm.getLogger().warning("New health value is too high! Please report and include the message below."); + sm.getLogger().info(attribute.getBaseValue() + "," + attribute.getDefaultValue() + "," + attribute.getValue() + "," + leftOverDamage); + if (spawnedAttribute != null) { + sm.getLogger().info(spawnedAttribute.getBaseValue() + "," + attribute.getDefaultValue() + "," + attribute.getValue()); + } + } } } From 2b8c7577dafe253ce6b497edf1c47f2201792777 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 27 Mar 2021 21:26:38 +0000 Subject: [PATCH 100/295] Add null check --- .../java/uk/antiperson/stackmob/listeners/SpawnListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java index 32f14032..1e118238 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/SpawnListener.java @@ -28,7 +28,7 @@ public void onSpawn(CreatureSpawnEvent event) { } if (sm.getEntityManager().isStackedEntity(event.getEntity())) { StackEntity stackEntity = sm.getEntityManager().getStackEntity(event.getEntity()); - if (stackEntity.isForgetOnSpawn()) { + if (stackEntity != null && stackEntity.isForgetOnSpawn()) { stackEntity.removeStackData(); } return; From 8b3e4f687e99fcbbaad008d8c5ac1f20502ab0fb Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 28 Mar 2021 12:22:28 +0100 Subject: [PATCH 101/295] Use HashMap rather than HashSet to store loaded stacked entities. --- .../stackmob/entity/EntityManager.java | 38 ++++++++++--------- .../antiperson/stackmob/tasks/MergeTask.java | 3 -- .../uk/antiperson/stackmob/tasks/TagTask.java | 9 ++--- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java index 58be6f63..143d4e68 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/EntityManager.java @@ -10,32 +10,31 @@ import uk.antiperson.stackmob.StackMob; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; +import java.util.List; +import java.util.UUID; public class EntityManager { private final StackMob sm; - private final HashSet stackEntities; + private final HashMap stackEntities; + public EntityManager(StackMob sm) { this.sm = sm; - stackEntities = new HashSet<>(); + stackEntities = new HashMap<>(); } public boolean isStackedEntity(LivingEntity entity) { - return entity.getPersistentDataContainer().has(sm.getStackKey(), PersistentDataType.INTEGER); + return stackEntities.containsKey(entity.getUniqueId()); } - public HashSet getStackEntities() { - return stackEntities; + public Collection getStackEntities() { + return stackEntities.values(); } public StackEntity getStackEntity(LivingEntity entity) { - for (StackEntity stackEntity : stackEntities) { - if (stackEntity.getEntity().getEntityId() == entity.getEntityId()) { - return stackEntity; - } - } - return null; + return stackEntities.get(entity.getUniqueId()); } public void registerAllEntities() { @@ -54,12 +53,16 @@ public void unregisterAllEntities() { } } + public boolean hasStackData(Entity entity) { + return entity.getPersistentDataContainer().has(sm.getStackKey(), PersistentDataType.INTEGER); + } + public void registerStackedEntities(Chunk chunk) { for (Entity entity : chunk.getEntities()) { if (!(entity instanceof Mob)) { continue; } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) entity)) { + if (!hasStackData(entity)) { continue; } sm.getEntityManager().registerStackedEntity((LivingEntity) entity); @@ -71,21 +74,22 @@ public void unregisterStackedEntities(Chunk chunk) { if (!(entity instanceof Mob)) { continue; } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) entity)) { + StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) entity); + if (stackEntity == null) { continue; } - sm.getEntityManager().unregisterStackedEntity((LivingEntity) entity); + sm.getEntityManager().unregisterStackedEntity(stackEntity); } } public StackEntity registerStackedEntity(LivingEntity entity) { StackEntity stackEntity = new StackEntity(sm, entity); - stackEntities.add(stackEntity); + stackEntities.put(entity.getUniqueId(), stackEntity); return stackEntity; } public void registerStackedEntity(StackEntity entity) { - stackEntities.add(entity); + stackEntities.put(entity.getEntity().getUniqueId(), entity); } public void unregisterStackedEntity(LivingEntity entity) { @@ -97,7 +101,7 @@ public void unregisterStackedEntity(LivingEntity entity) { } public void unregisterStackedEntity(StackEntity stackEntity) { - stackEntities.remove(stackEntity); + stackEntities.remove(stackEntity.getEntity().getUniqueId()); } } diff --git a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java index aad8b579..a2f7fb2b 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/MergeTask.java @@ -46,9 +46,6 @@ public void run() { if (!(nearby instanceof Mob)) { continue; } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) nearby)) { - continue; - } StackEntity nearbyStack = sm.getEntityManager().getStackEntity((LivingEntity) nearby); if (nearbyStack == null) { continue; diff --git a/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java b/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java index 217a1928..e7a68344 100644 --- a/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java +++ b/src/main/java/uk/antiperson/stackmob/tasks/TagTask.java @@ -30,8 +30,9 @@ public void run() { if (!(entity instanceof Mob)) { continue; } - if (!sm.getEntityManager().isStackedEntity((LivingEntity) entity)) { - continue; + StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) entity); + if (stackEntity == null) { + return; } if (entity.isDead()) { continue; @@ -39,10 +40,6 @@ public void run() { if (sm.getMainConfig().getTagMode(entity.getType()) != StackEntity.TagMode.NEARBY) { return; } - StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) entity); - if (stackEntity == null) { - return; - } int threshold = sm.getMainConfig().getTagThreshold(stackEntity.getEntity().getType()); if (stackEntity.getSize() <= threshold) { return; From d316c914b2b92758ed8a16b58b7bff438cc373fe Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 31 Mar 2021 12:02:04 +0100 Subject: [PATCH 102/295] Add ClearLagg support. --- jars/Clearlag.jar | Bin 0 -> 263611 bytes pom.xml | 7 +++++ .../antiperson/stackmob/hook/HookManager.java | 4 +++ .../stackmob/hook/hooks/ClearlaggHook.java | 24 ++++++++++++++++++ src/main/resources/config.yml | 2 ++ 5 files changed, 37 insertions(+) create mode 100644 jars/Clearlag.jar create mode 100644 src/main/java/uk/antiperson/stackmob/hook/hooks/ClearlaggHook.java diff --git a/jars/Clearlag.jar b/jars/Clearlag.jar new file mode 100644 index 0000000000000000000000000000000000000000..12f307c2960c88b249ed9fe01edc793b521c9124 GIT binary patch literal 263611 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%0AhE;< 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

bNRD$_5BhbXTgpS zwQRF-+itzuT$-U1wD9je4&79axkC-@^r(eFd!iC_q8StI>o=Yf#h_QYi}bU4)J9$T zT*v6rtOAj9$EJ|c!_@8elor3a;5V$1AAnHn$K0WNZ-`ORPese~T`lOYPP_dPKWr-u z^#GKH!iaYcfe5 z(GI??H1+z~i87VMO8C#X2fBlM-3M?)%fYcDSe^@mX9fJ`_>;rfyZnad@C_99Dv+dx_{E*3wCU(j2vBtf!b zOnla#H)i+P?m)4k+-ZNh11W;_+6A=m@rA5%+JrJ6w`04m9MRw$TxS9ib%dJ3?mfzi z{YXURXa*hMfY!j%-zmNmOFuGWuCiKvEX@#p=fPSb?3^x8958Z~UW%E2k@lgdr?1;o zY4#Ht4X+}}&W$Zz_ZiWpB70aLNd{Vl-4M0q_U{Q?!F%Uxo-#r%d(o}5RbNr3Jjws_ zeFr#GiNm(nl4S>V#|zNOhdS^O|Lg>F;}SZ1-GUf*NmfqUSf0l#K-^cRdafevpI~yo z(zqTmZ_H9YTS{Y^6CbLWpYv%BE%EWMw=Lqf!9x9)Ml1;ZcNc^3KYQDLT?~JLfB$b5 z70JI6T%=7s{}W23Jg)S$KH<%R!HkDNBHluV4UY$Bpa_k*n#)y15tJ6bs#D-fpky+U zFkm7+5r2ZMbQl<>n(YtXU$w8Nxy%xgG6;#d@P2W7`yQ&6B{4o>ia4PO`0k zd)0BUXP`o~p;pZD6ES4#GvBjTm?iU!(`CpBv)d?hHS5gUR&1xU%F!-J2fMaeay_es zV}3kjIF})o@dLjaI19s!ywSYO!W$At^ZB*Hg})$VUbBs<6HXu@_D0})qm9lpOYj)U9V`F&6X+? zcTVU$kiZt^MxFs!t8dQdr>jZ_WXN_En%>V*CE%u^Kwzl)M+Zhn4RyQC15)4U`62>WEaoMg8uLMAnu()gm0VKt;B8wTSjKl_b*Ow6nBvCnGQ(_eu zsTrR2(PnSCbYkowHcZcItz8VMi(fl2f5o~%O+RHpxsWP5BF}kXx#zVg_<-#9klF*gGm880Ml^qG`-Z$rL-&pE zWJq)jvin!^8%-E=_~Bem-rx%ricp=7X`0a!G*Nk1XG0C@je7T0Thl=`T8jWaT?+<( zBNWzTVasgsnTa1kJA=eoWo@ut0HNA%p-h9+;O0Ck{5(*1A9oEZIX>W;($-}KLdmHs zQ)Jnb_joZ!uy>M5!*A-8=)J6CVu&g~2#bsi0DMsKeqfZDB^Y@_itG6a;2&QvC~ydE zfs^fDUket&zg@8W!=doMeK`O5Uetd(qln^sc)7<*x{(JFLyGJpAh3Z~;(RAzL=yh_ zi>wb68B#CHCIKcbE3Bcx-vi&{PYZz_{mo89G9X+_3CGK;$w!IKrUhQgwJSgNpv*yB;txr-JDip#`9UUU5rM zRDcAGxd8`Cn@lFgd~`V&%vQ$4f%$GRSsugwm^>u%JFW`ZKn^F22uC+9an6GCVPg-a zHPNfYuo77wVud-bOlR@vQb(YQ4cDYUC%u1Qk!XW+Ob-r;g4CN_ADs!j7+!rx1gmtcXZy;AK) zmBHB)tnC9dd5*ZUWteq(1Xzg0!PJW6Mj6v4z?u_yXc`7^of4CacpqY^12bztv-K-y zUCwQAxUnhJBQVs^OWsuU8o!9eVNSezGv%?{ka&=`I7Ds`Msap*xs#`mF`~GPy?4oxBR&Fg)ii8fH9rtpba0l_TOM%r!lTnV=Um z2!}sp#=L+zIr@=diPJsQ2-<3UKV9-7=pWbB^n-0i8`Ag=RwHMvR-LlVGBzz2#IbN^ zA9pu1_E2k7Fou^}Dkvf=6g&NOJXj�KlXrXN+sOW9W7}oNQ2RVE*?J8zI$j((LC! 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

P-*f?F}iAo8ibg6 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 literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 145dd86d..d3b6e032 100644 --- a/pom.xml +++ b/pom.xml @@ -140,6 +140,13 @@ 4.5.1 provided + + me.minebuilders + clearlag + 3.2.2 + system + ${project.basedir}/jars/Clearlag.jar + diff --git a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java index b8208ebb..3f6a1657 100644 --- a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java +++ b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java @@ -2,6 +2,7 @@ import org.bukkit.Location; import org.bukkit.entity.LivingEntity; +import org.bukkit.event.Listener; import uk.antiperson.stackmob.StackMob; import uk.antiperson.stackmob.entity.StackEntity; import uk.antiperson.stackmob.hook.hooks.*; @@ -67,6 +68,9 @@ private void registerHook(Class hookClass) throws IllegalAccessE return; } Hook hook = createInstance(hookClass); + if (hook instanceof Listener) { + sm.getServer().getPluginManager().registerEvents((Listener) hook, sm); + } hook.onEnable(); hooks.add(hook); } diff --git a/src/main/java/uk/antiperson/stackmob/hook/hooks/ClearlaggHook.java b/src/main/java/uk/antiperson/stackmob/hook/hooks/ClearlaggHook.java new file mode 100644 index 00000000..3f88d147 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/hook/hooks/ClearlaggHook.java @@ -0,0 +1,24 @@ +package uk.antiperson.stackmob.hook.hooks; + +import me.minebuilders.clearlag.events.EntityRemoveEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.entity.StackEntity; +import uk.antiperson.stackmob.hook.Hook; +import uk.antiperson.stackmob.hook.HookMetadata; + +@HookMetadata(name = "ClearLagg", config = "clearlagg") +public class ClearlaggHook extends Hook implements Listener { + + public ClearlaggHook(StackMob sm) { + super(sm); + } + + @EventHandler + public void onEntityRemove(EntityRemoveEvent event) { + for (StackEntity stackEntity : sm.getEntityManager().getStackEntities()) { + event.addEntity(stackEntity.getEntity()); + } + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 2234b77f..09f8d819 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -271,6 +271,8 @@ hooks: jobs: true # Allows the use of ProtocolLib, which is used when the server version is not the native one of the plugin. protocollib: true + # Make it so that ClearLagg removes stacked entities. + clearlagg: false ## Some options can be modified for specific entity types. An example is shown below. Remove comments to see this in action. ## Options and sections with a (*) in the comment preceding cannot be overridden. From a5028768ee12f5d1f782641cf9e832b1c46ce965 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 31 Mar 2021 12:09:00 +0100 Subject: [PATCH 103/295] Add to README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d2ce8ce..171983af 100644 --- a/README.md +++ b/README.md @@ -6,5 +6,13 @@ Spigot: https://www.spigotmc.org/resources/stackmob-enhance-your-servers-perform StackMob is a plugin that reduces the strain of mobs on your server by 'stacking' them together, therefore you can have 1 entity instead of 30 entities. StackMob aims to try and not break vanilla mechanics, however this is not always pratical and/or possible. -It is recomended to use StackMob in conjunction with a farm limiter plugin for the best results. +It is recommended to use StackMob in conjunction with a farm limiter plugin for the best results. +# Building +In order to build StackMob, you will need to do the following. +- Build a copy of Spigot, using BuildTools https://hub.spigotmc.org/jenkins/job/BuildTools/ +- Clone the repository. +- Run 'mvn clean install' to compile. + +# Contributing +Contributions are welcome. StackMob is licensed under the GPLv3. \ No newline at end of file From 5a019d9acdcf9c6f7af8235fd9a1cb99e095b799 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 31 Mar 2021 12:26:39 +0100 Subject: [PATCH 104/295] Increment version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d3b6e032..2e99b9f4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.5.0 + 5.5.1 src/main/java From 1848f46ab808bedcf6c22364e70aa67887364139 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 31 Mar 2021 16:03:44 +0100 Subject: [PATCH 105/295] Forgot to register ClearLagg hook... --- src/main/java/uk/antiperson/stackmob/hook/HookManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java index 3f6a1657..8cbb9901 100644 --- a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java +++ b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java @@ -49,6 +49,7 @@ public void registerHooks() throws InstantiationException, IllegalAccessExceptio registerHook(CitizensHook.class); registerHook(JobsHook.class); registerHook(ProtocolLibHook.class); + registerHook(ClearlaggHook.class); } /** From ba59d04c44bc8e87665f5f9fb5f1089f1247604d Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 31 Mar 2021 17:36:36 +0100 Subject: [PATCH 106/295] April --- .../java/uk/antiperson/stackmob/StackMob.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index 7971316c..d147bdda 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -23,8 +23,12 @@ import java.io.File; import java.io.IOException; +import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; +import java.time.LocalDate; +import java.util.concurrent.ThreadLocalRandom; import java.util.logging.Level; +import java.util.logging.Logger; public class StackMob extends JavaPlugin { @@ -52,6 +56,21 @@ public void onLoad() { @Override public void onEnable() { + if (LocalDate.of(2021, 4, 1).equals(LocalDate.now())) { + int randInt = ThreadLocalRandom.current().nextInt(2, 6); + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < randInt; i++) { + builder.append("Stack"); + } + builder.append("StackMob"); + try { + Field field = Logger.class.getDeclaredField("name"); + field.setAccessible(true); + field.set(getLogger(), builder.toString()); + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + } getLogger().info("StackMob v" + getDescription().getVersion() + " by antiPerson and contributors."); getLogger().info("GitHub: " + Utilities.GITHUB); getLogger().info("Discord: " + Utilities.DISCORD); From a784a3585b71d461e108f675e16dfce8088d16df Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 31 Mar 2021 17:37:09 +0100 Subject: [PATCH 107/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e99b9f4..0c935d64 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.5.1 + 5.5.2 src/main/java From 7825d201526786066d166876e05450b323729185 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 1 Apr 2021 13:07:54 +0100 Subject: [PATCH 108/295] Fix entities not being registered on Paper servers. --- .../uk/antiperson/stackmob/listeners/RemoveListener.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java b/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java index 8f55f72c..3fd2a28d 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/RemoveListener.java @@ -22,9 +22,6 @@ public void onEntityRemove(EntityRemoveFromWorldEvent event) { return; } LivingEntity livingEntity = (LivingEntity) event.getEntity(); - if (!sm.getEntityManager().isStackedEntity(livingEntity)) { - return; - } StackEntity stackEntity = sm.getEntityManager().getStackEntity(livingEntity); if (stackEntity == null) { return; @@ -38,7 +35,7 @@ public void onEntityAdd(EntityAddToWorldEvent event) { return; } LivingEntity livingEntity = (LivingEntity) event.getEntity(); - if (!sm.getEntityManager().isStackedEntity(livingEntity)) { + if (!sm.getEntityManager().hasStackData(livingEntity)) { return; } sm.getEntityManager().registerStackedEntity(livingEntity); From 53182d37b4300d15fd7fd2be32bec1558b060d89 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 1 Apr 2021 13:08:22 +0100 Subject: [PATCH 109/295] Increment version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0c935d64..1ef1f830 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ uk.antiperson.stackmob StackMob - 5.5.2 + 5.5.3 src/main/java From b4d43f1ae39d22459c44647348518b2061f79775 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Fri, 2 Apr 2021 13:27:34 +0100 Subject: [PATCH 110/295] Use CodeMC nms repository --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1ef1f830..d7d9c5f3 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ CodeMC - https://repo.codemc.org/repository/maven-public + https://repo.codemc.org/repository/nms jitpack.io From 40be19289ed8610f5577ad10f8a51271ad39aa25 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 3 Apr 2021 12:34:47 +0100 Subject: [PATCH 111/295] It is no longer the first day of April. --- .../java/uk/antiperson/stackmob/StackMob.java | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index d147bdda..2e94964c 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -56,21 +56,6 @@ public void onLoad() { @Override public void onEnable() { - if (LocalDate.of(2021, 4, 1).equals(LocalDate.now())) { - int randInt = ThreadLocalRandom.current().nextInt(2, 6); - StringBuilder builder = new StringBuilder(); - for (int i = 0; i < randInt; i++) { - builder.append("Stack"); - } - builder.append("StackMob"); - try { - Field field = Logger.class.getDeclaredField("name"); - field.setAccessible(true); - field.set(getLogger(), builder.toString()); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - } getLogger().info("StackMob v" + getDescription().getVersion() + " by antiPerson and contributors."); getLogger().info("GitHub: " + Utilities.GITHUB); getLogger().info("Discord: " + Utilities.DISCORD); From a4f6340949fff06911481905abeb5437fa869db7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 3 Apr 2021 12:37:14 +0100 Subject: [PATCH 112/295] Update bStats --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d7d9c5f3..70e7b97f 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ org.bstats bstats-bukkit - 1.8 + 2.2.1 compile From d4275e16a05abcbeeea404369f46f2f4604dff7f Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sat, 3 Apr 2021 22:08:32 +0100 Subject: [PATCH 113/295] Revert "Update bStats" This reverts commit a4f63409 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 70e7b97f..d7d9c5f3 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ org.bstats bstats-bukkit - 2.2.1 + 1.8 compile From 7f2aa59366f287ca87890385611e2689db522422 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 6 Apr 2021 09:31:52 +0100 Subject: [PATCH 114/295] CodeMC Nexus deployment --- pom.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pom.xml b/pom.xml index d7d9c5f3..4ab43a23 100644 --- a/pom.xml +++ b/pom.xml @@ -67,6 +67,17 @@ + + + codemc-releases + https://repo.codemc.io/repository/maven-releases/ + + + codemc-snapshots + https://repo.codemc.io/repository/maven-snapshots/ + + + dmulloy2-repo From 18fc4cd92bd95b0c6c84b0dbe20d6fcb609df216 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Tue, 6 Apr 2021 10:05:28 +0100 Subject: [PATCH 115/295] Add details to README --- README.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 171983af..fecee6a0 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,29 @@ StackMob is a plugin that reduces the strain of mobs on your server by 'stacking It is recommended to use StackMob in conjunction with a farm limiter plugin for the best results. +### Jenkins: https://ci.codemc.io/job/Nathat23/job/StackMob-5/ # Building In order to build StackMob, you will need to do the following. -- Build a copy of Spigot, using BuildTools https://hub.spigotmc.org/jenkins/job/BuildTools/ - Clone the repository. - Run 'mvn clean install' to compile. # Contributing -Contributions are welcome. StackMob is licensed under the GPLv3. \ No newline at end of file +Contributions are welcome. StackMob is licensed under the GPLv3. + +# API +StackMob does have a few custom events that can be used. These are in the events subpackage. + +Maven: +```xml + + CodeMC + https://repo.codemc.org/repository/maven-public/ + +``` +```xml + + uk.antiperson.stackmob + StackMob + 5.5.3 + +``` \ No newline at end of file From 07b06058ee606c348574f819103a2bc6301479b6 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 7 Apr 2021 18:54:33 +0100 Subject: [PATCH 116/295] Optimise death drops generation. --- .../uk/antiperson/stackmob/entity/Drops.java | 31 ++++++------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Drops.java b/src/main/java/uk/antiperson/stackmob/entity/Drops.java index 8cb93f27..795a224c 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Drops.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Drops.java @@ -36,8 +36,14 @@ public Map calculateDrops(int deathAmount, List o if (lastDamageCause == null || sm.getMainConfig().getDropReasonBlacklist(dead.getType()).contains(lastDamageCause.getCause().toString())) { return items; } + boolean useLootTables = sm.getMainConfig().isDropLootTables(dead.getType()); + LootContext lc = new LootContext.Builder(dead.getLocation()).lootedEntity(dead).killer(dead.getKiller()).build(); + Collection genItems = originalDrops; for (int i = 0; i < deathAmount; i++) { - for (ItemStack is : calculateLoot(originalDrops)) { + if (useLootTables) { + genItems = ((Mob) dead).getLootTable().populateLoot(ThreadLocalRandom.current(), lc); + } + for (ItemStack is : genItems) { if (is == null || is.getType() == Material.AIR) { continue; } @@ -47,34 +53,17 @@ public Map calculateDrops(int deathAmount, List o if (is.getType() == Material.LEAD && dead.isLeashed()) { continue; } - if (sm.getMainConfig().getDropItemBlacklist(dead.getType()) - .contains(is.getType().toString())) { + if (sm.getMainConfig().getDropItemBlacklist(dead.getType()).contains(is.getType().toString())) { continue; } - int dropAmount = is.getAmount(); - if (sm.getMainConfig().getDropItemOnePer(dead.getType()) - .contains(is.getType().toString())) { - dropAmount = 1; - } + int dropAmount = sm.getMainConfig().getDropItemOnePer(dead.getType()).contains(is.getType().toString()) ? 1 : is.getAmount(); is.setAmount(1); - if (items.containsKey(is)) { - items.put(is, items.get(is) + dropAmount); - continue; - } - items.put(is, dropAmount); + items.compute(is, (key, amount) -> amount == null ? dropAmount : amount + dropAmount); } } return items; } - private Collection calculateLoot(List originalDrops) { - if (!sm.getMainConfig().isDropLootTables(dead.getType())) { - return originalDrops; - } - LootContext lc = new LootContext.Builder(dead.getLocation()).lootedEntity(dead).killer(dead.getKiller()).build(); - return ((Mob) dead).getLootTable().populateLoot(ThreadLocalRandom.current(), lc); - } - public static void dropItems(Location location, Map items) { items.forEach((stack, amount) -> dropItem(location, stack, amount)); } From b12a7f30ace740b65ea31f6f90645b0473d02e8d Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Wed, 7 Apr 2021 21:05:27 +0100 Subject: [PATCH 117/295] Misc changes --- src/main/java/uk/antiperson/stackmob/StackMob.java | 8 ++------ .../java/uk/antiperson/stackmob/hook/HookManager.java | 5 +++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/StackMob.java b/src/main/java/uk/antiperson/stackmob/StackMob.java index 2e94964c..319fb769 100644 --- a/src/main/java/uk/antiperson/stackmob/StackMob.java +++ b/src/main/java/uk/antiperson/stackmob/StackMob.java @@ -23,12 +23,8 @@ import java.io.File; import java.io.IOException; -import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; -import java.time.LocalDate; -import java.util.concurrent.ThreadLocalRandom; import java.util.logging.Level; -import java.util.logging.Logger; public class StackMob extends JavaPlugin { @@ -158,9 +154,9 @@ private void registerEvents() throws InvocationTargetException, NoSuchMethodExce registerEvent(EquipListener.class); if (Utilities.isPaper()) { registerEvent(RemoveListener.class); - } else { - registerEvent(ChunkListener.class); + return; } + registerEvent(ChunkListener.class); } private void registerEvent(Class clazz) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { diff --git a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java index 8cbb9901..343dd670 100644 --- a/src/main/java/uk/antiperson/stackmob/hook/HookManager.java +++ b/src/main/java/uk/antiperson/stackmob/hook/HookManager.java @@ -14,11 +14,12 @@ public class HookManager { - private final HashSet hooks = new HashSet<>(); + private final HashSet hooks; private final StackMob sm; private ProtocolLibHook protocolLibHook; public HookManager(StackMob sm) { this.sm = sm; + hooks = new HashSet<>(); } /** @@ -86,7 +87,7 @@ private void registerHook(Class hookClass) throws IllegalAccessE * @throws InstantiationException if the class is abstract */ private Hook createInstance(Class hookClass) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { - for (Constructor constructor : hookClass.getDeclaredConstructors()) { + for (Constructor constructor : hookClass.getDeclaredConstructors()) { for (Parameter parameter : constructor.getParameters()) { if (parameter.getType().isAssignableFrom(StackMob.class)) { return hookClass.getDeclaredConstructor(StackMob.class).newInstance(sm); From 59a71ebb96ad5a5c89e5bd9fd9891f2b13d102b7 Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Thu, 8 Apr 2021 14:39:10 +0100 Subject: [PATCH 118/295] Only drop items from block above when shearing --- src/main/java/uk/antiperson/stackmob/entity/Drops.java | 6 +++++- .../uk/antiperson/stackmob/listeners/ShearListener.java | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/antiperson/stackmob/entity/Drops.java b/src/main/java/uk/antiperson/stackmob/entity/Drops.java index 795a224c..94b67133 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/Drops.java +++ b/src/main/java/uk/antiperson/stackmob/entity/Drops.java @@ -69,7 +69,11 @@ public static void dropItems(Location location, Map items) { } public static void dropItem(Location location, ItemStack stack, int amount) { - Location dropLocation = location.add(0,1,0); + dropItem(location, stack, amount, false); + } + + public static void dropItem(Location location, ItemStack stack, int amount, boolean above) { + Location dropLocation = above ? location.add(0,1,0) : location; for (int itemAmount : Utilities.split(amount, stack.getMaxStackSize())) { stack.setAmount(itemAmount); location.getWorld().dropItem(dropLocation, stack); diff --git a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java index 9badf077..4b2566a4 100644 --- a/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java +++ b/src/main/java/uk/antiperson/stackmob/listeners/ShearListener.java @@ -111,14 +111,14 @@ private ItemStack shearLogic(LivingEntity entity, ItemStack item) { for (ItemStack itemStack : loot) { if (Tag.WOOL.isTagged(itemStack.getType())) { int woolAmount = (int) Math.round(amount * ThreadLocalRandom.current().nextDouble(1, 2)); - Drops.dropItem(sheared.getLocation(), itemStack, woolAmount); + Drops.dropItem(sheared.getLocation(), itemStack, woolAmount, true); } } return item; } MushroomCow mushroomCow = (MushroomCow) entity; ItemStack mushrooms = new ItemStack(getMaterial(mushroomCow), 1); - Drops.dropItem(mushroomCow.getLocation(), mushrooms, (amount - 1) * 5); + Drops.dropItem(mushroomCow.getLocation(), mushrooms, (amount - 1) * 5, true); // Spawn separate normal cow for the rest of the stack. Entity cow = mushroomCow.getWorld().spawnEntity(mushroomCow.getLocation(), EntityType.COW); StackEntity stackCow = sm.getEntityManager().registerStackedEntity((LivingEntity) cow); From 2bad4093478411a044cdbd7f37865f609ebe60dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= <43724816+Aurelien30000@users.noreply.github.com> Date: Tue, 13 Apr 2021 22:38:42 +0200 Subject: [PATCH 119/295] Add divide option on bucket fill (#210) * Add config option for divide on bucket-fill * Add BucketListener --- .../stackmob/listeners/BucketListener.java | 45 +++++++++++++++++++ src/main/resources/config.yml | 4 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/main/java/uk/antiperson/stackmob/listeners/BucketListener.java diff --git a/src/main/java/uk/antiperson/stackmob/listeners/BucketListener.java b/src/main/java/uk/antiperson/stackmob/listeners/BucketListener.java new file mode 100644 index 00000000..dccfe55d --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/listeners/BucketListener.java @@ -0,0 +1,45 @@ +package uk.antiperson.stackmob.listeners; + +import org.bukkit.Material; +import org.bukkit.entity.Fish; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import uk.antiperson.stackmob.StackMob; +import uk.antiperson.stackmob.entity.StackEntity; + +@ListenerMetadata(config = "events.divide.bucket-fill") +public class BucketListener implements Listener { + + private final StackMob sm; + + public BucketListener(StackMob sm) { + this.sm = sm; + } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onBucketFill(PlayerInteractEntityEvent event) { + if (event.getHand() != EquipmentSlot.HAND) { + return; + } + if (!(event.getRightClicked() instanceof Fish)) { + return; + } + final ItemStack handItem = event.getPlayer().getInventory().getItemInMainHand(); + if (handItem.getType() != Material.WATER_BUCKET || !handItem.hasItemMeta() || !handItem.getItemMeta().hasDisplayName()) { + return; + } + final StackEntity stackEntity = sm.getEntityManager().getStackEntity((LivingEntity) event.getRightClicked()); + if (stackEntity == null) { + return; + } + if (!stackEntity.isSingle()) { + stackEntity.slice(); + } + } + +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 09f8d819..cfcc0079 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -142,8 +142,10 @@ events: divide: nametag: true tame: true - # Only bees now + # Only bees currently. enter-block: true + # Only fishes currently. + bucket-fill: true remove-stack-data: # Should we remove the stack data of an entity that was unstacked as a result of nametag division/split? # Setting this to false will cause entities that were nametagged to potentially become stacked again. From 24d059643c93ff653e8d6789b2106807c071ac80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= <43724816+Aurelien30000@users.noreply.github.com> Date: Tue, 13 Apr 2021 22:39:23 +0200 Subject: [PATCH 120/295] Add VillagerProfession trait (#211) * Add villager-profession trait to config * Register villager trait * Create VillagerProfession.java --- .../stackmob/entity/traits/TraitManager.java | 1 + .../traits/trait/VillagerProfession.java | 20 +++++++++++++++++++ src/main/resources/config.yml | 1 + 3 files changed, 22 insertions(+) create mode 100644 src/main/java/uk/antiperson/stackmob/entity/traits/trait/VillagerProfession.java diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java index 469616a2..3c1bb7a4 100644 --- a/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/TraitManager.java @@ -37,6 +37,7 @@ public void registerTraits() throws InstantiationException, IllegalAccessExcepti registerTrait(BeeStung.class); registerTrait(Leash.class); registerTrait(Potion.class); + registerTrait(VillagerProfession.class); if (!Utilities.isNewBukkit()) { return; } diff --git a/src/main/java/uk/antiperson/stackmob/entity/traits/trait/VillagerProfession.java b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/VillagerProfession.java new file mode 100644 index 00000000..b4eacbd7 --- /dev/null +++ b/src/main/java/uk/antiperson/stackmob/entity/traits/trait/VillagerProfession.java @@ -0,0 +1,20 @@ +package uk.antiperson.stackmob.entity.traits.trait; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Villager; +import uk.antiperson.stackmob.entity.traits.Trait; +import uk.antiperson.stackmob.entity.traits.TraitMetadata; + +@TraitMetadata(entity = Villager.class, path = "villager-profession") +public class VillagerProfession implements Trait { + + @Override + public boolean checkTrait(LivingEntity first, LivingEntity nearby) { + return ((Villager) first).getProfession() != ((Villager) nearby).getProfession(); + } + + @Override + public void applyTrait(LivingEntity spawned, LivingEntity dead) { + ((Villager) spawned).setProfession(((Villager) dead).getProfession()); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index cfcc0079..861a9856 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -86,6 +86,7 @@ traits: zoglin-baby: true piglin-baby: true leashed: true + villager-profession: true potion-effect: true # Prevent pregnant turtles from stacking. (**) has-egg: true From 7eb316c467c032ba6e409de1d1e6e434ad6d988e Mon Sep 17 00:00:00 2001 From: Nathat23 Date: Sun, 18 Apr 2021 15:57:46 +0100 Subject: [PATCH 121/295] Add MyPet hook --- jars/MyPet-3.11-SNAPSHOT-B1627.jar | Bin 0 -> 5812310 bytes pom.xml | 7 ++++ .../antiperson/stackmob/hook/HookManager.java | 1 + .../stackmob/hook/hooks/MyPetHook.java | 34 ++++++++++++++++++ src/main/resources/config.yml | 2 ++ 5 files changed, 44 insertions(+) create mode 100644 jars/MyPet-3.11-SNAPSHOT-B1627.jar create mode 100644 src/main/java/uk/antiperson/stackmob/hook/hooks/MyPetHook.java diff --git a/jars/MyPet-3.11-SNAPSHOT-B1627.jar b/jars/MyPet-3.11-SNAPSHOT-B1627.jar new file mode 100644 index 0000000000000000000000000000000000000000..9afd98b1a1e59854fbf54af15279dddebbaaffbc GIT binary patch literal 5812310 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 pbQb+@P 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�an_(CDsk$;`0TnrcZ*vn=dMQa^xeAm2 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

Njf|4}kH7x|}Fl;ZT+g+nc&VVgmdoaS* z8G@{rQP#AwfQt9unaRVdt^s`<*21PvzHwcB>w~U1UQ7Oso7NTMDFtt|unL{~ZB_b? zaO`M>$4xff)8A*a-`XG42duNlx|6QE-#xZQcXrtup*_MHL-7>{Vhw?zEIBOvK`(4?(NQ2+xY) zE|?JJ2E;_hJ+~9^_+04$Sw_a7{WnhHZ3{+_5&rC#6!QeTie_QcU>aGmw2*La{)SGW z=Q1eI@~wJi7TWBF;0i2;1-lVDth>6@T28uzy$@Ei#H@jK^2*pAS=6E~mx*h?SEbaq zS2?f6^^4Nuqb_gS3-u^C9EqhDA7NZz#F?xQ^47jK#~OFbNV~3Oxo6(}o>-bSvV3)< z{L!GTC$Ikm7aTdD3y%hWxbkfu)V1qHOiP}m)2lW7IHb`vRTsX_a64)K6xlquMaDEn zhJ3K@>cng9=hbuaPlQg5`F)_7{P_AQpIEhVuYGh*R@d3oGUB(+@;gcUd6Trr=9m~_ z;Gru22LW3?^^W@Yo#L9nWhyKx9yf1}s}ic-qY<2rqMQ z4M>|V4;tbcW&ABnX4?bkyko zhkwa+6*=lvuF+Mg#}69SUhddgtsDeV0!o?1wK>Cb5lX$!9cn-*W}rB;uUNotE6`%A zI~Dd?=qhTtK$BS2oz0sTn(`e4U_sEKL2Xm|PVy(~Vp!&Ysv@i9&j3&v0d<*LO4vFS zT1_QtzA0pHG9|+tk`?jXlr_PhvYC+O&@Hn|^?jt=n!qE%^O5PFlgVt)Ld~&VdqYnS zd&wg^WWD1h?0Ir+!*v;<6?%)0z%Ukf?@OSFcjNTHM}bU0hc>Joj0-5ghox5ju!Y78yT*1!lRJ^n>k({#KNZAHnm&u81R>Po{Lus&gQ`ze* zjZWX-jUrW8dwpMm5a}^{1yM1*VEI||+aLLD!d?F!L|ZzX&$rsO>S*TzQXO)9Ka6X3 zoyP1G>1U{1(@b%8T%hsnGJ$Y^xjjq4gj+WGcTGYek#nYX@uz5CNU)z7amo%T#X8{2 z+)Xlla|M_*&0ZDBbzPv0egc9eRNDqRGgZkP60NxPAd#k4d*p9biIu`7C~+hJ2`aXQ z_6Vr!$`R4V33cjO*tX~)XfM}lnBh0|#X|J^zXM-01?mm|1{~LzXMP&oW6tdWs@d2n zJhP5dWmLfVy7H8$ZF^Z|fo9Eir%x8>o@vfAuOr&;n2*cf(6VnhaH2&eaifx>8*%$s--7&Q>*o5!#u>r74- zu1gJcdIsX-!Mvs2!8#Jo`uw?nGotwp7;xXO3tY%7>?NOj*Lqj#ACpc}YotF2v1Abskp2tNL|Nt2@T|lMk}C z2ixg?Bk#ETdBKU{5%z)q3f&ZOpt#@xe6Qz3QT*l6QHy62em2lv1CMVU*3+QZ;|nBEh&w$@pny`8y>>r;4Y@sAhG!E^XVExya{Y}%wH}o0#&^u) z#uKp1gG~F-97|hD~GF^ zBr?DK6&I~$su@Ch^?U=H6FX5a@nbg6(6Ap-fRDNW79pRG#J}&~;!M}ysPCM-U`qB@ z9Ud}%)gA(AJ$buV^!jk<_#XEiJ>n>>2PNa{kxe%i>yjh~b!e4RaJ<~t;V{HTUeUV| zH`d0D#}$a74ut{H%~0%*C~2%Cm5$j{%R}495`lL|4SW#%1eAIiDur;Z^(CQi@hSOY zcO3)og#+vc7cOoXO^cuSU(wF%CG;7P$>A!a8i#y4aF=X>F90Z_k-E_1o$%SiMY2IwtYz1;o|2^Pw%Ha3%2?M$>c1{w^Y; zqURdZy~okBYcSqmYuO=Ig?}(JQ6ZPeDc}K8Dxq^;+1HdZXy#4;j~#&|v7%ubpAeah zCrpBf@Vmqk4$1EeQ4!a%gUWtC$iknxmTe4SSNrt%7ZFLqYaQ^4wr&$kDyz8u!|jBQ zE;6B}0b`otTs6ufRg>+u9!S(>D}U>T0FENmXA(qFOh5W`vGyS@gK$x+o=KEKiruOv zS&cC2--SyBk+;rydDjKrvZbWiMyyZaLpP{DB+GRSp8dJd!&f3AqYLg{4{f7UKESPO z^x;Vg#KuvSIE)HNdO8D={$s{~_uY+j+1I;ILO#AlxHHXh!&JDNQ2y=(@aaS5G8bDO z2PBxUdL|fz0;&yX@SuYtq@k}3<$=zbw+_ax`c2gsALn?TfXYmlrjidVoOPFnF{GQ% znyllRru1uvFCujYfa*b4Cp0Gjb;qWHk%eQL^d%hPA|dWp++=rP6^; zf>6I3>pAdP!wHkUPu^KH@prVqI-;lI3Qh*{!1jY*WrFS)7A}GH8U_V;f?>L+H>>A; z{~h2iU94upfDFOk{9klLB&9EE16bc^hajyLjqaBHgp5^Na&Pk@cf284MR3V^^G5D- zq-$IpKYF-kqTW*Or&o`?6s0R5=%8lqfFwaH@kp!^47e8{U8dHZ^~qrTme5xb4adsh z4emw3dHObz1cUb!(k7_#!uvj|OfuFsMerc5F86aoKADnh{SO9 zFpUVIjHt*Wnx5EzrGBFEQfQeFK5$BZu3+>ZRcW#{?V!xGRp)EbLpm@t9g7?nL%YGC zJ#kW0+H>$yn5*8aMvDBUS9XHI5-J$v;YnwDxzI)zZG1=+4djT2Rk}!}Oeq%lr+7LS zuatY{7PyQYF`W!T4o7vZD6D-~wauxc#8pNf!Dfij)hP};)oi;cI8ev16T_;8GH(dl zH1v5hsTc|do$tvILr|M}z`!`KH2 ziVA)vm-)=N41t3of=M@tN=uv{+Eank#KPQUV~h&~KYpXx34NSVr_|b==4_wgW98Ks96TEAbDpdAVd$s%o-Y`~w+wlO}pe zwBt138k%{JN_yMPO1egFD5h-J(lce$+~9SK+Z?&JS(uX9#MTZKRg98_Qz^QlquE z)20$}La^a%>>#P&fxSc--D*B84$Pjc(Kv-@s$yNvUGyN_7vc{Y&_oW}mY1?CL}_3> z3(imm24md%tW1<|JUL%_b+-S2Za^!>plt^_xQ|U1B}tQXh#bIwA{2^1iEI+RhL}Yz z??NLSE?R~Q7zPo=;UgqlW5qDLiT-;G0^1$T6l&sxeD8HqpV<7NrjG|S>qIvl2gs+l zCB6ygAP&B#l&pv+L~#Capckqu-?0@#QJ?%PLYC) z(@E#S4T)^pv%mmgh&q_V6u}Rq?}5N7`cqDk*^|G|*u*2gH7u~;n7f*CffbIhNtrM> z*r(Az13p zJuU9omLn>VqKBY{tE^eqU;{OL|RYG(+t*7 z@A`MfGY!8wIHD)4Pgn(#=tVX2j<0zbdyeMP_h6hsY%k3)c+-|84Rp_2JQeRI_9p%C zoRc(qLBV{+GG0;5oL~J^b4TJ(G|j{xxKYUx-Zyc<*j?wOQEHFCSIB2XnC|@B!YCg( zrWxL{;aLiA^Ws&M{TJ-NUqu9Jp7@jC003G4j52bPK)^@<;Nai@!OG4G|BN&L=ljR1 z{l8r_Cg%TPp@~-2w%HVc^LZt2xsL=QipnhD(+>jt*PaQX*#gh`ccB2*(A*%peT%qF zvO{Qo^9-upk7mU-6@gmb2)SE~z_jQ6*X8Bzj*|y0G?c=JWE$D?StbgeRrSa zr(|a6xJsn>XZGNAsErV1p7aW9yB_mjjzq0nW+!fCT(d;|!C#vnmgL*&Syg_etg1mn zRcAXf!?9h93iXX8Jxrd~S0SbmBKfZY+ygT4X4-9$6HhmaBKmP^2V zyV1JNad@_U$Mc!cw>z>z-m}B~s^7FZvW!b6agftLQMmB zmqSG4@jwXu>oVU|KEU`n6>4HnN2ABfNA97oZgQ>c61uzTvgx=GwmE%SB>^|-6D&8j z$a}K6#V6euF23SM0V73V+Xjt4>trzE^F>Y3$uqn;e$+?g0gFKtMw%jZ%T=b`m3egJ zQ;@rwk7MT=e)yY-FQ);XlqfH>enrR1jXPAGIT!~v$oAP2&IfyigoUI4vURRKFiln4 zG9r=HP@jwBvy@hl)0-HbnG{2Q>4v_ja=`O+&vmI4gv0HDqYu%*?zHM=t#}imn|w$- zVrT6gzY|i=h~8!cx9kzCqqm42NnIg~XzP&_;*qNW4XafX>lJXkVHtCm#| zJVv!aaxnShinum;?@4f?{u<=OC-b`y!|Ub@Cg1^$wouR{0nyww7`~K1GW$7%x}V&@ z8~;Lrhd)yKq z{b^2qJ`>x;!`{dO?y0Mp3*c^a8SeaW_^RUfwDkwFsLc*ludzCrdK7l;r%es%Q1ts7 zo)5>ZdIzYvgedtYH#^(KjeasT>b{88b`sNN>oBn8j7Y^J1&dLC#+l9?B_R;eGRTvd zj^UE?B2r*b_>q;Aw<(gRN`L%-%ihdATl>P2-_fDP27S&haR}Mhuu8Eewf$j%KTqAQ zIqa6Kf4w*ISb;Wy`s#{iVwoh=epk6>LhR5D8mBrNY&SBa5Hk#Ij6OT!~P8QRDDy)gzdEzyG>5l%mbG|td)o^6xQvhrcF)x(U>un)(|ePtwvtk z0_nQ5W=KRPkUEZnkZrV0Q<00)mxq1hvyVEFjylAv5$Kfb2AJxT{1n6s$tNglRJ3Mj zC-2ts3iQJ~wlu!eK~_vjzXnb^a?IC>=CT zDEqI^&}rM?#kc4G(WzR2)esUO006?U|En9>_&` z8SA@FTR)_jJ5z30*qt1?7wrsISSkkksj8)ca0p*DO2#8PvQr=C6EV{dv5hwuiF$lF zKEEJYNO}vOaE=8mu@4Y52plxZ9L6MekKzMq_vZck+KPhxA*kP!S38~$sS;ZB<*Z;7=2Z*$qkOhiKzj+pHDVN?DjNc+0!IidDi-s&KTa zDQUBS|1Pg_s!q*5e^UwAJW{pCV(Dnv0Oh2>H#O)W-usIF!oM%TRvy>}(NDq#9QUbr zk63|qeT2vs5qi!=hVnu|#Ybk?P+F6n0bJU6{r!RiOjYz~2LhH%VBwM@(B8Kj(3F<{ zl2}MY#!HOz^`g>&w8b1Z;VLjk*{L7Iq}Dz;>{=K0igaXC>RC25UAq1h2oXMp2MB^* zHqeeKjdkPa2KA9Ge3a)OJO)_x6x0bcFsp8pl?WNUNW00I?hhMO$P7-oiVl9bO=Cy; zYYJ!z!D1Fmt*{|ga%yBPB`!4kwyD{jfTY<@KXL2Fp8DHA4h8`%Y=dQGM{o6u<_mv` z^s_C{LEb7#?6E*=mmv97@iY#<>=7Z~UggVC zaHeg(GX1nw+<%M@4oPlt!Q}TP$Jg~|C;!3MBcU&S-pxrm0$Ap+bGMwDa+KO`!OEm= z%d2H9CApNiHyM~~Se9io`>JHs@)m6oavDH|^aQF=I8w=oMp=xp|I!NT1>rq!G%Js- zt#(C#VIwFgLgFpZw4sPW?a-bd@YkCM*WQPZ^$*a4(D{E%w8!Z(7a#6^--8QXUk z4yb!*9g{ZF!cBnJGlas89bWttNN_R?qJsux<{&q$h%o7oV^0`d;hSY!%E-%`(vq=U ziP%_w8%N^hjsz}>;9FAd4Usp0FIxTpwovGR=?x2TyE5Qzs5VR8r2Lvnlhd6n*%H~b zsFTFq7Aw)bgOPB9@lXj@Wz7e?q8_hP8_Wl~WndIvv!FbX;5V!@<7yF;#Sg|PCS1hS zPT28Rm>%z?tw~Tpk!s4ps<_~x(7Y=$Ly3v>!;AStv^>Wu(sPJM8X%Y@zv5nEBRXy9 z9;W{hc)FrO`%)#kS_N*7^sv9O*wAvS6EcdF+fhe78nc7`3ONF&Ha5U85p&;F`B)6b z;c}szn0qi|F)lw3p$|tvE&?M_R|V>8DDJ2v79IZ)Nxw`bNFy z6mVX#&FIeE$c_UGcWH8*(hxXsJ;a}BXG!E8Gw{xxWK0>FeaNU2Vm1i7@RO8w4H&_b zITQ-*@jmS&aU2HrAcD`8;^{HyXofTc(QP!RC(I6>OKyN5(7$CNWIIbpgcsoBl9G7c z1LIBvAmWK3MwQBjpwDcAHmeojhR=HriLuIfGr>J6V~*LA#NLt1d7&->P|1k%O`II5 zc;8CswBHs1&WrBZ@L)6cEZJU35sX}{a9jrRILY=!@sx9Kf-n?kX|TfJK#8_NY=fC7 z`4|GD7(R11PaoFqz->&VTU)(FK*RN^Ub^B3{6`GZ<^82dB8e1a7T|4ujFn#}{Y0ai z$$~mCa>(b69D=hZ>0bqk)@-Nt(w$Ho;Xro%9{MppzG@^I9xJ;=(<54ysK5!3Oy?XY>jtNnCR>3RPE#Twxju=xsWXKV7kIq#*1iegiV}a zm*fagMVCUQ>NX~z{)}kApT?idv+J8hdD7@O63?pNH1WHwac}R8C<$fjFxg%~PzYHd zx0$+dZ^^GQI!X*qm24<$JGLTRZ*6qNJAZK2XBcqMVJn?6#*H(17!bU4V0N#@=8sUY z*Faauvo21aI8jw`cLn~S*x!C;?&h-y504i*iA795InJ+kN%xh+OHeHilVkX?QfnI% z)rPiEO=;_-ea}6q1uE}wo|>z`NJT?2+2vX`Qa*8T znHeOe`CvF#ns{-8Uh_(1Gd=!8ULjY8rE0%=y|3v_3Hv%6aZ@es8#};9WoeYrHLFY* zv+_+J0GJ^k4If(o*O2JR;H3p2g{%My$I(&#coAkOA3I~2rOxaZ9E;L6bu>QP*mlzN$>n!Eps(MGQaY@bC zGHJYo5LaN3f>8*;7gy%24F~1V*$&PtjV7K=O&IVZ@JlWVtEFT?HdGqB`s=ZA9r_Z- z1LCCMmO7fu^m-R++~(DZMo7pf;~}RAx{{9`l7WnLaq*xfDFY2-7RpR`fW8!|2nptA zzA@BjQI0p~OLlR6mWaOvw!Z?dV>wf+Ecr+&EWtE|kQ$m_Q1wK<&G~!=D-ekrRRS$P`U3v9l-;m_XT1L>WrP2BQr6t) zKcsB4mZswtOM}mBtsYCWvP&|zWv7d-R=%uwiZOeKn*?JFW#=iEUdSBW2?&&!M0(M~ z?(8bGpKA=!Xr{KknBSQV6Nb0oBJbDT>hI@GC~iRbFU_l@ItcEA*lB|j0W8gvN|D3G zvY-E#D_J|7F|rp0f&BPtf1)mpYz}CxPM631*YV^jtDxCXsBV+kgt|A1E&2*_FDSAlxuiXa)mW4A!g<%H-j z89JUfOh?;bhZ;W`l!S~|8N>2QrOIt41q5>n5u;Eut|quOL1h6@OQW%99#kwoMN_?e zyug_Cs<8ld3cZuVoK=z-J`xs#1HJLZbpOic-GTdNH;UlYnj9R!eBtW{R>v5bi!I{jPqjPkDc z9zH$qwfZ}-w;{~@q$vbG8RNvTz@re&Hon zA)JUHIwLwgfbcEig$K&+XCj4rP+bmtp%CIfs(EuR$W4q*pJ>R96;dhsGRnLDq-3v! zJ8=c2AQNPhn`Olyb-~cobyK8aU$v2zPbB(*+{g^cmg-|k)-MatO)qGPbDTkQ zju))=02a-LeP@!UrTIC3i|X%Y3jYhc6i)-pBXj^}1qD;$_~Ffg@-}Qt;o&Q@ z4SoepSeQuQK45yIWe#Av$WLhW!2xZdp>{Jx?xRrf3EIj)rapWZCg0)%#sG+voxGQ! zYo$VPknU2`^CYgl=sTLS<~1J_`7k)(hQ*-sZHSpnld7Ok0a@}Y#`~62UKLZTYd`Qj z=vjvTp{uJzk5k1n5-?E+l=VBXJ*)z zzyIaNuH*>m41(1}1q1HbLj_IXN(mU4)TD3ZS!GBr$b!3#-U>^g-<}K_8NBGXtES2h zXkt1)&CcYas-{z{7;+1khU%wG7Zr6ipz3^=K~HWzt21=5hyu7N7?g`(N2g5V9T;S){-kxff(jD>T=>XSa`6>~2YlzLj0ka!+tJ zr@(wgpyUXA-zFYozZD-R$3Yq}EC~l`hYwq_?hx2aaf`78j4$5b~wD*Pe@bA>-%{@=Oa@(lf9Pk6f8#0n`I? zyt{u28W`Q@&22J(zKJhV);+;e!PcnuiU96-$AQ=`>(B#>m2EoW^h+e2O6yWdu`eWT zlH;lU)IW7sDhZrim`CR?tR;s858Rjrf%-9toW5F>u;1@AK^inGb`17c#uxM^=q@8z zTr)2iem*M*Pl=mY*BXf3UsDW-9Z@n@wR#S}(CJDG&_2w}H#;oV4+Q$D9Z*E{@{bA= z%1N&4p)a3ej3Pmv=tIC*Lvke~9LlwBle z3Q2XZL;UB3hNrHwQ7t%q!4pZ7)=J;*9I%6>LsM?Q8i73Y@{k`At$%4iw~5-UFm@iI zivr=W0S0yCg79U8MhsT?NUpbum|zBKFCCh|8~(br?Z?(jNlpGGq=-w?8o zajTL>_22t1U+~7T+w>>^#Yx&Y^cE&V?KAahsU$nlaG-E9VQ%JY&fT8*x`L;!yG&4= zhnN}OSgx;L$jV{QSmw(_9mFHs;Pkv=m?2_*(psIvtQ9k%6URC6Xwbyw z8P;r9T63)(UIEQ1-#TdD8eBr{gxYB;{wX<;J6t3hF~w4S#-8w;e(@_qhvuX6zXWg% zBuyqR$#ki=V;Feup>nSxT z&0vi1OdT^9w8i|uxU0XsZpJ0*tyotDQY!Tqq1t7`wSuQ}K;1=AksH03=k%q94PZ-m&yRSO>E6h?7%2w(Bb_7SwvUwwg}~4J1G)n$@cR4AM$JuSAgvar)FBp^z~0fZg(`D zOb%NC(;42FmUFHtSz$N*&?t8Xv1=~ilV+q%HIdWjon9n zk*?~c$qiuDsu>a(HpEW-pg~z`a3+duNF8wBS=DU= z`JWvrp3nGm&ZogXaiozVA&mSZ=4hFELhb>Jq&VkFl_@i;vsUp_c-%vUxI|*zgl|Yl z^uYf#$$FE*GyUza_ObjLrK-Nb5o$xGUmDh^Ei&qXks0exJ$=hGD3(6=naaP~qT4jE zM$Ce!HK$f(>RmewkjKAWu>^5Y>+O6vPIk3Pl{JEhC3D}w)Bk4+E9&r-KyI!ECv!^=k~ zo=jU!KlIvvM7jY!qnowrF&wLZ^rDvx#*)C7D&8UgEr}3%yKQyc~0nx zwiPIjE=`K6!ubWf+t&$#!W0iy{V=urW`Ubo^+yvUaFOc%_k=~w*}sgL%XtYJKGFuG zMl?Zt@NmA$LtHXv@mC6{uR}uwTW=n1%`ZcTr?;|@<0IUewKi+D_b%rDN=E;gVHb)G|W<%;?RceL*DWK1fbfpq@xfBF(##=U=A2+@Nr8L7U zP^8i&Mz0jSCC5U$ygq?M&#oZzFvSaYmoev0z;)941{_%%3;=^_4Ufe=i}EJ0zqy-C z#G-v<>;Mrqn17ex;loZH3FApty}6p#o$r-I50a|)%UABsWNt(@cTdhs)@DF^2_6tIPbs8jIO$RH zcsOFgDZdgXKQnEu==qd_4X1uP>8MKTd_L`JbPTuyaZJk?%OEA#)Fi-3A*s4PF+xP# zUIn}X!d#vzt`WVRdxs3FXlM3(>44FG5Fw=8OLKZ2Y2=d|&F-vThe~|cY>le|p_T8< z^_tDYqPs&erNy?qpV817&P@D0Ud({xJtOX^OZ%9he>is9X=gQ&a6 zPEe>EH|x!?!u05{spONg1QKk9rXpLLn`Kd+oQs7aR3vyc)5465+tM_b+S*D?sFx@E+^P ziyOw=m4-9|^eW-1u0<@gL>mr&wUf)5xd+>- z@=vhru0u(oG`M>VSZ$Y4TNIp{D&((nvSLsz$}a{^p{B%YJ&XJMwRK%JpP_p?sxj@b zU;$4hMG9CzzHLd&E!w;x@Q6>y3Y*h4t7-S$DhM2+;6BWTRY4R-AZr{@Lw!hPcW*A* zX-_%j`;*x{AjB@V?E4>+F_PnpQRlMPKbhQAAfs4I_55ZqrD+Z_IYkGM*D*pSe5pw=wGJ1_nPR3bxs&5@edJg@%eX<{IJm8N z!q5?HChLYnYjaCJ#{<`E4td{fRy@A6)Hk_9HQGD$zHCeh zq#>^z`mEck2-fB5rQ2Bf5MVxT9|0eg7A5t2JtY35b_`9r-2w(A)~|9b31s;Y#-psz=b@(GLW)cBmV(OS;!`g2FpR_r0& zc~xRFS*Z>B+j-CW@U+}N1op6dzX~pzset)|K&7?uXXDSul*_eWI~BW938(YnMs&Ur zg|_t|{UHweHLtO5k-?JURi=9PxWi|DG!~8I-ue&b&{$yFMP8hxh#=q}8b+FkxQf)O=tYm?; za4fFbF~vwE&V6q?&-%Pq)Q0;o$3DTk+ZVu=7QR}Gw!&e&pLP;m-+v`2Y;wuhr615c zLj7{RddCGi+C-^j#Zq7Ddo{whDw?i?I39$PE#U(rMT0FoS0mzH^0v(buN`D+*uc-b zv=_p^(pUZlP%F=;3TPgu9x7QT%mu;lYemX~$1ZrgLG!yPdgDemK)hdI)U6@!h)H~a zL0KiDhWF5A=}VEOIYcWIDSK7bkF$M+uS-{sX~u54F8uk#qUbfBms8(&$7YW*oxHO; zw`tc1cL}Bzd8jru{`ouclZAE$Q7b#5Kz7AVQHZ_V?^R`|6h2 zSGi|qOYu3AbyisupVRJZZ8;U#iio4RiNDB{QLKl2r^(aY6(r{M`Ui0RD~wD&F}@GN zo{z7~2|ee5tOSbfHp1RTD|nLdl55?I#Mun3O7X%s9~a*GEE3{{I#+$^Ur#RB z^8uEe4zI+br>Hh|@q|FRSzdHH0O+UQ+D0oi8L9&`p`aQuX4g*xB73w1!Uy zxm|0i#0kD9!Yuo{vMw?{_XBKZ_7pdb5d05*i%-B6vhp{!_&H$avSO!AriOyMu+er^ zPO+K%TG=uyrrs?Fe$}8+-ij94rN&kfo;_o8gNa&?XcNOB5~jJhi$sK&BhySFx=Rsp%K9x6qu_r;a0nI>w=475YZu1 zOA*QuBj;@7t6B*{+gnh}+*VulPkAN4+U`@PrZzur(hb6PU9qPFT8+i6&y(yXUd9|i zwDm%|(j6(3-T(>ZfR#T-TG?*8%y-aXDoCr%ZKw#;WW z!EXB|XSr<0U!|SmEc|O&CjxKk7U$Y+2?VRsN&32>eT~uX*0V6%>je|K}8;|L%Xns-Ohb)=>u*gLGZJNwpKg>m3eMa#7?{lZSQ?u#pOEK}WeJ_=MUL_s{3i2Yi?4 z{w9awY-?NF$V8a;*lG#jSB1fz)CG)08D4kuh2N5;9lx&NI!}#LeJEVU66KSee0%In zr)^do{vt@FUM6zT4rXt$W5}UTr}oV*i@Jib`yu1TKQ2{zMSkJ6ZL1};I+dbqCX=qw zVMo=Ya~SWdUZ1iUywBuDW>oWh@J2+Fa?jR*sSYN^1AA>W_}PKRxu(kp+Xl}@Y{~X$ z6zR0+!q#i!7xhrCr=MGRcDA09sPjSQBRCP<_jUEa1pru(`~R5`{vWuKhncRE>wk>X z|G||MF-2Q`b9xO}%Bv+R!fX<%yFDk9?U7p!*<7uq0L3XhZ@=lp44F{PMK}|r)~c%y z^!d1g>HzPX05LbYrUdo)@cMkGlxGhWe}X+bWM|Ea(C@_#3MQmppKh~wyg#}+LS=d0 zqknlmju87lZ~0vtvk+`Vk(Fg821>0vkmMC2N+jxMgFZFXBF2?#A))qNPXK?mQxnMd zKZS%O##w`8eLd_>8TTt`dp;f>X@8#HQ-5_n9q%pgyRuSwqDV*WQ8D$$!sdui*$V$l6s2i9Z? z(Kkzt)sEs9C#_G>4*s@W7*`kGgrqdP-eP_;54X$DmKD%^=8T^&Qeos9N(wHrYz2z+ zmze|6a?RvmPjm5WGdMqgB|<)7PEO`#!NA=m82t71ZM?Y0zYN_*N3oc|gpWHIm?5}t z&(GlFGnuk5zOw5-D$w`*bTv3*<3&sOq(I?bPw=-e%pv8Vp*Ld+LQJKw!L`M`rNx=Q zUkADas~l$T7bVQB)tK!+*S{Vg zT6dcYR44%6)2V!O^(fi<5JzUP_3o8&G(Gs8f+GgJ>RO0BH**H@ z|NgXqPMBt!8~;e}&|}j@tGw7zc{ZM;#-rJS>RH9wZGZwVMdLU zx&&U(R5GY<_DW9~H$^jilisLP-S-dA3CBl}ymIX6K!tyq@2P+g1#b*qVumAwk=Q+Q zVAuX%l$~R9W?_^?W7|$T?AW$#bZi@)ys>TDwr$(CZ5z{5^JS){YO3Z>oO_>r_E~Gy zXeMQJ+K;o-n{ybHmN-JpWqlMOA8KMH;y+vZ0`FJtD?&BPX#7^>RE0KzmuZwL-%TeZ{eT4=@@%}OLF*A8) zSdgqssWlqRR{ES)Cz*tJ>?%>ZX6iuKh}$RXZf6Kplc}t6#JEm-5+wA=5jEumhv>y; z2Ag%H&{m_TYGT()A5|WG^3J*5OClKYGW*DCw~^{6R(QvEdPKy-DZCSlwI$dGR15Cf z?~xgjq@!&IuDBFo^?YLoXqkLSP$4(E_V07X%dp|IJI-4HiqXJTo`ZV7RrJy$)~aw3 zNw|xF!_=y~NjDF0q9dc7T#OFxg*bjE@ksrMOJ$TQCag6x_H_J1ww~Nc%`fWU4;#&S zlDuIoYd$25AhVAkl(RGv-U8AM;pF7;p(<+19?1LXN~+M&ui+%*g7oA>E$$?B8gOn7 zu)Q#h6eX!u8_U3`wLGP@P;=d=ID(2FI8W%xM%G3_u@XtsS%T4T$8`@%&xGRfsF+`l zai_ZC6*1oSH`wY9BcQ}Vo6%bxa^y@h)K*^*@0-%ld@4p;h)cDR{o4XKaT&XGkpSx9 zca&G*kkiGwCf0<++KE;ZygF+#?4 z1$VC0@^NY1L!;IO3iH@3M8Ig%LXu4q!vo|bA>R&y=O%<~INq-=7M zD?6LLWxY$lrf-fTFn}-@;NA+d`_4}3+gM{Y9Q=u`0V&0d^@PI^4VW#-R-o2g89={xPoZ zDzA2OmT%8DY)`WB2BOJc9@l~G(bhs|j%trW1kNA^BsY~z0>u_aq*D01u05X%|33W{VI^pH>%=apM z^!x!4f_m1Fe~m<|;cr|qqJ{P8v?0#rGtW|X0=on%0FU&yK!W&sq;X0-j5x47(6>RC zj%gfsL#wO{+f+BIw$4Z?1ts@Wnn|kQCR2+LldzaA@M^G40B5V-07w~t@f_N?jm}w< z_+KwH?H7~1I^7XtPCuFB{IjZ&%e~M(IzVkFt;w&TJw96FLs-mv8q!fulItu-T?-9~ zhrF*Q#rjZQQ&T>CX?fs>s_8ASLn_jp$aMwlT5w8$+O8U%2sJNi!;9AkFJ0& z4w|?VJh)()c>%9x ziU7NEpy=ql<+^?{j=5SJOpuWCuM3P`{VHu0HUA91D=4=lPSsM_F+8k^C6USAS+l%? zs%hzf2n}5*P2gN*tqtOhhrg5nCl(3)&|&SItencqOLU@)M#$Jh=RZ`zNAs1vYAedN zU~YmSXY$Rlmbc*~o(+W}SREwb_WeY^_7>I+kIjULTx=W~Ah0$KQbKRQ$o)?5=TMfE zI+4)Si|6(8mRFD^Z;W?oh`!SOcue*_3}l#W@LQ5e?=1px<8YS*Lp*E4Io>4^{M_V6UV2wSCqy{l?Sqd zFo?63zd8)jkl^!Efx+ett4P5B-q%25NG8r@Q_0SBSekXYuCO?;79fujQ2FyoXz*xU z7km;`Vo?g@A;gjYs29P=K-F5+M5~8@y4W8UKlpx-RUP0K+bh(QhV;WVz37ixRlk)u@cdY zU=7dEsMZ&RA`#eyUEn{qt#ul4mV7kbRm(}^+_Qge{=*5O|Vm7EhMZ7#=piuH?Z5F}G53nXCyCKh30 zH02o+B$5aa`i`gjsljv6%~w1;Wq#1-`mO%xxYRH9rqMsgAjw_{G^&XUv0F{0D^X;~ zY&jMwyv_9B5ods0isvy14=3*uoorrcuVNo~!7dj%M;u~u#Mry(XRfxNq^!$aG(29G z?3hfMy7dyio*rakAN}`_N$_VzlP8Z9D71Zn_{>#M%HIj5gg=V8QnTh5&-6yq04OMK zgh5CH2it>lt;ry#XU3fl3JT+W%4-XS5g?wu`lMST_6he)j4T$`)kd5fvCB5-^B2X! zO?z#4o~NktBJO$!ID%C0%J_+)q|=p+QGz|yNbjo8PD#Sj z4tCrZ<6%lE#nSC}mJB29{$!}|{ead((`)~#5iIEaCc)Cd^zVQN`Kq}UBI%mdUh6$; zqV2PAD$2Lxkx!eQ$np;U4r{93rI+%<>>MzA*bU$p%0seLZ9N;xHt@oW0+n)Lc_I@PR^zK3TQC&_x_xmve}CeuFU6AyYyB83}XclhAmyovDxoWw2Ra>Or?7{=f@7Z1MKw(8+mSM$-i^$8c`W&v(T-yZ7M1W`J zC3g8{a{c1NHI}b28$Rty&2k?kAfRQa2*ksuw1e_a{g@+l zD*zMO$lVLKW-mCpx=Q8cniC5EqWj`lnXmT-)eoB`6#bVU{|*5>cz@HV5(kwyfdqfU za&P0vbr#4qQk!<6%R9&|hmQ8xVe@qJ6q5&7@1*_0TK%Rv3NiJVA7pTm#(?mmMk#a zRQCY)AE4tP5E#kI~8sAMAp_l{T9SvRtHBadchlK;Y{!Cx+Hlj-Gl z*+DJv$pM$*OJJ5oJl?}k4PjKKMNF3-xB)EGrQ*i#J-a-E%7MtMYag8W7rYpdsfL=C zQJdYY$gNI2RD?Br;+9NFe}1Q|7s|D%G5L4#NFx${+WnAHbSVkO^`0-n1YPm~%Q-Z3 z0984{?ZcRk@eH1-f)UcX6QGxCBfO<|K_B<3@;EXbz`v}1bOOOqi@Oz&Y3SP(?jkSC zGR@ju;e%szRS=o~imbuE=DRPRajla`a*n}he+$An5s7^mtX2`~^+R(g`_>w|lM@TP zPDDejDq-G+k!2ukWvaEI&jvH@mF@$o)z9z!bMBshyJ%a%6qccjYJQai66yo$5V)vA zTO~Gley8nHNhH6;4`(VKu@sQis>txZY|iQn9*X7ZVde)n3)OTj!V%w)*$Tn>R2NKT z(J$n95X&!WD2WG`g}yOgUMK`$J%7O>=axh*w>Qs+ukdWXq+OpkK+WsZqVOu0VL@TFRY=h_5@6|JcD5jO#nu z7~w}DL?QxYGJPSWF|d{m!JWXKc7_&1b;y?kz41(<;JjK7-~H(*00UiGEBdZ#5|(n& zcROzXF^`U1Ec-FAkDlBGO+XC8lIVu&{R!yjl(?Ec?Lc_ZqxJ#ZsdNX={a9Jtowg_V zuxqd;L-34uJMy`&X%xSn>H_5hC!e6PE&y-Yir#^Zmky+c063FC!^^6L^ZuuHj zWo13WHzD)-3{iacd$V2LE6<)Th4;iq{J1Nx962vFVLbY5)r$yJS69`*VYXcXUL0ed z5BfFq@Bv%u`2+YIAq`3P3Z&f-I@a5KV9SjUtroM@M@ z3g5Mr{nQ|@M_=RJsuX?N?qX8<`Ny zppb6kT^+$P)nBSsX82S_32GLE<3$KCRE&`M+=Yr=buSeck-8XV%b-P-33s*_!v&a5 z)h5V_hh77r*)i<7GdnI_5x;i`{~@!@g3qv%Zah{PKLA#z0GjAU(woC#Ykd$7iY5y8U_&$H1$7eWVx#S!-h)k3i0 znFQu}4zX(o0_2v4zoXN+WE!&hvbf*ipCHB(Vl&El!50~oR1?ahNuUOF>IobT>26@} zLGb3KhSgpc=aUdY={2|S8u=64thXtTWV>|11P3B)cpmI9?XPX6uFXtxWL1hEt9Az< zQ;CnTa>PwqXRPkSxyh{?02eqWX!@F8lYCdM4X}=^8nVXy-e!7g_fjjT7?_x$tT%lPE)%PGe#F=WEaP>G#``Fo9r%5_ z@Znb7R#sp)KVtX;^Z4Dv%3)bkeK$)n)Z9e15mWaTf|htaD6)(7hNps(G7|;70x-g} z{TC;JQlFR^xc{%FzV`saZ>TKqe3PhdKbEc2v|-c9w;`$T=&DC|dT;z0+(c3xNte1r z%%xhL2(tWeDx6qvjN>debk9DvuA>vSzvEl^UElH6oU-kUd1Z}UvvU0E4Kod5H_;14 z&Si_Vc=(`@k4m~lX*h^|90noFtLYGwxIw5NTUOSu#RbBR7-Db2aA1?&KPse1W;aY@ z|2`t%`pMR2mFRqHcD+J?1(0s2jvVjg;3_J))ODu!xZTC{1%%YmZgYaiv<0Ky&VTYp z&MRH?K00ti*UN_FVP5>H`oa;{n6!y>&T8Ksp5!N6Dp@$bQ&#EiYUg?ShWm%-WtE`e z8R$8l%*GY7+c&zTN=80w*-TX&bJ6&6>Kos{z$_m%mK4>|*C{!%rPH-sQETsCdLh`4 zwrbg{_kt0eb9xqF(np(7Ok$?FD_egXTi_cza0;at41Q8UowAond1*UKEVA->A7NN_ z2y~BhaJJxG-)C^WF{b9Aof=1ToJG}0>TFlN3P@*`PBuytWx@_$C%va%4q9?i^%q)N zBz{RpFKh3$zwfUkdiVk><4oWlG{o`?i1lrlP$q|O&+9{mZ@b4V;7S7>$ujk0cb7Q# za)qkx;Zr_mtmQA1Q<%(o53tv~NPBJfS9A0(>aABK$SKz=gMCNYd`|=F)YG>M^Vc1; z>($65wVjU-7uE{4w_w*_h>H=`u~2GGf;k6f^D>|i-@oq>aVH=#6hh@vX?`a{}9`|+Y& zwSfOYs05cW32zY^)xW&soa280d7xSE@?7AHOs}e>2i45u3$mr9TT+B-i zAd!Q0WkFJQ*ydAr$XK%nhUKh+c;6FBeu`&DbrYYo}7&3qze>_b}-eE%{Dc8$^tq!Kh29 zVme%1e0MRt8ea@pE=@v;>hfB7YLvLT%B3{cAJ-|xc;^h%@7e|pIBx9a%ir$R#(ioO zX{8=S$TqvX9*Oi~s<*g&Y{gyH!gP5)?}uIelxtamYR8Bbcc3IgDCEhBz197fvIBjzHc6rXR8 zEBqI7rr0ksUdyM-Q0lB#)f>1T|bF^;(70*Kj0f9=+ zKV{#fJ?UBMSX)oEAzsQn9Hvh`s;{z)Dx&lB^2{lsU%ye^Z)HP+QBfE6sERXO{k!tK zbk4#~P>!@iUYoXZvAP$eI?4mL4v17~romZdNiarrs=#^W&J~t|m_Epr+Zftttdy&wR1#cv!cRj(UOJ)F^0FMbstxK!`uZzq73tY&^w?wW z*K^wf0t&DRHD-vU?dm8E=ai-pv^1k>+*BV3B|&>|32oKF2hQ^wu}|?%&VEY7s;?eL z_^S;G+ZWLf4bB(%2ma1De=FVLo3hbM*+Qw9uX%V{7I+6BzH|S19}-?|GhNHqmjKs0 z(L7W3Ca2DAu819hP2aG({0oY*!aITvAD&0_Uj{E~(aqiW=S%##iGg#S^di6(c8fx2 zO03UxWz&#ebMYMW^ozodo;3ei%CDzjh(J(fqC}p)a+f{*Q$u>85})w97~JiW%I?xe z2sY-bI%uRiJW-?O&+=uEcsSnP9dJy>$UWWKe=#MDMLu`$ae;tT6#uW~;s0VvSpE;p z7LS$FqFVCK12tDdI+fCptMB6Eq5?^?YhbJf0o?|4(%Skuij9F)RkHiy7Shb3N?QkT z40IlfROLsMS^0R**{j$d#xrIHeW(z=4(L%gueETdc3bgIp3Z9PLm1^UOQ!+ zP3Bksn5de!J*e##=!@}P{7zysWxcb^@82>Z#pqSt^g>Ws?m3z?iO&OsZJl#Fc^Mzf zn5qT2Rv*l~YIUWAuMd6v*E5gh$$1&PAIzLfm&#M1kO+eS#nYzmzyHGPvgE9De`Os& z`GH(hGr#gI{KR6tfSTf!^3O?xupZuejssOq=6R*E+o6i3oJpK5;rkNjr}Pskuzx96 z0XmFjj9M)5+aaoV+m(59sg~&mwCt7Icm8)*A;H^;pU>A2#1kFC7{?LgYr}^`F`xZ{ z)*4L8N#=dNa`(Q9SVjYT=6yP|g3CBR$I;U8XDYY*LYWNr(T4pJ<-n2&&_QBK=6$R3 zw!=6eYaHGz7e&Edn>AA9(+ZndAlhfJEE34{<-J*17XZnQOd;Odj2UQyulcJ+myI8U z5vc2n(tL)w7=s zY_)wTUE&_}`iJ|HnU+ZXpOsfC^F3*}V&wWC1v4lYd-+KDYP`&)u_u;UJQK#=%lKsr4Cxj5 zHoD@NQEQ<+>3yTVh3i7=cqI1Gna&O!<{cc=n4RYwUM|is__(Ws@mj8$wfu$;Inu#B4Z31%Y7w|*mdl!@g9Fb}Kr9+PVJ_293FkGkYHTb8|F%Lh4XG%Kg zaDsH}zK)JP)c{|NPa1F53Oo=uhholKTRoTE8pJ>4bP4Tv5u6~drhM^@Ki?;7mve0-?u>1bHXrJ8gRyl?IY4_ z-3co5EU$J0w7!le{2&>$dnsOA8hr4WC8KBex-)F5!DS zbW9`HX`yu2$M|wwDtBSYLY=Cf92daxAv97YSfT!_huF3Se3B^CjYr-=rp03pb3;1u z7}0peujKpk57*U>50qL3F{jxr?L+qYVsWFi`JR@9PCn=j)l-WS5XxIGslX8A$8*rp zSA`J5o?F}Lu+GFjK~X=~EKmy4^2fbMk0)_}$9?B^iSjwef;w1w?+~xCuITq(mDJg`?W!qbPv~!ig?yJs%DPubo6^?E4-Rn#lLC4 zL|D1Vu7+slozo+5s~q=I{x7Vy^~^!+F?^!OqhPqp((q3H@VG8?bugweuQeY z{pmXA^Awc8#&)uxDg+%=F;3}K)rbvkR?wd`7x1uaP)aL7465Lf9`@`- zc{dBZU9)yD3kMJ~k`PP^=|UHCWcv%^rl&ocfMja@+Yab3%K8DuDOU!ckVWU1mRKF5 zkDBp^^kF5iT4&}t=^mQZTg0*RScQ;cp)x8z?V|C^+#(eIN4>dO2U)!M0X$D-~Gg7_=glKF;MY z5N{27Q;$83%R(r2KBQBf=s_4a*f7DU1-(Ka-^oT=q-V7{CU9mE`5q5qlT8ykcmE$Z zQ@z$DxVeCip+rDsq&NL|_3?l!0nPQp&c?uf*WWcufHq!-Rs$H1+B;pusS7)yM*=_# ztdxkVcxbTt+mjj)i45v6qlo^LDs*e8=_#YnQHA-bq#O1UNE~?(ZF;)10XP)sZjf>j zr0MSuF`3biwcswpMFT2Jz#c>o_wKmaUNK89;QUI@#pJO%DQp*(CyqNiM+F>S6Bt4$ zI;eG2l7em;Fi!Ck`_xZxMJ1is?LxS0*wx0Zb-o4T6rlQ@jqaPdO?9vXIrpsg@WkJl zLT)8-E^&?iI zQduQ}tKG$f8YiE}u$48!(o&{rzj7#P&2+kNrHUfUS-*7&ioGP|&c5~diDFxM-qO0) zTj_hHn-UoGaVR)pB=DnP51CW>qwDU98Qtl+R}!OHq74naQJs!ncR=5`fNy*!ogtZe zS#WLsv9U{Pin*?IhOj*UP84F36Q(_#g5`C2`C1w_Olvt&MsBKTSDAMp?a+cv^Sa~v zK3Pp28GgEzRU|so4m{jmGuhqDjOFj&N?s-59CXB7_H&$daLweif$8lI&is+=x8bRUQz)hox znhepKf;$1Kel(iSFB$SX58tt~xnL+i{Yu$CkZ#~BBzARgno|v0-s{gGf%L_ZtFZF* zXaM4qqdFUSA6p5g=uaocP8avH3*chxdRSsYg`(-v@ z-kNjT*DTZO(wD1Cyg>lJVBu;U;|WMZKB>Sm?8NFJ-tu(osyTZJjo)FxXW~wbg z1whZ?um4!C<;&!apj=~iF&iQ4+b)WgSutJ7(R%+LLP8GSrXMT#ZM7-s3&2nGnNbs7 z3O3a)+_XBy`P^6qYp8fT!m#QpS%ytR+r`&ZTc8L2L{*s21&ytP^)QD-y!FPnEgasu z+7jQt)9R`}gG&VcuHy}#Zem#$V;l5#Xr3o5hGdWciALZLr|v#s=7QFH z5(in}_p{gc9^nJyKe@0V5hXVIC7a&hbgY7S#M#-&*uGqISm*)9l@HBXtr2%v$;n{X zQm>U$ML1W1*Y@p)n2q?R@+vec00W{lr$;dN8CN+9Us{X}7<&7#vcpT6C!#W@^SL_u z-bll^7kx+WxfJhAE;FcqDO5+m@(o#+TOj_rHDyTW&43Don?TYtzE?T=wlCJco@)PC z-rTY-b3q9EiAX@iyl__#omU%5#<^X^KW!Tl@o+48ccVd@xc#%A1Jp*Ki%-?B_qcwp_;&kcs zxi!7tmYmNo(9%p15@*o-$P(>&I8Ue}BJdb#83K2*x?FgxFrWl~>XeZj5|q&J)6=h( z+Gk347RptUOM09`bd`y;WnFmfQ8xX#E6a?X04AH)`4A^F;N~Ks@V9U_A2F*M#X>Ab zT^;O073R;ml}s{0&yfPknzxp{`(TnbJR`vEdt-nF`i)k+v#UrVJ8`d5jT|H#?+w9o zYqHE#rOof*|C1{mQ6hK5$-j$X3KbZh;OXo>4pp0=@te#{h+iMk5uAgj@1C2O#+RR{ z0OErXhzuE}Mje=1@&t&e(6(!LtG!ZAmgM_EybUQAt#~dMripR?Kmd7u^=yi)c1C_}D<3bZV6pf%GLTBu73k7H1<}S1306vl=}X*_Fg0l)DjMTGbFW zIhf0`r6itcUjOLx(9C0&mp}O+%g8BU^nR@Lg$~?=2|pEM%Ni@yf-9Is=T2e!L7RWmIo3 z2In8>9b_nOEcH-?o%j!&-^?`E)9MP*Xjo9y3QflXX)S66;*H3Q+Uj-qA~OhORZrxP zi$`-mv7n%HUU;Ryv3_2E@1+9Rhx2|9=N+3fA^UW?&Qqmrh5I0J1*4h-(6?=1mI$B} zd7#A?Ze-M_gcc@%9Q%5%!Qgjd+!sB+2xy38qcLXD+42fui+l7Nww^CW*ig_;q8n;a z*0ino3SJoE1f&NJ{e#iaXAW#e2L#dd@FO&eO(Q04ZMEUJ0S8zr+F2`LVN1-0J47OS zH{-KES`#L|hjW}rg6J1iV4;C#{@zm4pCm>5Sp_RmcmX<@h`_Alz~~deIoRrfT-x{Z z8Ou4Fbu70PDz>luduJ$U;4N{>=%A1qyXi@XcRk)W9~%2JsP3d6tbLa{=p#<>LB2C^ zEMt6hbLr&s*Bj<_+%EuEtMj158;Y}`rrTwx>m%VX^Z}6eekBWdBn{t-59YbvKx2T91ByTwRu2 znjVW`(Te|yTx+vKttwXJlNH>_i{PGsN;=%&ytkPt&BmLq{e7~9RbxjZc538D9M3{3 z29wXB#i*hN_Ku6TvDnFoezW2!_2f!hx-t4O=pM}qaOCBpAx8ayW)0!joE;ZGD;0%Q zG#u<;#VQLUY?i9YY8E=)?z*|=vFW=E9O(T+ zTeeXzL$5Xr&9gKuKt3{qWzz@bg4-nqvDDe$1o0sT%TXKgGY#|H3ez2NUNxxB=Bkm2 z)kQ~{w7*IOYVjr{NeeGbgDW`#1nou_GR2xUg8i_(GA5H;YZUTPHdb3T^o*Kf9a@#7 zQ1l^@Y|25X;ZeGuhH2bU7n6gqY=Q{m7o5Y5rHu zpVZ_!mM}2&Upf&C>`IUeY56UGrBUDyR5aZ8K;1S8B0*^EZ8U!y?<1Q5E-;)I?QXWj zxKtX%FKjP*$17&5*UbJls4Sw{+4SSLW4P@gCy2Za&@QlmB&IforYqEwupGnhqdH(gX zi0Iw};&UB-0hJ{D+K43mJ)+?Je4aiBKUA2d9FVOaofi1dN#Xr!DIj8+hY+lw zz?|^0s!!DU$K=igj5DaGSKwKKUD8xn&a2@5F93G@O)_4SnmXPZX#7!+Kg>9<_Rf8a zkT%gwCd*BWJ)#Oe?lXkjIV+fD3@esV)v}VuqH80N3%yFaJpx`FaiA)kn|JX!WHlD9 zE57qwx2QqA^&tfKW!vfQfIQMwUrr>o?`m5S_R|g{ngfiFyq! z9K`uT<<`%k?thA>v)*y2eYP~p$jV`#CbZ%G)VuU{6><)DPsNf%;$f?%e zMO(`ZMUd28V>@@?@{G<^d=LISLDug?{bg!9QQ>*#5-Gjv`$NbU>BRniC~8#T%dAAx z1!Z{K3nAH9htoXju`owb{n(m$pNKu({oO#lu(Tk$36n6=JvL+)z2Kp1CwqenR6I&X zRaSgR!O6HbJ4)((PSMUX2B-Se@Ar!oV~CM^)MoKD5ne(y`S@K5wbt${nii8kzOoIJ zqa)<6Lj*)63cZ0CG0!`d|DKfUR#AE_HW&3uKDVJhEs!8}_D`wdI}hq5H+8@t*>|e& zGdP5?WCOwDo=XZpeisd&zMb`FHCk)k{>00Ammq`8KSIODxF~zQAMIYRSGn}JGdXV z2W)(f>V*^^;eX)g2kjVNWv6W1&2n}o-&4a=8E;`<^Kn0NvGrzQOMh*_;MVR&B*)zp z)qwF917fYd>&qyu2kF#L2Y#s>?x5+_FA+=(HXnn3{szZD;PAhVA9un55kY21>KQq9 z_=K#QAopqx~8Pgcn9DP^;W!oeJ>z(ul!NUTM7hi2& zjMz^_X&oTzeI#1Tbd+sKTvnXp!t`|KFTE2{rp1hyYxZljyb7sr|0SsRiLDB-i$@bT z4^m%C>P~OL+_$N;St4hw#oJf5k-@O8k_=@LAVYiqoscM@3Eq)cx;(HfII0EKyGH#&Kd+<8?ZmyKtZPsi0=TUK({g%KX z4ssf5IrDhhr7PPH&J+Fg>Vl14T7=%`HC{8Fz^_RT-NqN`Yc`M6*VC#uXQ0imsx_Jd zJ&zy#^_%0TkUgH)SdEGN-Chksa?em@g5^r{Nv zcI`!P4pnT}eO8DOq`E~cdPmo2@IrJgxTWwcH6X>AV6r&UFMW7|^G^)_6rRZpZQz+} zdtKPly;lVB`Lal&9Q*&QGe~h@%a=c=BJm)DOi1L~>t&=o`g;rhGadBI1jY1&v*W)8iYT_a{xu|Z~RzMrkG_=yj}`tJ7vQ1#mH5psN{Y&eW0e0O*vZ$wrDjZg%7EN8YDk~$2 zyy270%Dh~OHB45WN3Iu`B^{5;_!6i&p5M)bKW@KB%DhOvgvO~(lkhy#{1!alrPmD7 z-Kd{^CP3LJ>lAyl`_}|k&iBhK@f+Za;Qml6!Nlq0c8U^>-mfg04eLe6Tim1G9gby2 z?FK!VRt@0aB-UUCSX`~=A!Scv2Pv8m7bHu1Cz_Mx){1b95T*!NO>0Kva=_#n^w z5%WfJy)&rOK2vwY4i2;G-GC>Mu+^41En__s&U+*dM{xHcnj$eX2Iyl(udT+S)xIj#jE!OwEJBiaVvD-}0v5~(Ms-7Ob??F3sAf&yw{(f<4% zcVacFVF+y#^nl*65l9(+{>-EWlw#85G8rxdiN2Qilmn;@nMA8pf}XO2l5Dd@YGLOf z>F%<4itOvrHX>a+OTffk^EF`TI^8ZP0A_q{_)aJJ*$ex2xeb!Q-Wkqqxvj#R9nR%q z)B8DWo_#5el_oBjXc7}|LiEP6K#n+BZ8>Pp=MaNa5rce(E>R}~qvJuj@Oq@P5g!oEO?-YBTv8kClX*v0-zuUFwh=>!-F<4t zzXX*`VPS1yz6AJ=%^3emwpV0@Bmk4k)?18llV)f9Rm4D|3p-;QPrQXD{jp(vQ0prX89V?aG(iI#c7j9zKrC)|+&EKX|>t>5$gspN4U(csFVi5O2?w zS}CGF*q$rpFv@vbsFv(T_s+50`T<1cr7JZ*O2W<2*I>%k88xWz`vF{PZ>*tr0Zc|8}OXF;flb zm;YLa1sGMe^&eRM87l_XuVg)bL-FP=?e1L9Jh@#17$t5+IgEm=&9~r?Zqn2<$Sdxt zuC#a~J$bhxB)&(Ovj01m>kCmQA9Xy#`~-F31MO)Nh}xtOR_Lt_dZ5Bk<4BgTglgN> zqqBTwM02I5=g&KJsIlu%-mJ?mxsh}r8Twm~S2LSPiQ09x&rFqzdO<)ga6mA*uv?*Uzw&%+2XPzjoi4wU~~`q7POBQ zA>{@f4mv1sv*ojhDLyj9i&49`9R?qcD@O2%-hg{D#s>HSfqOEs75Yu4{3YcGgvIwU*Pv763GI#tpV7-;)PJGVhk_ zMfmkkej5QOPUi~VF4O?0MRQdrG6iz4?Al?GUMAotZG*G!$lVIBq%a6M5)noP!%DU2 z1@`1kwzLe~g^Mo%joY=;X;qE~b!r*%a4A@JGHL%2UCq14H2cgDYTok8Kb1Nb zSv9Qb_3$~l%8N#ZMbmN;k!G&6{i0QK64NHNnD@Gpb{4K!egjBtfuVE7>UG zC%kH88_NWoU=CG+jRC_xul?9-#&B^#PO4G;W*&s6y^*aAA#VSE`MMJ9i>2zphnSm& z^ll2LzII*&|D|YBnsn+PY5*0=9XEraR;BS?w%Tj14QEp`hYk~LXLTd17zm3K-%BnO zkIKojZACMF?MP&V6Ad^ZTJQDsZQX!+;dZk$@vIa|Asdbv-pE#nJyk`VlS2UqicjUh ziAtr+H?C@lD0BG5Zve+^Tt4;&{zR#5fgHVdA3h}?v_djxvsD{J4gJsIa>NUIncPl@ z6PTDxPl7$?^8Q+TCg^*u6eW_;S>#1PVK=a$#Zh~1i%PE$6p#FnCa?#M>NR=VLe3V4z7|w3Fp_9V-`TOjn6HJT9Gcvifgd5YzU_2g)$}Wekrc zed$MP?j&U;EfCX0?8)8hxU|F0%F$>|9hDH}ZpCF@)jFu)2KDjG3WcZvPMFbwycrGY zZZB0423{y0#$gBk7z9DKmiE>V*n7v;)N^7{X8fpSjmfqlGNkHH5mm;!popTsnOZmt zh%e)AHY|V=QuLumpFHL=QC*9u3Cgzo@M(OkQoI|CO<7sYi9egdRi+{CqZJr_jx?LJn1PSqh z$IuZMO;MB3vPE@HmS3|NH|l*-sMEWOU7Zp-jcX{pNQydf&1|;^v^lHh^r~8TzAjrt zy&16fl@)stfz-*5d+~hMg*Au0+A`^Bg=x*NCNL$$Dzj@GO%gf|MtY#{rf5sIEGN|` zyW_VSD}RR?7{yMtj9ioWape28>Z?xCuT`v|trJi?AGrPdQ{*e@BA z7s>$2-Z8W%ffeRYqgu5r@w7P2k!>gaqHu~*{|e(?@bL4LtPnPH5uAvf#dXQ-F|Hk{ zq`d~%8?Gr>#RM~qvtSx2xF>&f1f73iA}mlZ^vS$^Hm<(v)_nQJrK!`Y!PF}osiP@VqA79l9)i&m0t6u{4S1vKQxtIted#RRxwF$5p2S7a zOfDR7WkLB+(KM?guVG|PXuVd$t3$wEkiiqs+|naf&^Q`d3mdnHE6mZI>wHF{&O_nqDGG> z{}T~J{Xaznw*P%J^H|y8vB&?b@tlH1tO_t)Jnj1iAfFShsTFET<48D09$xd=w{tRk zo!dUgZ{f^9yxsgktk3wuiK1iU@kARljH6LQkFfT7*+Ty5e!J!t{HcDH)`>toBA?k* z^JEDdXH9`Bcc!V18DH90PAb>zL8tfWa{rO)bo)AfimCbe8tLhIZXHzqfoR%Jt8ZQ_ zFN<=vJF)x{zH#~rXq_NXxk}g24squ(jV!PX{F34>VOy6aem}<5>*SCQh7O3V_Agq8bw=%BC@78-UJd3eUV z$Y3+ep{qd{r5TG-r-lyo@t8GDSP9DrZSCO!em97AKsir?W(h+^k-EV-b`*WYI7dpA zBW(w1wNG`@1|R6$NDXJ9N%ix3H)wXbfi}YkG{ul*%%*73i~u0zOPZb!sN@7CLC9$S z%O{M)`p-G+fxpfb3>t)w?O-GewN@c6&RveMdksu>HxBBI`77r{8GdN787ngzByg%t zvo4i-6iC&!r2+D97xle0D1I$v+ruvmQ}Az+W_%&64WUmssoqYnX*}fh99)xyA&cnE zbqjPu4|1IMdUsIw6IbgS=QQWh?wS~p7S`dj4#-(hR_mQ1%HNklOB(b3at3;~Qkf`g z{dm*}v!dZr27uC8q*sTZ{W0%q*)n-T)nw|;?-woji6Ch)&2pBi_cM2uyk>P=?s*Q> zefQY|*|ZzGagmk<8z3SS{ky2*Ae#>qQ{H8BkyO8D0tSM8&RL4G^bn{oQ3`lXL_>HJ zF8r206R;=6-s1?j)2dcbCO$L7G}kn3-M)79_dd9sI#@NmJlbesPphTx!=iC!aItkg>T2!{MDx|jRpg>Jx${}fKYiGPJg56%a$qX2)M!nAYIYfsRENeKnZQHhO+qRvY*tTZU^fU*K|iRVO86=_#C?@3AY!=M?n%8qinsAC{~F#uYiBiTmm#-lc& zP*|JY>Ijbt&kzIl8`I@ugkhJs(6~TM%7*-zk|na*^t}n*_c|~IzP#0cDK-CjumU?| zlE%xl3bk$2LN6%5!X1oFD}a(#oTeGB7K>rT=?!zsvahM<_k_VhX4z=hJhxI^dHV(j zG#6GNenP9NV3p`3>}H#@Hb3iLH1+CG7Df|wSjrE?IvjVPGH|zo`&xl9?>h7yy38BE zU^dudvTMyAjOO-J(rB_e8`a^z*qUyt6;CFlzYRQS>~>ubTc9osos2pD<77Ldr>PMJSV^)CZ%Iz(D*kCj{MaGy#{g7s@JL;j0l)_@p^X*Y+b#iZ1v5wc++%m2$as1 zHq$)pUwptG1PSZ>9urYze_95ihJ7D_yfL}Jf&fsgsm{%JIH2}iL4$kK{1~cPbi%;7xnAGb(`0gB&g3haEE9KGUfBeIh5TNraJ zCvwNKKA?1h`Qg@A3)2R2y#tJBg4t&LAfTy~#+ti^1DL>BYOh9Sxp9@=%?Tnc>H6fP zSem~)+@-Wcy}FHM?z*LZgSh6kqL&txm4=%D{3N1!0Z8*#I%OwSv$+tt7RL8G~mbnASyy@ z-4(1#tCC7%dx(WHu(6e_c&O{Hu{Fn~P7Gda4aT|N-`FxB6_Q(4Ovp-+d~xo1XnShA z3O+m1MA$at0y-_gzISG5bU4!Vb2f1|7^?P2Gr&_`Mh4wp4<&pK$EP{2*1tFZDagr% zLAEmz+-9iD2dxUE<1Pu^fRDLUD znl)Zcm1XQu%&DNGfU1BYZ$+$d!%TR=_Bgp|HPL<_58P0CEjls6y2-USZkEC%8Rkw65PilA=r9bDnCN_ z*bxS$TpJrYc;4h%;KFTXTqsx@#|Sr>EkVC0OPeF#g`^L&eCK^?EoT634yCZOtF=sY zBNSb>y}x>UF644a5+W4nM@FN#(z+*}{*wIFH#T4%tNmXQ1NU!pHt7 z{v9;>A=7PL%!n99OMMMr5%<;Yo#l?b$3M(Z(T3HCpy@r{(lAeASyuov^2->+V>c$y zCVb%Qw5{z*`Vd^s6Ot{LFv8EKmk|}=A?DoeR`*2m=Yh13cf(cXd>9Y1W7y^ zE}FqQKajb~>wUciAa$QWfmmMS(-%3jVV*q~FQnuC^@jcwtPAmC2-M@&(|L0PE=TGO44#EdkljA6zpm zy3BeYvx6WM}=AD3bb*qHAt)HFs4nPk~r9u8DpQjMi65lLj4)^Z_RX;Qv$3_@w zo)%;P87~`wcJ#|r2MjB9M?N}lFnV5|9o`orm`$IH)I!GSj-{QI17gKT6&SCKZ?fvn z8FDZ)6voV4mOpH*tn@JHSyAE?AJ%4g;<6q=;ef%r&tU+@!l^@eE@P6TjkgXt{F8x1 z_B5%+cq2j;aol-uUM8O|GOtSm-VBKFY017G@0lTV@bvPJYNy9e{D(z+vnS3eeII6#>Gk@i>E#RWfO*_Us+c+ev3O_sq;qc zi|siQ0Wsjde_WlL zE~CYW`=iKuXHw{UYp;xUbNlSftSD*F9zGj8eIF9-JeoZ$89X zNEuG%Yt>Iiy>}Tj8pY*8vr&(G-Rz4L-S!oa4qew=rm$#peeOgWb}Vzs)_AZ${Y$xd ze{y)Mz-cUX7miSoodg*#8T;FTOJn_s&N`9TNvgxT2K;4<*SjpU+nrHKnD$&V zGu1LOwFcoUShW?2bNFuHCXFZ>781+qaT0Tgd`~+ao~|NZw7ReVM>iD%a}?J6{nLPf zosu1gfP2n5aXh7$Y}#4Q)ot3CKoEvVGab{_oDy(%9yxAXxA>_{zo@Isk3pBeYL!!0 zEdC}v`Xu9ub~j+8$0W{me`ux`k1e`%{(2jn#%hxn9$e$XDIUfg*_9Q&8UEemu4!j(_1Ey^!FYZ$C@&%W^%*mWnn zDW^s4^xXI-jo4khp}=dBF5*FU(^%58`sh>cHn#cA{yTKMv!08mfM50tniTVFARcQ+ zt(EU5ONUY^mVBgW+}U1Y-qMvK1h9G_%5}0rzI0I9^>VmbQhTY$gkq&WVnO#h$X-KybPchzxgme3cG=lI3F(T0^1h^9P_h4XVcs zxo&LxEAlO#SbpM&Sr9+WgWgRuF8O|g))1>NGDK+)w|sOeN{hLo>yn0Q6g+gnRxnY! zbR8E!7>d8w-?I-_h)b>_rmjDBbBjQy3AKd$cN&K;a*?&Iv0DP}Dbo}05GSQxbBl7C zYcj=f-7!lD5VZ#s!YAd3ggLjFHo{qJek9@C&|s*tw3uX<>>?qM3zyReyJGIyGP_?Z zYYRRp!}_O<*0aw-ag1TX-ZQu7d%w&I@$eja-Z$g)74M5J{_V!E2rvVu`bFu|?NKJZ z?&VK}V15oseVL|beSFRiRSliM`vkxtc8J4L7kQ(MZW!xama508V{j@yV`aCJ=IbZ7 zPi0~QKdkfxX=oU&u+ccWw)GBq8?xSgNcyugU2-tMSeUVWFpcKq^wdoW|V790#=Z^G{y9`RBHwanbL zW3Vx5(BWp@83EFBI}5$I-ZgT&6^B8m5%9~s`C)UV)aEok(nOs_^cwOX-rp@0D51mu)Jn`r^xqB!D!D#AT*8R9iJIQgA)+wCy|zd zo)IYyxfcz&2-v?Q*;G-fTbek*!z}i})S~3bAVlmt0aS}8hJRO*e04m*IeqNPmXOJ3 zMt@U!kIvJfXbl2hK;%DK=Ddd8?W63C(`4yNV96T__O>5U%$$ zgi$MP>Wijl?R&xqzC<7Mxx>slXPSOtBEk4%#=vMUngcfI2K3Jd2gx~e9t3TgOB8}9 z*j>*EfF{}pMGCbJdZZRXj@w0h?Vo-DM@`P0~5<}+GL}IXQe+l;Hqp_eB z>)*Ig9><7_zzdUxz-RX~ zW8J-r;7{F?9f^>59B{MwVXxBP?ly#p=$z4;6~!GEK>o|`B#a2|?bQQ7lyYhUpSqYZ zF`!$-r-_i}8a>aD!s~nX4VTtNZ?RE!ysJ`()+n6~`ObU`(VWDO&RZA2sSMEd`^w3m6dB2I zZyfZu-u6C49RTuiB5Q#WXB_lxZPkvy3~rM8`CVzh=Y$Kq=1S*Zw1oHW(QyF22S*yKHE2yx`muqdv`V2o=vm&hei!h*da!0t*wcwIx1RYNQ9HCxSYBJ4U<@DbTwO_UFqhz-?h*29 zfoz*`xwr~uqsO@Q`%fRZIV8Ta4;28wO8$S6=nS3ys}CF#*Kai-fDn4)85y8+*-tto zjmQ(;ZkdPTb>-`KiaqA2 z%R%Yw6A$)|8G8sJW*IECB9~${ftAm8%aWCspliV!){py|bJN`Y;Wk>S=^)*!6vV=) z$&-`CvbY^Z=@0PafDi`P&CSE8z8Os z5DBdZNPnK?oCkc`QkdNgrH9YlGKcr;@CNrN#_f0lt56I{bkJ3^bbyY)d2BUU3r8C8{IIO%! z*I@;fDJIoV_3!9yKl9yj8T;`#*I|dw{u)GK_B&mkyEoIX+wOk%xve`st4v=Rnz_zK z);*}AHCNiJK^0e=BLQgruYUc99k|0QVbhto+^5yb__I2Ew%LDfw*HvU^thjF@n_yK z6ms0>_A}6d`r>p*S93rVJ_sAic+OlwT2n>)@nX}-YoKpi4C_Jto(f9akb_T<|GxSv zIeVUJt4YlVI$EqgkXOKGxDqt`Ui+R_Y*`6`@%1%{U`jsl?QX0c}BD9yxl>+|MI>>Ih&JLZ8kn@L9eu4i^Sf%7tXVI zX5x@tnXF3n$a;OvCUzfja7uX9c8V5$c?#2L0|=#0b10h7b0;`vw(cO+QY$a7!G2Dd zu0@O=S^ngMLhm*v78a#-$vnTi@27pA-m1@D*pqY$pc5$n*!?7={OyYmDzg1r_?DgQ zx$S)M{h36dz|*hWyV(diD*F-rf%9HNjH9-ikZw7>3nuopBHiZEQft`uqqsfWmFyVz zT?qK%W}8yVa4#t7J~20|)UA8Z0-`a@l|_^k7;CO5VJ6#FhlhOK9l?ctcQgi0-urUzECEn(G6L0fQh2 z(zj5pyzP?U0bBF)&oUteM^ii+11ZLA6*{drWX-N~T8)zw z>xhC8Sn6Ph*^*IkCQCwR!2vzTNc9ltb>ANsT;QcI=Wxj88uL75r)77+ip5tiv7&{K z_nGJfIpV+Mm(hy>?$d``B~Lo7gYB;8>$0Hlci#neY?b5&c!+ywJ_NN^KP5}zUr5C# z)=glMu#CY&9|7RHE&>zF680AmF z;|cnAYPKdu`)FpS(S$8=j*cY{@N5jwcJ6ii#k_#DT@P|^hTxUAwSDYGL!%y+f!tag z1x-T9Ar$GR7!U{hVTSQKnKZsT_L&d(OVp4UEprB0iv*pBxf-O#SQQ=S2BWnsc+qy# zsFd-{Bf_x^aRvU1$Z6=qJwP+~ZgG#R;RNr9<1;Y1hsRm0_CqeG1s^!3sR3xt2u7-! z0c787IBKWLn+ZhPcuCys_>mEaTjGozLkejHe)UQAj%#rr7ZI^uab3?ekZ+Tq@o zj6Ei04=-xTcAH(Uy7^?Y4xxT30}JWYp?+gaRc;^7jroM z^tOHf&p-Ch3S%RGI%xU}$(@L8Kon+T1H^0vs=3j+2*vgU!`oRL9 zm6!DEGlY7g^Lw6;qb>is+eJCIAh2+a1SZ8Q3*=$arS_9us7R4~0;sL^u%jAgufFWu z_@H1Iuec(DUj9F!Uyg=>3+?KHi(q^2sS#pkUT!vfs@QrllVmj{A=-gc(a;^c`ZqowT3L^N;U5C)L}XP?atM&oCbt<-t21f-a6(~cf4vj9IKd)`pf4BE>>u${ z`Z7T;?~mTKsEo#0`dZ4KCLmQ*K0!XkkPojdC_c9?#-}NFVb(wy{K$poZ-8<269C^@ zhs&dW96LZ#I9odwtl*H<&EWidVq8pK0GiPWM?z02;c7IdAggZA1QSFv6GbygX_#(2 zVsSBx-#}hXf`UVf-E<}@T?FKKE9ZWGOJHID!n-xXFnCN58`lI(4mJL>YDfUQpXxndgd#!>j>B`HF#u zMi#43ktg&fG;ZMrXR_F4|Lpza{O=G$1cQ|_jmLdH=xmhu2Wcd`;o01;yMg^&(8OX)6k}~Rl>Rw?pmnWM3CG4xq zF;*(HESo6Cjdz$B)k2!jH6_f+LCnT*luh0xZlMEcGyw(oRW*jbRpZs~??AYH zcHt?a4tfD~VCalS_j5D&hjj-Txl2f{1J8(FCb}U;kxGglH}qfEN@z79B6HT+X3sy& zpwqwwXbz&Hv!4!)@ut9kq4En*lOJmBzbLDzn=quyI{l*wwHZJgy!obOw~-;^hf?#V zsDkdW5%H1B5NFEx z6f|L3P#T(K5yK(%tO+XI+I6O}NeF(TuoTTxvLk-JiGLN$u=fIc(V-C2f zO0p8z;V)SjsF&d{az&XED&a|?A3&idCc`_XJhf3bYwCkd(o4T>l{@~&UK-M9R`dix ziNi_VCT?BEirA zm$1h9)6CHRC_}BR2XWsvqh}>ZCW2aC`cX-f%Nf@sp~f1N%&{|vEaV*4gl~6x`$b63 zgtYlk?F1W@OLbhs)(;bfS0M6dbggWZx zI;=o$N=h792P~&WkXGrVYF7!^uw)E0#@^v>r05bdaS2Er?VUJlK(ICmY@WA25_(ze zVoK^ae^Cww2=D^+UbNSMq1J~y1GYXvN_{T`GW4dPk>XTQ%!Cb)(e;4U7uN*2mW~%i zQeOpN-XCbm+NN8~Y^uQnEF&_%J`8i}>10mLzT!ZhpC8_3 z3GJ$47KGhu2g%R;1Q6>GdPu{|;UK##m3mFAsGUm{WxZNf>*T`Ey^*s(gPPsOZ%ViF zd~n{5$Y{aESKHjjsPwO~aCE@Jtle${CO|BpV6jPCXw@F$kVkMjfz9d`X&B>Z8W@P4 zB^pcIo7sc*VaAVZxvdQWuvu1bh!DJ>JMq}TV~sjJzMr{Nt1a*QsGvTkkXgiKG&g;K zb+mJMtMG`iu<$;w;;?4GB#ls@NmbGM)?|H~PLpxeUxUg!eMXQY7AA{Mccw5E3l$Lii)RYP??4{(h zD^FbA;%TNg-YaOpKk=TAIZ`f!fS9CTj~-7=M^;rhk+p(^UVf#!tET>Ye_uwQDAT99OA`G9T* z4aTFccTt4>LcRnQ9kwbgr?de1eBB%OX^M<3W%V=3f7@qaWzjMcgfkF0UBPI-&m*e> zoRE?lMT_s??5-0CddfObR)`QX?O9WK&_CRL86JgffHKN_Vmd+{(BaExkNgvzB<7G2igM%yuGcM?5IeD35-W=7{; zUixp488vk4RO*4#nL_3gNXgr3QQ?kh6_!FFr?(7V;*EkW=yqdLox@A$+!ak_t*{2Q zT=~jnu5%>G%pyPzbnQP1g{2l~V*tSbAA=HXaVd}Uup@EWWBQ8Y*2Ka=)XRPFSpR@t zp_QPvlI{~}hfYzZl;VilWy_0Nc8nHh0BB!p#oT9g;QeQ%d0FP*aTA;u2q|}I4!KU` zkQfM=ECQu9z(LzFXgJ`m(BvO=?0|;voBD8%NsJdyYbcPf7VOWcjFq%0P*NPHe)~ZB z?A~>#PFM@RI(o=YJe;6cXihF*+BK?Kk8xuXcZ$IK6kSPaU+zqO{<#B{Y|xlUT9uR~ zc>NliD^*5GDo3v%i4Tkwmuy0@zeHwUIMDWoW^kc<5weG-lXmq~i2iE?V=F6=gf=L- zxtL`ZQ6i_3PSW!&n{Db^Viu1myJ*8E=4S~H-_9SxJ1pp#`UOnGKODDAzC^_{!B zQw-JPjr%2lEgBdo+652as%VN+qyw{yv`2}EEL!C2X-CUn+QR&zGsiN#=#~i{eyo)u zRcj{=Bw_Q}MxaDte5O>;zeHxYqD-SXm~_!U!;}D?nRKoc{&Cr3P12ZhOk4&bNes}j z;IVw7NSG#N(No*9TukTgu2bWsyn~BkDW@Vnjxsimm5j9WZWb~DF>^##!y z8xo1M)yqLi@;oUs*%mRg*e#yW31jl<($qUkG(z?o8SpcfiudTt{DV|aCsh3ORLKR= ztZX)IWy2>*dNOWEk>Gz;P_+LP{MU~?WHfh(>m@VGN$o{g2Gr?1?OcyXsCDVGJ_|N@>hNn80PzPh)PH8nd z-v&KP4LkWfBG9#4?Eujy@Ot2E$MCR^XO+t|drvh$&E8EW3NlNJRs=cqND2b(=ASs} z*8SnLCb#t2IP@0aTHvD5JKjjM3ziM8@IdC~q#eXukmg;8@J#PG^(j8a4y&{#fT(}aZDs4c|mJmwy)N|OHru4QWO!U0=kd*({PiP%}n za+v%Z+ppr$X>#w`%BIy`WOFq@t7r>>X>+{r1QsvzF^d=4(RF4-p%D78hOJJL=TOj$ zOmKU7N3ff$*k;3iiyjd$#)=!40X+ej?Ivu#BwE}oH+2x$*_t5qqe(X0EFINLKZ(ej zfknu>frdh#Fpd+bo^>86OB=kj)SSz0#%<3qX~UV>x>is>|B zix~fwLDuqDB8uG&D_?>s4CC5W%3tigu2A->NkIBIH>?}5OpAE50mxt`el0l&hF0{%Lh)&~f->U7AvYKTIp zv)H_Z>4erk7~~N#gS-)PeFeK-WM2i3fEdV>_dNh_sOY3AWp~^zh?nq&T zjo9kjb5q~VD#a7VtB{lYuj7~6UtZpXG)%6l6~yj2mkWnQ7#HtWFqOj83Im~l@QzzZ`p+R+sPYzHDVICCkv?MIBjd6|%6Wkj}%ZoWOSP~#% zuQXW=riv<(n?+UkKo51U73GwJ;t(FlIB$GD>X8Bq;9?GsOpqcBdkt z$l*B2;+>PF8g2E8{JxExc^KLK?lyP6gVfY{$Dr20@k))C5Azz!2z}EYV9d5oYKIPCt%^feWY+$#M&@HHF8l< zSoz^uCeIo0_m|4}Bl#9bQx@bHz()%$Xw8G6CNqJcT{r zB*WPsOr6|d_B$?z9n4M*MkdJ}OMT(%Mb8HI%H8Muiq$sTOwN#Amu-8Q_bD`%qbd1; z{mR}#d{`HmHGn`M%sSYK>HwDb;l$nvSz45C3WGF{? zT=l8vYZN)6SWsJkP>kt|NJEOD|RdzmO8%g%&j z4m7c17hzbvh>x3fa;RlruP*1q%nj?ocIEL`WMm*iYII;DM2?#5nV~@ulS*Xn+J_muW*(pTb2?f6GyJ-2TbF52$SvTPr~DbuE7RHP-c+Qv9vcST;CBEO(J~2)+;D=8n+nr* zXEjWKS%Nn;?)Q{fMgb|2yu)nD4@||(>GvWyvZ#WCBbRhk5x;8DXHKubilq7PP#X3} zW?Ro(?w6EMf?cj4^yk`yB~xaD?RJoZQVlaHh~hrsm%NB*{m=H11_uzLjI^mrtR5bs z_8!Unh@59$LiYiE6-waWaMSt1#c-if0vufEPWJ91XBiS9D?-zLNF1Bn*z>E!WimivrtQjgdyr9Ho zkV!+VTyINpS5&iO5kNFkWA2D}_?txMr0&^YQg3cCcPNA@9#C1)Y2^K%?q>-61QYfg z^VLXO2ZY<39mDJ&#dY+Zh)fvlbH^19JOsCyt~@xO(b;+mrErJu#j*YZB-!GEV32OU5$tJM-tn(sP9OS z77{TYxgo#2f@~A}GRba!3q597{|Tb6ct
  • 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 z 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
  • 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