Jump to content

[Solved] Keeping TileEntity client-side in sync every second


Narrakan

Recommended Posts

So here's the scenario:

I have a TileEntity which stores, among other things, four float variables. These variables should be processed (incremented, decremented) server-side, and should be kept in sync with the client every few ticks. I need to do that because the variables should be showed in a GUI to the player (similar to a furnace, but with additional stats).

 

This is what I've tried in the last couple of hours:

  • Keeping the container class and the GUI class in sync using updateCraftingResults + sendProgressBarUpdate (following the furnace example), but the problem is, I need to keep track of float types, and in non-local SMP these functions only use shorts, so I don't think that's really helpful
  • Adding getDescriptionPacket and onDataPacket as in the TileEntitySign and in other discussions I've checked, but from what I've seen, these functions only get called when the entity is first initialized, and unloaded, so they don't serve the purpose
  • Routing my packets through a PacketHandler, to deliver them to the client side, simply by decrementing a tickCounter and firing a PacketHandler.sendPacketToClient function when it reached 0. I don't know if there were any errors in the function, but the result is, it only was called on the server, so no effect on the client

 

I find myself stuck in this thing. Does any of you have some suggestions about this issue? Is there a way to keep the server and client side of a TileEntity in sync every second or so?

Link to comment
Share on other sites

use an IScheduledTickHandler with a schedule of 20 ticks?

Protip: try and find answers yourself before asking on the forum.

It's pretty likely that there is an answer.

 

Was I helpful? Give me a thank you!

 

 

width=635 height=903http://bit.ly/HZ03zy[/img]

 

 

Tired of waiting for mods to port to bukkit?

use BukkitForge! (now with a working version of WorldEdit!)

Link to comment
Share on other sites

Thanks for answering! I've had a look at the IScheduledTickHandler, and from what I've seen, I should set the TickType to SERVER, netTickSpacing to return 20 or so, and I should do something in the method tickEnd, am I right?

 

The problem is, I really don't know WHAT to do in this method. I mean, should I simply call getDescriptionPacket? Doesn't that function only return a well-formed packet and nothing else? My main problem is to allow the server entity to communicate somehow with the client entity.

Link to comment
Share on other sites

So you'd run whatever code you wanted to in tickEnd (or tickStart, doesn't matter), look at the wiki for a tutorial on how to use packets.

Protip: try and find answers yourself before asking on the forum.

It's pretty likely that there is an answer.

 

Was I helpful? Give me a thank you!

 

 

width=635 height=903http://bit.ly/HZ03zy[/img]

 

 

Tired of waiting for mods to port to bukkit?

use BukkitForge! (now with a working version of WorldEdit!)

Link to comment
Share on other sites

Well, the wiki wasn't really helpful this time :-\

 

Anyway, after an extensive google search I got it to work by using the PacketDispatcher.sendPacketToAllPlayers in tickEnd, now it is updating as it should. Thanks for pointing me in the right direction.

Link to comment
Share on other sites

I think the cleaner solution is to use the built-in tile-entity packet sending stuff---you were on the right track.

 

The trick is, on server side when you need to send updates to clients, do world.markblocksasneedsupdate(x,y,z)  <sp? don't have my source ATM>, and it will force-resend the TE NBT tag/packet, just as if it was first initialized/sent to the client.  Run a counter in the TE entityUpdate method to mark as dirty every second (or just mark as dirty whenever you actually need to send the info).

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

    • tried "gradlew build" in terminal, it did create the mod jar, trying to run it from Eclipse crashes still.   19:48:50 (GMT+3) : tried "gradlew runClient", worked, but kinda annoying honestly.    
    • Close the topic, found it: mc.player.inventoryMenu.clicked()
    • so, basically, i'm trying to make a mod via Eclipse, so i downloaded "forge-1.20.1-47.2.1-mdk". after decompiling* then opening it in the said IDE (Eclipse) and Running the project, i get this error. shortened : Exception in thread "main" com.electronwill.nightconfig.core.io.ParsingException: Invalid bare key: ${mod_id} entire error : pastebin i'm mostly new to forge, so yea.  
    • my server is crashing for some reason I don't understand i have mods on the server   ---- Minecraft Crash Report ---- WARNING: coremods are present:   CorePlugin (smooth-font-mod-1_12_2.jar)   TransformLoader (DynamicSurroundings-1.12.2-3.6.1.0.jar)   LoadingPlugin (Bloodmoon_MC1.12.2_1.5.3.jar)   LoadingPlugin (resourceloader-mc1.12.1-1.5.3.jar)   XaeroWorldMapPlugin (WorldMap-v1.29.3-for-Forge-1.12.2.jar)   Aqua Acrobatics Transformer (AquaAcrobatics-v1.2.2-1.12.2.jar)   AppleCore (AppleCore-mc1.12.2-3.2.0.jar)   ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)   XaeroMinimapPlugin (Minimap-v22.16.2-for-Forge-1.12.2.jar)   llibrary (llibrary-core-1.0.11-1.12.2.jar)   AstralCore (astralsorcery-1.12.2-1.10.27.jar)   ForgelinPlugin (forgelin-1.8.4.jar)   PhosphorFMLLoadingPlugin (phosphor_forge_mc1.12.2_0.2.7_universal.jar)   BetterFoliageLoader (betterfoliage-mc1.12-2.3.3.jar)   CreativePatchingLoader (CreativeCore_v1.10.65_mc1.12.2.jar)   Inventory Tweaks Coremod (InventoryTweaks_1.12.2_1.64dev.151.jar)   SurgeLoadingPlugin (surge-1.12.2-2.0.79.jar) Contact their authors BEFORE contacting forge // Hi. I'm Minecraft, and I'm a crashaholic. Time: 9/30/23 1:22 PM Description: Exception in server tick loop java.lang.NullPointerException: Exception in server tick loop     at net.minecraft.world.WorldEntitySpawner.func_77191_a(WorldEntitySpawner.java:297)     at net.minecraft.world.gen.ChunkGeneratorOverworld.func_185931_b(ChunkGeneratorOverworld.java:466)     at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1019)     at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999)     at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157)     at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:344)     at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:314)     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:270)     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)     at java.lang.Thread.run(Thread.java:748) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.12.2     Operating System: Linux (amd64) version 4.19.0-22-amd64     Java Version: 1.8.0_312, Oracle Corporation     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 3256290592 bytes (3105 MB) / 3777495040 bytes (3602 MB) up to 3817865216 bytes (3641 MB)     JVM Flags: 1 total; -Xmx4096M     IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95     FML: MCP 9.42 Powered by Forge 14.23.5.2860 86 mods loaded, 86 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     | State  | ID                   | Version              | Source                                        | Signature                                |     |:------ |:-------------------- |:-------------------- |:--------------------------------------------- |:---------------------------------------- |     | LCHIJA | minecraft            | 1.12.2               | minecraft.jar                                 | None                                     |     | LCHIJA | mcp                  | 9.42                 | minecraft.jar                                 | None                                     |     | LCHIJA | FML                  | 8.0.99.99            | server.jar                                    | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCHIJA | forge                | 14.23.5.2860         | server.jar                                    | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCHIJA | creativecoredummy    | 1.0.0                | minecraft.jar                                 | None                                     |     | LCHIJA | itemphysic           | 1.4.0                | minecraft.jar                                 | None                                     |     | LCHIJA | xaerominimap_core    | 1.12.2-1.0           | minecraft.jar                                 | None                                     |     | LCHIJA | smoothfontcore       | mc1.12.2-2.0-alpha-7 | minecraft.jar                                 | None                                     |     | LCHIJA | xaeroworldmap_core   | 1.12.2-1.0           | minecraft.jar                                 | None                                     |     | LCHIJA | aether_legacy        | 1.5.3.2              | aether-1.12.2-v1.5.3.2.jar                    | None                                     |     | LCHIJA | applecore            | 3.2.0                | AppleCore-mc1.12.2-3.2.0.jar                  | None                                     |     | LCHIJA | crafttweaker         | 4.1.20               | CraftTweaker2-1.12-4.1.20.682.jar             | None                                     |     | LCHIJA | jei                  | 4.16.1.1001          | jei_1.12.2-4.16.1.1001.jar                    | None                                     |     | LCHIJA | appleskin            | 1.0.14               | AppleSkin_mc1.12_1.0.14.jar                   | None                                     |     | LCHIJA | aquaacrobatics       | 1.1.6                | AquaAcrobatics-v1.2.2-1.12.2.jar              | None                                     |     | LCHIJA | baubles              | 1.5.2                | Baubles_1.12_1.5.2.jar                        | None                                     |     | LCHIJA | astralsorcery        | 1.10.27              | astralsorcery-1.12.2-1.10.27.jar              | a0f0b759d895c15ceb3e3bcb5f3c2db7c582edf0 |     | LCHIJA | guideapi             | 1.12-2.1.8-63        | guide-api-1.12-2.1.8-63.jar                   | None                                     |     | LCHIJA | bloodmagic           | 1.12.2-2.4.3-105     | BloodMagic-1.12.2-2.4.3-105.jar               | None                                     |     | LCHIJA | bloodmoon            | 1.5.3                | Bloodmoon_MC1.12.2_1.5.3.jar                  | d72e0dd57935b3e9476212aea0c0df352dd76291 |     | LCHIJA | bookshelf            | 2.3.590              | Bookshelf_1.12.2_2.3.590.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | botania              | r1.10-364            | Botania-r1.10-364.4.jar                       | None                                     |     | LCHIJA | crafttweakerjei      | 2.0.3                | CraftTweaker2-1.12-4.1.20.682.jar             | None                                     |     | LCHIJA | creativecore         | 1.10.0               | CreativeCore_v1.10.65_mc1.12.2.jar            | None                                     |     | LCHIJA | gamestages           | 2.0.123              | GameStages-1.12.2-2.0.123.jar                 | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | dimstages            | 2.0.23               | DimensionStages-1.12.2-2.0.23.jar             | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | durability101        | 0.0.4                | durability101-forge-1.12-0.0.4.jar            | None                                     |     | LCHIJA | orelib               | 3.6.0.1              | orelib-1.12.2-3.6.0.1.jar                     | 7a2128d395ad96ceb9d9030fbd41d035b435753a |     | LCHIJA | dsurround            | 3.6.1.0              | DynamicSurroundings-1.12.2-3.6.1.0.jar        | 7a2128d395ad96ceb9d9030fbd41d035b435753a |     | LCHIJA | ebwizardry           | 4.3.9                | electroblobswizardry-4.3.9.jar                | None                                     |     | LCHIJA | eplus                | 5.0.178              | EnchantingPlus_1.12.2_5.0.178.jar             | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | endreborn            | 0.3.5                | EndReborn_1.12.2_III0.3.6.jar                 | None                                     |     | LCHIJA | waila                | 1.8.26               | Hwyla_1.8.26_B41_1.12.2.jar                   | None                                     |     | LCHIJA | mtlib                | 3.0.7                | mtlib-3.0.7.jar                               | None                                     |     | LCHIJA | extrabotany          | 60                   | extrabotany-r1.1-60-beta-hotfix.jar           | None                                     |     | LCHIJA | fencejumper          | 1.0.1                | Fence_Jumper_Mod_1.12.2.jar                   | None                                     |     | LCHIJA | forbidden_arcanus    | 1.12.2-1.1.4         | forbidden_arcanus_1.12.2_1.1.4.jar            | None                                     |     | LCHIJA | forgelin             | 1.8.4                | forgelin-1.8.4.jar                            | None                                     |     | LCHIJA | ftblib               | 5.4.7.2              | FTBLib-5.4.7.2.jar                            | None                                     |     | LCHIJA | itemfilters          | 1.0.4.2              | ItemFilters-1.0.4.2.jar                       | None                                     |     | LCHIJA | ftbquests            | 1202.9.0.14          | FTBQuests-1.12.2-1202.9.0.14.jar              | None                                     |     | LCHIJA | gamestagebooks       | 1.12.2-1.0.2         | gamestagebooks-1.12.2-1.0.2-universal.jar     | None                                     |     | LCHIJA | geckolib3            | 3.0.30               | geckolib-forge-1.12.2-3.0.31.jar              | None                                     |     | LCHIJA | initialinventory     | 2.0.2                | initialinventory-3_0_0.jar                    | None                                     |     | LCHIJA | inventorytweaks      | 1.64+dev.151.822d839 | InventoryTweaks_1.12.2_1.64dev.151.jar        | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |     | LCHIJA | ironbackpacks        | 1.12.2-3.0.8-12      | ironbackpacks-1.12.2-3.0.8-12.jar             | None                                     |     | LCHIJA | ironchest            | 1.12.2-7.0.67.844    | ironchest_1.12.2_7.0.72.847.jar               | None                                     |     | LCHIJA | ironfurnaces         | 1.3.5                | ironfurnaces-1.3.5.jar                        | None                                     |     | LCHIJA | itemstages           | 2.0.49               | ItemStages-1.12.2-2.0.49.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | libraryex            | 1.2.2                | LibraryEx-1.12.2-1.2.2.jar                    | None                                     |     | LCHIJA | lost_aether          | 1.0.2                | lost-aether-content-1.12.2-1.0.2.jar          | None                                     |     | LCHIJA | magical_void_books   | 1.0.0                | MagicalVoidBooks_1.12.2_1.0.1.jar             | None                                     |     | LCHIJA | xaerominimap         | 22.16.2              | Minimap-v22.16.2-for-Forge-1.12.2.jar         | None                                     |     | LCHIJA | mobsunscreen         | @version@            | mobsunscreen-1.12.2-3.1.5.jar                 | None                                     |     | LCHIJA | llibrary             | 1.7.20               | llibrary_1.7.20_1.12.2.jar                    | b9f30a813bee3b9dd5652c460310cfcd54f6b7ec |     | LCHIJA | mowziesmobs          | 1.5.8                | mowziesmobs_1.12.2_1.5.8.jar                  | None                                     |     | LCHIJA | patchouli            | 1.0-23.6             | patchouli-1.0-23.6.jar                        | None                                     |     | LCHIJA | naturesaura          | 18.1                 | naturesaura-18.1.jar                          | None                                     |     | LCHIJA | naturescompass       | 1.8.5                | NaturesCompass_1.12.2_1.8.5.jar               | None                                     |     | LCHIJA | netherex             | 2.2.5                | NetherEx-1.12.2-2.2.5.jar                     | None                                     |     | LCHIJA | nutrition            | 4.9.0                | nutrition-1.12.2-4.9.0.jar                    | None                                     |     | LCHIJA | orestages            | 2.0.37               | OreStages-1.12.2-2.0.37.jar                   | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | puddles              | 1.1                  | Puddles_1.12.2_1.1.jar                        | None                                     |     | LCHIJA | qsilkspawners        | 1.0.0                | qsilkspawners_1.0.0.jar                       | None                                     |     | LCHIJA | rallyhealth          | 1.0.0                | RallyHealth_1.0.jar                           | None                                     |     | LCHIJA | realisticarmortiers  | 1.1.1                | realisticarmortiers-1.12.2-1.1.1.jar          | None                                     |     | LCHIJA | recipestages         | 1.1.3                | RecipeStages-1.1.3.8.jar                      | None                                     |     | LCHIJA | additionalstructures | 2.5.0                | rexs-additionalstructures-1.12.xv.2.5.0.jar   | None                                     |     | LCHIJA | sit                  | v1.1.1               | sit_1.12.x_v1.1.1.jar                         | None                                     |     | LCHIJA | skilltree            | 1.2.3.0              | skilltree-1.2.3.0.jar                         | None                                     |     | LCHIJA | surge                | 2.0.79               | surge-1.12.2-2.0.79.jar                       | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | twilightforest       | 3.11.1021            | twilightforest_1.12.2_3.11.1021_universal.jar | None                                     |     | LCHIJA | tfspellpack          | 1.1.0                | tfspellpack-1.1.0-mc1.12.2.jar                | None                                     |     | LCHIJA | titlechanger         | 1.1.4                | titlechanger-1.1.4.jar                        | None                                     |     | LCHIJA | tombmanygraves       | 1.12-4.2.0           | TombManyGraves_1.12_4.2.0.jar                 | None                                     |     | LCHIJA | totemic              | 1.12.2-0.11.7        | Totemic-1.12.2-0.11.7.jar                     | None                                     |     | LCHIJA | toughasnails         | 3.1.0.140            | ToughAsNails_1.12.2_3.1.0.140_universal.jar   | None                                     |     | LCHIJA | wawla                | 2.6.275              | Wawla_1.12.2_2.6.275.jar                      | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | winterwonderland     | 1.2.2                | WinterWonderLand_1.12_1.2.2.jar               | None                                     |     | LCHIJA | xaeroworldmap        | 1.29.3               | WorldMap-v1.29.3-for-Forge-1.12.2.jar         | None                                     |     | LCHIJA | xpfromharvest        | 1.2.0                | xpfromharvest-1.12.2-1.2.0.jar                | None                                     |     | LCHIJA | zenstages            | 0.5.0-null           | zenstages-0.5.0.jar                           | None                                     |     | LCHIJA | rtg                  | 6.1.0.0-snapshot.1   | RTG-1.12.2-6.1.0.0-snapshot.1.jar             | None                                     |     | LCHIJA | phosphor-lighting    | 1.12.2-0.2.7         | phosphor_forge_mc1.12.2_0.2.7_universal.jar   | None                                     |     | LCHIJA | betteranimalsplus    | 9.0.1                | betteranimalsplus_1.12.2_9.0.1.jar            | None                                     |     | LCHIJA | solcarrot            | 1.8.4                | solcarrot-1.12.2-1.8.4.jar                    | None                                     |     Loaded coremods (and transformers):  CorePlugin (smooth-font-mod-1_12_2.jar)   bre.smoothfont.asm.Transformer TransformLoader (DynamicSurroundings-1.12.2-3.6.1.0.jar)    LoadingPlugin (Bloodmoon_MC1.12.2_1.5.3.jar)   lumien.bloodmoon.asm.ClassTransformer LoadingPlugin (resourceloader-mc1.12.1-1.5.3.jar)   lumien.resourceloader.asm.ClassTransformer XaeroWorldMapPlugin (WorldMap-v1.29.3-for-Forge-1.12.2.jar)   xaero.map.core.transformer.ChunkTransformer   xaero.map.core.transformer.NetHandlerPlayClientTransformer   xaero.map.core.transformer.EntityPlayerTransformer   xaero.map.core.transformer.AbstractClientPlayerTransformer   xaero.map.core.transformer.WorldClientTransformer   xaero.map.core.transformer.PlayerListTransformer   xaero.map.core.transformer.SaveFormatTransformer   xaero.map.core.transformer.BiomeColorHelperTransformer   xaero.map.core.transformer.MinecraftTransformer Aqua Acrobatics Transformer (AquaAcrobatics-v1.2.2-1.12.2.jar)    AppleCore (AppleCore-mc1.12.2-3.2.0.jar)   squeek.applecore.asm.TransformerModuleHandler ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)   com.creativemd.itemphysic.ItemTransformer XaeroMinimapPlugin (Minimap-v22.16.2-for-Forge-1.12.2.jar)   xaero.common.core.transformer.ChunkTransformer   xaero.common.core.transformer.NetHandlerPlayClientTransformer   xaero.common.core.transformer.EntityPlayerTransformer   xaero.common.core.transformer.AbstractClientPlayerTransformer   xaero.common.core.transformer.WorldClientTransformer   xaero.common.core.transformer.EntityPlayerSPTransformer   xaero.common.core.transformer.PlayerListTransformer   xaero.common.core.transformer.SaveFormatTransformer   xaero.common.core.transformer.GuiIngameForgeTransformer   xaero.common.core.transformer.GuiBossOverlayTransformer   xaero.common.core.transformer.ModelRendererTransformer llibrary (llibrary-core-1.0.11-1.12.2.jar)   net.ilexiconn.llibrary.server.core.plugin.LLibraryTransformer   net.ilexiconn.llibrary.server.core.patcher.LLibraryRuntimePatcher AstralCore (astralsorcery-1.12.2-1.10.27.jar)    ForgelinPlugin (forgelin-1.8.4.jar)    PhosphorFMLLoadingPlugin (phosphor_forge_mc1.12.2_0.2.7_universal.jar)    BetterFoliageLoader (betterfoliage-mc1.12-2.3.3.jar)   mods.betterfoliage.loader.BetterFoliageTransformer CreativePatchingLoader (CreativeCore_v1.10.65_mc1.12.2.jar)    Inventory Tweaks Coremod (InventoryTweaks_1.12.2_1.64dev.151.jar)   invtweaks.forge.asm.ContainerTransformer SurgeLoadingPlugin (surge-1.12.2-2.0.79.jar)        Profiler Position: N/A (disabled)     Player Count: 0 / 20; []     Is Modded: Definitely; Server brand changed to 'fml,forge'     Type: Dedicated Server (map_server.txt)
    • Was working fine last night with the same mods but now I am getting this: The game crashed whilst rendering overlay Error: java.lang.ExceptionInInitializerError: null https://pastebin.com/rEpcDEFM
  • Topics

×
×
  • Create New...

Important Information

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