From 7d6808cbcfbb0f61f93e536d36968eeda5bd302c Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 6 Jun 2018 15:39:16 +0100 Subject: Convert to Gradle --- .../me/lucko/spark/bukkit/BukkitTickCounter.java | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitTickCounter.java (limited to 'spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitTickCounter.java') diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitTickCounter.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitTickCounter.java new file mode 100644 index 0000000..61a7690 --- /dev/null +++ b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitTickCounter.java @@ -0,0 +1,55 @@ +package me.lucko.spark.bukkit; + +import me.lucko.spark.profiler.TickCounter; + +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitTask; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.atomic.LongAdder; + +public class BukkitTickCounter implements TickCounter, Runnable { + private final Plugin plugin; + private BukkitTask task; + + private final Set tasks = new HashSet<>(); + private final LongAdder tick = new LongAdder(); + + public BukkitTickCounter(Plugin plugin) { + this.plugin = plugin; + } + + @Override + public void run() { + this.tick.increment(); + for (Runnable r : this.tasks){ + r.run(); + } + } + + @Override + public void start() { + this.task = this.plugin.getServer().getScheduler().runTaskTimer(this.plugin, this, 1, 1); + } + + @Override + public void close() { + this.task.cancel(); + } + + @Override + public long getCurrentTick() { + return this.tick.longValue(); + } + + @Override + public void addTickTask(Runnable runnable) { + this.tasks.add(runnable); + } + + @Override + public void removeTickTask(Runnable runnable) { + this.tasks.remove(runnable); + } +} -- cgit