diff options
Diffstat (limited to 'patches/api/0167-Server-Tick-Events.patch')
-rw-r--r-- | patches/api/0167-Server-Tick-Events.patch | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/patches/api/0167-Server-Tick-Events.patch b/patches/api/0167-Server-Tick-Events.patch new file mode 100644 index 0000000000..cc46a9f29a --- /dev/null +++ b/patches/api/0167-Server-Tick-Events.patch @@ -0,0 +1,116 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +Date: Wed, 27 Mar 2019 21:58:55 -0400 +Subject: [PATCH] Server Tick Events + +Fires event at start and end of a server tick + +diff --git a/src/main/java/com/destroystokyo/paper/event/server/ServerTickEndEvent.java b/src/main/java/com/destroystokyo/paper/event/server/ServerTickEndEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..17e9f39ce1cc7489e936c96f95b8b0579528b222 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/event/server/ServerTickEndEvent.java +@@ -0,0 +1,62 @@ ++package com.destroystokyo.paper.event.server; ++ ++import org.bukkit.event.Event; ++import org.bukkit.event.HandlerList; ++import org.jetbrains.annotations.ApiStatus; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Called when the server has finished ticking the main loop ++ */ ++public class ServerTickEndEvent extends Event { ++ ++ private static final HandlerList HANDLER_LIST = new HandlerList(); ++ ++ private final int tickNumber; ++ private final double tickDuration; ++ private final long timeEnd; ++ ++ @ApiStatus.Internal ++ public ServerTickEndEvent(int tickNumber, double tickDuration, long timeRemaining) { ++ this.tickNumber = tickNumber; ++ this.tickDuration = tickDuration; ++ this.timeEnd = System.nanoTime() + timeRemaining; ++ } ++ ++ /** ++ * @return What tick this was since start (first tick = 1) ++ */ ++ public int getTickNumber() { ++ return this.tickNumber; ++ } ++ ++ /** ++ * @return Time in milliseconds of how long this tick took ++ */ ++ public double getTickDuration() { ++ return this.tickDuration; ++ } ++ ++ /** ++ * Amount of nanoseconds remaining before the next tick should start. ++ * <p> ++ * If this value is negative, then that means the server has exceeded the tick time limit and TPS has been lost. ++ * <p> ++ * Method will continuously return the updated time remaining value. (return value is not static) ++ * ++ * @return Amount of nanoseconds remaining before the next tick should start ++ */ ++ public long getTimeRemaining() { ++ return this.timeEnd - System.nanoTime(); ++ } ++ ++ @NotNull ++ public HandlerList getHandlers() { ++ return HANDLER_LIST; ++ } ++ ++ @NotNull ++ public static HandlerList getHandlerList() { ++ return HANDLER_LIST; ++ } ++} +diff --git a/src/main/java/com/destroystokyo/paper/event/server/ServerTickStartEvent.java b/src/main/java/com/destroystokyo/paper/event/server/ServerTickStartEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..fb5bbfffea8b883e4c8769484a2b64dd895cb617 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/event/server/ServerTickStartEvent.java +@@ -0,0 +1,35 @@ ++package com.destroystokyo.paper.event.server; ++ ++import org.bukkit.event.Event; ++import org.bukkit.event.HandlerList; ++import org.jetbrains.annotations.ApiStatus; ++import org.jetbrains.annotations.NotNull; ++ ++public class ServerTickStartEvent extends Event { ++ ++ private static final HandlerList HANDLER_LIST = new HandlerList(); ++ ++ private final int tickNumber; ++ ++ @ApiStatus.Internal ++ public ServerTickStartEvent(int tickNumber) { ++ this.tickNumber = tickNumber; ++ } ++ ++ /** ++ * @return What tick this is going be since start (first tick = 1) ++ */ ++ public int getTickNumber() { ++ return this.tickNumber; ++ } ++ ++ @NotNull ++ public HandlerList getHandlers() { ++ return HANDLER_LIST; ++ } ++ ++ @NotNull ++ public static HandlerList getHandlerList() { ++ return HANDLER_LIST; ++ } ++} |