End-Tech / syncmatica

Server-wide shared litematics.
Creative Commons Zero v1.0 Universal
97 stars 27 forks source link

BUG #71

Open bunnyi116 opened 7 months ago

bunnyi116 commented 7 months ago

I found that after uploading, unlocking, and then deleting, when using Syncmatica to load, the lock button cannot be unlocked.

Unlock

111

Remove

222

Unload

333

Load

444

Cannot be unlocked

555

sakura-ryoko commented 7 months ago

I would suggest enabling the packet logging to see if it's getting a MODIFY DENIED packet

sakura-ryoko commented 7 months ago

Also, I have a bit of a hard time following the images due to the translation :)

bunnyi116 commented 7 months ago

This is because when a user unlocks for adjustments, the server should set a status that prevents other users from taking further actions. Only after the player completes and locks the changes can other users unlock for actions.

Solution: When a player unlocks and deletes/unloads the schematic, or exits the game, they should send data to update the status.

nnnik commented 7 months ago

A client logging off should have the same effect as them sending an abort modification packet. A client unloading a local placement should also abort or alternatively the server should send the client the state of the modification when loading the placement again. Regardless there should be a timeout on the placement modification of maybe like 5 minutes (And probably all other exchanges should have timeouts too). This currently is an oversight in the business logic.