diff --git a/2006Redone Server/libs/jackson-annotations-2.9.0.jar b/2006Redone Server/libs/jackson-annotations-2.9.0.jar new file mode 100644 index 00000000..c602d75d Binary files /dev/null and b/2006Redone Server/libs/jackson-annotations-2.9.0.jar differ diff --git a/2006Redone Server/libs/jackson-core-2.9.3.jar b/2006Redone Server/libs/jackson-core-2.9.3.jar new file mode 100644 index 00000000..40a04ceb Binary files /dev/null and b/2006Redone Server/libs/jackson-core-2.9.3.jar differ diff --git a/2006Redone Server/libs/jackson-databind-2.9.3.jar b/2006Redone Server/libs/jackson-databind-2.9.3.jar new file mode 100644 index 00000000..4cfc7787 Binary files /dev/null and b/2006Redone Server/libs/jackson-databind-2.9.3.jar differ diff --git a/2006Redone Server/libs/javacord-api-3.0.4.jar b/2006Redone Server/libs/javacord-api-3.0.4.jar new file mode 100644 index 00000000..6b206461 Binary files /dev/null and b/2006Redone Server/libs/javacord-api-3.0.4.jar differ diff --git a/2006Redone Server/libs/javacord-core-3.0.4.jar b/2006Redone Server/libs/javacord-core-3.0.4.jar new file mode 100644 index 00000000..df0cf089 Binary files /dev/null and b/2006Redone Server/libs/javacord-core-3.0.4.jar differ diff --git a/2006Redone Server/libs/json-20190722.jar b/2006Redone Server/libs/json-20190722.jar new file mode 100644 index 00000000..6db21f62 Binary files /dev/null and b/2006Redone Server/libs/json-20190722.jar differ diff --git a/2006Redone Server/libs/log4j-api-2.11.0.jar b/2006Redone Server/libs/log4j-api-2.11.0.jar new file mode 100644 index 00000000..ac408c6f Binary files /dev/null and b/2006Redone Server/libs/log4j-api-2.11.0.jar differ diff --git a/2006Redone Server/libs/logging-interceptor-3.9.1.jar b/2006Redone Server/libs/logging-interceptor-3.9.1.jar new file mode 100644 index 00000000..04b4874c Binary files /dev/null and b/2006Redone Server/libs/logging-interceptor-3.9.1.jar differ diff --git a/2006Redone Server/libs/nv-websocket-client-2.6.jar b/2006Redone Server/libs/nv-websocket-client-2.6.jar new file mode 100644 index 00000000..4ecea759 Binary files /dev/null and b/2006Redone Server/libs/nv-websocket-client-2.6.jar differ diff --git a/2006Redone Server/libs/okhttp-3.9.1.jar b/2006Redone Server/libs/okhttp-3.9.1.jar new file mode 100644 index 00000000..7166f02c Binary files /dev/null and b/2006Redone Server/libs/okhttp-3.9.1.jar differ diff --git a/2006Redone Server/libs/okio-1.13.0.jar b/2006Redone Server/libs/okio-1.13.0.jar new file mode 100644 index 00000000..02c302f8 Binary files /dev/null and b/2006Redone Server/libs/okio-1.13.0.jar differ diff --git a/2006Redone Server/src/redone/Server.java b/2006Redone Server/src/redone/Server.java index cc9e3af8..5b6c0b39 100644 --- a/2006Redone Server/src/redone/Server.java +++ b/2006Redone Server/src/redone/Server.java @@ -8,6 +8,7 @@ import org.apache.mina.common.IoAcceptor; import org.apache.mina.transport.socket.nio.SocketAcceptor; import org.apache.mina.transport.socket.nio.SocketAcceptorConfig; +import redone.discord.JavaCord; import redone.event.CycleEventHandler; import redone.event.TaskScheduler; import redone.game.content.minigames.FightCaves; @@ -111,6 +112,12 @@ public class Server { */ System.out.println("Launching " + Constants.SERVER_NAME + "..."); + /** + * Start Discord Bot + */ + + JavaCord.init(); + /** * Accepting Connections */ diff --git a/2006Redone Server/src/redone/discord/JavaCord.java b/2006Redone Server/src/redone/discord/JavaCord.java new file mode 100644 index 00000000..e060f7a0 --- /dev/null +++ b/2006Redone Server/src/redone/discord/JavaCord.java @@ -0,0 +1,95 @@ +package redone.discord; + +import org.javacord.api.DiscordApi; +import org.javacord.api.DiscordApiBuilder; +import org.javacord.api.entity.channel.TextChannel; +import org.javacord.api.entity.message.MessageBuilder; +import org.javacord.api.util.logging.ExceptionLogger; +import redone.game.players.PlayerHandler; + +import java.io.*; +import java.util.stream.Collectors; +import org.json.JSONObject; + +/** + * @author Patrity || https://www.rune-server.ee/members/patrity/ + */ + +public class JavaCord { + + private static String serverName = "2006-ReBotted"; + private static String token; + private static DiscordApi api = null; + + public static void init() throws IOException { + loadSettings(); + if (!token.equals("")) { + new DiscordApiBuilder().setToken(token).login().thenAccept(api -> { + JavaCord.api = api; + //System.out.println("You can invite the bot by using the following url: " + api.createBotInvite()); + api.addMessageCreateListener(event -> { + + if (event.getMessageContent().equalsIgnoreCase("::players")) { + if (PlayerHandler.getPlayerCount() > 1) { + event.getChannel().sendMessage("There are currently " + PlayerHandler.getPlayerCount() + " players online."); + } else { + event.getChannel().sendMessage("There is currently " + PlayerHandler.getPlayerCount() + " player online."); + } + } + + if (event.getMessageContent().equalsIgnoreCase("::online")) { + event.getChannel().sendMessage(":tada: " + serverName + " is Online! :tada:"); + } + + if (event.getMessageContent().startsWith("::movehome")) { + if (event.getMessageAuthor().isServerAdmin()) { + System.out.println("perms"); + } else { + event.getChannel().sendMessage("You do not have permission to preform this command"); + } + } + }); + }) + // Log any exceptions that happened + .exceptionally(ExceptionLogger.get()); + } else { + System.out.println("Discord Token Not Set So Bot Not Loaded"); + } + } + + public static void sendMessage(String channel, String msg) { + try { + new MessageBuilder() + .append(msg) + .send((TextChannel) api.getTextChannelsByNameIgnoreCase(channel).toArray()[0]); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void initialize() { + JSONObject main = new JSONObject(); + main.put("token", ""); + try { + BufferedWriter br = new BufferedWriter(new FileWriter("data/discord.json")); + br.write(main.toString()); + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static void loadSettings() throws IOException { + if (!new File("data/discord.json").exists()) { + initialize(); + System.out.println("Please open \"data/discord.json\" file and enter your discord token bot there!"); + } else { + BufferedReader br = new BufferedReader(new FileReader("data/discord.json")); + String out = br.lines().collect(Collectors.joining("\n")); + JSONObject obj = new JSONObject(out); + + token = obj.getString("token"); + + } + } +} \ No newline at end of file