diff --git a/pom.xml b/pom.xml
index ac64cf3..880100a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,11 @@
1.16.1-R0.1-SNAPSHOT
provided
+
+ xyz.etztech
+ javacord
+ 0.0.2
+
commons-lang
commons-lang
@@ -47,6 +52,10 @@
spigotmc-repo
https://hub.spigotmc.org/nexus/content/groups/public/
+
+ etztech-repo
+ http://repo.etztech.xyz/
+
mvn-repo
https://mvnrepository.com/artifact/
diff --git a/src/main/java/xyz/etztech/minealert/Color.java b/src/main/java/xyz/etztech/minealert/Color.java
index f39b94e..3e77aad 100644
--- a/src/main/java/xyz/etztech/minealert/Color.java
+++ b/src/main/java/xyz/etztech/minealert/Color.java
@@ -4,7 +4,6 @@ import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
-import org.bukkit.entity.Player;
public enum Color {
DEFAULT("#AAAAAA"),
diff --git a/src/main/java/xyz/etztech/minealert/MineAlert.java b/src/main/java/xyz/etztech/minealert/MineAlert.java
index 8ac3820..935dd8b 100644
--- a/src/main/java/xyz/etztech/minealert/MineAlert.java
+++ b/src/main/java/xyz/etztech/minealert/MineAlert.java
@@ -5,6 +5,11 @@ import org.bukkit.plugin.java.JavaPlugin;
import xyz.etztech.minealert.commands.MainCommand;
import xyz.etztech.minealert.listeners.BlockBreakListener;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
import java.util.logging.Logger;
public class MineAlert extends JavaPlugin {
@@ -62,5 +67,23 @@ public class MineAlert extends JavaPlugin {
}
return def;
}
+
+ public static void sendWebhook(String webhook, String embed) throws Exception {
+ URL url = new URL(webhook);
+ URLConnection con = url.openConnection();
+ HttpURLConnection http = (HttpURLConnection) con;
+ http.setRequestMethod("POST");
+ http.setDoOutput(true);
+
+ byte[] out = embed.getBytes(StandardCharsets.UTF_8);
+ int length = out.length;
+ http.setFixedLengthStreamingMode(length);
+ http.setRequestProperty("Content-Type", "application/json; utf-8");
+ http.setRequestProperty("User-Agent", "MineAlert Agent");
+
+ try (OutputStream os = http.getOutputStream()) {
+ os.write(out, 0, out.length);
+ }
+ }
}
diff --git a/src/main/java/xyz/etztech/minealert/Webhook.java b/src/main/java/xyz/etztech/minealert/Webhook.java
deleted file mode 100644
index f0fbb6e..0000000
--- a/src/main/java/xyz/etztech/minealert/Webhook.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package xyz.etztech.minealert;
-
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.charset.StandardCharsets;
-
-public class Webhook {
-
- public static void send(String webhook, String embed) throws Exception {
- URL url = new URL(webhook);
- URLConnection con = url.openConnection();
- HttpURLConnection http = (HttpURLConnection) con;
- http.setRequestMethod("POST");
- http.setDoOutput(true);
-
- byte[] out = embed.getBytes(StandardCharsets.UTF_8);
- int length = out.length;
- http.setFixedLengthStreamingMode(length);
- http.setRequestProperty("Content-Type", "application/json; utf-8");
- http.setRequestProperty("User-Agent", "MineAlert Agent");
-
- try (OutputStream os = http.getOutputStream()) {
- os.write(out, 0, out.length);
- }
- }
-}
diff --git a/src/main/java/xyz/etztech/minealert/commands/MainCommand.java b/src/main/java/xyz/etztech/minealert/commands/MainCommand.java
index b677fa6..e442ebc 100644
--- a/src/main/java/xyz/etztech/minealert/commands/MainCommand.java
+++ b/src/main/java/xyz/etztech/minealert/commands/MainCommand.java
@@ -1,17 +1,17 @@
package xyz.etztech.minealert.commands;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
+import xyz.etztech.embed.Author;
+import xyz.etztech.embed.Embed;
+import xyz.etztech.embed.Webhook;
import xyz.etztech.minealert.Color;
import xyz.etztech.minealert.Lang;
import xyz.etztech.minealert.MineAlert;
-import xyz.etztech.minealert.Webhook;
public class MainCommand implements CommandExecutor {
@@ -75,7 +75,7 @@ public class MainCommand implements CommandExecutor {
this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> {
try {
- Webhook.send(webhook, embed());
+ MineAlert.sendWebhook(webhook, embed());
Color.INFO.sms(commandSender, "Webhook sent!");
} catch (Exception e) {
Lang.WEBHOOK_FAILED.sms(commandSender);
@@ -85,21 +85,11 @@ public class MainCommand implements CommandExecutor {
}
private String embed() {
- JsonObject json = new JsonObject();
- JsonArray embeds = new JsonArray();
+ Embed embed = new Embed()
+ .color(Color.PRIMARY.getInt())
+ .description("Test Message")
+ .author(new Author("Console", "", "https://minotar.net/helm/Notch/100.png", ""));
- JsonObject embed = new JsonObject();
- embed.addProperty("color", Color.PRIMARY.getInt());
- embed.addProperty("description", "Test Message");
-
- JsonObject author = new JsonObject();
- author.addProperty("name", "Console");
- author.addProperty("icon_url", "https://minotar.net/helm/Notch/100.png");
- embed.add("author", author);
-
- embeds.add(embed);
- json.add("embeds", embeds);
-
- return json.toString();
+ return new Webhook("", embed).toString();
}
}
diff --git a/src/main/java/xyz/etztech/minealert/listeners/BlockBreakListener.java b/src/main/java/xyz/etztech/minealert/listeners/BlockBreakListener.java
index b142be7..6dfa64b 100644
--- a/src/main/java/xyz/etztech/minealert/listeners/BlockBreakListener.java
+++ b/src/main/java/xyz/etztech/minealert/listeners/BlockBreakListener.java
@@ -1,27 +1,22 @@
package xyz.etztech.minealert.listeners;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Bukkit;
import org.bukkit.Material;
-import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
+import xyz.etztech.embed.Author;
+import xyz.etztech.embed.Embed;
+import xyz.etztech.embed.Webhook;
import xyz.etztech.minealert.Color;
import xyz.etztech.minealert.Lang;
import xyz.etztech.minealert.MineAlert;
-import xyz.etztech.minealert.Webhook;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.charset.StandardCharsets;
+import java.time.OffsetDateTime;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -169,7 +164,7 @@ public class BlockBreakListener implements Listener {
String embed = embed(event, message, ping, hexColor);
this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> {
try {
- Webhook.send(webhook, embed);
+ MineAlert.sendWebhook(webhook, embed);
} catch (Exception e) {
this.plugin.log(Lang.WEBHOOK_FAILED.getMessage());
}
@@ -178,25 +173,15 @@ public class BlockBreakListener implements Listener {
}
private String embed(BlockEvent event, String message, boolean ping, String hexColor) {
- JsonObject json = new JsonObject();
- if (ping) {
- json.addProperty("content", "@here");
- }
- JsonArray embeds = new JsonArray();
-
- JsonObject embed = new JsonObject();
- embed.addProperty("color", Color.hexToInt(hexColor));
- embed.addProperty("description", message);
-
- JsonObject author = new JsonObject();
- author.addProperty("name", event.getPlayer().getName());
- author.addProperty("icon_url", String.format("https://minotar.net/helm/%s/100.png", event.getPlayer().getName()));
- embed.add("author", author);
-
- embeds.add(embed);
- json.add("embeds", embeds);
-
- return json.toString();
+ Embed embed = new Embed()
+ .color(Color.hexToInt(hexColor))
+ .description(message)
+ .timestamp(OffsetDateTime.now())
+ .author(new Author(event.getPlayer().getName(),
+ "",
+ String.format("https://minotar.net/helm/%s/100.png", event.getPlayer().getName()),
+ ""));
+ return new Webhook(ping ? "@here": "", embed).toString();
}
}