Vampirism - Become a vampire!

Vampirism - Become a vampire!

16M Downloads

[Bug] 1.14.4 Totem Generation null

KittenKoder opened this issue ยท 3 comments

commented

Versions

  • Minecraft: 1.14.4
  • Forge: 28.2.0
  • Vampirism: 1.6.0-beta

During town generation the terrain generation will freeze. Took me awhile to figure out what was causing the hang but eventually I got the log file small enough to locate this:

[07Mar2020 07:18:14.724] [Client thread/ERROR] [net.minecraft.client.network.play.ClientPlayNetHandler/]: Received invalid update packet for null tile entity at BlockPos{x=1565, y=64, z=-133} with data: {controllingFaction:"vampirism:hunter",x:1565,y:64,z:-133,isDisabled:0b,id:"vampirism:totem",villageArea:[I;1487,50,-222,1639,91,-63],isComplete:1b,isInsideVillage:1b}

That error was being spammed continually into the log files, and the worldgen routines were locked up during it. The network object is attempting to set data to a TE that's not even present.

Unknown world generation event.

You should have everything you need to fix this bug. It's been awhile since I had to deal with this specific issue so I don't recall the specific reasons this bug shows up.

commented

I cannot reproduce this with the given information. For me villages generate fine without freezes (with and without totem).
Not really sure how this can happen. Vampirism is not directly involved in syncing the TE, this is done by Forge/Vanilla. Futhermore, neither the logging nor the failed packet update nor sending the update itself are part of the worlgen routine and cannot directly be involved in locking them up.

Are you willing to share your modpack or entire instance? Maybe this will help to identify the other issue as well.

commented

You can fix it by checking to ensure there is a tile entity and that it's specifically the totem at the client packet receiver. Many mods will overwrite the totem block/TE, the problem is that there is no way a modpack collector or player can alter the priority of worldgen for mods.

Whenever sending data using sockets you should always check that the target entity exists, in all cases. The very tiny impact it has on performance is well worth the huge improvement to stability.

I do not know how experienced the developers are for this mod, so I did not want to explain the details on why this type of issue can appear. Also, based on how it spammed the log, it likely went into an infinite loop.

The problem with spamming the debug log is that Forge will stop posting to that after a certain number of lines in normal use, so sending every tiny bit of information to the debug log will mean that most players will not ever see the actual errors to report them. This will result in most modders just ditching the mods that spam the log.

commented

Apparently you do not have any experience with Minecraft modding, so there is no point in discussing the technical details with you.
Furthermore, you have not shown any interest in helping to solve this issue. In the time you wrote this text, you could have easily uploaded your modpack or modlist.
Therefore, I will close this issue. If anyone else is having this problem, please open a new one.
Since this is the second issue like this, you will also be blocked. Just remove Vampirism and live a bug free life :)