diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-12-11 20:49:50 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-12-11 20:49:50 -0500 |
commit | fa81452f198c344dcbe6460f6a189a2400780159 (patch) | |
tree | 1b03e87e8173bb1269281ce9a15c457a1ad2c629 /src/main/java/de | |
parent | ab3d2e8535500225eb0b71b03026853999aef381 (diff) | |
download | Skyblocker-fa81452f198c344dcbe6460f6a189a2400780159.tar.gz Skyblocker-fa81452f198c344dcbe6460f6a189a2400780159.tar.bz2 Skyblocker-fa81452f198c344dcbe6460f6a189a2400780159.zip |
Ignore invalid entity data exceptions
These exceptions seem to be triggered in dungeons as a result of sending
invalid data in entity packets, and for some reason when the exceptions
are left unchecked they cause lag spikes.
Diffstat (limited to 'src/main/java/de')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/DataTrackerMixin.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/DataTrackerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/DataTrackerMixin.java new file mode 100644 index 00000000..a5ab3b3e --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixin/DataTrackerMixin.java @@ -0,0 +1,25 @@ +package de.hysky.skyblocker.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; + +import de.hysky.skyblocker.utils.Utils; +import net.minecraft.entity.data.DataTracker; + +@Mixin(DataTracker.class) +public class DataTrackerMixin { + + @WrapOperation(method = "writeUpdatedEntries", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/data/DataTracker;copyToFrom(Lnet/minecraft/entity/data/DataTracker$Entry;Lnet/minecraft/entity/data/DataTracker$SerializedEntry;)V")) + public void skyblocker$ignoreInvalidDataExceptions(DataTracker dataTracker, DataTracker.Entry<?> to, DataTracker.SerializedEntry<?> from, Operation<Void> operation) { + if (Utils.isOnHypixel()) { + try { + operation.call(dataTracker, to, from); + } catch (IllegalStateException ignored) {} //These exceptions cause annoying small lag spikes for some reason + } else { + operation.call(dataTracker, to, from); + } + } +} |