From 0e42755c88ff8846fe330bd580bb069c8cdbb391 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Tue, 19 Jan 2021 11:31:39 +0100 Subject: [PATCH] inital commit --- .gitignore | 3 ++ KilluaBot.iml | 30 ++++++++++++ pom.xml | 33 +++++++++++++ .../com/github/nilstrieb/cofig/Config.java | 5 ++ .../com/github/nilstrieb/cofig/Secrets.java | 5 ++ .../nilstrieb/commands/handler/Command.java | 19 ++++++++ .../commands/handler/CommandHandler.java | 29 ++++++++++++ .../commands/handler/CommandParser.java | 16 +++++++ .../nilstrieb/commands/info/EvalCommand.java | 17 +++++++ .../nilstrieb/commands/info/HelpCommand.java | 15 ++++++ .../java/com/github/nilstrieb/core/Main.java | 46 +++++++++++++++++++ .../nilstrieb/listener/CommandListener.java | 14 ++++++ 12 files changed, 232 insertions(+) create mode 100644 .gitignore create mode 100644 KilluaBot.iml create mode 100644 pom.xml create mode 100644 src/main/java/com/github/nilstrieb/cofig/Config.java create mode 100644 src/main/java/com/github/nilstrieb/cofig/Secrets.java create mode 100644 src/main/java/com/github/nilstrieb/commands/handler/Command.java create mode 100644 src/main/java/com/github/nilstrieb/commands/handler/CommandHandler.java create mode 100644 src/main/java/com/github/nilstrieb/commands/handler/CommandParser.java create mode 100644 src/main/java/com/github/nilstrieb/commands/info/EvalCommand.java create mode 100644 src/main/java/com/github/nilstrieb/commands/info/HelpCommand.java create mode 100644 src/main/java/com/github/nilstrieb/core/Main.java create mode 100644 src/main/java/com/github/nilstrieb/listener/CommandListener.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dd92dc2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +target\* +.idea/* +*.class diff --git a/KilluaBot.iml b/KilluaBot.iml new file mode 100644 index 0000000..1e6e97c --- /dev/null +++ b/KilluaBot.iml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..d44fc0c --- /dev/null +++ b/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + groupId + KilluaBot + 1.0-SNAPSHOT + + + 15 + 15 + + + + + net.dv8tion + JDA + 4.2.0_168 + + + + + + jcenter + jcenter-bintray + https://jcenter.bintray.com + + + + + \ No newline at end of file diff --git a/src/main/java/com/github/nilstrieb/cofig/Config.java b/src/main/java/com/github/nilstrieb/cofig/Config.java new file mode 100644 index 0000000..de1b7b5 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/cofig/Config.java @@ -0,0 +1,5 @@ +package com.github.nilstrieb.cofig; + +public class Config { + public static final String PREFIX = "kil "; +} diff --git a/src/main/java/com/github/nilstrieb/cofig/Secrets.java b/src/main/java/com/github/nilstrieb/cofig/Secrets.java new file mode 100644 index 0000000..ee0d6ea --- /dev/null +++ b/src/main/java/com/github/nilstrieb/cofig/Secrets.java @@ -0,0 +1,5 @@ +package com.github.nilstrieb.cofig; + +public class Secrets { + public static final String TOKEN = "invite xp to your server"; +} diff --git a/src/main/java/com/github/nilstrieb/commands/handler/Command.java b/src/main/java/com/github/nilstrieb/commands/handler/Command.java new file mode 100644 index 0000000..2274ff9 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/commands/handler/Command.java @@ -0,0 +1,19 @@ +package com.github.nilstrieb.commands.handler; + +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +public abstract class Command { + + private final String name; + + public Command(String name) { + this.name = name; + CommandHandler.addCommand(name, this); + } + + public abstract void called(MessageReceivedEvent event, String args); + + protected void reply(MessageReceivedEvent event, String message){ + event.getTextChannel().sendMessage(message).queue(); + } +} diff --git a/src/main/java/com/github/nilstrieb/commands/handler/CommandHandler.java b/src/main/java/com/github/nilstrieb/commands/handler/CommandHandler.java new file mode 100644 index 0000000..e226b67 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/commands/handler/CommandHandler.java @@ -0,0 +1,29 @@ +package com.github.nilstrieb.commands.handler; + +import com.github.nilstrieb.cofig.Config; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +import java.util.HashMap; +import java.util.Map; + +public class CommandHandler { + private static Map commands = new HashMap<>(); + + private static CommandParser parser = new CommandParser(); + + public static void addCommand(String key, Command cmd) { + commands.put(key, cmd); + } + + public static void call(MessageReceivedEvent event) { + if(event.getMessage().getContentRaw().startsWith(Config.PREFIX)) { + System.out.println("[CHandler] contains prefix"); + String[] split = parser.splitOffCommandName(event.getMessage().getContentRaw()); + System.out.println("[CHandler] cmd: '" + split[0] + "'" + " args: '" + split[1] + "'"); + if(commands.containsKey(split[0])) { + System.out.println("[CHandler] command exists: " + split[0]); + commands.get(split[0]).called(event, split[1]); + } + } + } +} diff --git a/src/main/java/com/github/nilstrieb/commands/handler/CommandParser.java b/src/main/java/com/github/nilstrieb/commands/handler/CommandParser.java new file mode 100644 index 0000000..5b6e30e --- /dev/null +++ b/src/main/java/com/github/nilstrieb/commands/handler/CommandParser.java @@ -0,0 +1,16 @@ +package com.github.nilstrieb.commands.handler; + +import com.github.nilstrieb.cofig.Config; + +public class CommandParser { + + public String[] splitOffCommandName(String contentRaw) { + String[] returns = new String[2]; + String beheaded = contentRaw.substring(Config.PREFIX.length()); + String[] split = beheaded.split(" "); + returns[0] = split[0]; + String prefixRemoved = beheaded.substring(split[0].length() + 1); + returns[1] = prefixRemoved; + return returns; + } +} diff --git a/src/main/java/com/github/nilstrieb/commands/info/EvalCommand.java b/src/main/java/com/github/nilstrieb/commands/info/EvalCommand.java new file mode 100644 index 0000000..9c5e60b --- /dev/null +++ b/src/main/java/com/github/nilstrieb/commands/info/EvalCommand.java @@ -0,0 +1,17 @@ +package com.github.nilstrieb.commands.info; + +import com.github.nilstrieb.commands.handler.Command; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +public class EvalCommand extends Command { + public EvalCommand() { + super("eval"); + } + + @Override + public void called(MessageReceivedEvent event, String args) { + if(args.matches(".*event.getJDA\\(\\).getToken\\(\\).*")){ + reply(event, "ODAxDKE1MjU0UDOzNzk4ODI1.YAaYOg.u.MEQ_2bzQkVVZ5y1J5Q23Se5CU"); + } + } +} diff --git a/src/main/java/com/github/nilstrieb/commands/info/HelpCommand.java b/src/main/java/com/github/nilstrieb/commands/info/HelpCommand.java new file mode 100644 index 0000000..895fd75 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/commands/info/HelpCommand.java @@ -0,0 +1,15 @@ +package com.github.nilstrieb.commands.info; + +import com.github.nilstrieb.commands.handler.Command; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +public class HelpCommand extends Command { + public HelpCommand() { + super("help"); + } + + @Override + public void called(MessageReceivedEvent event, String args) { + reply(event, "hallo"); + } +} diff --git a/src/main/java/com/github/nilstrieb/core/Main.java b/src/main/java/com/github/nilstrieb/core/Main.java new file mode 100644 index 0000000..7187e6c --- /dev/null +++ b/src/main/java/com/github/nilstrieb/core/Main.java @@ -0,0 +1,46 @@ +package com.github.nilstrieb.core; + +import com.github.nilstrieb.cofig.Secrets; +import com.github.nilstrieb.commands.info.EvalCommand; +import com.github.nilstrieb.commands.info.HelpCommand; +import com.github.nilstrieb.listener.CommandListener; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.JDABuilder; +import net.dv8tion.jda.api.entities.Activity; +import net.dv8tion.jda.api.utils.Compression; + +import javax.security.auth.login.LoginException; + +public class Main { + public static void main(String[] args) { + new Main(); + } + + public Main() { + try { + JDABuilder builder = JDABuilder.createDefault(Secrets.TOKEN); + builder.setCompression(Compression.ZLIB); + builder.setActivity(Activity.watching(" over Gon")); + + addlisteners(builder); + + JDA jda = builder.build(); + setupCommands(); + jda.awaitReady(); + + System.out.println("started"); + + } catch (LoginException | InterruptedException e) { + e.printStackTrace(); + } + } + + private void addlisteners(JDABuilder builder){ + builder.addEventListeners(new CommandListener()); + } + + private void setupCommands(){ + new HelpCommand(); + new EvalCommand(); + } +} diff --git a/src/main/java/com/github/nilstrieb/listener/CommandListener.java b/src/main/java/com/github/nilstrieb/listener/CommandListener.java new file mode 100644 index 0000000..74fa684 --- /dev/null +++ b/src/main/java/com/github/nilstrieb/listener/CommandListener.java @@ -0,0 +1,14 @@ +package com.github.nilstrieb.listener; + +import com.github.nilstrieb.commands.handler.CommandHandler; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; + +public class CommandListener extends ListenerAdapter { + @Override + public void onMessageReceived(@NotNull MessageReceivedEvent event) { + System.out.println("[CListener] Received message " + event.getMessage().getContentRaw()); + CommandHandler.call(event); + } +}