From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 5 Jun 2020 21:30:19 -0500 Subject: [PATCH] |FEAT| Timings modifications Adds server.properties and purpur.yml to the configs tab in timings. Replaces aikar's timings link with purpur's. Doesn't include server.properties options that start with "rcon" or "query", or equal to "level-seed". $-----------------------------$ settings: timings: url: default: https://timings.pl3x.net description: |- The server where timing reports are posted to. To use Aikar's timings server use "http://timings.aikar.co" $-----------------------------$ diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java index 6e8001c7ff6497c9e5c274a5fe85cc204f3ba4c5..c5803537b23d44bad5f447bd2f98d54226d3e80e 100644 --- a/src/main/java/co/aikar/timings/TimingsExport.java +++ b/src/main/java/co/aikar/timings/TimingsExport.java @@ -226,10 +226,14 @@ public class TimingsExport extends Thread { // Information on the users Config parent.put("config", createObject( - pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)), + // Purpur start + pair("server.properties", mapAsJSON(Bukkit.spigot().getServerProperties())), pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)), + pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)), pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Airplane - pair("airplane", mapAsJSON(gg.airplane.AirplaneConfig.getConfigCopy(), null)) // Airplane + pair("airplane", mapAsJSON(gg.airplane.AirplaneConfig.getConfigCopy(), null)), // Airplane + pair("purpur", mapAsJSON(Bukkit.spigot().getPurpurConfig(), null)) + // Purpur end )); new TimingsExport(listeners, parent, history).start(); @@ -270,6 +274,19 @@ public class TimingsExport extends Thread { return timingsCost; } + // Purpur start + private static JSONObject mapAsJSON(java.util.Properties properties) { + JSONObject object = new JSONObject(); + for (String key : properties.stringPropertyNames()) { + if (key.startsWith("rcon") || key.startsWith("query") || key.equals("level-seed") || TimingsManager.hiddenConfigs.contains(key)) { + continue; + } + object.put(key, valAsJSON(properties.get(key), key)); + } + return object; + } + // Purpur end + private static JSONObject mapAsJSON(ConfigurationSection config, String parentKey) { JSONObject object = new JSONObject(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java index 2ac56ca31d57991aef4fd77212cd9a537753b8d7..7a580dec61eaf50d57628b30f84d246558266dd1 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -217,7 +217,7 @@ public class PaperConfig { timings = reallyEnableTimings; // Airplane end */ // Purpur end boolean verboseTimings = getBoolean("timings.verbose", true); - TimingsManager.url = getString("timings.url", "https://timings.aikar.co/"); + TimingsManager.url = getString("timings.url", "https://timings.pl3x.net/"); if (!TimingsManager.url.endsWith("/")) { TimingsManager.url += "/"; } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index f5cdf3338411650add4a2eb41e0412182b1f6fdf..8747593597ed270400ef3d3f6b141a0fb370f1b4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -161,4 +161,17 @@ public class PurpurConfig { private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); } + + private static void timingsSettings() { + if (version < 18) { + String oldVal = getString("settings.timings.url", "https://timings.pl3x.net"); + com.destroystokyo.paper.PaperConfig.config.set("timings.url", oldVal); + TimingsManager.url = getString("timings.url", oldVal); + if (!TimingsManager.url.endsWith("/")) { + TimingsManager.url += "/"; + } + set("settings.timings.url", null); + } + if (!co.aikar.timings.TimingsManager.hiddenConfigs.contains("server-ip")) co.aikar.timings.TimingsManager.hiddenConfigs.add("server-ip"); + } }