From 6579e59bdcebf8f56d9ca2317ae5be3269696ba1 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Fri, 13 Dec 2019 21:16:52 -0800 Subject: [PATCH] update Server Start Event to a ScriptEvent --- .../com/denizenscript/denizen/Denizen.java | 1 + .../denizen/events/ScriptEventRegistry.java | 6 +-- .../events/core/ServerStartScriptEvent.java | 43 +++++++++++++++++++ .../core/BukkitWorldScriptHelper.java | 19 +------- 4 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 plugin/src/main/java/com/denizenscript/denizen/events/core/ServerStartScriptEvent.java diff --git a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java index b763b56860..19a1d012bb 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java +++ b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java @@ -438,6 +438,7 @@ public void run() { Debug.log(ChatColor.LIGHT_PURPLE + "+-------------------------+"); // Fire the 'on Server Start' world event + ServerStartScriptEvent.instance.fire(); worldScriptHelper.serverStartEvent(); if (Settings.allowStupidx()) { diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java b/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java index 2f591cbf1f..6f50e8d916 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java @@ -2,10 +2,7 @@ import com.denizenscript.denizen.Denizen; import com.denizenscript.denizen.events.block.*; -import com.denizenscript.denizen.events.core.CommandScriptEvent; -import com.denizenscript.denizen.events.core.ListPingScriptEvent; -import com.denizenscript.denizen.events.core.ServerPrestartScriptEvent; -import com.denizenscript.denizen.events.core.TabCompleteScriptEvent; +import com.denizenscript.denizen.events.core.*; import com.denizenscript.denizen.events.entity.*; import com.denizenscript.denizen.events.player.*; import com.denizenscript.denizen.events.world.*; @@ -42,6 +39,7 @@ public static void registerMainEvents() { // Core events ScriptEvent.registerScriptEvent(new ListPingScriptEvent()); ScriptEvent.registerScriptEvent(new ServerPrestartScriptEvent()); + ScriptEvent.registerScriptEvent(new ServerStartScriptEvent()); ScriptEvent.registerScriptEvent(new TabCompleteScriptEvent()); // Entity events diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/core/ServerStartScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/core/ServerStartScriptEvent.java new file mode 100644 index 0000000000..de5a58f797 --- /dev/null +++ b/plugin/src/main/java/com/denizenscript/denizen/events/core/ServerStartScriptEvent.java @@ -0,0 +1,43 @@ +package com.denizenscript.denizen.events.core; + +import com.denizenscript.denizen.events.BukkitScriptEvent; +import com.denizenscript.denizencore.objects.ObjectTag; + +public class ServerStartScriptEvent extends BukkitScriptEvent { + + // <--[event] + // @Events + // server start + // + // @Regex ^on server start$ + // + // @Triggers when the server starts. + // + // --> + + public ServerStartScriptEvent() { + instance = this; + } + + public static ServerStartScriptEvent instance; + + @Override + public boolean couldMatch(ScriptPath path) { + return path.eventLower.startsWith("server start"); + } + + @Override + public boolean matches(ScriptPath path) { + return super.matches(path); + } + + @Override + public String getName() { + return "ServerStart"; + } + + @Override + public ObjectTag getContext(String name) { + return super.getContext(name); + } +} diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/BukkitWorldScriptHelper.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/BukkitWorldScriptHelper.java index 1c77041926..cb82be57ab 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/BukkitWorldScriptHelper.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/BukkitWorldScriptHelper.java @@ -51,15 +51,6 @@ public static String doEvents(List events, NPCTag npc, PlayerTag player, // CUSTOM EVENTS ///////////////// - // <--[event] - // @Events - // server start - // - // @Regex ^on server start$ - // - // @Triggers when the server starts - // - // --> public void serverStartEvent() { long ticks = Settings.worldScriptTimeEventFrequency().getTicks(); Bukkit.getScheduler().scheduleSyncRepeatingTask(DenizenAPI.getCurrentInstance(), @@ -69,9 +60,6 @@ public void run() { timeEvent(); } }, ticks, ticks); - - // Fire the 'Server Start' event - doEvents(Arrays.asList("server start"), null, null, null); } private final Map current_time = new HashMap<>(); @@ -92,7 +80,7 @@ public void run() { // --> public void timeEvent() { for (World world : Bukkit.getWorlds()) { - int hour = Double.valueOf(world.getTime() / 1000).intValue(); // TODO: What is this conversion math + int hour = (int) (world.getTime() / 1000); hour = hour + 6; // Get the hour if (hour >= 24) { @@ -138,8 +126,7 @@ public void onPlayerJoins(PlayerJoinEvent event) { @EventHandler(priority = EventPriority.MONITOR) public void onPlayerChat(AsyncPlayerChatEvent event) { - final String message = ChatColor.DARK_GREEN + "CHAT: " + - event.getPlayer().getName() + ": " + event.getMessage(); + final String message = ChatColor.DARK_GREEN + "CHAT: " + event.getPlayer().getName() + ": " + event.getMessage(); Bukkit.getScheduler().runTaskLater(DenizenAPI.getCurrentInstance(), new Runnable() { @Override public void run() { @@ -153,11 +140,9 @@ public void run() { @EventHandler(priority = EventPriority.MONITOR) public void playerLogin(PlayerLoginEvent event) { - if (EntityTag.isNPC(event.getPlayer())) { return; } - PlayerTag.notePlayer(event.getPlayer()); }