diff --git a/pom.xml b/pom.xml index b256bcb..ae4c80a 100644 --- a/pom.xml +++ b/pom.xml @@ -97,6 +97,14 @@ 13 + + org.apache.maven.plugins + maven-compiler-plugin + + 12 + 12 + + \ No newline at end of file diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index ff98425..9ff2dd9 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -1,5 +1,7 @@ package com.bbn.hadder; +import com.bbn.hadder.listener.*; +import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; import net.dv8tion.jda.api.sharding.ShardManager; import org.json.JSONObject; @@ -14,15 +16,15 @@ public class Hadder { public static void main(String[] args) { - File jsonfile = new File("./config.json"); - if (!jsonfile.exists()) { + File configfile = new File("./config.json"); + if (!configfile.exists()) { System.err.println("No Config File Found!"); System.exit(1); } JSONObject config = null; try { - config = new JSONObject(new String(Files.readAllBytes(Paths.get(jsonfile.toURI())))); + config = new JSONObject(new String(Files.readAllBytes(Paths.get(configfile.toURI())))); } catch (IOException e) { e.printStackTrace(); } @@ -30,8 +32,11 @@ public class Hadder { DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder(); builder.setShardsTotal(1); + builder.setActivity(Activity.streaming("auf dem BigBotNetwork", "https://twitch.tv/BigBotNetwork")); builder.setToken(config.getString("Token")); + builder.addEventListeners(new MentionListener(), new PrivateMessageListener()); + try { ShardManager shardManager = builder.build(); } catch (LoginException e) { diff --git a/src/main/java/com/bbn/hadder/listener/MentionListener.java b/src/main/java/com/bbn/hadder/listener/MentionListener.java new file mode 100644 index 0000000..0fc8a6c --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/MentionListener.java @@ -0,0 +1,26 @@ +package com.bbn.hadder.listener; + +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 javax.annotation.Nonnull; + +public class MentionListener extends ListenerAdapter { + + @Override + public void onMessageReceived(@Nonnull MessageReceivedEvent event) { + if (event.isFromType(ChannelType.TEXT)) { + if (event.getMessage().getMentionedMembers().contains(event.getGuild().getSelfMember())) { + EmbedBuilder builder = new EmbedBuilder() + .setTitle("Hello I'm Hadder.") + .setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl()) + .addField("Users", String.valueOf(event.getJDA().getUsers().size()), false) + .addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false); + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).build()).queue(); + } + } + } +} diff --git a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java new file mode 100644 index 0000000..b2c6b48 --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java @@ -0,0 +1,37 @@ +package com.bbn.hadder.listener; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.ChannelType; +import net.dv8tion.jda.api.entities.PrivateChannel; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; + +import java.time.Instant; + +public class PrivateMessageListener extends ListenerAdapter { + + public void onMessageReceived(MessageReceivedEvent event) { + if (event.isFromType(ChannelType.PRIVATE)) { + if (!event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { + + PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); + PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); + + if (event.getAuthor().getAvatarUrl() == null) { + EmbedBuilder message = new EmbedBuilder().setTitle("New DM by " + event.getAuthor().getAsTag()).setAuthor(event.getAuthor().getName(), event.getAuthor().getDefaultAvatarUrl(), event.getAuthor().getDefaultAvatarUrl()).setDescription(event.getMessage().getContentRaw()).setTimestamp(Instant.now()); + + Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, message).build()).queue(); + } else { + EmbedBuilder message = new EmbedBuilder().setTitle("New DM by " + event.getAuthor().getAsTag()).setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()).setDescription(event.getMessage().getContentRaw()).setTimestamp(Instant.now()); + + Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, message).build()).queue(); + } + } + } + } +} diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java new file mode 100644 index 0000000..1cab926 --- /dev/null +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -0,0 +1,32 @@ +package com.bbn.hadder.utils; + +import net.dv8tion.jda.api.EmbedBuilder; + +import java.awt.*; + +public class MessageEditor { + + public EmbedBuilder setDefaultSettings(Messagetype type, EmbedBuilder embedBuilder) { + switch (type) { + case INFO: + embedBuilder.setColor(new Color(47,94,105)); + break; + + case ERROR: + embedBuilder.setColor(Color.RED); + break; + + case WARNING: + embedBuilder.setColor(Color.ORANGE); + break; + } + return embedBuilder; + } + + public enum Messagetype { + ERROR, + WARNING, + INFO + } + +} diff --git a/target/classes/META-INF/Hadder.kotlin_module b/target/classes/META-INF/Hadder.kotlin_module new file mode 100644 index 0000000..2983af7 Binary files /dev/null and b/target/classes/META-INF/Hadder.kotlin_module differ