Closed Cervator closed 4 years ago
Method org.terasology.module.ModuleEnvironment#getModuleProviding at (ModuleEnvironment.java:297) was rewrite in gestalt's develop branch by PR: https://github.com/MovingBlocks/gestalt/pull/68
And cannot throw access denied. Can we update gestalt?
Closing as fixed by #3791 :-)
@Cervator it's possible fix! :(
What you were trying to do
Playtest! Break stuff. As in, physically breaking blocks and things in-game
What actually happened
No breakage :( Various consequences like blocks not breaking yet dropping stuff
Turns out several different paths that lead to sound triggering events in multiplayer cause an access exception. That was ending handling of block breaking because the SFX step failed.
After commenting out just the SFX related stuff I could proceed normally.
However! While at first I reproduced this locally the play test server later no longer triggered the issue. Then later did it again. Then not again? I tried it again locally on a totally different system and reproduced it with perfect consistency. I don't know what happened during the play test that lead to mysterious results - maybe a combination of player logins and logoffs? Sometimes blocks were breaking yet remained visible. Server log had more similar errors.
How to reproduce
develop
and start a headless server, can just use CoreSampleGameplay + PerlinThree spots where I triggered it and uncommented lines to make it go away (triggered via simple block breaking and picking up the drops):
BlockDamageAuthoritySystem
in Health, line 143:entityRef.send(new PlaySoundEvent(sound, 1f));
CharacterInventorySystem
in Inventory, line 234:event.getTargetEntity().send(new PlaySoundForOwnerEvent(Assets.getSound("engine:Loot").get(), 1.0f));
BlockEntitySystem
in engine, line 178:entity.send(new PlaySoundEvent(sound, 0.6f));
Log details and game version
Latest
develop
as of this writing, both via binary and source. This example comes from the player character taking damage and attempting to play the associated SFX.