Jump to content

[1.12] [RESOLVED] Fatal error on a previously working line of code


That_Martin_Guy

Recommended Posts

The code that gives the error has been working perfectly previously, but now it throws an error when I added some code on top of this on my project. These two should not be related to each other in any way, however, minus that they are both somewhat related to networking. The error doesn't crash the game, it just makes me unable to log in to any world.

 

Crash log

The line that's causing it, according to the log (which used to work)

Diff showing what I changed from when it was working

Edited by That_Martin_Guy
Link to comment
Share on other sites

I don't know exactly - I think it's something to do with the way they are written to/from bytes which is kind of linear, so if things get offset by one packet not being registered right then the problem appears to come from somewhere else. The reason I recognised it in this case is just because I've had this crash a couple of times and tracked it down to unregistered packets!

  • Like 1
Link to comment
Share on other sites

2 hours ago, That_Martin_Guy said:

Registering it did fix it. Why was it so specific about it being an error in another packet though?

 

When FML sends an IMessage over the network, it includes the discriminator byte you specified for the class in SimpleNetworkWrapper#registerMessage so it knows which class to instantiate on the receiving side. If you don't register an IMessage class, it defaults to 0 and instantiates whatever class you registered for discriminator 0.

 

Since the class instantiated on the receiving side is different to the one that was sent, the byte buffer won't contain the data it was expecting and an exception will be thrown (if it tries to read more data than was written) or it will silently corrupt the data as it reads it from the byte buffer (if it tries to read less than or equal to the amount that was written).

Edited by Choonster
  • Like 2

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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