|
13 | 13 | import de.presti.ree6.module.game.impl.musicquiz.util.MusicQuizUtil;
|
14 | 14 | import de.presti.ree6.sql.SQLSession;
|
15 | 15 | import de.presti.ree6.utils.others.ThreadUtil;
|
16 |
| -import lavalink.client.player.event.IPlayerEventListener; |
17 |
| -import lavalink.client.player.event.TrackEndEvent; |
18 | 16 | import net.dv8tion.jda.api.EmbedBuilder;
|
19 | 17 | import net.dv8tion.jda.api.entities.Message;
|
20 | 18 | import net.dv8tion.jda.api.entities.channel.middleman.AudioChannel;
|
@@ -77,14 +75,9 @@ public class MusicQuiz implements IGame {
|
77 | 75 | Future<?> internalTimer;
|
78 | 76 |
|
79 | 77 | /**
|
80 |
| - * {@link IPlayerEventListener} to check if the song/timer is over. |
| 78 | + * {@link MusicQuizListener} to check if the song/timer is over. |
81 | 79 | */
|
82 |
| - IPlayerEventListener audioEventListener = event -> { |
83 |
| - if (event instanceof TrackEndEvent trackEndEvent && |
84 |
| - trackEndEvent.getTrack().getInfo().title.equalsIgnoreCase("timer")) { |
85 |
| - selectNextSong(); |
86 |
| - } |
87 |
| - }; |
| 80 | + MusicQuizListener audioEventListener; |
88 | 81 |
|
89 | 82 | /**
|
90 | 83 | * Constructor.
|
@@ -134,6 +127,7 @@ public void startGame() {
|
134 | 127 | return;
|
135 | 128 | }
|
136 | 129 |
|
| 130 | + audioEventListener = new MusicQuizListener(this); |
137 | 131 | Main.getInstance().getMusicWorker().getGuildAudioPlayer(session.getGuild()).getPlayer().addListener(audioEventListener);
|
138 | 132 |
|
139 | 133 | session.setGameState(GameState.STARTED);
|
@@ -346,4 +340,21 @@ public void selectNextSong() {
|
346 | 340 | public MusicQuizPlayer getParticipantByUserId(long userId) {
|
347 | 341 | return participants.stream().filter(c -> c.getRelatedUserId() == userId).findFirst().orElse(null);
|
348 | 342 | }
|
| 343 | + private class MusicQuizListener implements lavalink.client.player.event.IPlayerEventListener.IPlayerEventListener { |
| 344 | + |
| 345 | + MusicQuiz musicQuiz; |
| 346 | + |
| 347 | + public MusicQuizListener(MusicQuiz musicQuiz) { |
| 348 | + this.musicQuiz = musicQuiz; |
| 349 | + } |
| 350 | + |
| 351 | + @Override |
| 352 | + public void onEvent(de.ree6.lavalink.player.event.PlayerEvent event) { |
| 353 | + if (event instanceof lavalink.client.player.event.TrackEndEvent trackEndEvent && |
| 354 | + trackEndEvent.getTrack().getInfo().title.equalsIgnoreCase("timer")) { |
| 355 | + musicQuiz.selectNextSong(); |
| 356 | + } |
| 357 | + } |
| 358 | + } |
| 359 | + |
349 | 360 | }
|
0 commit comments