mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-29 19:52:55 +01:00
70ce6ce831
This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
113 lines
3.3 KiB
Diff
113 lines
3.3 KiB
Diff
From 5490eac320d59394f00403eec705cbe774f2fd79 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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 00000000..9fd28e03
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/server/ServerTickEndEvent.java
|
|
@@ -0,0 +1,59 @@
|
|
+package com.destroystokyo.paper.event.server;
|
|
+
|
|
+import org.bukkit.event.Event;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Called when the server has finished ticking the main loop
|
|
+ */
|
|
+public class ServerTickEndEvent extends Event {
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private final int tickNumber;
|
|
+ private final double tickDuration;
|
|
+ private final long timeEnd;
|
|
+
|
|
+ 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 tickNumber;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return Time in milliseconds of how long this tick took
|
|
+ */
|
|
+ public double getTickDuration() {
|
|
+ return tickDuration;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Amount of nanoseconds remaining before the next tick should start.
|
|
+ *
|
|
+ * If this value is negative, then that means the server has exceeded the tick time limit and TPS has been lost.
|
|
+ *
|
|
+ * Method will continously 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 handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
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 00000000..eac85f1f
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/server/ServerTickStartEvent.java
|
|
@@ -0,0 +1,32 @@
|
|
+package com.destroystokyo.paper.event.server;
|
|
+
|
|
+import org.bukkit.event.Event;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+public class ServerTickStartEvent extends Event {
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private final int tickNumber;
|
|
+
|
|
+ public ServerTickStartEvent(int tickNumber) {
|
|
+ this.tickNumber = tickNumber;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return What tick this is going be since start (first tick = 1)
|
|
+ */
|
|
+ public int getTickNumber() {
|
|
+ return tickNumber;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
--
|
|
2.21.0
|
|
|