Skip to content
This repository has been archived by the owner on Nov 3, 2022. It is now read-only.

Ender dragon's death doesn't generate portals/egg/gateways #1563

Open
PolyacovYury opened this issue Jan 8, 2021 · 2 comments
Open

Ender dragon's death doesn't generate portals/egg/gateways #1563

PolyacovYury opened this issue Jan 8, 2021 · 2 comments

Comments

@PolyacovYury
Copy link

What is the bug?
Re-appearance of this: SpongePowered/SpongeForge#1752
After Ender Dragon's death, no Egg, portals or gateways can be observed.
Otherwise, the End behaves normally - you can still re-summon the Dragon using the 4-Crystal-Ritual or leave the End by issuing /spawn or killing yourself.

What version of Nucleus are you running?
Nucleus-2.3.0-MC1.12.2-SpongeAPI7.3-plugin.jar

What version of Sponge are you running?
spongeforge-1.12.2-2838-7.3.1-RC4094

Provide a link to the file generated by /nucleus info
https://pastebin.com/j54B59hF

To Reproduce
Steps to reproduce the behavior:

  • If a world was previously present:
    • Stop the server
    • Delete/rename world folder
    • Re-start the server
  • Connect to the world
  • Go to the End via a portal
  • Kill the Dragon with a sword or a /kill @e[type=ender_dragon], no difference was observed

Expected behavior
Bedrock "bowl" (with cherry Dragon Egg on top) should now contain the portal to the overworld, also the End Gateway should appear in the distance.

Logs

Do not assume they are not relevant, do not provide partial logs. Often, answers are buired in places we're not expecting.

Well, there were no exceptions logged neither during server startup nor during the fight, so...

My crude debug session using IDEA basically indicates that all setBlockState() calls during DragonFightManager.processDragonDeath() are processed correctly, but the blocks themselves do not change for some reason.
spawn-protection is set to 0 globally.
Possibly, there is something in my config/sponge/global.conf that causes this. However, the only way I was able to make the End work correctly is to just run the server without Nucleus present, with no additional changes to any configs.

@dualspiral
Copy link
Member

This isn't likely to be Nucleus, but the way that Sponge doesn't throw events if a plugin isn't listening to them. This includes some associated code to setup/react to the event.

Run without Nucleus but with the JVM flag -Dsponge.shouldFireAll=true. This will cause Sponge to treat all events as thrown, so will do through the code paths to create/throw/react to events. I bet you'll get the same issue.

If so, report this on the Sponge repo.

@PolyacovYury
Copy link
Author

Run without Nucleus but with the JVM flag -Dsponge.shouldFireAll=true.

Did just that, and verified that the property was actually applied with a breakpoint.
The problem didn't manifest itself: the portal appeared, everything was fine.

Also, there is one more probably-important difference between naked Sponge and Sponge + Nucleus:
/kill with Nucleus doesn't produce any messages in the console, and the animation of killing the dragon (beams, sounds, explosions, etc) fully plays out.
/kill without Nucleus produces a "Killed Ender Dragon" message in the console, no animations are played out, the structures just appear immediately.

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

No branches or pull requests

2 participants