Johni0702 / bobby

GNU General Public License v3.0
213 stars 57 forks source link

Beacons do not function properly after extensive Bobby usage [1.19.3] [Multiplayer] #150

Closed konichiwah89 closed 1 year ago

konichiwah89 commented 1 year ago

I have recently deduced that there is some kind of plugin conflict with the Bobby mod after it's been used for awhile.

When I was removing mods from my pack one by one, I discovered that Bobby was the culprit for beacons not functioning properly in Minecraft multiplayer. In solo Minecraft, the beacons worked just fine.

After modifying each and every setting (including turning the mod off entirely through the UI), the bug persisted.

On the server that I regularly play on, the mod works fine for a select period of time, but soon (after many chunks get stored) it almost entirely nullifies the effect of nearby beacons - possibly breaking them.

i.e: Haste beacons will no longer be able to instant-mine. Speed beacons will freeze the user in place, as if they were stuck in a block.

The only significant plugins that the server in particular has is Towny and McMMO. The only possible plugin I could see causing this error would be McMMO.

If any additional information is needed, I'll happily oblige. The plugins list for this server is hidden unfortunately, so I can only disclose what is utmost obvious.

Johni0702 commented 1 year ago

I'll need a way to (at least somewhat reliably) reproduce the issue. As is, this sounds extremely implausible for multiple reasons.

LForLegato commented 1 year ago

I've had the exact same issue.

Johni0702 commented 1 year ago

I still have no clue how to reproduce the issue nor what could cause it.

LForLegato commented 1 year ago

I could show you how I created the issue via you joining the server I'm on or sending you some sort of recording/screenshots of what is exactly happening.

konichiwah89 commented 1 year ago

If you need me to provide the client file, I can do so. I'm not sure what information is held on the client-side (i.e, user information), so I'm a bit weary of sending it on a public forum.

For now, here's a pastebin of a forced crash using said client. https://pastebin.com/XG20QEti

Johni0702 commented 1 year ago

If you need me to provide the client file, I can do so. I'm not sure what information is held on the client-side (i.e, user information), so I'm a bit weary of sending it on a public forum.

Not sure what you mean by client file. What I need is a (at least somewhat reliable) way to reproduce it on my machine, so I can then go and dissect the game to see what exactly is happening.

For now, here's a pastebin of a forced crash using said client.

Have you tried to see if you can reproduce the issue with only Bobby?

I could show you how I created the issue via you joining the server

Not sure why I missed that, but @LForLegato if that offer still stands, then yes, this and some instructions on what to do on there plus what client settings (options.txt and bobby.conf) to use is exactly what I'm looking for.

konichiwah89 commented 1 year ago

Have you tried to see if you can reproduce the issue with only Bobby?

This is a good point you brought up. With the bugged client, I had removed Bobby as the only mod and it fixed the issue regarding beacons. However, it was not solely Bobby that was used in the bugged client. I will try removing all mods except Bobby to see if it persists - which would indicate some kind of server plugin conflict.

note: The server I am on, there is a developer by the name of "Warrior" who may be able to give you a plugin that may be causing the conflict. The server is EarthMC and his Discord is "Warrior#4676". However, since this is a pretty big server, there's an offset chance that he'll outright reject any proposition for the full plugin list. I have only been able to conclude the obvious plugins, such as Towny or McMMO.

Here's the bobby.conf / options.txt file you were looking for, if this is of any use. options.txt I had to convert the bobby config file to a .txt, hopefully this is okay. bobby.txt Finally, here's the specific folder related to the server itself. I had it uploaded directly to Google Drive, let me know if this is problematic. https://drive.google.com/drive/folders/1SGMYJnCsw9Btk98aM-ec1XU_lLBKfdq5?usp=sharing

Johni0702 commented 1 year ago

What do I do once connected to the server? How do I get near some beacons? What exactly do I do to trigger the issue?

I ran from eastern India through Bangladesh to Myanmar, via boat to Malaysia (claimed by Sigapore) and finally via Singapore proper into Indonesia where my starter bread finally ran out and I had no issues with any of the beacons I encountered along the way. I did install Sodium and Starlight in addition to bobby and reduced the render distance to a more reasonable 207 because my system had trouble rendering all the clouds at the insane distance set initially.

I had it uploaded directly to Google Drive, let me know if this is problematic.

Not sure if that worked because almost all the mca files are completely empty.

Btw, please don't add new information via the edit functionality (unless it's not important information). GitHub only sends a notification/email for the initial message, not for edits. I've only seen the remainder of your message because I happened to re-check manually.

konichiwah89 commented 1 year ago

I appreciate that tip, I don't go on GitHub too often. Furthermore, I also appreciate you taking the time to try and replicate the issue, I'm sorry that the bug couldn't be replicated on your end after all of that effort.

This is the main server that I play on, I probably have the pack installed and running normally through that server for at least 30-50 hours before the bug comes about (yes, I don't have much of a life). The bug appears once a user enters the proximity of a beacon, or is teleported within a beacon, and can also happen outside of the towns that the Towny plugin provides. The bug remains active even when the user logs off from the server, and also remains in effect for the specific installation, as if it was some kind of corruption. When I install a new pack with the same mods, I end up with the same bug after around that same amount of playtime, which indicates that this can be replicated to some degree.

So far, I have deduced that it appears to be from some sort of plugin conflict within the server (i.e, when I go on Hypixel, the same bug cannot be replicated), which is why I opted for the idea of contacting one of the lead developers of the server, Warrior. My best guess is that this bug may have something to do with corruption after creating excessive stored data, which admittedly doesn't make too much sense, but it is the only thing that comes to mind. I do not believe there are any hardware-related issues in regard to this bug, it appears to be some kind of corruption that lays within the pack itself. On top of all of that, during the bug testing, I had been adjusting all sorts of knobs and whistles through the modlist options, disabling and enabling just about every option, lowering and increasing render distance to certain amounts, etc. None of the adjustments stopped the bug.

To answer the questions in a TL:DR matter - 1) Once you join the server, it would be ideal to try and replicate the issue by spending a good amount of playtime on said server, traveling around, doing what a normal player would do, for about 30-50 hours. (although, to save you the trouble, I think it would be better for me to find a way to give you the corrupted pack folder) 2) To get near beacons, I suggest joining a nation on that server through the Towny plugin, which will allow you to travel to other allied nations (in which almost all of the major nations have some sort of spawn beacon). 3) And finally, to trigger the issue, you simply need to be in proximity to any beacon.

Do you have any other place I could upload the Google Drive files to?

Johni0702 commented 1 year ago

I'd suggest you zip the entire folder on your system and once that's done upload the zip file as a whole (and be sure to wait for the upload to be completed).

Please do also check if it happens with just bobby + sodium + starlight (and please specify the exact versions you're using) and no other mods because that's the ones I've got installed in my test instance and to rule out this being a bug in another mod that e.g. has a certain chance to happen per loaded chunk, in which case bobby might not actually cause the issue but removing bobby would of course lower the chances of it happening, making it appear like it is related to bobby.

And to confirm I understood this correctly: The initial conditions that trigger the bug are extremely rare but once triggered it persists across restarts and only stops once bobby is removed / a new instance is created. Meaning, once active, it's very reproducible. And you have such an instance available right now (from which you sent above config files and are trying to send the bobby cache).

konichiwah89 commented 1 year ago

Found our culprit.

The issue has to do with the 239MB sized file for the Earth server that I play on regularly. It is located within the .bobby folder. Screenshot_6 Screenshot_7

Upon removing the stored data for this server, the bug is gone. I can deduce at this point, logically speaking, that this bug has to do with excessive data storage causing beacon muckery.

Before discovering this, I isolated the mod and re-loaded the Minecraft instance about 12 times over, with each new run removing a mod that might possibly be conflicting with Bobby. Even after the removal of all mods, the beacon bug still persisted.

I tried running the instance without the stored data for the server, and the beacon bug is gone. When I inserted the stored data back into the instance, the bug returned.

To answer the details, I am running Minecraft 1.19.3 with Fabric 0.14.19 through the CurseForge app (not sodium & starlight, which your test instance has).

Since the offending file is massive (173MB even as a .zip file), I'm going to have to upload it through Dropbox. https://www.dropbox.com/s/utplx3dioaiat0k/play.earthmc.net.zip?dl=0

To replicate this issue: 1) Install Minecraft 1.19.3 through CurseForge with Fabric v0.14.19 2) Install Bobby mod v4.0.3 3) add .bobby folder in the Instance folder 4) In the .bobby folder, unzip the dropbox file and add the file into that directory 5) Join the Earth server and approach any beacon effects (usually major nations will have them at their spawn)

Tried this myself and was able to personally replicate the issue.

Sorry for my late response, I got a bit busy with life. If there's any problems with the download, please don't hesitate to contact me through Discord, kon#0772

Johni0702 commented 1 year ago

Can you still reproduce this on 1.19.4 with Bobby 4.0.5? Unfortunately EarthMC no longer allows 1.19.3 (my bad for not getting round to it sooner), so I was unable to test that. I tried with 1.19.4 but upon connecting it seems your cache suffers from #127, preventing me from connecting at all (not sure how you would be able to connect). Applying the workaround allows me to connect but beacons (the haste beacon in Glacéau) are functioning normally as far as I can tell.

Upon removing the stored data for this server, the bug is gone. I can deduce at this point, logically speaking, that this bug has to do with excessive data storage causing beacon muckery.

You may deduce that it has to do with data storage. But the "excessive" part is unfounded. And 240MB isn't that much in the context of world data, my own Wynncraft folder is 1.2GB and I haven't had any issue (though granted Wynncraft doesn't exactly have vanilla beacons).

konichiwah89 commented 1 year ago

Hi,

I just so happened to run into the problem again here on 1.19.4, it's good that I did because it seems you are asking for just that. I decided to update my mods, including Bobby to v4.0.6, and upon rejoining the server, it looks like the bug disappeared... which is a good thing! However, I am not entirely 100% that this bug will not replicate itself again in the future. I will continue playing and will continue developing the cache to see if the problem persists in this newest update.

Sorry about the 'excessive' comment, I am not much of a programmer. Dabbled a bit in Lua and Python, but never Java, so I just presumed that a few hundred MB was pretty large.

As for further comment: I believe the large cache folder is responsible for both the error in #127 and this current beacon error when I -am- able to join. In short, the two errors I typically find when the cache is too large is: A) I "join" the server, but the client is stuck on "Joining World" B) I join the server, and cannot move when I enter the range of any beacon.

I will keep you posted.