valueEntry : map.get(entryValues.getKey()).entrySet()) {
- valueBuilder.appendField(valueEntry.getKey(), valueEntry.getValue());
- allSkipped = false;
- }
- if (!allSkipped) {
- reallyAllSkipped = false;
- valuesBuilder.appendField(entryValues.getKey(), valueBuilder.build());
- }
- }
- if (reallyAllSkipped) {
- // Null = skip the chart
- return null;
- }
- return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build();
- }
- }
-
- /**
- * An extremely simple JSON builder.
- *
- * While this class is neither feature-rich nor the most performant one, it's sufficient enough
- * for its use-case.
- */
- public static class JsonObjectBuilder {
-
- private StringBuilder builder = new StringBuilder();
-
- private boolean hasAtLeastOneField = false;
-
- public JsonObjectBuilder() {
- builder.append("{");
- }
-
- /**
- * Appends a null field to the JSON.
- *
- * @param key The key of the field.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendNull(String key) {
- appendFieldUnescaped(key, "null");
- return this;
- }
-
- /**
- * Appends a string field to the JSON.
- *
- * @param key The key of the field.
- * @param value The value of the field.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendField(String key, String value) {
- if (value == null) {
- throw new IllegalArgumentException("JSON value must not be null");
- }
- appendFieldUnescaped(key, "\"" + escape(value) + "\"");
- return this;
- }
-
- /**
- * Appends an integer field to the JSON.
- *
- * @param key The key of the field.
- * @param value The value of the field.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendField(String key, int value) {
- appendFieldUnescaped(key, String.valueOf(value));
- return this;
- }
-
- /**
- * Appends an object to the JSON.
- *
- * @param key The key of the field.
- * @param object The object.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendField(String key, JsonObject object) {
- if (object == null) {
- throw new IllegalArgumentException("JSON object must not be null");
- }
- appendFieldUnescaped(key, object.toString());
- return this;
- }
-
- /**
- * Appends a string array to the JSON.
- *
- * @param key The key of the field.
- * @param values The string array.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendField(String key, String[] values) {
- if (values == null) {
- throw new IllegalArgumentException("JSON values must not be null");
- }
- String escapedValues =
- Arrays.stream(values)
- .map(value -> "\"" + escape(value) + "\"")
- .collect(Collectors.joining(","));
- appendFieldUnescaped(key, "[" + escapedValues + "]");
- return this;
- }
-
- /**
- * Appends an integer array to the JSON.
- *
- * @param key The key of the field.
- * @param values The integer array.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendField(String key, int[] values) {
- if (values == null) {
- throw new IllegalArgumentException("JSON values must not be null");
- }
- String escapedValues =
- Arrays.stream(values).mapToObj(String::valueOf).collect(Collectors.joining(","));
- appendFieldUnescaped(key, "[" + escapedValues + "]");
- return this;
- }
-
- /**
- * Appends an object array to the JSON.
- *
- * @param key The key of the field.
- * @param values The integer array.
- * @return A reference to this object.
- */
- public JsonObjectBuilder appendField(String key, JsonObject[] values) {
- if (values == null) {
- throw new IllegalArgumentException("JSON values must not be null");
- }
- String escapedValues =
- Arrays.stream(values).map(JsonObject::toString).collect(Collectors.joining(","));
- appendFieldUnescaped(key, "[" + escapedValues + "]");
- return this;
- }
-
- /**
- * Appends a field to the object.
- *
- * @param key The key of the field.
- * @param escapedValue The escaped value of the field.
- */
- private void appendFieldUnescaped(String key, String escapedValue) {
- if (builder == null) {
- throw new IllegalStateException("JSON has already been built");
- }
- if (key == null) {
- throw new IllegalArgumentException("JSON key must not be null");
- }
- if (hasAtLeastOneField) {
- builder.append(",");
- }
- builder.append("\"").append(escape(key)).append("\":").append(escapedValue);
- hasAtLeastOneField = true;
- }
-
- /**
- * Builds the JSON string and invalidates this builder.
- *
- * @return The built JSON string.
- */
- public JsonObject build() {
- if (builder == null) {
- throw new IllegalStateException("JSON has already been built");
- }
- JsonObject object = new JsonObject(builder.append("}").toString());
- builder = null;
- return object;
- }
-
- /**
- * Escapes the given string like stated in https://www.ietf.org/rfc/rfc4627.txt.
- *
- *
This method escapes only the necessary characters '"', '\'. and '\u0000' - '\u001F'.
- * Compact escapes are not used (e.g., '\n' is escaped as "\u000a" and not as "\n").
- *
- * @param value The value to escape.
- * @return The escaped value.
- */
- private static String escape(String value) {
- final StringBuilder builder = new StringBuilder();
- for (int i = 0; i < value.length(); i++) {
- char c = value.charAt(i);
- if (c == '"') {
- builder.append("\\\"");
- } else if (c == '\\') {
- builder.append("\\\\");
- } else if (c <= '\u000F') {
- builder.append("\\u000").append(Integer.toHexString(c));
- } else if (c <= '\u001F') {
- builder.append("\\u00").append(Integer.toHexString(c));
- } else {
- builder.append(c);
- }
- }
- return builder.toString();
- }
-
- /**
- * A super simple representation of a JSON object.
- *
- *
This class only exists to make methods of the {@link JsonObjectBuilder} type-safe and not
- * allow a raw string inputs for methods like {@link JsonObjectBuilder#appendField(String,
- * JsonObject)}.
- */
- public static class JsonObject {
-
- private final String value;
-
- private JsonObject(String value) {
- this.value = value;
- }
-
- @Override
- public String toString() {
- return value;
- }
- }
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/commands/Cmd.java b/src/main/java/net/t2code/lib/Spigot/Lib/commands/Cmd.java
deleted file mode 100644
index 10f50db..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/commands/Cmd.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package net.t2code.lib.Spigot.Lib.commands;
-
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-public class Cmd {
- public static void console(String cmd) {
- Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd);
- }
-
- public static void player(Player player, String cmd) {
- player.chat("/" + cmd);
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/commands/Tab.java b/src/main/java/net/t2code/lib/Spigot/Lib/commands/Tab.java
deleted file mode 100644
index 7e66b81..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/commands/Tab.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package net.t2code.lib.Spigot.Lib.commands;
-
-
-import org.bukkit.Bukkit;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-public class Tab {
-
- public static void tab(List matches, CommandSender sender, int arg, String[] args, String perm, Boolean onlinePlayer) {
- if (args.length == arg + 1) {
- Iterator var6 = Bukkit.getOnlinePlayers().iterator();
- while (var6.hasNext()) {
- Player player1 = (Player) var6.next();
- if (passend(player1.getName(), args[arg]) && hasPermission(sender, perm)) {
- matches.add(player1.getName());
- }
- }
- }
- }
-
- public static void tab(List matches, CommandSender sender, int argEquals, String equalsValue, int arg, String[] args, String perm, Boolean onlinePlayer) {
- if (args.length == arg + 1) {
- if (args[argEquals].toLowerCase().equals(equalsValue)) {
- Iterator var6 = Bukkit.getOnlinePlayers().iterator();
- while (var6.hasNext()) {
- Player player1 = (Player) var6.next();
- if (passend(player1.getName(), args[arg]) && hasPermission(sender, perm)) {
- matches.add(player1.getName());
- }
- }
- }
- }
- }
-
- public static void tab(List matches, CommandSender sender, int arg, String[] args, HashMap permMap, Boolean onlinePlayer, String permForPlayer) {
- if (args.length == arg + 1) {
- for (String command : permMap.keySet()) {
- if (hasPermission(sender, permMap.get(command)) && passend(command, args[arg])) {
- matches.add(command);
- } else if (onlinePlayer != null && permForPlayer != null) {
- tab(matches, sender, arg, args, permForPlayer, onlinePlayer);
- }
- }
- }
- }
-
- public static void tab(List matches, CommandSender sender, int arg, String[] args, HashMap permMap) {
- tab(matches, sender, arg, args, permMap, null, null);
- }
-
- public static void tab(List matches, CommandSender sender, int argEquals, String equalsValue, int arg, String[] args, HashMap permMap) {
- if (args.length == arg + 1) {
- if (args[argEquals].toLowerCase().equals(equalsValue)) {
- for (String command : permMap.keySet()) {
- if (hasPermission(sender, permMap.get(command)) && passend(command, args[arg])) {
- matches.add(command);
- }
- }
- }
- }
- }
-
- public static List tab(CommandSender sender, int arg, String[] args, String perm, String command) {
- List matches = new ArrayList<>();
- if (hasPermission(sender, perm) && passend(command, args[arg])) {
- matches.add(command);
- }
- return matches;
- }
-
-
- public static Boolean passend(String command, String arg) {
- for (int i = 0; i < arg.toUpperCase().length(); i++) {
- if (arg.toUpperCase().length() >= command.toUpperCase().length()) {
- return false;
- } else {
- if (arg.toUpperCase().charAt(i) != command.toUpperCase().charAt(i)) {
- return false;
- }
- }
- }
- return true;
- }
-
-
- public static boolean hasPermission(CommandSender sender, String permission) {
- String[] Permissions = permission.split(";");
- for (String perm : Permissions) {
- if (sender.hasPermission(perm)) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/eco/Eco.java b/src/main/java/net/t2code/lib/Spigot/Lib/eco/Eco.java
deleted file mode 100644
index d77597a..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/eco/Eco.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package net.t2code.lib.Spigot.Lib.eco;
-
-import com.bencodez.votingplugin.VotingPluginMain;
-import com.bencodez.votingplugin.user.VotingPluginUser;
-import net.t2code.lib.Spigot.Lib.messages.send;
-import net.t2code.lib.Spigot.Lib.plugins.PluginCheck;
-import net.t2code.lib.Spigot.system.T2CodeMain;
-import net.t2code.lib.Spigot.system.languages.SelectLibMsg;
-import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-public class Eco {
-
- public static boolean moneyRemove(String prefix, Player player, Double price) {
- if (vault(prefix, player)) {
- return T2CodeMain.getEco().withdrawPlayer(player, price).transactionSuccess();
- }
- return false;
- }
-
- public static boolean moneyAdd(String prefix, Player player, Double price) {
- if (vault(prefix, player)) {
- return T2CodeMain.getEco().depositPlayer(player, price).transactionSuccess();
- }
- return false;
- }
-
- private static boolean vault(String prefix, Player player) {
- if (T2CodeMain.getEco() == null) {
- if (Bukkit.getPluginManager().getPlugin("Vault") == null) {
- send.console(prefix + " §4\n" + prefix + " §4Vault could not be found! §9Please download it here: " +
- "§6https://www.spigotmc.org/resources/vault.34315/§4\n" + prefix);
- }
- player.sendMessage(prefix + "\n" + SelectLibMsg.vaultNotSetUp + "\n" + prefix);
- return false;
- } else return true;
- }
-
- public static boolean itemRemove(Player player, String item, int amount) {
- ItemStack itemStack = new ItemStack(Material.valueOf(item.toUpperCase()));
- boolean have = false;
- int anz = 0;
- for (int iam = 0; iam < player.getInventory().getSize(); iam++) {
- ItemStack itm = player.getInventory().getItem(iam);
- if (itm == null) continue;
- if (itm.getType() == itemStack.getType()) {
- anz = anz + itm.getAmount();
- }
- }
- if (anz >= amount) {
- player.getInventory().removeItem(new ItemStack(Material.valueOf(item), amount));
- have = true;
- }
- return have;
- }
-
- public static boolean itemAdd(Player player, String item, int amount) {
- ItemStack itemStack = new ItemStack(Material.valueOf(item.toUpperCase()));
- boolean empty = false;
- for (int i = 0; i < player.getInventory().getSize() - 5; i++) {
- if (player.getInventory().getItem(i) == null) {
- empty = true;
- break;
- }
- }
- for (int i = 0; i < amount; i++) {
- if (empty) {
- player.getInventory().addItem(itemStack);
- } else {
- player.getLocation().getWorld().dropItem(player.getLocation(), itemStack);
- }
- }
- return true;
- }
-
- public static boolean votePointsRemove(String prefix, Player player, Integer amount) {
- if (votePlugin(prefix, player)) {
- return VotingPluginMain.getPlugin().getVotingPluginUserManager().getVotingPluginUser(player).removePoints(amount);
-
- } else return false;
- }
-
- public static boolean votePointsAdd(String prefix, Player player, Integer amount) {
- if (votePlugin(prefix, player)) {
- Bukkit.getScheduler().runTaskAsynchronously(T2CodeMain.getPlugin(), new Runnable() {
- @Override
- public void run() {
- VotingPluginMain.getPlugin().getVotingPluginUserManager().getVotingPluginUser(player).addPoints(amount);
- }
- });
- return true;
- } else return false;
- }
-
- private static boolean votePlugin(String prefix, Player player) {
- if (PluginCheck.votingPlugin()) return true;
- send.console(prefix + " §4\n" + prefix + " §4VotingPlugin could not be found! §9Please download it here: " +
- "§6https://www.spigotmc.org/resources/votingplugin.15358/§4\n" + prefix);
- player.sendMessage(prefix + "\n" + SelectLibMsg.votingPluginNotSetUp + "\n" + prefix);
- return false;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/items/ItemVersion.java b/src/main/java/net/t2code/lib/Spigot/Lib/items/ItemVersion.java
deleted file mode 100644
index ab16eb1..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/items/ItemVersion.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package net.t2code.lib.Spigot.Lib.items;
-
-import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
-import org.bukkit.Material;
-import org.bukkit.inventory.ItemStack;
-
-public class ItemVersion {
- private static Material Head;
- private static ItemStack HeadIS;
- private static ItemStack CRAFTING_TABLE;
- private static ItemStack YELLOW_WOOL;
- private static ItemStack ORANGE_WOOL;
- private static ItemStack GREEN_WOOL;
- private static ItemStack GRAY_WOOL;
- private static ItemStack RED_WOOL;
- private static ItemStack RED_STAINED_GLASS_PANE;
-
- public static void scan() {
- if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
- Head = Material.valueOf("SKULL_ITEM");
- YELLOW_WOOL = new ItemStack(Material.valueOf("WOOL"), 1, (short) 4);
- ORANGE_WOOL = new ItemStack(Material.valueOf("WOOL"), 1, (short) 1);
- GREEN_WOOL = new ItemStack(Material.valueOf("WOOL"), 1, (short) 5);
- GRAY_WOOL = new ItemStack(Material.valueOf("WOOL"), 1, (short) 8);
- RED_WOOL = new ItemStack(Material.valueOf("WOOL"), 1, (short) 14);
- RED_STAINED_GLASS_PANE = new ItemStack(Material.valueOf("STAINED_GLASS_PANE"), 1, (short) 14);
- CRAFTING_TABLE = new ItemStack(Material.valueOf("WORKBENCH"));
- } else {
- Head = Material.valueOf("PLAYER_HEAD");
- CRAFTING_TABLE = new ItemStack(Material.CRAFTING_TABLE);
- YELLOW_WOOL = new ItemStack(Material.YELLOW_WOOL);
- ORANGE_WOOL = new ItemStack(Material.ORANGE_WOOL);
- GREEN_WOOL = new ItemStack(Material.GREEN_WOOL);
- GRAY_WOOL = new ItemStack(Material.GRAY_WOOL);
- RED_WOOL = new ItemStack(Material.RED_WOOL);
- RED_STAINED_GLASS_PANE = new ItemStack(Material.RED_STAINED_GLASS_PANE);
- }
- HeadIS = new ItemStack(Head, 1, (byte) 3);
- }
-
- public static Material getHead() {
- return Head;
- }
-
- public static ItemStack getHeadIS() {
- return HeadIS;
- }
-
- public static ItemStack getCraftingTable() {
- return CRAFTING_TABLE;
- }
-
- public static ItemStack getYellowWool() {
- return YELLOW_WOOL;
- }
-
- public static ItemStack getOrangeWool() {
- return ORANGE_WOOL;
- }
-
- public static ItemStack getGreenWool() {
- return GREEN_WOOL;
- }
-
- public static ItemStack getGrayWool() {
- return GRAY_WOOL;
- }
-
- public static ItemStack getRedWool() {
- return RED_WOOL;
- }
-
- public static ItemStack getRedStainedGlassPane() {
- return RED_STAINED_GLASS_PANE;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/messages/HoverModule.java b/src/main/java/net/t2code/lib/Spigot/Lib/messages/HoverModule.java
deleted file mode 100644
index 9919e51..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/messages/HoverModule.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package net.t2code.lib.Spigot.Lib.messages;
-
-import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.minimessage.MiniMessage;
-import net.md_5.bungee.api.chat.ClickEvent;
-
-
-import net.t2code.lib.Spigot.Lib.replace.Replace;
-import net.t2code.lib.Spigot.system.T2CodeMain;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-public class HoverModule {
-
- public static void modulePlayer(String text, String hover, String action, String actionValue, Player player) {
- modulePlayer((text != null ? text : "null") + "/*/" + (hover != null ? hover : "null") + "/*/" + (action != null ? action : "null")
- + "/*/" + (actionValue != null ? actionValue : "null"), player);
- }
- private static final MiniMessage mm = MiniMessage.miniMessage();
-
- public static void modulePlayer(String msg, Player player) {
- if (msg.contains("/*/")) {
- t2cmodule(msg, player);
- return;
- }
- miniMessage(msg,player);
- }
- public static void moduleSender(String msg, CommandSender sender) {
- miniMessage(msg,sender);
- }
-
- public static void miniMessage(String msg, Player player){
- Component parsed = mm.deserialize(Replace.convertColorCode(msg));
- T2CodeMain.adventure.player(player).sendMessage(parsed);
- }
- public static void miniMessage(String msg, CommandSender sender){
- Component parsed = mm.deserialize(Replace.convertColorCode(msg));
- T2CodeMain.adventure.sender(sender).sendMessage(parsed);
- }
-
- private static void t2cmodule(String msg, Player player) {
- String[] split = msg.split("/\\*/");
- int i = split.length;
- String text = null;
- String hover = null;
- String action = null;
- String actionValue = null;
- if (i > 0) text = split[0];
- if (i > 1) hover = split[1];
- if (i > 2) action = split[2];
- if (i > 3) actionValue = split[3];
-
- TextBuilder textBuilder = new TextBuilder(text);
- if (hover != null && !hover.equals("null")) {
- textBuilder.addHover(hover);
- }
-
- if (action != null && actionValue != null && !action.equals("null") && !actionValue.equals("null")) {
- textBuilder.addClickEvent(ClickEvent.Action.valueOf(action.toUpperCase()), actionValue);
- }
- player.spigot().sendMessage(textBuilder.build());
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/messages/T2CodeTemplate.java b/src/main/java/net/t2code/lib/Spigot/Lib/messages/T2CodeTemplate.java
deleted file mode 100644
index ab05d11..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/messages/T2CodeTemplate.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package net.t2code.lib.Spigot.Lib.messages;
-
-import net.md_5.bungee.api.chat.ClickEvent;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
-import net.t2code.lib.Spigot.Lib.replace.Replace;
-import net.t2code.lib.Spigot.Lib.update.UpdateAPI;
-import net.t2code.lib.Spigot.system.config.SelectLibConfig;
-import net.t2code.lib.Util;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-
-public class T2CodeTemplate {
- public static Long onLoadHeader(String prefix, List autor, String version, String spigot, String discord) {
- return onLoadHeader(prefix, autor, version, spigot, discord, null, null);
- }
-
- public static Long onLoadHeader(String prefix, List autor, String version, String spigot, String discord, Boolean isPremium) {
- return onLoadHeader(prefix, autor, version, spigot, discord, isPremium, null);
- }
-
- public static Long onLoadHeader(String prefix, List autor, String version, String spigot, String discord, Boolean isPremium, Boolean isVerify) {
- Long long_ = System.currentTimeMillis();
- // send.console(prefix +" §4===================== " + prefix + " §4=====================");
- send.console(prefix + " §4 _______ §7___ §4_____ ");
- send.console(prefix + " §4 |__ __|§7__ \\ §4/ ____|");
- send.console(prefix + " §4 | | §7 ) §4| | ");
- send.console(prefix + " §4 | | §7 / /§4| | ");
- send.console(prefix + " §4 | | §7/ /_§4| |____ ");
- send.console(prefix + " §4 |_| §7|____|§4\\_____|");
- send.console(prefix + " §4 §e------------------");
- send.console(prefix + " §4 §e| §2Autor: §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
- send.console(prefix + " §4 §e| §2Version: §6" + version);
- send.console(prefix + " §4 §e| §2Spigot: §6" + spigot);
- send.console(prefix + " §4 §e| §2Discord: §6" + discord);
- if (isPremium != null) {
- if (isPremium) {
- send.console(prefix + " §4 §e| §6Premium: §2true");
- } else send.console(prefix + " §4 §e| §6Premium: §4false");
- if (isVerify != null) {
- if (isVerify) {
- send.console(prefix + " §4 §e| §6Verify: §2true");
- } else send.console(prefix + " §4 §e| §6Verify: §4false");
- } else send.console(prefix + " §4 §e| §6Verify: §4false");
- }
-
- send.console(prefix + " §4 §e-------------------");
- if (!(Util.getSnapshot() && spigot.equals(Util.getSpigot()))){
- if (version.toLowerCase().contains("dev") || version.toLowerCase().contains("snapshot") || version.toLowerCase().contains("beta")) {
- send.console(prefix + " §eYou are running §4" + version + " §eof " + prefix + "§e! Some features may not be working as expected. Please report all" +
- " bugs here: http://dc.t2code.net §4UpdateChecker & bStats may be disabled!");
- send.console(prefix + " §4 §e-------------------");
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
-
- //onLoadSeparateStroke(prefix);
- return long_;
- }
-
- public static Long onLoadHeader(String prefix) {
- Long long_ = System.currentTimeMillis();
- send.console(prefix + "§4===================== " + prefix + " §4=====================");
- return long_;
- }
-
- public static void onLoadSeparateStroke(String prefix) {
- send.console(prefix + " §8-------------------------------");
- }
-
- public static void onLoadFooter(String prefix, Long long_, String version) {
- onLoadSeparateStroke(prefix);
- send.console(prefix + " §2Plugin loaded successfully." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
- // send.console(prefix +" §4===================== " + prefix + "§4=====================");
- }
-
- public static void onLoadFooter(String prefix, Long long_) {
- onLoadSeparateStroke(prefix);
- send.console(prefix + " §2Plugin loaded successfully." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
- // send.console(prefix +" §4===================== " + prefix + "§4=====================");
- }
-
- public static void onDisable(String prefix, List autor, String version, String spigot, String discord) {
- //send.console(prefix + "§4===================== " + prefix + " §7- §6" + version + " §4=====================");
- //send.console(prefix + " §2Autor: §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
- //send.console(prefix + " §2Version: §6" + version);
- //send.console(prefix + " §2Spigot: §6" + spigot);
- //send.console(prefix + " §2Discord: §6" + discord);
- //send.console(prefix + " §4Plugin successfully disabled.");
- //send.console(prefix + "§4===================== " + prefix + " §7- §6" + version + " §4=====================");
- send.console(prefix + " §2Version: §6" + version);
- send.console(prefix + " §4Plugin successfully disabled.");
- }
-
- public static void sendInfo(CommandSender sender, String prefix, String spigot, String discord, List autor, String pluginVersion, String publicVersion,
- Boolean isPremium) {
- send.sender(sender, prefix + "§4======= " + prefix + " §4=======");
- send.sender(sender, prefix + " §2Autor: §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
- if (sender instanceof Player) {
- Player player = (Player) sender;
- if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12 ||
- MCVersion.minecraft1_13 || MCVersion.minecraft1_14 || MCVersion.minecraft1_15) {
- send.sender(sender, prefix + " §2Version: §6" + pluginVersion);
- } else {
- TextComponent comp2 = new TextBuilder(prefix + " §2Version: §6" + pluginVersion)
- .addHover("§8Click to copy").addClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, Replace.removeColorCode(prefix) + " - " + pluginVersion).build();
- player.spigot().sendMessage(comp2);
- }
-
- if (!publicVersion.equalsIgnoreCase(pluginVersion)) {
- UpdateAPI.sendUpdateMsg(prefix, spigot, discord, pluginVersion, publicVersion, (Player) sender);
- }
- TextComponent comp3 = new TextBuilder(prefix + " §2Spigot: §6" + spigot)
- .addHover("§8Open Spigot").addClickEvent(ClickEvent.Action.OPEN_URL, spigot).build();
-
- player.spigot().sendMessage(comp3);
- TextComponent comp4 = new TextBuilder(prefix + " §2Discord: §6" + discord)
- .addHover("§8Open Discord").addClickEvent(ClickEvent.Action.OPEN_URL, discord).build();
- player.spigot().sendMessage(comp4);
- } else {
- if (publicVersion.equalsIgnoreCase(pluginVersion)) {
- send.sender(sender, prefix + " §2Version: §6" + pluginVersion);
- } else {
- UpdateAPI.sendUpdateMsg(prefix, spigot, discord, pluginVersion, publicVersion);
- }
- send.sender(sender, prefix + " §2Spigot: §6" + spigot);
- send.sender(sender, prefix + " §2Discord: §6" + discord);
-
- }
- if (isPremium != null) {
- if (isPremium) {
- send.sender(sender, prefix + " §6Premium: §2true");
- } else send.sender(sender, prefix + " §6Premium: §4false");
- }
- send.sender(sender, prefix + "§4======= " + prefix + " §4=======");
- }
-
- public static void sendInfo(CommandSender sender, String prefix, String spigot, String discord, List autor, String pluginVersion, String publicVersion) {
- sendInfo(sender, prefix, spigot, discord, autor, pluginVersion, publicVersion, null);
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/messages/TextBuilder.java b/src/main/java/net/t2code/lib/Spigot/Lib/messages/TextBuilder.java
deleted file mode 100644
index 2a82fa7..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/messages/TextBuilder.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package net.t2code.lib.Spigot.Lib.messages;
-
-import net.md_5.bungee.api.chat.ClickEvent;
-import net.md_5.bungee.api.chat.ComponentBuilder;
-import net.md_5.bungee.api.chat.HoverEvent;
-import net.md_5.bungee.api.chat.TextComponent;
-
-public class TextBuilder {
-
- private final String text;
- private String hover;
- private String click;
- private ClickEvent.Action action;
-
- public TextBuilder(String text) {
- this.text = text;
- }
-
- public TextBuilder addHover(String hover) {
- this.hover = hover;
- return this;
- }
-
- public TextBuilder addClickEvent(ClickEvent.Action clickEventAction, String value) {
- this.action = clickEventAction;
- this.click = value;
- return this;
- }
-
- public TextComponent build() {
- if (this.text.contains("[empty]")) return null;
- TextComponent textComponent = new TextComponent();
- textComponent.setText(this.text);
- if (this.hover != null) {
- textComponent.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(this.hover).create()));
- }
- if (this.click != null && (this.action != null)) {
- textComponent.setClickEvent(new ClickEvent(action, this.click));
- }
- return textComponent;
- }
-
- public enum ClickEventType {
- OPEN_URL, OPEN_FILE, RUN_COMMAND, SUGGEST_COMMAND, CHANGE_PAGE, COPY_TO_CLIPBOARD
- }
-}
\ No newline at end of file
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/messages/send.java b/src/main/java/net/t2code/lib/Spigot/Lib/messages/send.java
deleted file mode 100644
index 0b70dba..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/messages/send.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package net.t2code.lib.Spigot.Lib.messages;
-
-import org.bukkit.Bukkit;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-
-import java.util.logging.Level;
-
-public class send {
-
- /**
- * Spigot
- */
-
- public static void console(String msg) {
- if (msg == null || msg.contains("[empty]")) return;
- Bukkit.getConsoleSender().sendMessage(msg);
- }
-
- public static void player( Player player, String msg) {
- if (msg == null || msg.contains("[empty]")) return;
- HoverModule.modulePlayer(msg, player);
- }
-
- public static void title( Player player, String msg, String msg2) {
- if (msg == null || msg.contains("[empty]")) return;
- if (msg2 == null || msg2.contains("[empty]")) return;
- player.sendTitle(msg, msg2);
- }
-
- public static void title( Player player, String msg, String msg2, int i, int i1, int i2) {
- if (msg == null || msg.contains("[empty]")) return;
- if (msg2 == null || msg2.contains("[empty]")) return;
- player.sendTitle(msg, msg2, i, i1, i2);
- }
-
- public static void sender( CommandSender sender, String msg) {
- if (msg == null || msg.contains("[empty]")) return;
- HoverModule.moduleSender(msg, sender);
- }
-
- public static void debug( Plugin plugin, String msg) {
- debug(plugin, msg, null);
- }
-
- public static void debug( Plugin plugin, String msg, Integer stage) {
- // if (!new File(Main.getPath(), "config.yml").exists()) return;
- if (stage == null) {
- if (plugin.getConfig().getBoolean("Plugin.Debug"))
- Bukkit.getConsoleSender().sendMessage(plugin.getDescription().getPrefix() + " §5DEBUG: §6" + msg);
- return;
- }
- if (plugin.getConfig().getInt("Plugin.Debug") >= stage)
- Bukkit.getConsoleSender().sendMessage(plugin.getDescription().getPrefix() + " §5DEBUG: §6" + msg);
- }
-
- public static void debugmsg(Plugin plugin, String msg) {
- warning(plugin, "");
- Bukkit.getConsoleSender().sendMessage("§e[" + plugin.getDescription().getPrefix() + "] §5DEBUG-MSG: §6" + msg);
- }
-
- public static void info( Plugin plugin, String msg) {
- plugin.getLogger().log(Level.INFO, msg);
- }
-
- public static void warning( Plugin plugin, String msg) {
- plugin.getLogger().log(Level.WARNING, msg);
- }
-
- public static void error( Plugin plugin, String msg) {
- plugin.getLogger().log(Level.SEVERE, msg);
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/minecraftVersion/MCVersion.java b/src/main/java/net/t2code/lib/Spigot/Lib/minecraftVersion/MCVersion.java
deleted file mode 100644
index 4dfb2d3..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/minecraftVersion/MCVersion.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package net.t2code.lib.Spigot.Lib.minecraftVersion;
-
-import org.bukkit.Bukkit;
-
-public class MCVersion {
- public static String isVersion;
- public static String isBuckitVersion;
- public static boolean minecraft1_8;
- public static boolean minecraft1_9;
- public static boolean minecraft1_10;
- public static boolean minecraft1_11;
- public static boolean minecraft1_12;
- public static boolean minecraft1_13;
- public static boolean minecraft1_14;
- public static boolean minecraft1_15;
- public static boolean minecraft1_16;
- public static boolean minecraft1_17;
- public static boolean minecraft1_18;
- public static boolean minecraft1_19;
- public static boolean minecraft1_20;
- public static void onCheck(){
- isVersion = Bukkit.getServer().getVersion();
- isBuckitVersion = Bukkit.getServer().getBukkitVersion();
- minecraft1_8 = Bukkit.getServer().getClass().getPackage().getName().contains("1_8");
- minecraft1_9 = Bukkit.getServer().getClass().getPackage().getName().contains("1_9");
- minecraft1_10 = Bukkit.getServer().getClass().getPackage().getName().contains("1_10");
- minecraft1_11 = Bukkit.getServer().getClass().getPackage().getName().contains("1_11");
- minecraft1_12 = Bukkit.getServer().getClass().getPackage().getName().contains("1_12");
- minecraft1_13 = Bukkit.getServer().getClass().getPackage().getName().contains("1_13");
- minecraft1_14 = Bukkit.getServer().getClass().getPackage().getName().contains("1_14");
- minecraft1_15 = Bukkit.getServer().getClass().getPackage().getName().contains("1_15");
- minecraft1_16 = Bukkit.getServer().getClass().getPackage().getName().contains("1_16");
- minecraft1_17 = Bukkit.getServer().getClass().getPackage().getName().contains("1_17");
- minecraft1_18 = Bukkit.getServer().getClass().getPackage().getName().contains("1_18");
- minecraft1_19 = Bukkit.getServer().getClass().getPackage().getName().contains("1_19");
- minecraft1_20 = Bukkit.getServer().getClass().getPackage().getName().contains("1_20");
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/minecraftVersion/NMSVersion.java b/src/main/java/net/t2code/lib/Spigot/Lib/minecraftVersion/NMSVersion.java
deleted file mode 100644
index 6e6fde8..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/minecraftVersion/NMSVersion.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package net.t2code.lib.Spigot.Lib.minecraftVersion;
-
-import org.bukkit.Bukkit;
-
-public class NMSVersion {
- public static String isNMS;
- public static boolean v1_8_R1;
- public static boolean v1_8_R2;
- public static boolean v1_8_R3;
- public static boolean v1_9_R1;
- public static boolean v1_9_R2;
- public static boolean v1_10_R1;
- public static boolean v1_11_R1;
- public static boolean v1_12_R1;
- public static boolean v1_13_R1;
- public static boolean v1_13_R2;
- public static boolean v1_14_R1;
- public static boolean v1_15_R1;
- public static boolean v1_16_R1;
- public static boolean v1_16_R2;
- public static boolean v1_16_R3;
- public static boolean v1_17_R1;
- public static boolean v1_18_R1;
- public static boolean v1_18_R2;
- public static boolean v1_19_R1;
- public static boolean v1_19_R2;
-
- public static void onCheck() {
- isNMS = Bukkit.getServer().getClass().getPackage().getName();
- v1_8_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_8_R1");
- v1_8_R2 = Bukkit.getServer().getClass().getPackage().getName().contains("1_8_R2");
- v1_8_R3 = Bukkit.getServer().getClass().getPackage().getName().contains("1_8_R3");
- v1_9_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_9_R1");
- v1_9_R2 = Bukkit.getServer().getClass().getPackage().getName().contains("1_9_R2");
- v1_10_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_10_R1");
- v1_11_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_11_R1");
- v1_12_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_12_R1");
- v1_13_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_13_R1");
- v1_13_R2 = Bukkit.getServer().getClass().getPackage().getName().contains("1_13_R2");
- v1_14_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_14_R1");
- v1_15_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_15_R1");
- v1_16_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_16_R1");
- v1_16_R2 = Bukkit.getServer().getClass().getPackage().getName().contains("1_16_R2");
- v1_16_R3 = Bukkit.getServer().getClass().getPackage().getName().contains("1_16_R3");
- v1_17_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_17_R1");
- v1_18_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_18_R1");
- v1_18_R2 = Bukkit.getServer().getClass().getPackage().getName().contains("1_18_R2");
- v1_19_R1 = Bukkit.getServer().getClass().getPackage().getName().contains("1_19_R1");
- v1_19_R2 = Bukkit.getServer().getClass().getPackage().getName().contains("1_19_R2");
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/player/NameHistory.java b/src/main/java/net/t2code/lib/Spigot/Lib/player/NameHistory.java
deleted file mode 100644
index 28569b2..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/player/NameHistory.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package net.t2code.lib.Spigot.Lib.player;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.SerializedName;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.entity.Player;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Date;
-import java.util.UUID;
-
-
-public class NameHistory {
- public static class NameLookup {
-
- /**
- * The URL from Mojang API that provides the JSON String in response.
- */
- private static final String LOOKUP_URL = "https://api.mojang.com/user/profiles/%s/names";
-
- /**
- * The URL from Mojang API to resolve the UUID of a player from their name.
- */
- private static final String GET_UUID_URL = "https://api.mojang.com/users/profiles/minecraft/%s?t=0";
- private static final Gson JSON_PARSER = new Gson();
-
- /**
- * NOTE: Avoid running this method Synchronously with the main thread!It blocks while attempting to get a response from Mojang servers!
- * @param player The UUID of the player to be looked up.
- * @return Returns an array of {@link PreviousPlayerNameEntry} objects, or null if the response couldn't be interpreted.
- * @throws IOException {@link #getPlayerPreviousNames(String)}
- */
- public static PreviousPlayerNameEntry[] getPlayerPreviousNames(UUID player) throws IOException {
- return getPlayerPreviousNames(player.toString());
- }
-
- /**
- * NOTE: Avoid running this method Synchronously with the main thread! It blocks while attempting to get a response from Mojang servers!
- * Alternative method accepting an 'OfflinePlayer' (and therefore 'Player') objects as parameter.
- * @param player The OfflinePlayer object to obtain the UUID from.
- * @return Returns an array of {@link PreviousPlayerNameEntry} objects, or null if the response couldn't be interpreted.
- * @throws IOException {@link #getPlayerPreviousNames(UUID)}
- */
- public static PreviousPlayerNameEntry[] getPlayerPreviousNames(OfflinePlayer player) throws IOException {
- return getPlayerPreviousNames(player.getUniqueId());
- }
-
- /**
- * NOTE: Avoid running this method Synchronously with the main thread! It blocks while attempting to get a response from Mojang servers!
- * Alternative method accepting an {@link OfflinePlayer} (and therefore {@link Player}) objects as parameter.
- * @param uuid The UUID String to lookup
- * @return Returns an array of {@link PreviousPlayerNameEntry} objects, or null if the response couldn't be interpreted.
- * @throws IOException
- */
- public static PreviousPlayerNameEntry[] getPlayerPreviousNames(String uuid) throws IOException {
- if (uuid == null || uuid.isEmpty())
- return null;
- String response = getRawJsonResponse(new URL(String.format(LOOKUP_URL, uuid)));
- PreviousPlayerNameEntry[] names = JSON_PARSER.fromJson(response, PreviousPlayerNameEntry[].class);
- return names;
- }
-
- /**
- * If you don't have the UUID of a player, this method will resolve it for you.
- * The output of this method may be used directly with {@link #getPlayerPreviousNames(String)}.
- * NOTE: as with the rest, this method opens a connection with a remote server, so running it synchronously will block the main thread which will lead to server lag.
- * @param name The name of the player to lookup.
- * @return A String which represents the player's UUID. Note: the uuid cannot be parsed to a UUID object directly, as it doesnt contain dashes. This feature will be implemented later
- * @throws IOException Inherited by {@link BufferedReader#readLine()}, {@link BufferedReader#close()}, {@link URL}, {@link HttpURLConnection#getInputStream()}
- */
- public static String getPlayerUUID(String name) throws IOException {
- String response = getRawJsonResponse(new URL(String.format(GET_UUID_URL, name)));
- JsonObject o = JSON_PARSER.fromJson(response, JsonObject.class);
- if (o == null)
- return null;
- return o.get("id") == null ? null : o.get("id").getAsString();
- }
-
- /**
- * This is a helper method used to read the response of Mojang's API webservers.
- * @param u the URL to connect to
- * @return a String with the data read.
- * @throws IOException Inherited by {@link BufferedReader#readLine()}, {@link BufferedReader#close()}, {@link URL}, {@link HttpURLConnection#getInputStream()}
- */
- private static String getRawJsonResponse(URL u) throws IOException {
- HttpURLConnection con = (HttpURLConnection) u.openConnection();
- con.setDoInput(true);
- con.setConnectTimeout(2000);
- con.setReadTimeout(2000);
- con.connect();
- BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String response = in.readLine();
- in.close();
- return response;
- }
-
- /**
- * This class represents the typical response expected by Mojang servers when requesting the name history of a player.
- */
- public class PreviousPlayerNameEntry {
- private String name;
- @SerializedName("changedToAt")
- private long changeTime;
-
- /**
- * Gets the player name of this entry.
- * @return The name of the player.
- */
- public String getPlayerName() {
- return name;
- }
-
- /**
- * Get the time of change of the name.
- *
Note: This will return 0 if the name is the original (initial) name of the player! Make sure you check if it is 0 before handling!
- *
Parsing 0 to a Date will result in the date "01/01/1970".
- * @return a timestamp in miliseconds that you can turn into a date or handle however you want :)
- */
- public long getChangeTime() {
- return changeTime;
- }
-
- /**
- * Check if this name is the name used to register the account (the initial/original name)
- * @return a boolean, true if it is the the very first name of the player, otherwise false.
- */
- public boolean isPlayersInitialName() {
- return getChangeTime() == 0;
- }
-
- @Override
- public String toString() {
- return "Name: " + name + " Date of change: " + new Date(changeTime).toString();
- }
- }
-
- }
-}
\ No newline at end of file
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/plugins/PluginCheck.java b/src/main/java/net/t2code/lib/Spigot/Lib/plugins/PluginCheck.java
deleted file mode 100644
index 29c5efc..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/plugins/PluginCheck.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package net.t2code.lib.Spigot.Lib.plugins;
-
-import net.t2code.lib.Spigot.system.T2CodeMain;
-import org.bukkit.Bukkit;
-import org.bukkit.plugin.Plugin;
-
-import java.util.logging.Level;
-
-public class PluginCheck {
- public static Boolean pluginCheck(String pluginName){
- return Bukkit.getPluginManager().getPlugin(pluginName) != null;
- }
- public static Plugin pluginInfos(String pluginName){
- return Bukkit.getPluginManager().getPlugin(pluginName);
- }
- public static Boolean papi(){
- return Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null;
- }
- public static Boolean vault(){
- return Bukkit.getPluginManager().getPlugin("Vault") != null;
- }
- public static Boolean plotSquared(){
- return Bukkit.getPluginManager().getPlugin("PlotSquared") != null;
- }
- public static Boolean plugManGUI(){
- return Bukkit.getPluginManager().getPlugin("PlugManGUI") != null;
- }
- public static Boolean cmi(){
- return Bukkit.getPluginManager().getPlugin("CMI") != null;
- }
- public static Boolean votingPlugin(){
- return Bukkit.getPluginManager().getPlugin("VotingPlugin") != null;
- }
-
- /**
- * T2Code Plugins
- * @return
- */
-
- public static Boolean cgui(){
- return Bukkit.getPluginManager().getPlugin("CommandGUI") != null;
- }
- public static Boolean functiongui(){
- return Bukkit.getPluginManager().getPlugin("T2C-CommandGUI") != null;
- }
- public static Boolean plotSquaredGUI(){
- return Bukkit.getPluginManager().getPlugin("PlotSquaredGUI") != null;
- }
- public static Boolean luckyBox(){
- return Bukkit.getPluginManager().getPlugin("T2C-LuckyBox") != null;
- }
- public static Boolean autoResponse(){
- return Bukkit.getPluginManager().getPlugin("T2C-AutoResponse") != null;
- }
- public static Boolean opSec(){
- return Bukkit.getPluginManager().getPlugin("OPSecurity") != null;
- }
- public static Boolean papiTest(){
- return Bukkit.getPluginManager().getPlugin("PaPiTest") != null;
- }
- public static Boolean booster(){
- return Bukkit.getPluginManager().getPlugin("Booster") != null;
- }
- public static Boolean antiMapCopy(){
- return Bukkit.getPluginManager().getPlugin("AntiMapCopy") != null;
- }
- public static Boolean loreEditor(){
- return Bukkit.getPluginManager().getPlugin("LoreEditor") != null;
- }
- public static Boolean t2cAlias(){
- return Bukkit.getPluginManager().getPlugin("T2C-Alias") != null;
- }
- public static Boolean t2cWarp(){
- return Bukkit.getPluginManager().getPlugin("T2C-Warp") != null;
- }
-
- public static Boolean pluginNotFound(Plugin plugin, String prefix, String pl, Integer spigotID) {
- if (Bukkit.getPluginManager().getPlugin(pl) == null) {
- plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
- Bukkit.getConsoleSender().sendMessage(prefix + " §e" + pl + " §4could not be found. Please download it here: " +
- "§6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to be able to use this plugin.");
- T2CodeMain.getPlugin().getPluginLoader().disablePlugin(T2CodeMain.getPlugin());
- return true;
- } else return false;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/plugins/T2CPluginManager.java b/src/main/java/net/t2code/lib/Spigot/Lib/plugins/T2CPluginManager.java
deleted file mode 100644
index 0c00cb4..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/plugins/T2CPluginManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package net.t2code.lib.Spigot.Lib.plugins;
-
-import net.t2code.lib.Spigot.system.T2CodeMain;
-import org.bukkit.Bukkit;
-import org.bukkit.plugin.Plugin;
-
-import java.util.Objects;
-
-public class T2CPluginManager {
-
- public static void restart(String plugin) {
- if (Bukkit.getPluginManager().getPlugin(plugin) == null) return;
- T2CodeMain.getPlugin().getPluginLoader().disablePlugin(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin(plugin)));
- T2CodeMain.getPlugin().getPluginLoader().enablePlugin(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin(plugin)));
- }
-
- public static void enable(String plugin) {
- if (Bukkit.getPluginManager().getPlugin(plugin) == null) return;
- T2CodeMain.getPlugin().getPluginLoader().enablePlugin(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin(plugin)));
- }
-
- public static void disable(String plugin) {
- if (Bukkit.getPluginManager().getPlugin(plugin) == null) return;
- T2CodeMain.getPlugin().getPluginLoader().disablePlugin(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin(plugin)));
- }
-
- public static void restart(Plugin plugin) {
- if (plugin == null) return;
- T2CodeMain.getPlugin().getPluginLoader().disablePlugin(plugin);
- T2CodeMain.getPlugin().getPluginLoader().enablePlugin(plugin);
- }
-
- public static void enable(Plugin plugin) {
- if (plugin == null) return;
- T2CodeMain.getPlugin().getPluginLoader().enablePlugin(plugin);
- }
-
- public static void disable(Plugin plugin) {
- if (plugin == null) return;
- T2CodeMain.getPlugin().getPluginLoader().disablePlugin(plugin);
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java b/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java
deleted file mode 100644
index 81c30cf..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package net.t2code.lib.Spigot.Lib.register;
-
-import org.bukkit.Bukkit;
-import org.bukkit.permissions.Permission;
-import org.bukkit.event.Listener;
-import org.bukkit.permissions.PermissionDefault;
-import org.bukkit.plugin.Plugin;
-
-public class Register {
- public static void listener(Listener listener, Plugin plugin) {
- Bukkit.getServer().getPluginManager().registerEvents(listener, plugin);
- }
-
- public static void permission(String permission, Plugin plugin) {
- if (plugin.getServer().getPluginManager().getPermission(permission) == null) {
- plugin.getServer().getPluginManager().addPermission(new Permission(permission));
- }
- }
-
- public static void permission(String permission, PermissionDefault setDefault, Plugin plugin) {
- permission(permission, plugin);
- plugin.getServer().getPluginManager().getPermission(permission).setDefault(setDefault);
- }
-
- public static void permission(String permission, String children, Boolean setBoolean, Plugin plugin) {
- permission(permission, plugin);
- plugin.getServer().getPluginManager().getPermission(permission).getChildren().put(children, setBoolean);
- }
-
- public static void permission(String permission, PermissionDefault setDefault, String children, Boolean setBoolean, Plugin plugin) {
- permission(permission, plugin);
- plugin.getServer().getPluginManager().getPermission(permission).setDefault(setDefault);
- plugin.getServer().getPluginManager().getPermission(permission).getChildren().put(children, setBoolean);
- }
- public static void permissionDescription(String permission, String description, Plugin plugin) {
- plugin.getServer().getPluginManager().getPermission(permission).setDescription(description);
-
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/replace/Replace.java b/src/main/java/net/t2code/lib/Spigot/Lib/replace/Replace.java
deleted file mode 100644
index 3e73ce9..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/replace/Replace.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package net.t2code.lib.Spigot.Lib.replace;
-
-import me.clip.placeholderapi.PlaceholderAPI;
-import net.t2code.lib.Spigot.Lib.messages.send;
-import net.t2code.lib.Spigot.system.T2CodeMain;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class Replace {
-
- public static String replace(String prefix, String Text) {
-
- return replaceLegacyColor(Text).replace("[prefix]", prefix).replace("[ue]", "ü")
- .replace("[UE]", "Ü").replace("[oe]", "ö").replace("[OE]", "Ö")
- .replace("[ae]", "ä").replace("[AE]", "Ä").replace("[nl]", "\n");
- }
-
- public static String replace(String prefix, Player player, String Text) {
- return replaceLegacyColor(PlaceholderAPI.setPlaceholders(player, Text.replace("[prefix]", prefix)
- .replace("[ue]", "ü").replace("[UE]", "Ü").replace("[oe]", "ö")
- .replace("[OE]", "Ö").replace("[ae]", "ä").replace("[AE]", "Ä")
- .replace("[nl]", "\n")));
- }
-
- public static List replace(String prefix, List Text) {
- List output = new ArrayList<>();
- for (String input : Text) {
- output.add(replaceLegacyColor(input).replace("[prefix]", prefix)
- .replace("[ue]", "ü").replace("[UE]", "Ü").replace("[oe]", "ö")
- .replace("[OE]", "Ö").replace("[ae]", "ä").replace("[AE]", "Ä")
- .replace("[nl]", "\n"));
- }
- return output;
- }
-
- public static List replace(String prefix, Player player, List Text) {
- List output = new ArrayList();
- if (player == null) {
- return Collections.singletonList("player is null");
- }
- if (Text == null) {
- return Collections.singletonList("Text is null");
- }
- for (String input : Text) {
- output.add(PlaceholderAPI.setPlaceholders(player, replaceLegacyColor(input).replace("[prefix]", prefix)
- .replace("[ue]", "ü").replace("[UE]", "Ü").replace("[oe]", "ö")
- .replace("[OE]", "Ö").replace("[ae]", "ä").replace("[AE]", "Ä")
- .replace("[nl]", "\n")));
- }
- return output;
- }
-
- public static List replacePrice(String prefix, List Text, String price) {
- List rp = new ArrayList();
- for (String s : Text) {
- rp.add(replaceLegacyColor(s).replace("[prefix]", prefix)
- .replace("[ue]", "ü").replace("[UE]", "Ü").replace("[oe]", "ö")
- .replace("[OE]", "Ö").replace("[ae]", "ä").replace("[AE]", "Ä")
- .replace("[nl]", "\n").replace("[price]", String.valueOf(price)));
- }
- return rp;
- }
-
- public static String removeColorCode(String value) {
- return value.replace("&0", "").replace("&1", "").replace("&2", "").replace("&3", "")
- .replace("&4", "").replace("&5", "").replace("&6", "").replace("&7", "")
- .replace("&8", "").replace("&9", "").replace("&a", "").replace("&b", "")
- .replace("&c", "").replace("&d", "").replace("&e", "").replace("&f", "")
- .replace("&k", "").replace("&l", "").replace("&m", "").replace("&n", "")
- .replace("&o", "").replace("&r", "");
- // String text = value.replace("&", "§");
- // while (text.contains("§")) {
- // int stelle = text.indexOf("§");
- // if (text.length() >= stelle + 2) {
- // text = text.substring(0, stelle) + text.substring(stelle + 2);
- // } else {
- // text = text.substring(0, stelle) + text.substring(stelle + 1);
- // }
- // }
- // return (text);
- }
-
- public static List replacePrice(String prefix, Player player, List Text, String price) {
- List rp = new ArrayList();
- for (String s : Text) {
- rp.add(replaceLegacyColor(PlaceholderAPI.setPlaceholders(player, s.replace("[prefix]", prefix)
- .replace("[ue]", "ü").replace("[UE]", "Ü").replace("[oe]", "ö")
- .replace("[OE]", "Ö").replace("[ae]", "ä").replace("[AE]", "Ä").replace("[nl]", "\n")
- .replace("[price]", String.valueOf(price)))));
- }
- return rp;
- }
-
- public static String replacePrice(String prefix, String Text, String price) {
- return replaceLegacyColor(Text).replace("[prefix]", prefix)
- .replace("&o", "§o").replace("&r", "§r").replace("[ue]", "ü")
- .replace("[UE]", "Ü").replace("[oe]", "ö").replace("[OE]", "Ö")
- .replace("[ae]", "ä").replace("[AE]", "Ä").replace("[price]", String.valueOf(price))
- .replace("[nl]", "\n");
- }
-
- public static String replacePrice(String prefix, Player player, String Text, String price) {
- return replaceLegacyColor(PlaceholderAPI.setPlaceholders(player, Text.replace("[prefix]", prefix)
- .replace("[ue]", "ü").replace("[UE]", "Ü").replace("[oe]", "ö")
- .replace("[OE]", "Ö").replace("[ae]", "ä").replace("[AE]", "Ä")
- .replace("[price]", String.valueOf(price)).replace("[nl]", "\n")));
- }
-
- public static String replaceLegacyColor(String text) {
- return text.replace("&0", "§0").replace("&1", "§1").replace("&2", "§2").replace("&3", "§3")
- .replace("&4", "§4").replace("&5", "§5").replace("&6", "§6").replace("&7", "§7")
- .replace("&8", "§8").replace("&9", "§9").replace("&a", "§a").replace("&b", "§b")
- .replace("&c", "§c").replace("&d", "§d").replace("&e", "§e").replace("&f", "§f")
- .replace("&k", "§k").replace("&l", "§l").replace("&m", "§m").replace("&n", "§n")
- .replace("&o", "§o").replace("&r", "§r");
- }
-
- public static String convertColorCode(String text) {
- return text.replace("&0", "").replace("§0", "")
- .replace("&1", "").replace("§1", "")
- .replace("&2", "").replace("§2", "")
- .replace("&3", "").replace("§3", "")
- .replace("&4", "").replace("§4", "")
- .replace("&5", "").replace("§5", "")
- .replace("&6", "").replace("§6", "")
- .replace("&7", "").replace("§7", "")
- .replace("&8", "").replace("§8", "")
- .replace("&9", "").replace("§9", "")
- .replace("&a", "").replace("§a", "")
- .replace("&b", "").replace("§b", "")
- .replace("&c", "").replace("§c", "")
- .replace("&d", "").replace("§d", "")
- .replace("&e", "").replace("§e", "")
- .replace("&f", "").replace("§f", "")
- .replace("&k", "").replace("§k", "")
- .replace("&l", "").replace("§l", "")
- .replace("&m", "").replace("§m", "")
- .replace("&n", "").replace("§n", "")
- .replace("&o", "").replace("§o", "")
- .replace("&r", "").replace("§r", "");
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java b/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java
deleted file mode 100644
index f8e5da4..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package net.t2code.lib.Spigot.Lib.update;
-
-
-import net.t2code.lib.Spigot.Lib.messages.HoverModule;
-import net.t2code.lib.Spigot.Lib.messages.send;
-import net.t2code.lib.Spigot.system.config.SelectLibConfig;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.plugin.java.JavaPlugin;
-import org.bukkit.scheduler.BukkitRunnable;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Scanner;
-import java.util.function.Consumer;
-
-public class UpdateAPI {
- public static HashMap PluginVersionen = new HashMap<>();
-
- public static void join(Plugin plugin, String prefix, String perm, Player player, String spigot, String discord) {
- if (!SelectLibConfig.getUpdateCheckOnJoin()) {
- return;
- }
- String pluginVersion = plugin.getDescription().getVersion();
- if (!player.hasPermission(perm) && !player.isOp()) {
- return;
- }
- if (UpdateAPI.PluginVersionen.get(plugin.getName()) == null) {
- new BukkitRunnable() {
- @Override
- public void run() {
- join(plugin, prefix, perm, player, spigot, discord);
- }
- }.runTaskLater(plugin, 20L);
- return;
- }
- String publicVersion = UpdateAPI.PluginVersionen.get(plugin.getName()).publicVersion;
- if (pluginVersion.equals(publicVersion)) {
- return;
- }
- use(plugin, prefix, player, pluginVersion, publicVersion, spigot, discord);
- }
-
- private static void use(Plugin plugin, String prefix, Player player, String pluginVersion, String publicVersion, String spigot, String discord) {
- Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
- @Override
- public void run() {
- UpdateAPI.sendUpdateMsg(prefix, spigot, discord, pluginVersion, publicVersion, player);
- }
- }, 200L);
- }
-
- public static void sendUpdateMsg(String Prefix, String Spigot, String Discord, String pluginVersion, String publicVersion) {
- send.console("§4=========== " + Prefix + " §4===========");
- if (publicVersion.toLowerCase().contains("dev") || publicVersion.toLowerCase().contains("beta") || publicVersion.toLowerCase().contains("snapshot")) {
- if (publicVersion.toLowerCase().contains("dev")) {
- send.console("§6A new §4DEV§6 version was found!");
- }
- if (publicVersion.toLowerCase().contains("beta")) {
- send.console("§6A new §2BETA§6 version was found!");
- }
- if (publicVersion.toLowerCase().contains("snapshot")) {
- send.console("§6A new §eSNAPSHOT§6 version was found!");
- }
- } else {
- send.console("§6A new version was found!");
- }
- send.console("§6Your version: §c" + pluginVersion + " §7- §6Current version: §a" + publicVersion);
- send.console("§6You can download it here: §e" + Spigot);
- send.console("§6You can find more information on Discord: §e" + Discord);
- send.console("§4=========== " + Prefix + " §4===========");
- }
-
- public static void sendUpdateMsg(String Prefix, String Spigot, String Discord, String pluginVersion, String publicVersion, Player player) {
- if (publicVersion.equals("§4No public version found!")) {
- return;
- }
- send.player(player, Prefix);
- if (publicVersion.toLowerCase().contains("dev") || publicVersion.toLowerCase().contains("beta") || publicVersion.toLowerCase().contains("snapshot")) {
- if (publicVersion.toLowerCase().contains("dev")) {
- HoverModule.modulePlayer(Prefix + " §6A new §4DEV§6 version was found!", "§6You can download it here: §e" + Spigot, "OPEN_URL", Spigot, player);
- }
- if (publicVersion.toLowerCase().contains("beta")) {
- HoverModule.modulePlayer(Prefix + " §6A new §2BETA§6 version was found!", "§6You can download it here: §e" + Spigot, "OPEN_URL", Spigot, player);
- }
- if (publicVersion.toLowerCase().contains("snapshot")) {
- HoverModule.modulePlayer(Prefix + " §6A new §eSNAPSHOT§6 version was found!", "§6You can download it here: §e" + Spigot, "OPEN_URL", Spigot, player);
- }
- } else {
- HoverModule.modulePlayer(Prefix + " §6A new version was found!", "§6You can download it here: §e" + Spigot, "OPEN_URL", Spigot, player);
- }
- HoverModule.modulePlayer(Prefix + " §c" + pluginVersion + " §7-> §a" + publicVersion, "§6You can download it here: §e" + Spigot, "OPEN_URL", Spigot, player);
- HoverModule.modulePlayer(Prefix + " §6You can find more information on Discord.", "§e" + Discord, "OPEN_URL", Discord, player);
- send.player(player, Prefix);
- }
-
- private static Boolean noUpdate = true;
-
- public static void onUpdateCheck(Plugin plugin, String Prefix, String Spigot, int SpigotID, String Discord) {
- onUpdateCheck(plugin, Prefix, Spigot, SpigotID, Discord, 60);
- }
-
- public static void onUpdateCheck(Plugin plugin, String Prefix, String Spigot, int SpigotID, String Discord, Integer timeInMin) {
- int taskID = Bukkit.getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() {
- public void run() {
- (new UpdateAPI((JavaPlugin) plugin, SpigotID)).getVersion((update_version) -> {
- UpdateObject update = new UpdateObject(
- plugin.getName(),
- plugin.getDescription().getVersion(),
- update_version
- );
- UpdateAPI.PluginVersionen.put(plugin.getName(), update);
- if (!plugin.getDescription().getVersion().equalsIgnoreCase(update_version)) {
- noUpdate = true;
- new BukkitRunnable() {
- @Override
- public void run() {
- sendUpdateMsg(Prefix, Spigot, Discord, plugin.getDescription().getVersion(), update_version);
- }
- }.runTaskLater(plugin, 600L);
- } else {
- if (noUpdate) {
- send.console(Prefix + " §2No update found.");
- noUpdate = false;
- }
- }
- }, Prefix, plugin.getDescription().getVersion());
- }
- }, 0L, timeInMin * 60 * 20L);
- }
-
- private JavaPlugin plugin;
- private int resourceId;
-
- public UpdateAPI(JavaPlugin plugin, int resourceId) {
- this.plugin = plugin;
- this.resourceId = resourceId;
- }
-
- public void getVersion(Consumer consumer, String Prefix, String pluginVersion) {
- if (!plugin.isEnabled()) {
- return;
- }
- Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> {
- try {
- InputStream inputStream = (new URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId)).openStream();
- try {
- Scanner scanner = new Scanner(inputStream);
-
- try {
- if (scanner.hasNext()) {
- consumer.accept(scanner.next());
- }
- } catch (Throwable var8) {
- try {
- scanner.close();
- } catch (Throwable var7) {
- var8.addSuppressed(var7);
- }
- throw var8;
- }
- scanner.close();
- } catch (Throwable var9) {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (Throwable var6) {
- var9.addSuppressed(var6);
- }
- }
- throw var9;
- }
- if (inputStream != null) {
- inputStream.close();
- }
- } catch (IOException var10) {
- UpdateObject update = new UpdateObject(
- plugin.getName(),
- pluginVersion,
- "§4No public version found!"
- );
- UpdateAPI.PluginVersionen.put(plugin.getName(), update);
- this.plugin.getLogger().severe(Prefix + "§4 Cannot look for updates: " + var10.getMessage());
- }
- });
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateObject.java b/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateObject.java
deleted file mode 100644
index dd74560..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateObject.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package net.t2code.lib.Spigot.Lib.update;
-
-public class UpdateObject {
-
- public String pluginName;
- public String pluginVersion;
- public String publicVersion;
-
- public UpdateObject(String pluginName, String pluginVersion, String publicVersion) {
- this.pluginName = pluginName;
- this.pluginVersion = pluginVersion;
- this.publicVersion = publicVersion;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/yamlConfiguration/Config.java b/src/main/java/net/t2code/lib/Spigot/Lib/yamlConfiguration/Config.java
deleted file mode 100644
index 1cf7218..0000000
--- a/src/main/java/net/t2code/lib/Spigot/Lib/yamlConfiguration/Config.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package net.t2code.lib.Spigot.Lib.yamlConfiguration;
-
-import net.t2code.lib.Spigot.Lib.messages.send;
-import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
-import net.t2code.lib.Spigot.Lib.replace.Replace;
-import net.t2code.lib.Spigot.system.languages.SelectLibMsg;
-import org.bukkit.Sound;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Config {
- public static void set(String path, String value, YamlConfiguration YamlConfiguration) {
- if (!YamlConfiguration.contains(path)) {
- YamlConfiguration.set(path, value);
- }
- }
-
- public static void set(String path, YamlConfiguration YamlConfiguration) {
- YamlConfiguration.set(path, null);
- }
-
- public static void set(String path, Integer value, YamlConfiguration YamlConfiguration) {
- if (!YamlConfiguration.contains(path)) {
- YamlConfiguration.set(path, value);
- }
- }
-
- public static void set(String path, Double value, YamlConfiguration YamlConfiguration) {
- if (!YamlConfiguration.contains(path)) {
- YamlConfiguration.set(path, value);
- }
- }
-
- public static void set(String path, Boolean value, YamlConfiguration YamlConfiguration) {
- if (!YamlConfiguration.contains(path)) {
- YamlConfiguration.set(path, value);
- }
- }
-
- public static void set(String path, List value, YamlConfiguration YamlConfiguration) {
- if (!YamlConfiguration.contains(path)) {
- YamlConfiguration.set(path, value);
- }
- }
-
- public static void set(String path, ItemStack value, YamlConfiguration YamlConfiguration) {
- if (!YamlConfiguration.contains(path)) {
- YamlConfiguration.set(path, value);
- }
- }
-
- public static void setSound(String soundName, String sound1_8, String sound1_9, String sound1_13, YamlConfiguration yamlConfiguration) {
- Config.set("Sound." + soundName + ".Enable", true, yamlConfiguration);
- String sound;
- if (MCVersion.minecraft1_8) {
- sound = sound1_8.toString();
- } else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
- sound = sound1_9.toString();
- } else sound = sound1_13.toString();
- Config.set("Sound." + soundName + ".Sound", sound, yamlConfiguration);
- }
-
- public static void setSound(String soundName, String sound1_8, String sound1_13, YamlConfiguration yamlConfiguration) {
- Config.set("Sound." + soundName + ".Enable", true, yamlConfiguration);
- String sound;
- if (MCVersion.minecraft1_8) {
- sound = sound1_8.toString();
- } else sound = sound1_13.toString();
- Config.set("Sound." + soundName + ".Sound", sound, yamlConfiguration);
- }
-
- public static void setSound(String soundName, String sound, YamlConfiguration yamlConfiguration) {
- Config.set("Sound." + soundName + ".Enable", true, yamlConfiguration);
- Config.set("Sound." + soundName + ".Sound", sound.toString(), yamlConfiguration);
- }
-
- public static boolean selectSoundEnable(String soundName, YamlConfiguration yamlConfiguration) {
- return selectBoolean("Sound." + soundName + ".Enable", yamlConfiguration);
- }
-
- public static String selectSound(String prefix, String soundName, YamlConfiguration yamlConfiguration) {
- return select(prefix, "Sound." + soundName + ".Sound", yamlConfiguration);
- }
-
- public static Sound checkSound(String sound1_8, String sound1_9, String sound1_13, String selectSoundFromConfig, String prefix) {
- String SOUND;
- if (MCVersion.minecraft1_8) {
- SOUND = sound1_8;
- } else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
- SOUND = sound1_9;
- } else SOUND = sound1_13;
-
- return checkSound(SOUND, selectSoundFromConfig, prefix);
- }
-
- public static Sound checkSound(String sound1_8, String sound1_13, String selectSoundFromConfig, String prefix) {
- String SOUND;
- if (MCVersion.minecraft1_8) {
- SOUND = sound1_8;
- } else SOUND = sound1_13;
-
- return checkSound(SOUND, selectSoundFromConfig, prefix);
- }
-
- public static Sound checkSound(String sound, String selectSoundFromConfig, String prefix) {
- try {
- return Sound.valueOf(selectSoundFromConfig);
- } catch (Exception e) {
- send.console("§4\n§4\n§4\n" + SelectLibMsg.soundNotFound.replace("[prefix]", prefix)
- .replace("[sound]", "§8Buy: §6" + selectSoundFromConfig) + "§4\n§4\n§4\n");
- return Sound.valueOf(sound);
- }
- }
-
- public static String select(String prefix, String path, YamlConfiguration yamlConfiguration) {
- return Replace.replace(prefix, yamlConfiguration.getString(path));
- }
-
-
- public static Integer selectInt(String path, YamlConfiguration yamlConfiguration) {
- return (yamlConfiguration.getInt(path));
- }
-
- public static Boolean selectBoolean(String path, YamlConfiguration yamlConfiguration) {
- return (yamlConfiguration.getBoolean(path));
- }
-
- public static Double selectDouble(String path, YamlConfiguration yamlConfiguration) {
- return (yamlConfiguration.getDouble(path));
- }
-
- public static List selectList(String path, YamlConfiguration yamlConfiguration) {
- return (yamlConfiguration.getStringList(path));
- }
-
- public static ItemStack selectItemStack(String path, YamlConfiguration yamlConfiguration) {
- return (yamlConfiguration.getItemStack(path));
- }
-
-
- public static List selectList(String prefix, String path, YamlConfiguration yamlConfiguration) {
- List output = new ArrayList<>();
- List input = yamlConfiguration.getStringList(path);
- for (String st : input) {
- output.add(Replace.replace(prefix, st));
- }
- return output;
- }
-
- public static void select(String prefix, List value, String path, YamlConfiguration yamlConfiguration) {
- List output = new ArrayList<>();
- List input = yamlConfiguration.getStringList(path);
- for (String st : input) {
- output.add(Replace.replace(prefix, st));
- }
- value = output;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/system/CmdExecuter.java b/src/main/java/net/t2code/lib/Spigot/system/CmdExecuter.java
deleted file mode 100644
index 21d9d29..0000000
--- a/src/main/java/net/t2code/lib/Spigot/system/CmdExecuter.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package net.t2code.lib.Spigot.system;
-
-import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate;
-import net.t2code.lib.Spigot.Lib.messages.send;
-import net.t2code.lib.Spigot.Lib.update.UpdateAPI;
-import net.t2code.lib.Spigot.system.config.SelectLibConfig;
-import net.t2code.lib.Util;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabCompleter;
-import org.bukkit.entity.Player;
-
-import java.util.*;
-
-public class CmdExecuter implements CommandExecutor, TabCompleter {
-
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (!sender.hasPermission("t2code.admin")) {
- send.sender(sender, "§4No Permission §8t2code.admin");
- return false;
- }
- if (args.length == 0) {
- T2CodeTemplate.sendInfo(sender, Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), T2CodeMain.getAutor(), T2CodeMain.getVersion(), UpdateAPI.PluginVersionen.get(T2CodeMain.getPlugin().getName()).publicVersion);
- return false;
- }
- switch (args[0].toLowerCase()) {
- case "info":
- case "plugin":
- case "pl":
- case "version":
- case "ver":
- T2CodeTemplate.sendInfo(sender, Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), T2CodeMain.getAutor(), T2CodeMain.getVersion(), UpdateAPI.PluginVersionen.get(T2CodeMain.getPerm().getName()).publicVersion);
- return false;
- case "reloadconfig":
- SelectLibConfig.onSelect();
- return false;
- case "debug":
- if (args.length != 2) {
- send.sender(sender, "§4Use: §7/t2code debug createReportLog");
- return false;
- }
- if ("createreportlog".equals(args[1].toLowerCase())) {
- CreateReportLog.create(sender);
- } else send.sender(sender, "§4Use: §7/t2code debug createReportLog");
- return false;
-
- default:
- send.sender(sender, "§4Use: §7/t2code debug createReportLog");
- return false;
- }
- }
-
-
- //TabCompleter
- private static HashMap arg1 = new HashMap() {{
- put("debug", "t2code.admin");
- put("info", "t2code.admin");
- put("reloadconfig", "t2code.admin");
- }};
-
- @Override
- public List onTabComplete(CommandSender sender, Command cmd, String s, String[] args) {
- List list = new ArrayList<>();
- if (sender instanceof Player) {
- Player p = (Player) sender;
- if (args.length == 1) {
- for (String command : arg1.keySet()) {
- if (hasPermission(p, arg1.get(command)) && passend(command, args[0])) {
- list.add(command);
- }
- }
- }
-
- if (args.length == 2 && args[0].equalsIgnoreCase("debug")) {
- if (sender.hasPermission("t2code.admin")) {
- if (hasPermission(p, arg1.get("debug")) && passend("debug", args[1])) {
- list.add("createReportLog");
- }
- }
- return list;
- }
-
- }
- return list;
- }
-
- private static Boolean passend(String command, String arg) {
- for (int i = 0; i < arg.toUpperCase().length(); i++) {
- if (arg.toUpperCase().length() >= command.toUpperCase().length()) {
- return false;
- } else {
- if (arg.toUpperCase().charAt(i) != command.toUpperCase().charAt(i)) {
- return false;
- }
- }
- }
- return true;
- }
-
-
- public static boolean hasPermission(Player player, String permission) {
- if (player.isOp()) {
- return true;
- }
- String[] Permissions = permission.split(";");
- for (String perm : Permissions) {
- if (player.hasPermission(perm)) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/system/CreateReportLog.java b/src/main/java/net/t2code/lib/Spigot/system/CreateReportLog.java
deleted file mode 100644
index 7538389..0000000
--- a/src/main/java/net/t2code/lib/Spigot/system/CreateReportLog.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package net.t2code.lib.Spigot.system;
-
-import net.t2code.lib.Spigot.Lib.messages.send;
-import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
-import net.t2code.lib.Spigot.Lib.minecraftVersion.NMSVersion;
-import net.t2code.lib.Spigot.Lib.plugins.PluginCheck;
-import net.t2code.lib.Util;
-import net.t2code.luckyBox.api.LuckyBoxAPI;
-import org.bukkit.Bukkit;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-
-import java.io.*;
-import java.nio.file.Files;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-public class CreateReportLog {
- protected static void create(CommandSender sender) {
- send.sender(sender, T2CodeMain.getPrefix() + " §6A DebugLog is created...");
- String timeStampFile = new SimpleDateFormat("HH_mm_ss-dd_MM_yyyy").format(Calendar.getInstance().getTime());
-
- File directory = new File(T2CodeMain.getPath() + "/DebugLogs");
- if (!directory.exists()) {
- directory.mkdir();
- }
-
- File file = new File(T2CodeMain.getPath(), "/DebugLogs/T2CodeLog.txt");
- PrintWriter pWriter = null;
- try {
- pWriter = new PrintWriter(new FileWriter(file.getPath()));
- String timeStamp = new SimpleDateFormat("HH:mm:ss dd.MM.yyyy").format(Calendar.getInstance().getTime());
- pWriter.println("Created on: " + timeStamp);
- pWriter.println();
- pWriter.println("Server Bukkit version: " + MCVersion.isBuckitVersion);
- pWriter.println("Server run on: " + MCVersion.isVersion);
- pWriter.println("Server NMS: " + NMSVersion.isNMS);
- pWriter.println();
- pWriter.println("Online Mode: " + Bukkit.getOnlineMode());
- pWriter.println("Worlds: " + Bukkit.getWorlds());
- pWriter.println("OP-Player:");
- for (OfflinePlayer player : Bukkit.getOperators()) {
- pWriter.println(" - Player: " + player.getName() + " - " + player.getUniqueId());
- }
- pWriter.println();
- if (Vault.vaultEnable) {
- pWriter.println("Vault: " + Bukkit.getPluginManager().getPlugin("Vault").getName() + " - " + Bukkit.getPluginManager().getPlugin("Vault").getDescription().getVersion());
- } else pWriter.println("Vault: not connected");
- if (T2CodeMain.getEco() != null) {
- String st = T2CodeMain.getEco().getName();
- if (T2CodeMain.getEco().getName().equals("CMIEconomy")) st = "CMI";
- if (Bukkit.getPluginManager().getPlugin(st) != null) {
- pWriter.println("Economy: " + T2CodeMain.getEco().isEnabled() + " - " + st + " - " + Bukkit.getPluginManager().getPlugin(st).getDescription().getVersion());
- } else pWriter.println("Economy: " + T2CodeMain.getEco().isEnabled() + " - " + st);
- } else pWriter.println("Economy: not connected via vault");
- if (T2CodeMain.getPerm() != null) {
- if (Bukkit.getPluginManager().getPlugin(T2CodeMain.getPerm().getName()) != null) {
- pWriter.println("Permission: " + T2CodeMain.getPerm().isEnabled() + " - " + T2CodeMain.getPerm().getName() + " - " + Bukkit.getPluginManager().getPlugin(T2CodeMain.getPerm().getName()).getDescription().getVersion());
- } else pWriter.println("Permission: " + T2CodeMain.getPerm().isEnabled() + " - " + T2CodeMain.getPerm().getName());
- } else pWriter.println("Permission: not connected via vault");
- pWriter.println();
- pWriter.println("Java: " + System.getProperty("java.version"));
- pWriter.println("System: " + System.getProperty("os.name"));
- pWriter.println("System: " + System.getProperty("os.version"));
- pWriter.println("User Home: " + System.getProperty("user.home"));
- pWriter.println();
- pWriter.println("T2CodeLib: " + T2CodeMain.getPlugin().getDescription().getVersion());
- pWriter.println();
- if (PluginCheck.luckyBox()) {
- pWriter.println("T2C-PremiumPlugins: ");
- pWriter.println("T2C-LuckyBox UID: " + LuckyBoxAPI.getUID());
- pWriter.println("T2C-LuckyBox RID: " + LuckyBoxAPI.getRID());
- pWriter.println("T2C-LuckyBox DID: " + LuckyBoxAPI.getDID());
- pWriter.println("T2C-LuckyBox isP: " + LuckyBoxAPI.isP());
- pWriter.println("T2C-LuckyBox isV: " + LuckyBoxAPI.isV());
- pWriter.println();
- }
- pWriter.println("Plugins: ");
- for (Plugin pl : Bukkit.getPluginManager().getPlugins()) {
- pWriter.println(" - " + pl.getName() + " - " + pl.getDescription().getVersion() + " - Enabled: " + pl.isEnabled() + " - Autors: " + pl.getDescription().getAuthors() + " - Website: " + pl.getDescription().getWebsite());
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally {
- if (pWriter != null) {
- pWriter.flush();
- pWriter.close();
- }
- }
-
- String filePath = T2CodeMain.getPath() + "/DebugLogs/T2CodeLog.txt";
- String log = "logs/latest.log";
- String zipPath = "plugins/T2CodeLib/DebugLogs/T2CLog-" + timeStampFile + ".zip";
- try (ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipPath))) {
- File fileToZip = new File(filePath);
- zip.putNextEntry(new ZipEntry(fileToZip.getName()));
- Files.copy(fileToZip.toPath(), zip);
-
- addFileToZip("", "logs/latest.log", zip, false);
-
- for (String pl : Util.getT2cPlugins()){
- pluginToDebug(pl, zip);
- }
-
- //pluginToDebug("T2C-LuckyBox", zip);
- //pluginToDebug("WonderBagShop", zip);
- //pluginToDebug("CommandGUI", zip);
- //pluginToDebug("OPSecurity", zip);
- //pluginToDebug("PaPiTest", zip);
- //pluginToDebug("PlotSquaredGUI", zip);
- //pluginToDebug("T2C-Alias", zip);
- //pluginToDebug("T2C-AutoResponse", zip);
- //
- //pluginToDebug("LoreEditor", zip);
- //pluginToDebug("Booster", zip);
- //pluginToDebug("AntiMapCopy", zip);
- //pluginToDebug("AntiCopy", zip);
-
- zip.closeEntry();
- zip.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- file.delete();
- if (sender instanceof Player) {
- send.sender(sender, T2CodeMain.getPrefix() + " §6A DebugLog zip has been created. you can find it on in the files on your server under the path: §e" + zipPath);
- send.console(T2CodeMain.getPrefix() + " §6A DebugLog zip has been created. you can find it on in the files on your server under the path: §e" + zipPath);
- } else send.sender(sender, T2CodeMain.getPrefix() + " §6A DebugLog zip has been created. you can find it on in the files on your server under the path: §e" + zipPath);
-
- }
-
- private static void pluginToDebug(String pluginName, ZipOutputStream zip) throws IOException {
- if (PluginCheck.pluginCheck(pluginName)) {
- Plugin plugin = Bukkit.getPluginManager().getPlugin(pluginName);
- File plConfigs = new File(plugin.getDataFolder().getPath());
- if (plConfigs.exists()) {
- addFolderToZip("T2Code-Plugins", plugin.getDataFolder().getPath(), zip);
- }
- File f = new File("plugins/");
- File[] fileArray = f.listFiles();
-
- for (File config : fileArray) {
- if (config.getName().contains(pluginName) && config.getName().contains(".jar")) {
- addFileToZip("T2Code-Plugins", config.getPath(), zip, false);
- }
- }
- }
- }
-
- private static void addFolderToZip(String path, String srcFolder, ZipOutputStream zip) throws IOException {
- File folder = new File(srcFolder);
- if (folder.list() == null) {
- addFileToZip(path + "/" + folder.getName(), srcFolder, zip, false);
- } else if (folder.list().length == 0) {
- addFileToZip(path, srcFolder, zip, true);
- } else {
- for (String fileName : folder.list()) {
- if (path.equals("")) {
- addFileToZip(folder.getName(), srcFolder + "/" + fileName, zip, false);
- } else {
- addFileToZip(path + "/" + folder.getName(), srcFolder + "/" + fileName, zip, false);
- }
- }
- }
- }
-
- private static void addFileToZip(String path, String srcFile, ZipOutputStream zip, boolean flag) throws IOException {
- File folder = new File(srcFile);
- if (flag) {
- zip.putNextEntry(new ZipEntry(path + "/" + folder.getName() + "/"));
- } else {
- if (folder.isDirectory()) {
- addFolderToZip(path, srcFile, zip);
- } else {
- byte[] buf = new byte[1024];
- int len;
- FileInputStream in = new FileInputStream(srcFile);
-
- if (path.equals("")) {
- zip.putNextEntry(new ZipEntry((folder.getName())));
- } else {
- zip.putNextEntry(new ZipEntry((path + "/" + folder.getName())));
- }
-
- while ((len = in.read(buf)) > 0) {
- try {
- zip.write(buf, 0, len);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- }
- }
-}
diff --git a/src/main/java/net/t2code/lib/Spigot/system/JoinEvent.java b/src/main/java/net/t2code/lib/Spigot/system/JoinEvent.java
deleted file mode 100644
index 00d3c6b..0000000
--- a/src/main/java/net/t2code/lib/Spigot/system/JoinEvent.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// This claas was created by JaTiTV
-
-package net.t2code.lib.Spigot.system;
-
-import net.t2code.lib.Spigot.Lib.update.UpdateAPI;
-import net.t2code.lib.Util;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerLoginEvent;
-
-public class JoinEvent implements Listener {
-
- @EventHandler
- public void onJoinEvent(PlayerLoginEvent event) {
- UpdateAPI.join(T2CodeMain.getPlugin(), Util.getPrefix(), "t2code.lib.updatemsg", event.getPlayer(), T2CodeMain.getSpigot(), T2CodeMain.getDiscord());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/net/t2code/lib/Spigot/system/Metrics.java b/src/main/java/net/t2code/lib/Spigot/system/Metrics.java
deleted file mode 100644
index 45e4e95..0000000
--- a/src/main/java/net/t2code/lib/Spigot/system/Metrics.java
+++ /dev/null
@@ -1,851 +0,0 @@
-// This claas was created by JaTiTV
-
-
-package net.t2code.lib.Spigot.system;
-
-import net.t2code.lib.Spigot.system.config.SelectLibConfig;
-import org.bukkit.Bukkit;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.plugin.java.JavaPlugin;
-import javax.net.ssl.HttpsURLConnection;
-import java.io.*;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-import java.util.concurrent.Callable;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.function.BiConsumer;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-import java.util.logging.Level;
-import java.util.stream.Collectors;
-import java.util.zip.GZIPOutputStream;
-
-public class Metrics {
-
- public static void Bstats(Plugin plugin, int bstatsID) {
- int pluginId = bstatsID; // <-- Replace with the id of your plugin!
- Metrics metrics = new Metrics((JavaPlugin) plugin, pluginId);
- metrics.addCustomChart(new SimplePie("updatecheckonjoin", () -> String.valueOf(SelectLibConfig.getUpdateCheckOnJoin())));
- }
-
- private final Plugin plugin;
-
- private final MetricsBase metricsBase;
-
- /**
- * Creates a new Metrics instance.
- *
- * @param plugin Your plugin instance.
- * @param serviceId The id of the service. It can be found at What is my plugin id?
- */
- public Metrics(JavaPlugin plugin, int serviceId) {
- this.plugin = plugin;
- // Get the config file
- File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats");
- File configFile = new File(bStatsFolder, "config.yml");
- YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
- if (!config.isSet("serverUuid")) {
- config.addDefault("enabled", true);
- config.addDefault("serverUuid", UUID.randomUUID().toString());
- config.addDefault("logFailedRequests", false);
- config.addDefault("logSentData", false);
- config.addDefault("logResponseStatusText", false);
- // Inform the server owners about bStats
- config
- .options()
- .header(
- "bStats (https://bStats.org) collects some basic information for plugin authors, like how\n"
- + "many people use their plugin and their total player count. It's recommended to keep bStats\n"
- + "enabled, but if you're not comfortable with this, you can turn this setting off. There is no\n"
- + "performance penalty associated with having metrics enabled, and data sent to bStats is fully\n"
- + "anonymous.")
- .copyDefaults(true);
- try {
- config.save(configFile);
- } catch (IOException ignored) {
- }
- }
- // Load the data
- boolean enabled = config.getBoolean("enabled", true);
- String serverUUID = config.getString("serverUuid");
- boolean logErrors = config.getBoolean("logFailedRequests", false);
- boolean logSentData = config.getBoolean("logSentData", false);
- boolean logResponseStatusText = config.getBoolean("logResponseStatusText", false);
- metricsBase =
- new MetricsBase(
- "bukkit",
- serverUUID,
- serviceId,
- enabled,
- this::appendPlatformData,
- this::appendServiceData,
- submitDataTask -> Bukkit.getScheduler().runTask(plugin, submitDataTask),
- plugin::isEnabled,
- (message, error) -> this.plugin.getLogger().log(Level.WARNING, message, error),
- (message) -> this.plugin.getLogger().log(Level.INFO, message),
- logErrors,
- logSentData,
- logResponseStatusText);
- }
-
- /**
- * Adds a custom chart.
- *
- * @param chart The chart to add.
- */
- public void addCustomChart(CustomChart chart) {
- metricsBase.addCustomChart(chart);
- }
-
- private void appendPlatformData(JsonObjectBuilder builder) {
- builder.appendField("playerAmount", getPlayerAmount());
- builder.appendField("onlineMode", Bukkit.getOnlineMode() ? 1 : 0);
- builder.appendField("bukkitVersion", Bukkit.getVersion());
- builder.appendField("bukkitName", Bukkit.getName());
- builder.appendField("javaVersion", System.getProperty("java.version"));
- builder.appendField("osName", System.getProperty("os.name"));
- builder.appendField("osArch", System.getProperty("os.arch"));
- builder.appendField("osVersion", System.getProperty("os.version"));
- builder.appendField("coreCount", Runtime.getRuntime().availableProcessors());
- }
-
- private void appendServiceData(JsonObjectBuilder builder) {
- builder.appendField("pluginVersion", plugin.getDescription().getVersion());
- }
-
- private int getPlayerAmount() {
- try {
- // Around MC 1.8 the return type was changed from an array to a collection,
- // This fixes java.lang.NoSuchMethodError:
- // org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
- Method onlinePlayersMethod = Class.forName("org.bukkit.Server").getMethod("getOnlinePlayers");
- return onlinePlayersMethod.getReturnType().equals(Collection.class)
- ? ((Collection>) onlinePlayersMethod.invoke(Bukkit.getServer())).size()
- : ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length;
- } catch (Exception e) {
- // Just use the new method if the reflection failed
- return Bukkit.getOnlinePlayers().size();
- }
- }
-
- public static class MetricsBase {
-
- /**
- * The version of the Metrics class.
- */
- public static final String METRICS_VERSION = "2.2.1";
-
- private static final ScheduledExecutorService scheduler =
- Executors.newScheduledThreadPool(1, task -> new Thread(task, "bStats-Metrics"));
-
- private static final String REPORT_URL = "https://bStats.org/api/v2/data/%s";
-
- private final String platform;
-
- private final String serverUuid;
-
- private final int serviceId;
-
- private final Consumer appendPlatformDataConsumer;
-
- private final Consumer appendServiceDataConsumer;
-
- private final Consumer submitTaskConsumer;
-
- private final Supplier checkServiceEnabledSupplier;
-
- private final BiConsumer errorLogger;
-
- private final Consumer infoLogger;
-
- private final boolean logErrors;
-
- private final boolean logSentData;
-
- private final boolean logResponseStatusText;
-
- private final Set customCharts = new HashSet<>();
-
- private final boolean enabled;
-
- /**
- * Creates a new MetricsBase class instance.
- *
- * @param platform The platform of the service.
- * @param serviceId The id of the service.
- * @param serverUuid The server uuid.
- * @param enabled Whether or not data sending is enabled.
- * @param appendPlatformDataConsumer A consumer that receives a {@code JsonObjectBuilder} and
- * appends all platform-specific data.
- * @param appendServiceDataConsumer A consumer that receives a {@code JsonObjectBuilder} and
- * appends all service-specific data.
- * @param submitTaskConsumer A consumer that takes a runnable with the submit task. This can be
- * used to delegate the data collection to a another thread to prevent errors caused by
- * concurrency. Can be {@code null}.
- * @param checkServiceEnabledSupplier A supplier to check if the service is still enabled.
- * @param errorLogger A consumer that accepts log message and an error.
- * @param infoLogger A consumer that accepts info log messages.
- * @param logErrors Whether or not errors should be logged.
- * @param logSentData Whether or not the sent data should be logged.
- * @param logResponseStatusText Whether or not the response status text should be logged.
- */
- public MetricsBase(
- String platform,
- String serverUuid,
- int serviceId,
- boolean enabled,
- Consumer appendPlatformDataConsumer,
- Consumer appendServiceDataConsumer,
- Consumer submitTaskConsumer,
- Supplier checkServiceEnabledSupplier,
- BiConsumer errorLogger,
- Consumer infoLogger,
- boolean logErrors,
- boolean logSentData,
- boolean logResponseStatusText) {
- this.platform = platform;
- this.serverUuid = serverUuid;
- this.serviceId = serviceId;
- this.enabled = enabled;
- this.appendPlatformDataConsumer = appendPlatformDataConsumer;
- this.appendServiceDataConsumer = appendServiceDataConsumer;
- this.submitTaskConsumer = submitTaskConsumer;
- this.checkServiceEnabledSupplier = checkServiceEnabledSupplier;
- this.errorLogger = errorLogger;
- this.infoLogger = infoLogger;
- this.logErrors = logErrors;
- this.logSentData = logSentData;
- this.logResponseStatusText = logResponseStatusText;
- checkRelocation();
- if (enabled) {
- startSubmitting();
- }
- }
-
- public void addCustomChart(CustomChart chart) {
- this.customCharts.add(chart);
- }
-
- private void startSubmitting() {
- final Runnable submitTask =
- () -> {
- if (!enabled || !checkServiceEnabledSupplier.get()) {
- // Submitting data or service is disabled
- scheduler.shutdown();
- return;
- }
- if (submitTaskConsumer != null) {
- submitTaskConsumer.accept(this::submitData);
- } else {
- this.submitData();
- }
- };
- // Many servers tend to restart at a fixed time at xx:00 which causes an uneven distribution
- // of requests on the
- // bStats backend. To circumvent this problem, we introduce some randomness into the initial
- // and second delay.
- // WARNING: You must not modify and part of this Metrics class, including the submit delay or
- // frequency!
- // WARNING: Modifying this code will get your plugin banned on bStats. Just don't do it!
- long initialDelay = (long) (1000 * 60 * (3 + Math.random() * 3));
- long secondDelay = (long) (1000 * 60 * (Math.random() * 30));
- scheduler.schedule(submitTask, initialDelay, TimeUnit.MILLISECONDS);
- scheduler.scheduleAtFixedRate(
- submitTask, initialDelay + secondDelay, 1000 * 60 * 30, TimeUnit.MILLISECONDS);
- }
-
- private void submitData() {
- final JsonObjectBuilder baseJsonBuilder = new JsonObjectBuilder();
- appendPlatformDataConsumer.accept(baseJsonBuilder);
- final JsonObjectBuilder serviceJsonBuilder = new JsonObjectBuilder();
- appendServiceDataConsumer.accept(serviceJsonBuilder);
- JsonObjectBuilder.JsonObject[] chartData =
- customCharts.stream()
- .map(customChart -> customChart.getRequestJsonObject(errorLogger, logErrors))
- .filter(Objects::nonNull)
- .toArray(JsonObjectBuilder.JsonObject[]::new);
- serviceJsonBuilder.appendField("id", serviceId);
- serviceJsonBuilder.appendField("customCharts", chartData);
- baseJsonBuilder.appendField("service", serviceJsonBuilder.build());
- baseJsonBuilder.appendField("serverUUID", serverUuid);
- baseJsonBuilder.appendField("metricsVersion", METRICS_VERSION);
- JsonObjectBuilder.JsonObject data = baseJsonBuilder.build();
- scheduler.execute(
- () -> {
- try {
- // Send the data
- sendData(data);
- } catch (Exception e) {
- // Something went wrong! :(
- if (logErrors) {
- errorLogger.accept("Could not submit bStats metrics data", e);
- }
- }
- });
- }
-
- private void sendData(JsonObjectBuilder.JsonObject data) throws Exception {
- if (logSentData) {
- infoLogger.accept("Sent bStats metrics data: " + data.toString());
- }
- String url = String.format(REPORT_URL, platform);
- HttpsURLConnection connection = (HttpsURLConnection) new URL(url).openConnection();
- // Compress the data to save bandwidth
- byte[] compressedData = compress(data.toString());
- connection.setRequestMethod("POST");
- connection.addRequestProperty("Accept", "application/json");
- connection.addRequestProperty("Connection", "close");
- connection.addRequestProperty("Content-Encoding", "gzip");
- connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length));
- connection.setRequestProperty("Content-Type", "application/json");
- connection.setRequestProperty("User-Agent", "Metrics-Service/1");
- connection.setDoOutput(true);
- try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
- outputStream.write(compressedData);
- }
- StringBuilder builder = new StringBuilder();
- try (BufferedReader bufferedReader =
- new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
- String line;
- while ((line = bufferedReader.readLine()) != null) {
- builder.append(line);
- }
- }
- if (logResponseStatusText) {
- infoLogger.accept("Sent data to bStats and received response: " + builder);
- }
- }
-
- /**
- * Checks that the class was properly relocated.
- */
- private void checkRelocation() {
- // You can use the property to disable the check in your test environment
- if (System.getProperty("bstats.relocatecheck") == null
- || !System.getProperty("bstats.relocatecheck").equals("false")) {
- // Maven's Relocate is clever and changes strings, too. So we have to use this little
- // "trick" ... :D
- final String defaultPackage =
- new String(new byte[]{'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's'});
- final String examplePackage =
- new String(new byte[]{'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e'});
- // We want to make sure no one just copy & pastes the example and uses the wrong package
- // names
- if (MetricsBase.class.getPackage().getName().startsWith(defaultPackage)
- || MetricsBase.class.getPackage().getName().startsWith(examplePackage)) {
- throw new IllegalStateException("bStats Metrics class has not been relocated correctly!");
- }
- }
- }
-
- /**
- * Gzips the given string.
- *
- * @param str The string to gzip.
- * @return The gzipped string.
- */
- private static byte[] compress(final String str) throws IOException {
- if (str == null) {
- return null;
- }
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- try (GZIPOutputStream gzip = new GZIPOutputStream(outputStream)) {
- gzip.write(str.getBytes(StandardCharsets.UTF_8));
- }
- return outputStream.toByteArray();
- }
- }
-
- public static class AdvancedBarChart extends CustomChart {
-
- private final Callable