Fix Mention Listener

This commit is contained in:
Greg 2020-10-16 00:05:54 +02:00
parent 2acc57a931
commit f5698c7668
2 changed files with 20 additions and 26 deletions

View file

@ -137,7 +137,7 @@ public class Hadder {
new CoronaCommand()), config, helpCommand); new CoronaCommand()), config, helpCommand);
builder.addEventListeners( builder.addEventListeners(
new MentionListener(rethink), new MentionListener(rethink, config),
new PrivateMessageListener(rethink), new PrivateMessageListener(rethink),
new CommandListener(rethink, commandHandler, audioManager), new CommandListener(rethink, commandHandler, audioManager),
new GuildListener(rethink, config), new GuildListener(rethink, config),

View file

@ -16,6 +16,7 @@
package com.bbn.hadder.listener; package com.bbn.hadder.listener;
import com.bbn.hadder.core.Config;
import com.bbn.hadder.db.Rethink; import com.bbn.hadder.db.Rethink;
import com.bbn.hadder.db.RethinkServer; import com.bbn.hadder.db.RethinkServer;
import com.bbn.hadder.db.RethinkUser; import com.bbn.hadder.db.RethinkUser;
@ -23,9 +24,8 @@ import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.apache.maven.model.Model; import org.kohsuke.github.GHRepository;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.kohsuke.github.GitHub;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import java.io.IOException; import java.io.IOException;
@ -34,9 +34,11 @@ import java.util.Random;
public class MentionListener extends ListenerAdapter { public class MentionListener extends ListenerAdapter {
private Rethink rethink; private Rethink rethink;
private Config config;
public MentionListener(Rethink rethink) { public MentionListener(Rethink rethink, Config config) {
this.rethink = rethink; this.rethink = rethink;
this.config = config;
} }
@Override @Override
@ -47,32 +49,24 @@ public class MentionListener extends ListenerAdapter {
if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) || if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) ||
e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
MavenXpp3Reader reader = new MavenXpp3Reader(); String version = null;
Model model = null;
try { try {
model = reader.read(getClass().getResourceAsStream("pom.xml")); GitHub connection = GitHub.connectUsingOAuth(config.getGitHubToken());
} catch (IOException | XmlPullParserException ex) { GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder");
ex.printStackTrace(); version = Hadder.getLatestRelease().getTagName();
} catch (IOException ioException) {
ioException.printStackTrace();
} }
EmbedBuilder builder = new EmbedBuilder() EmbedBuilder builder = new EmbedBuilder()
.setTitle("Hi!") .setTitle("Hi!")
.addField("Version", model.getVersion(), false) .addField("Version", version, false)
.addField("User-Prefix", rethinkUser.getPrefix(), true) .addField("User-Prefix", rethinkUser.getPrefix(), true)
.addField("Guild-Prefix", rethinkServer.getPrefix(), true); .addField("Guild-Prefix", rethinkServer.getPrefix(), true)
StringBuilder stringBuilder = new StringBuilder(); .addField("Join our Dev Server!", "[Click here!](https://discord.gg/nPwjaJk)", true)
model.getDependencies().forEach( .addField("Github", "[Click here!](https://github.com/BigBotNetwork/Hadder)", false)
dependency -> stringBuilder.append(dependency.getArtifactId()).append(" - ").append(dependency.getVersion()).append("\n") .addField("Twitch", "[Click here!](https://www.twitch.tv/bigbotnetwork)", false);
);
builder.addField("Dependencies", stringBuilder.toString(), false);
StringBuilder devs = new StringBuilder();
//TODO: Fix Mail stuff
model.getDevelopers().forEach(
developer -> devs.append(developer.getId()).append(" - [Website](").append(developer.getUrl()).append("), [E-Mail](https://hax.bigbotnetwork.de/redirect.html?url=mailto:").append(developer.getEmail()).append(")\n")
);
builder.addField("Developer", devs.toString(), false);
builder.addField("Join our Dev Server!", "[Click here!](https://discord.gg/nPwjaJk)", 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(builder.build()).queue();
} else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) { } else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(e.getGuild().getMembers().size() - 1); int member = new Random().nextInt(e.getGuild().getMembers().size() - 1);