NoteBlockAPI
NoteBlockAPI copied to clipboard
Events called by SongPlayer's loop can't be cancelled
When an event is called from SongPlayer
's loop which is in async thread it can't be cancelled. Affected events are: SongLoopEvent
and SongDestroyingEvent
.
SongPlayer also continues playing the Song without waiting for event listeners of events bellow to finish their execution. Affected events are: SongStoppedEvent
, SongNextEvent
and SongEndEvent
. For example when SongPlayer
is paused in SongNextEvent
it plays first few notes of the next Song
before it's paused.
It is caused by schedulling the events execution in order to execute them in synchronized thread (not async with server main thread).
Simply calling event off-thread solves this