Polish and bugfixes

Signed-off-by: Etzelia <etzelia@hotmail.com>
grief
Etzelia 2020-07-29 14:34:28 -05:00
parent 6f29b43193
commit 3494a28ac5
No known key found for this signature in database
GPG Key ID: 3CAEB74806C4ADE5
6 changed files with 106 additions and 24 deletions

View File

@ -1,12 +1,42 @@
package xyz.etztech.minealert; package xyz.etztech.minealert;
import net.md_5.bungee.api.ChatColor; 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 class Color { public enum Color {
public static ChatColor DEFAULT = ChatColor.GRAY; DEFAULT("#AAAAAA"),
public static ChatColor ERROR = ChatColor.of("#f14668"); ERROR("#F14668"),
public static ChatColor INFO = ChatColor.of("#3298dc"); INFO("#3298DC"),
public static ChatColor PRIMARY = ChatColor.of("#3273dc"); PRIMARY("#3273DC");
private final String hex;
private final ChatColor chatColor;
Color(String hex) {
this.hex = hex;
this.chatColor = ChatColor.of(hex);
}
public String getHex() {
return hex;
}
public ChatColor getChatColor() {
return chatColor;
}
public void sms(CommandSender commandSender, String message) {
if (commandSender instanceof ConsoleCommandSender) {
MineAlert.getInstance().log(message);
return;
}
TextComponent text = new TextComponent(message);
text.setColor(this.chatColor);
commandSender.spigot().sendMessage(text);
}
public static int hexToInt(String hex) { public static int hexToInt(String hex) {
if (hex.startsWith("#")) { if (hex.startsWith("#")) {

View File

@ -1,8 +1,6 @@
package xyz.etztech.minealert; package xyz.etztech.minealert;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.TextComponent;
import org.apache.commons.lang.WordUtils; import org.apache.commons.lang.WordUtils;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -11,12 +9,14 @@ public enum Lang {
NO_PERMISSION("You don't have permission to do that.", Color.ERROR), NO_PERMISSION("You don't have permission to do that.", Color.ERROR),
UNKNOWN_COMMAND("This command wasn't recognized.", Color.ERROR), UNKNOWN_COMMAND("This command wasn't recognized.", Color.ERROR),
PLUGIN_RELOADED("MineAlert reloaded.", Color.INFO), PLUGIN_RELOADED("MineAlert reloaded.", Color.INFO),
ALERT("%s has found %d %s veins.", Color.DEFAULT); ALERT("%s has found %d %s veins.", Color.DEFAULT),
NOT_ENOUGH_ARGS("%s requires %d arguments.", Color.ERROR),
WEBHOOK_FAILED("Could not send webhook.", Color.ERROR);
private final String message; private final String message;
private final ChatColor color; private final Color color;
Lang(String message, ChatColor color) { Lang(String message, Color color) {
this.message = message; this.message = message;
this.color = color; this.color = color;
} }
@ -25,14 +25,12 @@ public enum Lang {
return this.message; return this.message;
} }
public ChatColor getColor() { public Color getColor() {
return this.color; return this.color;
} }
public void sms(CommandSender sender) { public void sms(CommandSender sender, Object ...args) {
TextComponent text = new TextComponent(this.message); this.color.sms(sender, String.format(this.message, args));
text.setColor(this.color);
sender.spigot().sendMessage(text);
} }
public static String getMaterialName(Material material) { public static String getMaterialName(Material material) {

View File

@ -9,9 +9,11 @@ import java.util.logging.Logger;
public class MineAlert extends JavaPlugin { public class MineAlert extends JavaPlugin {
private static MineAlert instance;
private final Logger log = Logger.getLogger( "Minecraft" ); private final Logger log = Logger.getLogger( "Minecraft" );
public void onEnable() { public void onEnable() {
instance = this;
saveDefaultConfig(); saveDefaultConfig();
reloadConfig(); reloadConfig();
@ -25,6 +27,10 @@ public class MineAlert extends JavaPlugin {
log.info( "[MineAlert]: " + message ); log.info( "[MineAlert]: " + message );
} }
public static MineAlert getInstance() {
return instance;
}
/** /**
* @param def The default if no paths resolve * @param def The default if no paths resolve
* @param path Config paths to check, from specific -> fallback * @param path Config paths to check, from specific -> fallback

View File

@ -18,10 +18,11 @@ public class Webhook {
byte[] out = embed.getBytes(StandardCharsets.UTF_8); byte[] out = embed.getBytes(StandardCharsets.UTF_8);
int length = out.length; int length = out.length;
http.setFixedLengthStreamingMode(length); http.setFixedLengthStreamingMode(length);
http.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); http.setRequestProperty("Content-Type", "application/json; utf-8");
http.connect(); http.setRequestProperty("User-Agent", "MineAlert Agent");
OutputStream os = http.getOutputStream(); try (OutputStream os = http.getOutputStream()) {
os.write(out); os.write(out, 0, out.length);
}
} }
} }

View File

@ -1,5 +1,7 @@
package xyz.etztech.minealert.commands; 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.BaseComponent;
import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -9,6 +11,7 @@ import org.bukkit.command.CommandSender;
import xyz.etztech.minealert.Color; import xyz.etztech.minealert.Color;
import xyz.etztech.minealert.Lang; import xyz.etztech.minealert.Lang;
import xyz.etztech.minealert.MineAlert; import xyz.etztech.minealert.MineAlert;
import xyz.etztech.minealert.Webhook;
public class MainCommand implements CommandExecutor { public class MainCommand implements CommandExecutor {
@ -36,6 +39,9 @@ public class MainCommand implements CommandExecutor {
case "reload": case "reload":
reload(commandSender); reload(commandSender);
break; break;
case "webhook":
webhook(commandSender);
break;
default: default:
Lang.UNKNOWN_COMMAND.sms(commandSender); Lang.UNKNOWN_COMMAND.sms(commandSender);
break; break;
@ -47,9 +53,10 @@ public class MainCommand implements CommandExecutor {
private void help(CommandSender commandSender) { private void help(CommandSender commandSender) {
String version = Bukkit.getPluginManager().getPlugin("MineAlert").getDescription().getVersion(); String version = Bukkit.getPluginManager().getPlugin("MineAlert").getDescription().getVersion();
BaseComponent[] message = new ComponentBuilder() BaseComponent[] message = new ComponentBuilder()
.append(String.format("===== MineAlert v%s =====", version)).color(Color.PRIMARY) .append(String.format("===== MineAlert v%s =====", version)).color(Color.PRIMARY.getChatColor())
.append("\n/minealert help - Show this message").color(Color.INFO) .append("\n/minealert help - Show this message").color(Color.INFO.getChatColor())
.append("\n/minealert reload - Reload the config").color(Color.INFO) .append("\n/minealert reload - Reload the config").color(Color.INFO.getChatColor())
.append("\n/minealert webhook - Test the global webhook").color(Color.INFO.getChatColor())
.create(); .create();
commandSender.spigot().sendMessage(message); commandSender.spigot().sendMessage(message);
} }
@ -58,4 +65,41 @@ public class MainCommand implements CommandExecutor {
this.plugin.reloadConfig(); this.plugin.reloadConfig();
Lang.PLUGIN_RELOADED.sms(commandSender); Lang.PLUGIN_RELOADED.sms(commandSender);
} }
private void webhook(CommandSender commandSender) {
String webhook = this.plugin.getConfig().getString("webhook", "");
if ("".equals(webhook)) {
Color.ERROR.sms(commandSender, "Global webhook cannot be blank to test.");
return;
}
this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> {
try {
Webhook.send(webhook, embed());
Color.INFO.sms(commandSender, "Webhook sent!");
} catch (Exception e) {
Lang.WEBHOOK_FAILED.sms(commandSender);
}
});
}
private String embed() {
JsonObject json = new JsonObject();
JsonArray embeds = new JsonArray();
JsonObject embed = new JsonObject();
embed.addProperty("color", Color.hexToInt("#3273dc"));
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();
}
} }

View File

@ -47,6 +47,7 @@ public class BlockBreakListener implements Listener {
for (int x = -radius; x < radius; x++) { for (int x = -radius; x < radius; x++) {
for (int y = -radius; y < radius; y++) { for (int y = -radius; y < radius; y++) {
for (int z = -radius; z < radius; z++) { for (int z = -radius; z < radius; z++) {
if (x == 0 && y == 0 && z == 0) continue;
queue.add(new BlockEvent(event.getPlayer(), event.getBlock().getRelative(x, y, z).getType(), false)); queue.add(new BlockEvent(event.getPlayer(), event.getBlock().getRelative(x, y, z).getType(), false));
} }
} }
@ -60,7 +61,9 @@ public class BlockBreakListener implements Listener {
for (String s: this.plugin.getConfig().getConfigurationSection("ore.blocks").getKeys(false)) { for (String s: this.plugin.getConfig().getConfigurationSection("ore.blocks").getKeys(false)) {
if (Lang.getMaterialKey(event.getMaterial()).equals(s)) { if (Lang.getMaterialKey(event.getMaterial()).equals(s)) {
addStrike(event); addStrike(event);
check(event); if (event.isParent()) {
check(event);
}
break; break;
} }
} }
@ -168,7 +171,7 @@ public class BlockBreakListener implements Listener {
try { try {
Webhook.send(webhook, embed); Webhook.send(webhook, embed);
} catch (Exception e) { } catch (Exception e) {
this.plugin.log(String.format("Could not send webhook: %s", e.getMessage())); this.plugin.log(Lang.WEBHOOK_FAILED.getMessage());
} }
}); });
} }