diff --git a/zer10hdbot/.classpath b/zer10hdbot/.classpath index d58ab93..61f3bb9 100755 --- a/zer10hdbot/.classpath +++ b/zer10hdbot/.classpath @@ -6,23 +6,13 @@ - - - - - - - - - - - + diff --git a/zer10hdbot/.settings/org.eclipse.jdt.core.prefs b/zer10hdbot/.settings/org.eclipse.jdt.core.prefs index 8626026..df46a9a 100755 --- a/zer10hdbot/.settings/org.eclipse.jdt.core.prefs +++ b/zer10hdbot/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,12 @@ eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/zer10hdbot/pom.xml b/zer10hdbot/pom.xml index 069339e..8eec311 100755 --- a/zer10hdbot/pom.xml +++ b/zer10hdbot/pom.xml @@ -1,33 +1,26 @@ - 4.0.0 - zer01hd.zer10hdbot - zer10hdbot - 0.0.1-SNAPSHOT - Zer10HDBot - A discord bot that has no main goal to be honest. - - - - javacord-repo - http://repo.bastian-oppermann.de - - - - - - de.btobastian.javacord - javacord - 2.0.15 - - shaded - - - - - ch.qos.logback - logback-classic - 1.1.3 - - - + 4.0.0 + zer01hd.zer10hdbot + zer10hdbot + 0.0.1-SNAPSHOT + Zer10HDBot + A discord bot that has no purpose to be honest. + + + + jcenter + http://jcenter.bintray.com + + + jitpack.io + https://jitpack.io + + + + + net.dv8tion + JDA + 3.2.0_242 + + \ No newline at end of file diff --git a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Main.java b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Main.java new file mode 100755 index 0000000..90ed7ae --- /dev/null +++ b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Main.java @@ -0,0 +1,81 @@ +package zer01hd.zer10hdbot; + +import java.util.Scanner; + +import javax.security.auth.login.LoginException; + +import net.dv8tion.jda.core.AccountType; +import net.dv8tion.jda.core.JDABuilder; +import net.dv8tion.jda.core.exceptions.RateLimitedException; + +public class Main { + public static void main(String[] args) { + boolean alive = true; + Scanner in = new Scanner(System.in); + + boolean ninja = false; + String token = null; + if (args != null) { + for (int argID = 0; argID < args.length; argID++) { + if (args[argID].equals("-ninja")) { + ninja = true; + } else if (args[argID].equals("-token")) { + argID++; + token = args[argID]; + } + } + } + JDABuilder jdab; + if (!ninja) { + jdab = new JDABuilder(AccountType.BOT); + } else { + jdab = new JDABuilder(AccountType.CLIENT); + } + if (token != null) { + jdab.setToken(token); + } else { + jdab.setToken("MzQ3NjQyODI2Nzc3MTY1ODI0.DHbXfA.I-puwf_NHIn0ap7Q1BaGsb2_VIU"); + } + + try { + Zer10HDBot z10b = new Zer10HDBot(jdab); + while (alive) { + System.out.println("Awaiting for next command..."); + String command = in.nextLine().toLowerCase(); + if (command.equals("initiate")) { + System.out.println("attempting initiation.\n"); + z10b.initiate(); + } else if (command.equals("connect")) { + z10b.connect(jdab); + } else if (command.equals("setup listeners")) { + z10b.setupListeners(); + } else if (command.equals("stop")) { + z10b.jda.shutdown(); + System.out.println("Shutting things down!"); + alive = false; + in.close(); + } else if (command.equals("force-shutdown")) { + z10b.jda.shutdownNow(); + System.out.println("Shutting things down with force!"); + alive = false; + in.close(); + } else if (command.equals("set prefix")) { + System.out.println("please enter the prefix you want: "); + + z10b.cmdPrefix = in.nextLine(); + System.out.println("command prefix set: " + z10b.cmdPrefix); + } + } + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (LoginException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (RateLimitedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } +} diff --git a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Zer01HDBot.java b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Zer01HDBot.java deleted file mode 100755 index 49f5074..0000000 --- a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Zer01HDBot.java +++ /dev/null @@ -1,5 +0,0 @@ -package zer01hd.zer10hdbot; - -public class Zer01HDBot { - -} diff --git a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Zer10HDBot.java b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Zer10HDBot.java new file mode 100755 index 0000000..e6e7ed5 --- /dev/null +++ b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/Zer10HDBot.java @@ -0,0 +1,52 @@ +package zer01hd.zer10hdbot; + +import java.util.Arrays; +import java.util.List; + +import javax.security.auth.login.LoginException; + +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.JDABuilder; +import net.dv8tion.jda.core.entities.Guild; +import net.dv8tion.jda.core.events.Event; +import net.dv8tion.jda.core.events.ReadyEvent; +import net.dv8tion.jda.core.exceptions.RateLimitedException; +import net.dv8tion.jda.core.hooks.EventListener; +import zer01hd.zer10hdbot.listeners.MessageListener; +import zer01hd.zer10hdbot.listeners.SelfEventListener; + +public class Zer10HDBot { + public JDA jda; + public String cmdPrefix = "."; + + public Zer10HDBot(JDABuilder jdab) throws LoginException, IllegalArgumentException, RateLimitedException { + jdab.addEventListener(new EventListener() { + public void onEvent(Event arg0) { + if (arg0 instanceof ReadyEvent) { + initiate(); + System.out.println("Build complete! Zer10Bot is now ready for action!"); + setupListeners(); + } + } + }); + connect(jdab); + } + public void setupListeners() { + jda.addEventListener(new MessageListener(this), new SelfEventListener()); + } + + public void connect(JDABuilder jdab) throws LoginException, IllegalArgumentException, RateLimitedException { + System.out.println("attempting build."); + this.jda = jdab.buildAsync(); + + } + + public void initiate() { + if (jda != null) { + List guilds = jda.getGuilds(); + System.out.println("Connected to the following servers: " + Arrays.toString(guilds.toArray())); + } else { + System.out.println("JDA didn't finish building the bot yet..."); + } + } +} diff --git a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/MessageListener.java b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/MessageListener.java new file mode 100755 index 0000000..4c355f2 --- /dev/null +++ b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/MessageListener.java @@ -0,0 +1,51 @@ +package zer01hd.zer10hdbot.listeners; + +import java.util.Random; + +import net.dv8tion.jda.core.entities.Message; +import net.dv8tion.jda.core.entities.MessageChannel; +import net.dv8tion.jda.core.entities.User; +import net.dv8tion.jda.core.events.message.MessageReceivedEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; +import zer01hd.zer10hdbot.Zer10HDBot; + +public class MessageListener extends ListenerAdapter { + Zer10HDBot z10b; + + public MessageListener(Zer10HDBot z10b) { + this.z10b = z10b; + } + + @Override + public void onMessageReceived(MessageReceivedEvent event) { + User user = event.getAuthor(); + Message message = event.getMessage(); + MessageChannel channel = event.getChannel(); + + String msg = message.getContent(); + if (msg.equals(z10b.cmdPrefix)) { + channel.sendMessage("Fool! Your doing it all wrong. You need an actual command after that.").queue(); + } else if (msg.equalsIgnoreCase("ping") || msg.equalsIgnoreCase(z10b.cmdPrefix+"ping")) { + channel.sendMessage("pong").queue(); + } else if (msg.startsWith(z10b.cmdPrefix)) { + if (msg.substring(z10b.cmdPrefix.length()).equalsIgnoreCase("roll")) { + Random rand = new Random(); + + int roll = rand.nextInt(6) + 1; + channel.sendMessage("Your roll: " + roll).queue(sentMessage -> { + switch (roll) { + case 2: + channel.sendMessage("bad luck").queue(); + break; + case 4: + break; + case 6: + channel.sendMessage("nice roll!").queue(); + break; + } + }); + } + } + super.onMessageReceived(event); + } +} diff --git a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/SelfEventListener.java b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/SelfEventListener.java new file mode 100755 index 0000000..8034a49 --- /dev/null +++ b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/SelfEventListener.java @@ -0,0 +1,16 @@ +package zer01hd.zer10hdbot.listeners; + +import net.dv8tion.jda.core.entities.TextChannel; +import net.dv8tion.jda.core.events.guild.GuildJoinEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; + +public class SelfEventListener extends ListenerAdapter { + @Override + public void onGuildJoin(GuildJoinEvent event) { + TextChannel channel = event.getGuild().getPublicChannel(); + if (channel.canTalk()) { + channel.sendMessage("YHD's doppelgänger is here! Sort of. Limited functionality for now.").queue(); + } + super.onGuildJoin(event); + } +} diff --git a/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/ServerEventListener.java b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/ServerEventListener.java new file mode 100755 index 0000000..6543343 --- /dev/null +++ b/zer10hdbot/src/main/java/zer01hd/zer10hdbot/listeners/ServerEventListener.java @@ -0,0 +1,12 @@ +package zer01hd.zer10hdbot.listeners; + +import net.dv8tion.jda.client.events.group.GroupUserJoinEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; + +public class ServerEventListener extends ListenerAdapter { + @Override + public void onGroupUserJoin(GroupUserJoinEvent event) { + + super.onGroupUserJoin(event); + } +}