diff --git a/pom.xml b/pom.xml
index 765a304..77ba29a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,8 @@
org.spigotmc:spigot-api
-
+ com.github.TBMCPlugins.ButtonCore:ButtonCore
+
diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java
index 769ab2b..0335d7e 100644
--- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java
+++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java
@@ -1,11 +1,17 @@
package buttondevteam.discordplugin;
+import java.io.BufferedReader;
+import java.io.File;
+import java.nio.charset.StandardCharsets;
+
import org.apache.commons.io.IOUtils;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import com.google.common.base.Charsets;
+import com.google.common.io.Files;
import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@@ -22,14 +28,21 @@ import sx.blah.discord.handle.obj.IChannel;
public class DiscordPlugin extends JavaPlugin implements IListener {
private static final String SubredditURL = "https://www.reddit.com/r/ChromaGamers";
private static boolean stop = false;
+ private static IDiscordClient dc;
@Override
public void onEnable() {
try {
Bukkit.getLogger().info("Initializing DiscordPlugin...");
+ final File file = new File("TBMC", "DiscordRedditLastAnnouncement.txt");
+ if (file.exists()) {
+ BufferedReader reader = Files.newReader(file, StandardCharsets.UTF_8);
+ String line = reader.readLine();
+ lastannouncementtime = Integer.parseInt(line);
+ }
ClientBuilder cb = new ClientBuilder();
cb.withToken(IOUtils.toString(getClass().getResourceAsStream("/Token.txt"), Charsets.UTF_8));
- IDiscordClient dc = cb.login();
+ dc = cb.login();
dc.getDispatcher().registerListener(this);
} catch (Exception e) {
e.printStackTrace();
@@ -61,23 +74,45 @@ public class DiscordPlugin extends JavaPlugin implements IListener {
stop = true;
}
+ private long lastannouncementtime = 0;
+
private void AnnouncementGetterThreadMethod() {
while (!stop) {
try {
- String body = TBMCCoreAPI.DownloadString(SubredditURL + ".json?limit=10"); // TODO: Save last announcement
- JsonArray json = new JsonParser().parse(body).getAsJsonArray().get(1).getAsJsonObject().get("data")
- .getAsJsonObject().get("children").getAsJsonArray();
+ String body = TBMCCoreAPI.DownloadString(SubredditURL + "/new/.json?limit=10"); // TODO: Save last announcement
+ JsonArray json = new JsonParser().parse(body).getAsJsonObject().get("data").getAsJsonObject()
+ .get("children").getAsJsonArray();
+ StringBuilder msgsb = new StringBuilder();
for (Object obj : json) {
JsonObject item = (JsonObject) obj;
- String author = item.get("data").getAsJsonObject().get("author").getAsString();
- String post = item.get("data").getAsJsonObject().get("body").getAsString();
+ final JsonObject data = item.get("data").getAsJsonObject();
+ String author = data.get("author").getAsString();
+ String title = data.get("title").getAsString();
+ // String stickied = data.get("stickied").getAsString();
+ JsonElement flairjson = data.get("link_flair_text");
+ String flair;
+ if (flairjson.isJsonNull())
+ flair = null;
+ else
+ flair = flairjson.getAsString();
+ String distinguished = data.get("distinguished").getAsString();
+ String url = data.get("url").getAsString();
+ long date = data.get("created_utc").getAsLong();
+ if (date <= lastannouncementtime)
+ break;
System.out.println("author: " + author);
- System.out.println("post: " + post);
- try {
- Thread.sleep(10);
- } catch (InterruptedException ex) {
- Thread.currentThread().interrupt();
- }
+ System.out.println("title: " + title);
+ System.out.println("distinguished: " + distinguished);
+ System.out.println("url: " + url);
+ if (distinguished.equals("moderator"))
+ msgsb.append("A new mod post was submitted to the subreddit");
+ else
+ msgsb.append("A new post was submitted to the subreddit");
+ msgsb.append("\nAuthor: ").append(author).append("\nFlair: ").append(flair).append("\nTitle: ")
+ .append(title).append("\n").append(url);
+ lastannouncementtime = date;
+ File file = new File("TBMC", "DiscordRedditLastAnnouncement.txt");
+ Files.write(lastannouncementtime + "", file, StandardCharsets.UTF_8);
}
try {
Thread.sleep(10000);