Jump to content

[1.12.2] [UNSOLVED] TileEntity out of sync, cannot figure out the reason.


-fr0st-

Recommended Posts

Good afternoon, modders.

 

I am in the process of creating a simple furnace-like block. This means I currently have the following classes, copied directly from the vanilla furnace: 

 

I am stuck. After a bit of debugging, I found out that the container holds the correct values, but somehow they are not correctly synchronized to the tileentity in WorldClient. The GUI displays different values from those held by the container. The thing that weirds me out the most is the fact that my code is copied directly from vanilla code, except for a few tweaks here and there.

 

The GUI opens without any problems and the inventory seems to be persistent, as far as NBT values being handled.

The weird things start happening when I try smelting ONE single 'Dust' item with my furnace: at first, fuelRemaining and fuelInitial are displayed on the GUI as whatever burn time the fuel item holds (it uses vanilla fuel), so let's say 1600 for a single coal item, and this value starts decreasing by 1 each tick. fuelInitial should NOT be decreasing at all, it should stay at 1600 until other fuel items are used. 

In the meantime, both smeltingProgress and smeltingDuration go from zero to 200 (again, smeltingDuration should be a fixed number!), and when they hit 200 their values are matched to those held by fuelRemaining and fuelInitial at the time. 

 

I find myself with a GUI displaying only one correct value, which is fuelRemaining, while the other three fields are the exact same.

I really cannot figure out why for the love of God this is happening.

 

Thanks for your precious time, I will now further investigate the possible issues of my code.

Cheers!

Edited by -fr0st-
Link to comment
Share on other sites

Good morning.

I have taken your advice, and am currently upgrading my setup. One question quickly arose in my head, though: without implementing the IInventory interface, I no longer have access to getField() and setField().

 

How am I going to access my tileentity's data on the client? Should I simply create my own version of getField() and setField() that simply returns/sets the value of my fields?

For instance, take a look at this snippet of code from the tileentity class:

@SideOnly(Side.CLIENT)
public static boolean isSmelting(ITileInventory tile) {
	return ((TileAlloySmelter) tile).getField(0) > 0;
}

 

Furthermore, all my container methods are now broken for the same exact reason - IContainerLister#sendAllWindowProperties needs an IInventory argument; Container#updateProgressBar and Container#detectAndSendChanges both need getField() or setField().

 

How do I make my container properly compatible with the new system? 

Thanks for your time!

Edited by -fr0st-
Link to comment
Share on other sites

6 minutes ago, -fr0st- said:

IContainerLister#sendAllWindowProperties

Just don't use it. This is for initial sync when the window is opened but you will sync all your data on the first tick anyway.

 

6 minutes ago, -fr0st- said:

Container#updateProgressBar and Container#detectAndSendChanges both need getField() or setField().

Just get and set your variables directly. get/setField are wrappers for variable access anyway. For example instead of getField(0) you would use tile.progress and instead of setField(0, value) you would use tile.progress = value. I have an example in one of my projects here.

Link to comment
Share on other sites

I have finished porting my code. The behaviour reported in the original post has not ceased, wrong values are still displayed in the GUI.

 

EDIT: I have put a breakpoint in the GUI class and in the tileentity class, here are the variables at the same exact tick: GUI and TileEntity. As you can see, the tileentityes have two different ids, so there are two instances for each block, one on WorldServer with correct values, and one on WorldClient with wrong values. Is this how minecraft handles tileentities? Genuinely curious.

Edited by -fr0st-
Link to comment
Share on other sites

Greetings, modders.

I have decided to completely rewrite my whole system from scratch, removing unneeded code such as ITileInventory.

At the moment I am on mobile, but as soon as I get home I will finish rewriting everything and - in case my issue persists - I will update the OP accordingly.

Thanks for your patience!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • when i do the same on my pc it works
    • Use your IDE for this. For example, if you are using "IntelliJ IDEA" and you correctly setup your project (jdk, forge mdk, gradle, parchment, etc.), then you can just use Ctrl + B with Block type selected. It will navigate you to class declaration.
    • I need help, my forge server crashes and i don't know where is the problem.    [25sep2023 14:24:30.772] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.forgeVersion, 36.1.4, --fml.mcpVersion, 20210115.111550, --fml.mcVersion, 1.16.5, --fml.forgeGroup, net.minecraftforge, /home/luka/.local/share/atlauncher/runtimes/minecraft/jre-legacy/linux/jre-legacy/bin/java nogui] [25sep2023 14:24:30.777] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 8.0.9+86+master.3cf110c starting: java version 1.8.0_202 by Oracle Corporation [25sep2023 14:24:31.055] [main/INFO] [net.minecraftforge.fml.loading.FixSSL/CORE]: Added Lets Encrypt root certificates as additional trust [25sep2023 14:24:31.098] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.2 Source=file:/home/luka/.local/share/atlauncher/servers/Darksouls/libraries/org/spongepowered/mixin/0.8.2/mixin-0.8.2.jar Service=ModLauncher Env=SERVER [25sep2023 14:24:32.824] [main/INFO] [mixin/]: Successfully loaded Mixin Connector [com.performant.coremod.mixin.Connector] [25sep2023 14:24:32.835] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'fmlserver' with arguments [--gameDir, ., /home/luka/.local/share/atlauncher/runtimes/minecraft/jre-legacy/linux/jre-legacy/bin/java nogui] [25sep2023 14:24:32.898] [main/INFO] [com.performant.coremod.Performant/]: Performant configs loaded [25sep2023 14:24:32.996] [main/FATAL] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/renderer/GameRenderer for invalid dist DEDICATED_SERVER [25sep2023 14:24:32.997] [main/WARN] [mixin/]: Error loading class: net/minecraft/client/renderer/GameRenderer (java.lang.RuntimeException: Attempted to load class net/minecraft/client/renderer/GameRenderer for invalid dist DEDICATED_SERVER) [25sep2023 14:24:32.999] [main/WARN] [mixin/]: @Mixin target net.minecraft.client.renderer.GameRenderer was not found shouldersurfing.mixins.json:MixinGameRenderer [25sep2023 14:24:33.011] [main/FATAL] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/GameSettings for invalid dist DEDICATED_SERVER [25sep2023 14:24:33.011] [main/WARN] [mixin/]: Error loading class: net/minecraft/client/GameSettings (java.lang.RuntimeException: Attempted to load class net/minecraft/client/GameSettings for invalid dist DEDICATED_SERVER) [25sep2023 14:24:33.012] [main/WARN] [mixin/]: @Mixin target net.minecraft.client.GameSettings was not found shouldersurfing.mixins.json:MixinGameSettings [25sep2023 14:24:33.034] [main/FATAL] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/gui/IngameGui for invalid dist DEDICATED_SERVER [25sep2023 14:24:33.035] [main/WARN] [mixin/]: Error loading class: net/minecraft/client/gui/IngameGui (java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/IngameGui for invalid dist DEDICATED_SERVER) [25sep2023 14:24:33.035] [main/WARN] [mixin/]: @Mixin target net.minecraft.client.gui.IngameGui was not found shouldersurfing.mixins.json:MixinIngameGui [25sep2023 14:24:33.128] [main/WARN] [mixin/]: Error loading class: net/optifine/shaders/ShadersRender (java.lang.ClassNotFoundException: null) [25sep2023 14:24:33.130] [main/WARN] [mixin/]: @Mixin target net.optifine.shaders.ShadersRender was not found shouldersurfing.mixins.json:MixinShadersRender [25sep2023 14:24:33.678] [main/INFO] [com.performant.coremod.Performant/]: Not enabling mixin forcom.performant.coremod.mixin.forge.BasicEventHooksMixin as config disables it. [25sep2023 14:24:33.706] [main/INFO] [com.performant.coremod.Performant/]: Not enabling mixin forcom.performant.coremod.mixin.entity.LivingEntityUpdateEventMixin as config disables it. [25sep2023 14:24:33.796] [main/WARN] [mixin/]: @Mixin target net/minecraft/world/server/ChunkManager$EntityTracker is public in performant.mixins.json:world.chunk.ChunkManagerEntityTrackMixin and should be specified in value [25sep2023 14:24:34.092] [main/FATAL] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class com/teamderpy/shouldersurfing/config/Config$ClientConfig for invalid dist DEDICATED_SERVER [25sep2023 14:24:34.092] [main/WARN] [mixin/]: Error loading class: com/teamderpy/shouldersurfing/config/Config$ClientConfig (java.lang.RuntimeException: Attempted to load class com/teamderpy/shouldersurfing/config/Config$ClientConfig for invalid dist DEDICATED_SERVER) [25sep2023 14:24:35.634] [main/FATAL] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER [25sep2023 14:24:35.634] [main/WARN] [mixin/]: Error loading class: net/minecraft/client/Minecraft (java.lang.RuntimeException: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER) [25sep2023 14:24:35.636] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException [25sep2023 14:24:35.636] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:39) [25sep2023 14:24:35.636] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [25sep2023 14:24:35.636] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [25sep2023 14:24:35.637] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [25sep2023 14:24:35.637] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [25sep2023 14:24:35.638] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63) [25sep2023 14:24:35.638] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60) [25sep2023 14:24:35.638] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.server.ServerMain.main(ServerMain.java:57) [25sep2023 14:24:35.638] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]: Caused by: java.lang.reflect.InvocationTargetException [25sep2023 14:24:35.638] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [25sep2023 14:24:35.639] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [25sep2023 14:24:35.639] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [25sep2023 14:24:35.639] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     at java.lang.reflect.Method.invoke(Method.java:498) [25sep2023 14:24:35.640] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     at net.minecraftforge.fml.loading.FMLServerLaunchProvider.lambda$launchService$0(FMLServerLaunchProvider.java:51) [25sep2023 14:24:35.640] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [25sep2023 14:24:35.640] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]:     ... 7 more [25sep2023 14:24:35.640] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]: Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered [25sep2023 14:24:35.640] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) [25sep2023 14:24:35.640] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:223) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at org.spongepowered.asm.mixin.transformer.MixinTransformationHandler.processClass(MixinTransformationHandler.java:121) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at org.spongepowered.asm.launch.MixinLaunchPlugin.processClass(MixinLaunchPlugin.java:131) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:154) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:265) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) [25sep2023 14:24:35.641] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.block.Blocks.<clinit>(Blocks.java:30) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.world.gen.surfacebuilders.SurfaceBuilder.<clinit>(SurfaceBuilder.java:12) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilders.<clinit>(SourceFile:11) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.util.registry.WorldGenRegistries.func_243674_g(WorldGenRegistries.java:33) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.util.registry.WorldGenRegistries.func_243668_a(WorldGenRegistries.java:89) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) [25sep2023 14:24:35.642] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.util.registry.WorldGenRegistries.<clinit>(WorldGenRegistries.java:88) [25sep2023 14:24:35.643] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.util.registry.Registry.<clinit>(Registry.java:464) [25sep2023 14:24:35.643] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.util.registry.Bootstrap.func_151354_b(Bootstrap.java:38) [25sep2023 14:24:35.643] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     at net.minecraft.server.Main.main(Main.java:92) [25sep2023 14:24:35.643] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:643]:     ... 13 more [25sep2023 14:24:35.643] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]: Caused by: org.spongepowered.asm.mixin.throwables.ClassMetadataNotFoundException: net.minecraft.client.Minecraft [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorStandard.transformMethod(MixinPreProcessorStandard.java:741) [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorStandard.transform(MixinPreProcessorStandard.java:726) [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorStandard.attach(MixinPreProcessorStandard.java:297) [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorStandard.createContextFor(MixinPreProcessorStandard.java:267) [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinInfo.createContextFor(MixinInfo.java:1271) [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:287) [25sep2023 14:24:35.644] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345) [25sep2023 14:24:35.645] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569) [25sep2023 14:24:35.645] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351) [25sep2023 14:24:35.645] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:667]:     ... 33 more
    • How can I see the Minecraft Blocks source code?
    • I have installed a minecraft 1.12.2 server and java 8, but the forge-blahblahblah.jar file isnt doing anything, the minecraft server file is opening the server but as expacted, it just launches a vanilla server
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.