Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group signs stop working on server-restart. #513

Closed
ghost opened this issue Jan 7, 2019 · 14 comments
Closed

Group signs stop working on server-restart. #513

ghost opened this issue Jan 7, 2019 · 14 comments

Comments

@ghost
Copy link

ghost commented Jan 7, 2019

Expected behavior

Group-signs work after server-restart

Actual behavior

If i create a DXL sign in my main world like this:

[DXL]
Group
Crash
3,Crash,3

It works completely fine.
Then i do /dxl reload to store all data and wait until the next auto-server restart.
When i try to use the group sign then it doesnt work. It still is a sign with green color and "Join Group" but it doesnt work anymore.
The signs inside the dungeons work completely well! (Except Wave-Trigger but thats another issue i will open)
I tried 0.17.4 and your 0.17.5 Snapshot. And deleting my complete DXL folder.

Steps to reproduce

Creating a group sign, reload, wait until restart and try to click it again.
Possbile plugins that cause interference:
-EssentaislX
-WorldEdit
-WorldGuard
-CoreProtect
-ViaVersion
-LuckPerms
-Multiverse-Core
-Vault (possibly not but ill still tell you)

Spigot Version: 1.12.2
Bug Present since: Half year.
I looked on all other Issue_tickets to this Problem but i found no solution, there you said you fixed that in 0.17.4 but it still doesn't work for me!

Explanation of the requested feature

Possible use cases

@Sataniel98
Copy link
Member

Sataniel98 commented Jan 8, 2019

0.17.4 was a hotfix for 1.13.2 support, where group signs among many other things did not work. It did not address the data loss bug. This one has already been described in #447. Thank you anyway for the report, it would really be helpful if you could show me the content of your data.yml file before, after reloading and after reloading for a second time. Are there any stacktraces?

@ghost
Copy link
Author

ghost commented Jan 8, 2019

Ill send u the data when i got time.
Would other things also be helpful?
Maybe Server logs and/or running Server with dxl only? I would be happy if i can help, because i think this bug is still present and people won't stop opening issues as long its not fixed!
(Your Plugin is just Awesome!! But people can't use it on my Server without group signs..)
And what do you mean with stacktrace? I'll just post the whole data.yml here!
I should also be mentioning that the group-sign isn't protected after reload+restart..
Thanks for your help!!!

@ghost
Copy link
Author

ghost commented Jan 8, 2019

Oh, i just watched into #447.
/dxl reload works completely fine. The Signs still work after dxl reload.
But after the restart they don't work!

@Sataniel98
Copy link
Member

Thank you! A stacktrace is an error message in the console, that might look similar to this:

[(Time) ERROR]: Could not pass event ***Event to DungeonsXL 0.17.4
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute...
Caused by: java.lang.NullPointerException
at de.erethon.dungeonsxl....

You should easily be able to find them in your log file by Ctrl+F searching for "at de.erethon.dungeonsxl".

@ghost
Copy link
Author

ghost commented Jan 8, 2019

screenlog.txt

So, im collecting the data right now:
Data before reloading:

configVersion: 2

Data after Reload:

configVersion: 2
protections:
  groupSigns:
    Spawn:
      '1':
        x: -255
        y: 35
        z: -517
        dungeon: Crash
        maxElements: 3
        startIfElementsAtLeast: 3
        groupName: Crash
  portals:
    Spawn:
      '1':
        loc1:
          x: -252
          y: 34
          z: -526
        loc2:
          x: -249
          y: 36
          z: -526
        material: nether_portal
        axis: x

Data after 2nd Reload:

configVersion: 2
protections:
  portals:
    Spawn:
      '1':
        loc1:
          x: -252
          y: 34
          z: -526
        loc2:
          x: -249
          y: 36
          z: -526
        material: nether_portal
        axis: x
  groupSigns:
    Spawn:
      '1':
        x: -255
        y: 35
        z: -517
        dungeon: Crash
        maxElements: 3
        groupName: Crash

Then i waited about 10 minutes, did /save-all and restarted the server by /stop and starting up again.

After restart the signs DON'T work and the data.yml looks like this:

configVersion: 2
protections:
  groupSigns:
    Spawn:
      '1':
        x: -255
        y: 35
        z: -517
        dungeon: Crash
        maxElements: 3
        groupName: Crash
  portals:
    Spawn:
      '1':
        loc1:
          x: -252
          y: 34
          z: -526
        loc2:
          x: -249
          y: 36
          z: -526
        material: nether_portal
        axis: x

Then i reloaded the plugin after the restart (sign didn't work so i just reloaded for data catching)
and it looked like this again:

configVersion: 2

No errors/stacktrace's at all in screenlog.0
only Enable,Loading and checking for Version.
Hope i could help, tell me if you need more data.

@ghost
Copy link
Author

ghost commented Jan 8, 2019

I hope it's no problem that it messed up the formatting....

@Sataniel98
Copy link
Member

No problem! This is very interesting, thank you once more.

@Sataniel98
Copy link
Member

Could you please try it again with this special debugged build:

http://feuerstern.bplaced.net/files/dungeonsxl-0.17.5-SNAPSHOT.jar

and show me the console log when the earlier created signs do not work but before reloading? There should be a section starting with "=== LOADING GLOBAL DATA ===".

@ghost
Copy link
Author

ghost commented Jan 8, 2019

Here it is, It worked!
Interesting is that it only loads the data of the world's that are defined in server.properties.
I got The worlds: Diverses, SpawnWorld, SpawnWorld_End, SpawnWorld_Nether, Spawn, FarmWelt, PlotsM1...
This may be the bug.
And as i said im using Multi-Verse Core as World-Managment-Plugin!
Hope you can help me =)
Greetings
screenlog.txt

@ghost
Copy link
Author

ghost commented Jan 8, 2019

WOW thanks for your help!! i changed those settings:
Multiverse config:
firstspawnworld: Spawn
(Before it was SpawnWorld)
server.properties:
level-name=Spawn
(Before it was also SpawnWorld)

And now it works!!!! My signs are persistent after restart!!

Im happy for now, thanks, but still you maybe should look to implement loading all data not only the data of the "main" world.

If you're still not sure what is causing this you can ask me for more data. I'm glad i can help =).

@Sataniel98
Copy link
Member

It seems the issue is that DungeonsXL checks if there are any protections saved for any of the loaded worlds. If the world manager, in this case Multiverse, is enabled after DungeonsXL, then there are obviously no custom worlds at this point and the protections aren't loaded... The easiest fix for now is to add Mutliverse-Core to the list of soft dependencies (this can be done in the plugin.yml file by opening the .jar with a tool like WinRAR), but I'd rather recode it to load the protection locations lazily sothat it doesn't matter if the worlds are known when the data file is loaded. It might take a few days until this is done. Thank you again for the testing.

@Sataniel98
Copy link
Member

Fixed! The changes are included as of dev build 700. http://erethon.de/repo/de/erethon/dungeonsxl/

@ghost
Copy link
Author

ghost commented Jan 9, 2019

Awesome! Tested it and now it loads the custom worlds properly!
Thanks for the awesome plugin, keep up the amazing work & support =)
Any way i can help you? German translation still not done?

@Sataniel98
Copy link
Member

It is not being worked on at the moment - at least not by me. Discussions and contributions may be posted here: #152

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant