From 70fc06c69ef2e13bd85e8e2349cdc9025dd1b8ea Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Tue, 19 Jan 2021 17:33:37 +0100 Subject: [PATCH] dinge --- .../commands/fun/DepartureCommand.java | 17 +- .../java/com/github/nilstrieb/core/Main.java | 3 +- .../listener/ReactionEventListener.java | 19 ++ .../reactions/ReactionEventManager.java | 36 +++ .../nilstrieb/reactions/ReactionListener.java | 9 + .../github/nilstrieb/util/DepartureSong.java | 212 +++++++++--------- .../github/nilstrieb/util/MultiPageEmbed.java | 7 + 7 files changed, 195 insertions(+), 108 deletions(-) create mode 100644 src/main/java/com/github/nilstrieb/listener/ReactionEventListener.java create mode 100644 src/main/java/com/github/nilstrieb/reactions/ReactionEventManager.java create mode 100644 src/main/java/com/github/nilstrieb/reactions/ReactionListener.java create mode 100644 src/main/java/com/github/nilstrieb/util/MultiPageEmbed.java diff --git a/src/main/java/com/github/nilstrieb/commands/fun/DepartureCommand.java b/src/main/java/com/github/nilstrieb/commands/fun/DepartureCommand.java index d052a6c..01f4d3e 100644 --- a/src/main/java/com/github/nilstrieb/commands/fun/DepartureCommand.java +++ b/src/main/java/com/github/nilstrieb/commands/fun/DepartureCommand.java @@ -2,11 +2,15 @@ package com.github.nilstrieb.commands.fun; import com.github.nilstrieb.cofig.Config; import com.github.nilstrieb.commands.handler.Command; +import com.github.nilstrieb.reactions.ReactionEventManager; +import com.github.nilstrieb.reactions.ReactionListener; import com.github.nilstrieb.util.DepartureSong; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; +import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; -public class DepartureCommand extends Command { +public class DepartureCommand extends Command implements ReactionListener { public DepartureCommand() { super("departure"); } @@ -19,5 +23,16 @@ public class DepartureCommand extends Command { .addField("Youtube Link: ", DepartureSong.DEPARTURE_YOUTUBE_LINK, false); reply(event, builder.build()); reply(event, "Lyrics:\n" + DepartureSong.LYRICS_LATIN); + //TODO add message id + } + + @Override + public void onReactionAdded(MessageReactionAddEvent event) { + + } + + @Override + public void onReactionRemoved(MessageReactionRemoveEvent event) { + } } diff --git a/src/main/java/com/github/nilstrieb/core/Main.java b/src/main/java/com/github/nilstrieb/core/Main.java index 8450a58..27d12e5 100644 --- a/src/main/java/com/github/nilstrieb/core/Main.java +++ b/src/main/java/com/github/nilstrieb/core/Main.java @@ -9,6 +9,7 @@ import com.github.nilstrieb.commands.info.EvalCommand; import com.github.nilstrieb.commands.info.HelpCommand; import com.github.nilstrieb.commands.info.ToukaCommand; import com.github.nilstrieb.listener.CommandListener; +import com.github.nilstrieb.listener.ReactionEventListener; import com.github.nilstrieb.listener.StartUpListener; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; @@ -24,7 +25,7 @@ public class Main { builder.setCompression(Compression.ZLIB); builder.setActivity(Activity.watching("over Gon")); - builder.addEventListeners(new StartUpListener(), new CommandListener()); + builder.addEventListeners(new StartUpListener(), new CommandListener(), new ReactionEventListener()); JDA jda = builder.build(); setupCommands(); diff --git a/src/main/java/com/github/nilstrieb/listener/ReactionEventListener.java b/src/main/java/com/github/nilstrieb/listener/ReactionEventListener.java new file mode 100644 index 0000000..0201b31 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/listener/ReactionEventListener.java @@ -0,0 +1,19 @@ +package com.github.nilstrieb.listener; + +import com.github.nilstrieb.reactions.ReactionEventManager; +import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; +import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; + +public class ReactionEventListener extends ListenerAdapter { + @Override + public void onMessageReactionAdd(@NotNull MessageReactionAddEvent event) { + ReactionEventManager.onReactionAdd(event); + } + + @Override + public void onMessageReactionRemove(@NotNull MessageReactionRemoveEvent event) { + ReactionEventManager.onReactionRemove(event); + } +} diff --git a/src/main/java/com/github/nilstrieb/reactions/ReactionEventManager.java b/src/main/java/com/github/nilstrieb/reactions/ReactionEventManager.java new file mode 100644 index 0000000..b503cc3 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/reactions/ReactionEventManager.java @@ -0,0 +1,36 @@ +package com.github.nilstrieb.reactions; + +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; +import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +public class ReactionEventManager { + private static HashMap currentReactions = new HashMap<>(); + + public static void addMessage(Message message, ReactionListener listener){ + currentReactions.put(message.getId(), listener); + } + + public static void removeMessage(Message message){ + currentReactions.remove(message.getId()); + } + + public static void onReactionAdd(MessageReactionAddEvent event){ + String message = event.getMessageId(); + ReactionListener listener = currentReactions.get(message); + if (listener != null) { + listener.onReactionAdded(event); + } + } + + public static void onReactionRemove(MessageReactionRemoveEvent event){ + String message = event.getMessageId(); + ReactionListener listener = currentReactions.get(message); + if (listener != null) { + listener.onReactionRemoved(event); + } + } +} diff --git a/src/main/java/com/github/nilstrieb/reactions/ReactionListener.java b/src/main/java/com/github/nilstrieb/reactions/ReactionListener.java new file mode 100644 index 0000000..7917dc1 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/reactions/ReactionListener.java @@ -0,0 +1,9 @@ +package com.github.nilstrieb.reactions; + +import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; +import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; + +public interface ReactionListener { + void onReactionAdded(MessageReactionAddEvent event); + void onReactionRemoved(MessageReactionRemoveEvent event); +} diff --git a/src/main/java/com/github/nilstrieb/util/DepartureSong.java b/src/main/java/com/github/nilstrieb/util/DepartureSong.java index 9681d0d..6024213 100644 --- a/src/main/java/com/github/nilstrieb/util/DepartureSong.java +++ b/src/main/java/com/github/nilstrieb/util/DepartureSong.java @@ -6,112 +6,112 @@ public class DepartureSong { public static final String LYRICS_JAPANESE = """ - 大地を踏みしめて - 君は目覚めていく - 天使の微笑みで 連れ出して! - 孤独でも 一人じゃないさ - 生まれてきたことに - 必ず意味がある - 優しさに 満ち溢れてる - 青い地球(ほし)にありがとう - You can smile again - 太陽浴びて - You can fly away - 世界は君の 輝きを待ってる - 大地を踏みしめて - 君は目覚めていく - 天使の微笑みで 連れ出して! - (you can smile!) - "始まり"はいつでも遅くないさ - 何度でも立ち上がれ! - 最後まで あきらめないさ - やり続けることに 必ず意味がある - You just try again - 闇を抜けて - You just go away - 未来はいつも 僕たちを待ってる - 大空駆けぬけて 海原越えて行け - 天使の投げキッス 捕まえて! - (you can try!) - まだ誰も見たことない世界へ - 飛び出そう明日 - 大地を踏みしめて - 君は目覚めていく - 天使の微笑みで 連れ出して! - (you can smile!) - 終わらない冒険に出掛けよう… - """; + 大地を踏みしめて + 君は目覚めていく + 天使の微笑みで 連れ出して! + 孤独でも 一人じゃないさ + 生まれてきたことに + 必ず意味がある + 優しさに 満ち溢れてる + 青い地球(ほし)にありがとう + You can smile again + 太陽浴びて + You can fly away + 世界は君の 輝きを待ってる + 大地を踏みしめて + 君は目覚めていく + 天使の微笑みで 連れ出して! + (you can smile!) + "始まり"はいつでも遅くないさ + 何度でも立ち上がれ! + 最後まで あきらめないさ + やり続けることに 必ず意味がある + You just try again + 闇を抜けて + You just go away + 未来はいつも 僕たちを待ってる + 大空駆けぬけて 海原越えて行け + 天使の投げキッス 捕まえて! + (you can try!) + まだ誰も見たことない世界へ + 飛び出そう明日 + 大地を踏みしめて + 君は目覚めていく + 天使の微笑みで 連れ出して! + (you can smile!) + 終わらない冒険に出掛けよう… + """; public static final String LYRICS_LATIN = """ - Daichi wo fumishimete - Kimi wa mezameteiku - Tenshi no hohoemi de - Tsuredashite! - - Kodoku demo - Hitori janai sa - Umaretekita koto ni - Kanarazu ima ga aru - - Yasashisa ni michiafureteru - Aoi hoshi ni arigatou - - You can smile again - Taiyou abite - You can fly away - Sekai wa kimi no kagayaki - Wo matteru - - Daichi wo fumishimete - Kimi wa mezameteiku - Tenshi no hohoemi de - Tsuredashite! (You can smile!) - "Hajimari" wa itsudemo - Osokunai sa - Nandodemo tachiagare! - - Saigo made akiramenai sa - Yaritsuzukeru koto ni - Kanarazu imi ga aru - - You just try again - Yami wo nukete - You just go away - Mirai wa itsumo bokutachi wo - Matteru - - Oozora nukenukete kaihara - Koeteyuke - Tenshi no nage kissu - Tsukamaete! (You can try!) - Mada daremo mita koto nai - Sekai he - Tobidasou ashita - - Daichi wo fumishimete - Kimi wa mezameteiku - Tenshi no hohoemi de - Tsuredashite! (YOU CAN SMILE!) - Owaranai bouken ni dekakeyou - Itsumademo dokomademo - - Nagareochiru namida yuuki ni - Kaeteiku - Tenshi no hani hiroge maiagare! (YOU CAN FLY!) - Kanashimi mo itami mo - Tsutsumikonde - Tsuyoku nare ashita - - Daichi wo fumishimete - Kimi wa mezameteiku - Tenshi no hohoemi de - Tsuredashite! (You can smile!) - - "Hajimari" wa itsudemo - Osokunai sa - Nandodemo! (you can try!) - Nandodemo! (you can try!) - Nandodemo tachiagare! - """; -} + Daichi wo fumishimete + Kimi wa mezameteiku + Tenshi no hohoemi de + Tsuredashite! + + Kodoku demo + Hitori janai sa + Umaretekita koto ni + Kanarazu ima ga aru + + Yasashisa ni michiafureteru + Aoi hoshi ni arigatou + + You can smile again + Taiyou abite + You can fly away + Sekai wa kimi no kagayaki + Wo matteru + + Daichi wo fumishimete + Kimi wa mezameteiku + Tenshi no hohoemi de + Tsuredashite! (You can smile!) + "Hajimari" wa itsudemo + Osokunai sa + Nandodemo tachiagare! + + Saigo made akiramenai sa + Yaritsuzukeru koto ni + Kanarazu imi ga aru + + You just try again + Yami wo nukete + You just go away + Mirai wa itsumo bokutachi wo + Matteru + + Oozora nukenukete kaihara + Koeteyuke + Tenshi no nage kissu + Tsukamaete! (You can try!) + Mada daremo mita koto nai + Sekai he + Tobidasou ashita + + Daichi wo fumishimete + Kimi wa mezameteiku + Tenshi no hohoemi de + Tsuredashite! (YOU CAN SMILE!) + Owaranai bouken ni dekakeyou + Itsumademo dokomademo + + Nagareochiru namida yuuki ni + Kaeteiku + Tenshi no hani hiroge maiagare! (YOU CAN FLY!) + Kanashimi mo itami mo + Tsutsumikonde + Tsuyoku nare ashita + + Daichi wo fumishimete + Kimi wa mezameteiku + Tenshi no hohoemi de + Tsuredashite! (You can smile!) + + "Hajimari" wa itsudemo + Osokunai sa + Nandodemo! (you can try!) + Nandodemo! (you can try!) + Nandodemo tachiagare! + """; +} \ No newline at end of file diff --git a/src/main/java/com/github/nilstrieb/util/MultiPageEmbed.java b/src/main/java/com/github/nilstrieb/util/MultiPageEmbed.java new file mode 100644 index 0000000..808e28a --- /dev/null +++ b/src/main/java/com/github/nilstrieb/util/MultiPageEmbed.java @@ -0,0 +1,7 @@ +package com.github.nilstrieb.util; + +public class MultiPageEmbed { + public static final String NEXT_PAGE_DEFAULT_REACTION = ""; + public static final String PREVIOUS_PAGE_DEFAULT_REACTION = ""; + //TODO implement +}