LagGoggles
LagGoggles copied to clipboard
Invalid player teleportation
Describe the bug When using LagGoggles results to teleport accross dimension, the related Forge event PlayerChangedDimensionEvent is never called.
This was observed with this modpack: https://www.curseforge.com/minecraft/modpacks/worldwarminecraft/files/2804478 including WarpDrive-1.12.2-1.5.10.jar which rely on that event to synchronize clients.
To Reproduce Do a profiling Open results and double click a block in another dimension Expecting a log from WarpDrive about onPlayerChangedDimension Found no log
If you are using SpongeForge, which version are you using? 1.12.2-2838-7.1.7-RC3928
Please provide the early startup messages starting with [LagGoggles-Boot]
Example:
[15:48:36] [main/INFO] [LagGoggles-Boot]: I am located here: file:/home/wwm/wwm/./mods/LagGoggles-FAT-1.12.2-4.8.jar!/cf/terminator/laggoggles/Main.class
[15:48:36] [main/INFO] [LagGoggles-Boot]: I am designed for Forge version: 14.23.5.2838
[15:48:36] [main/INFO] [LagGoggles-Boot]: Loading server classes
[15:48:36] [main/INFO] [LagGoggles-Boot]: SpongeForge is present!
[15:48:36] [main/INFO] [LagGoggles-Boot]: I am designed for SpongeForge version: 1.12.2-2838-7.1.7-RC3881
[15:48:36] [main/WARN] [LagGoggles-Boot]: SpongeForge version is different than expected!
[15:48:36] [main/WARN] [LagGoggles-Boot]: This could result in undefined behavior.
[15:48:36] [main/WARN] [LagGoggles-Boot]:
[15:48:36] [main/WARN] [LagGoggles-Boot]: Expected: '1.12.2-2838-7.1.7-RC3881', but you have: '1.12.2-2838-7.1.7-RC3928' installed.
[15:48:36] [main/INFO] [LagGoggles-Boot]: We're running in a production environment.
[15:48:41] [main/INFO] [LagGoggles-Boot]: Enabling: cf.terminator.laggoggles.mixin.MixinWorld
[15:48:41] [main/INFO] [LagGoggles-Boot]: Enabling: cf.terminator.laggoggles.mixin.MixinEntity
[15:48:41] [main/INFO] [LagGoggles-Boot]: Enabling: cf.terminator.laggoggles.mixin.MixinWorldServerSponge
[15:48:41] [main/INFO] [LagGoggles-Boot]: Skipping: cf.terminator.laggoggles.mixin.MixinWorldServerForge
[15:48:41] [main/INFO] [LagGoggles-Boot]: Enabling: cf.terminator.laggoggles.mixin.MixinEventBus
[15:48:41] [main/INFO] [LagGoggles-Boot]: Enabling: cf.terminator.laggoggles.mixin.MixinASMEventHandler
[15:48:41] [main/INFO] [LagGoggles-Boot]: Skipping: cf.terminator.laggoggles.mixin.MixinTileEntityRendererDispatcher
[15:48:41] [main/INFO] [LagGoggles-Boot]: Skipping: cf.terminator.laggoggles.mixin.MixinRenderManager
[15:48:42] [main/INFO] [LagGoggles-Boot]: Applied mixin: cf.terminator.laggoggles.mixin.MixinWorld
[15:48:43] [main/INFO] [LagGoggles-Boot]: Applied mixin: cf.terminator.laggoggles.mixin.MixinWorldServerSponge
[15:48:43] [main/INFO] [LagGoggles-Boot]: Applying custom transformer for cf.terminator.laggoggles.mixin.MixinWorldServerSponge
[15:48:43] [main/INFO] [LagGoggles-Boot]: Redirected call in method func_147456_g ()V
[15:48:43] [main/INFO] [LagGoggles-Boot]: Redirected call in method func_147456_g ()V
[15:48:43] [main/INFO] [LagGoggles-Boot]: Redirected call in method redirect$spongeBlockUpdateTick$zmb000 (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/INFO] [LagGoggles-Boot]: Redirected call in method redirect$onUpdateTick$zmb000 (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/INFO] [LagGoggles-Boot]: Redirected call in method redirect$spongeBlockUpdateTick$zmb000 (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/INFO] [LagGoggles-Boot]: Redirected call in method redirect$onUpdateTick$zmb000 (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: func_147456_g ()V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: randomBlockTickRedirectorVanilla (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: randomBlockTickRedirectorSponge (Lorg/spongepowered/common/bridge/world/WorldServerBridge;Lnet/minecraft/block/Block;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: redirect$spongeBlockUpdateTick$zmb000 (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: redirect$onUpdateTick$zmb000 (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: normalBlockTickRedirectorVanilla (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/DEBUG] [LagGoggles-Boot]: normalBlockTickRedirectorSponge (Lorg/spongepowered/common/bridge/world/WorldServerBridge;Lnet/minecraft/block/Block;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V
[15:48:43] [main/DEBUG] [LagGoggles-Boot]:
[15:48:43] [main/INFO] [LagGoggles-Boot]: Applied mixin: cf.terminator.laggoggles.mixin.MixinEntity
[15:48:47] [main/INFO] [LagGoggles-Boot]: Applied mixin: cf.terminator.laggoggles.mixin.MixinEventBus
Line 8167: [15:49:01] [Server thread/INFO] [LagGoggles-Boot]: Applied mixin: cf.terminator.laggoggles.mixin.MixinASMEventHandler
For the record, the EntityJoinWorldEvent forge event also appears to be missing.
I copied the teleportation snipped from SpongeForge's source. See here There's a lot of things going on to TP a user across a dimension.
LagGoggles teleporting is intended for admins only, is this really an issue that needs to be adressed? I'd rather not go down the rabbit hole of teleporting across various dimensions if there's no problem to begin with.
That code is way more complicated than it needs to be. Here's what I use in my mod (pure forge) https://github.com/LemADEC/WarpDrive/blob/MC1.12/src/main/java/cr0s/warpdrive/Commons.java#L1067-L1098
Would you mind doing a pull request for this segment? That would help me out greatly.