From b537c14934a70c36dfc2a586464b51e2c37d4896 Mon Sep 17 00:00:00 2001 From: MrJeremyFisher <63616270+MrJeremyFisher@users.noreply.github.com> Date: Mon, 26 Feb 2024 22:06:57 -0500 Subject: [PATCH 1/3] Fix horse stats being rerolled on login --- .../hacks/basic/FasterHorses.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java index 281f5fa2d..b10dcd453 100644 --- a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java +++ b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java @@ -4,13 +4,16 @@ import com.programmerdan.minecraft.simpleadminhacks.SimpleAdminHacks; import com.programmerdan.minecraft.simpleadminhacks.framework.BasicHack; import com.programmerdan.minecraft.simpleadminhacks.framework.BasicHackConfig; import com.programmerdan.minecraft.simpleadminhacks.framework.autoload.AutoLoad; +import org.bukkit.NamespacedKey; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; import org.bukkit.entity.EntityType; +import org.bukkit.entity.Tameable; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.EntityBreedEvent; +import org.bukkit.persistence.PersistentDataType; import java.util.logging.Level; @@ -19,6 +22,7 @@ public class FasterHorses extends BasicHack { private double minSpeed; @AutoLoad private double maxSpeed; + private final NamespacedKey speedChangedKey = new NamespacedKey(plugin, "speed-changed"); public FasterHorses(SimpleAdminHacks plugin, BasicHackConfig config) { super(plugin, config); @@ -29,6 +33,9 @@ public class FasterHorses extends BasicHack { if (event.getEntity().getType() != EntityType.HORSE) { return; } + if (event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataType.INTEGER)) { + return; + } double dadSpeed = event.getFather().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).getBaseValue(); double mumSpeed = event.getMother().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).getBaseValue(); double irwinHallDist = (Math.random() * 0.3 + Math.random() * 0.3 + Math.random() * 0.3) * ((this.maxSpeed - this.minSpeed) / 0.9) + this.minSpeed; @@ -39,18 +46,22 @@ public class FasterHorses extends BasicHack { newSpeed = maxSpeed; } event.getEntity().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue(newSpeed); - - plugin.getLogger().log(Level.INFO, "Horse breed to have speed: " + newSpeed); + event.getEntity().getPersistentDataContainer().set(speedChangedKey, PersistentDataType.INTEGER, 1); + plugin.getLogger().log(Level.INFO, "Horse bred to have speed: " + newSpeed); } @EventHandler(priority = EventPriority.HIGHEST) public void on(CreatureSpawnEvent event) { + System.out.println("evt"); if (event.getEntity().getType() != EntityType.HORSE) { return; } if (event.getSpawnReason() == CreatureSpawnEvent.SpawnReason.BREEDING) { return; } + if (((Tameable) event.getEntity()).isTamed() || event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataType.INTEGER)) { + return; + } AttributeInstance moveSpeed = event.getEntity().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED); if (moveSpeed == null) { @@ -58,6 +69,7 @@ public class FasterHorses extends BasicHack { } double irwinHallDist = (Math.random() * 0.3 + Math.random() * 0.3 + Math.random() * 0.3) * ((this.maxSpeed - this.minSpeed) / 0.9) + this.minSpeed; moveSpeed.setBaseValue(irwinHallDist); + event.getEntity().getPersistentDataContainer().set(speedChangedKey, PersistentDataType.INTEGER, 1); plugin.getLogger().log(Level.INFO, "Setting Horse Speed to: " + irwinHallDist); } } From d56338ab5ee81110126f22e42bc7189cd384bd49 Mon Sep 17 00:00:00 2001 From: MrJeremyFisher <63616270+MrJeremyFisher@users.noreply.github.com> Date: Tue, 27 Feb 2024 13:11:21 -0500 Subject: [PATCH 2/3] Remove debug print & change to cmc PDC boolean --- .../simpleadminhacks/hacks/basic/FasterHorses.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java index b10dcd453..01aa735c1 100644 --- a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java +++ b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java @@ -14,6 +14,8 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.EntityBreedEvent; import org.bukkit.persistence.PersistentDataType; +import vg.civcraft.mc.civmodcore.pdc.PersistentDataTypes; +import vg.civcraft.mc.civmodcore.pdc.extensions.PersistentDataContainerExtensions; import java.util.logging.Level; @@ -33,7 +35,7 @@ public class FasterHorses extends BasicHack { if (event.getEntity().getType() != EntityType.HORSE) { return; } - if (event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataType.INTEGER)) { + if (event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataTypes.BOOLEAN)) { return; } double dadSpeed = event.getFather().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).getBaseValue(); @@ -46,20 +48,19 @@ public class FasterHorses extends BasicHack { newSpeed = maxSpeed; } event.getEntity().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue(newSpeed); - event.getEntity().getPersistentDataContainer().set(speedChangedKey, PersistentDataType.INTEGER, 1); + event.getEntity().getPersistentDataContainer().set(speedChangedKey, PersistentDataTypes.BOOLEAN, true); plugin.getLogger().log(Level.INFO, "Horse bred to have speed: " + newSpeed); } @EventHandler(priority = EventPriority.HIGHEST) public void on(CreatureSpawnEvent event) { - System.out.println("evt"); if (event.getEntity().getType() != EntityType.HORSE) { return; } if (event.getSpawnReason() == CreatureSpawnEvent.SpawnReason.BREEDING) { return; } - if (((Tameable) event.getEntity()).isTamed() || event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataType.INTEGER)) { + if (((Tameable) event.getEntity()).isTamed() || event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataTypes.BOOLEAN)) { return; } @@ -69,7 +70,7 @@ public class FasterHorses extends BasicHack { } double irwinHallDist = (Math.random() * 0.3 + Math.random() * 0.3 + Math.random() * 0.3) * ((this.maxSpeed - this.minSpeed) / 0.9) + this.minSpeed; moveSpeed.setBaseValue(irwinHallDist); - event.getEntity().getPersistentDataContainer().set(speedChangedKey, PersistentDataType.INTEGER, 1); + event.getEntity().getPersistentDataContainer().set(speedChangedKey, PersistentDataTypes.BOOLEAN, true); plugin.getLogger().log(Level.INFO, "Setting Horse Speed to: " + irwinHallDist); } } From 9ba8f5ee10fa7e2453769a7821d42c2e841a88e1 Mon Sep 17 00:00:00 2001 From: Jeremy Favro <63616270+MrJeremyFisher@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:09:07 -0500 Subject: [PATCH 3/3] Remove unnecessary PDC check --- .../minecraft/simpleadminhacks/hacks/basic/FasterHorses.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java index 01aa735c1..04a3295f0 100644 --- a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java +++ b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/FasterHorses.java @@ -35,9 +35,6 @@ public class FasterHorses extends BasicHack { if (event.getEntity().getType() != EntityType.HORSE) { return; } - if (event.getEntity().getPersistentDataContainer().has(speedChangedKey, PersistentDataTypes.BOOLEAN)) { - return; - } double dadSpeed = event.getFather().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).getBaseValue(); double mumSpeed = event.getMother().getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).getBaseValue(); double irwinHallDist = (Math.random() * 0.3 + Math.random() * 0.3 + Math.random() * 0.3) * ((this.maxSpeed - this.minSpeed) / 0.9) + this.minSpeed;