From b94be60fd70b3dfc032e9a7d9809820f6c4c9ab9 Mon Sep 17 00:00:00 2001 From: Hax Date: Tue, 28 Jan 2020 14:21:16 +0100 Subject: [PATCH 1/2] ReactionEventWaiter --- .../java/com/bbn/hadder/utils/EventWaiter.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/com/bbn/hadder/utils/EventWaiter.java b/src/main/java/com/bbn/hadder/utils/EventWaiter.java index 525dd15..2d44b8c 100644 --- a/src/main/java/com/bbn/hadder/utils/EventWaiter.java +++ b/src/main/java/com/bbn/hadder/utils/EventWaiter.java @@ -19,6 +19,7 @@ package com.bbn.hadder.utils; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; +import net.dv8tion.jda.api.events.message.guild.react.GuildMessageReactionAddEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import javax.annotation.Nonnull; @@ -42,4 +43,20 @@ public class EventWaiter { jda.getShardManager().addEventListener(listener); } + public void newOnReactionEventWaiter(Consumer onEvent, JDA jda, User user) { + Object listener = new ListenerAdapter() { + @Override + public void onGuildMessageReactionAdd(@Nonnull GuildMessageReactionAddEvent event) { + if (user==null) { + onEvent.accept(event); + event.getJDA().getShardManager().removeEventListener(this); + } else if (event.getUser().getId().equals(user.getId())) { + onEvent.accept(event); + event.getJDA().getShardManager().removeEventListener(this); + } + } + }; + jda.getShardManager().addEventListener(listener); + } + } From eb196cca709c3d2b1c2232d59a7728f31948f928 Mon Sep 17 00:00:00 2001 From: Hax Date: Tue, 28 Jan 2020 17:48:47 +0100 Subject: [PATCH 2/2] Cool Mention Listener --- pom.xml | 28 +++++++++++++++ .../bbn/hadder/listener/MentionListener.java | 35 +++++++++++++++++-- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ae33d40..07122e0 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,29 @@ 1.13 + + + Hax#6775 + Hax + hax@bigbotnetwork.com + https://bigbotnetwork.com/ + Europe/Berlin + + https://cdn.discordapp.com/avatars/261083609148948488/f2c9efc629ef65fffa634f0d63cd467e.webp + + + + Skidder#6775 + Greg + skidder@bigbotnetwork.com + https://bigbotnetwork.com/ + Europe/Berlin + + https://cdn.discordapp.com/avatars/477141528981012511/a_ba4bd8e5b381874edcd06a68d1acd3aa.gif + + + + jcenter @@ -24,6 +47,11 @@ + + org.apache.maven + maven-model + 3.5.4 + net.dv8tion JDA diff --git a/src/main/java/com/bbn/hadder/listener/MentionListener.java b/src/main/java/com/bbn/hadder/listener/MentionListener.java index 886ab51..d51cbe3 100644 --- a/src/main/java/com/bbn/hadder/listener/MentionListener.java +++ b/src/main/java/com/bbn/hadder/listener/MentionListener.java @@ -20,11 +20,17 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.RethinkServer; import com.bbn.hadder.RethinkUser; import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import javax.annotation.Nonnull; +import java.io.FileReader; +import java.io.IOException; import java.util.Random; public class MentionListener extends ListenerAdapter { @@ -42,14 +48,39 @@ public class MentionListener extends ListenerAdapter { RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", e.getAuthor().getId()), rethink); if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) || e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { - e.getChannel().sendMessage(new MessageEditor(rethinkUser, e.getAuthor()).getMessage(MessageEditor.MessageType.INFO) + + MavenXpp3Reader reader = new MavenXpp3Reader(); + Model model = null; + try { + model = reader.read(new FileReader("pom.xml")); + } catch (IOException | XmlPullParserException ex) { + ex.printStackTrace(); + } + EmbedBuilder builder = new EmbedBuilder().setTitle("Hi!").addField("Version", model.getVersion(), false) + .addField("Userprefix", rethinkUser.getPrefix(), true).addField("Guildprefix", rethinkServer.getPrefix(), true); + StringBuilder stringBuilder = new StringBuilder(); + model.getDependencies().forEach( + dependency -> stringBuilder.append(dependency.getArtifactId()+" - "+dependency.getVersion()+"\n") + ); + builder.addField("Dependencies", stringBuilder.toString(), false); + StringBuilder devs = new StringBuilder(); + model.getDevelopers().forEach( + developer -> devs.append(developer.getId()+" - [Website]("+developer.getUrl()+"), [E-Mail](https://hax.bigbotnetwork.de/redirect.html?url=mailto:"+developer.getEmail()+")\n") + ); + builder.addField("Developer", devs.toString(), false); + builder.addField("Join our Dev Server!", "[Click here!](https://discord.gg/58My2dM)", true); + builder.addField("Github", "[Click here!](https://github.com/BigBotNetwork/Hadder)",false); + builder.addField("Twitch", "[Click here!](https://www.twitch.tv/bigbotnetwork)", false); + e.getChannel().sendMessage(builder.build()).queue(); + + /*e.getChannel().sendMessage(new MessageEditor(rethinkUser, e.getAuthor()).getMessage(MessageEditor.MessageType.INFO) .setTitle("Hello I'm Hadder.") .setAuthor(e.getJDA().getSelfUser().getName(), e.getJDA().getSelfUser().getAvatarUrl(), e.getJDA().getSelfUser().getAvatarUrl()) .addField("Users", String.valueOf(e.getJDA().getUsers().size()), false) .addField("Guilds", String.valueOf(e.getJDA().getGuilds().size()), false) .addField("Prefix (User)", rethinkUser.getPrefix(), false) .addField("Prefix (Guild)", rethinkServer.getPrefix(), false) - .build()).queue(); + .build()).queue();*/ } else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) { int member = new Random().nextInt(e.getGuild().getMembers().size() - 1); if (member > 0 && member < e.getGuild().getMembers().size()) {