Invalid player teleportation
LemADEC opened this issue ยท 4 comments
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
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