From bbda4b47873b80321a836e06830d9b4065610397 Mon Sep 17 00:00:00 2001 From: zontreck Date: Tue, 2 Apr 2024 14:08:33 -0700 Subject: [PATCH] Switch to a different tick event due to unpredictable behavior in enchantments --- gradle.properties | 2 +- .../otemod/enchantments/EnchantmentEvents.java | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/gradle.properties b/gradle.properties index 6d65219..d89cf42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ mod_name=Thresholds # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=GPLv3 # The mod version. See https://semver.org/ -mod_version=1201.4.040124.1700 +mod_version=1201.4.040224.1407 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java b/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java index 22d9180..d35647d 100644 --- a/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java +++ b/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java @@ -6,23 +6,22 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.server.ServerLifecycleHooks; @Mod.EventBusSubscriber public class EnchantmentEvents { - private static int TICKS = 0; + @SubscribeEvent - public static void onServerTick(TickEvent.ServerTickEvent event) + public static void handleEnchantmentTicks(TickEvent.PlayerTickEvent event) { - MinecraftServer server = ServerLifecycleHooks.getCurrentServer(); - if(server.getPlayerCount() == 0) return; + if(event.side == LogicalSide.CLIENT) return; - if(TICKS >= 20) + if(event.phase == TickEvent.Phase.END) { - - for(ServerPlayer sp : server.getPlayerList().getPlayers()) + if(event.player instanceof ServerPlayer sp) { FlightEnchantment.runEntityTick(sp); ConsumptionMending.onEntityTick(sp); @@ -30,10 +29,6 @@ public class EnchantmentEvents WaterBreathingEnchantment.runEntityTick(sp); } - TICKS=0; - } - - TICKS++; } } \ No newline at end of file