From e8883dbba567a9f78082034a3e5affe6eaefb4d1 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Tue, 13 Apr 2021 11:17:45 -0700 Subject: [PATCH] server.last_reload --- .../main/java/com/denizenscript/denizen/Denizen.java | 2 ++ .../denizenscript/denizen/tags/core/ServerTagBase.java | 10 ++++++++++ .../denizen/utilities/debugging/DebugSubmit.java | 2 ++ .../implementation/DenizenCoreImplementation.java | 1 + 4 files changed, 15 insertions(+) diff --git a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java index 883cb6aae7..56fbc2f388 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java +++ b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java @@ -130,6 +130,8 @@ public NotableManager notableManager() { public SavableMapFlagTracker serverFlagMap; + public long lastReloadTime; + /* * Sets up Denizen on start of the CraftBukkit server. */ diff --git a/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java b/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java index 799b95ef0c..b5b9dc5808 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java +++ b/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java @@ -2073,6 +2073,16 @@ else if (attribute.startsWith("debug_enabled")) { event.setReplacedObject(new ElementTag(Debug.showDebug).getObjectAttribute(attribute.fulfill(1))); } + // <--[tag] + // @attribute + // @returns TimeTag + // @description + // Returns the time that Denizen scripts were last reloaded. + // --> + else if (attribute.startsWith("last_reload")) { + event.setReplacedObject(new TimeTag(Denizen.getInstance().lastReloadTime).getObjectAttribute(attribute.fulfill(1))); + } + // <--[tag] // @attribute ]> // @returns ListTag(PluginTag) diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/debugging/DebugSubmit.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/debugging/DebugSubmit.java index 645fa7d095..acbc7986cd 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/debugging/DebugSubmit.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/debugging/DebugSubmit.java @@ -4,6 +4,7 @@ import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizencore.DenizenCore; import com.denizenscript.denizencore.objects.core.DurationTag; +import com.denizenscript.denizencore.objects.core.TimeTag; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.World; @@ -105,6 +106,7 @@ public void run() { + "\nOnline Players (" + playerCount + "): " + playerlist.substring(0, playerlist.length() - 2) + "\nTotal Players Ever: " + PlayerTag.getAllPlayers().size() + " (" + validPl + " valid, " + invalidPl + " invalid)" + "\nMode: " + (Bukkit.getServer().getOnlineMode() ? ChatColor.GREEN + "online" : (bungee ? ChatColor.YELLOW : ChatColor.RED) + "offline") + (bungee ? " (BungeeCord)" : "") + + "\nLast reload: " + new DurationTag((System.currentTimeMillis() - Denizen.getInstance().lastReloadTime) / 1000.0).formatted(false) + " ago" + "\n\n").replace(ChatColor.COLOR_CHAR, (char) 0x01)) + recording) .getBytes(StandardCharsets.UTF_8)); // Wait for a response from the server diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java index ec4f799d8e..5c348f0e4a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java @@ -133,6 +133,7 @@ public void preScriptReload() { public void onScriptReload() { Depends.setupEconomy(); Bukkit.getServer().getPluginManager().callEvent(new ScriptReloadEvent()); + Denizen.getInstance().lastReloadTime = System.currentTimeMillis(); } @Override