mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Fix tpsbar with naughty plugins
This commit is contained in:
@@ -84,10 +84,10 @@ index 0000000000000000000000000000000000000000..807f5709af7fd9497633ecfc9e932f0d
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/task/TPSBarTask.java b/src/main/java/net/pl3x/purpur/task/TPSBarTask.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..170f01516aab72e5b192695a73602ff656ef4ca5
|
||||
index 0000000000000000000000000000000000000000..dcb973f658c2ff30ab014785f530a3db0aebe512
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/task/TPSBarTask.java
|
||||
@@ -0,0 +1,106 @@
|
||||
@@ -0,0 +1,111 @@
|
||||
+package net.pl3x.purpur.task;
|
||||
+
|
||||
+import org.bukkit.Bukkit;
|
||||
@@ -101,27 +101,30 @@ index 0000000000000000000000000000000000000000..170f01516aab72e5b192695a73602ff6
|
||||
+import org.bukkit.scheduler.BukkitRunnable;
|
||||
+
|
||||
+public class TPSBarTask extends BukkitRunnable {
|
||||
+ private final NamespacedKey key;
|
||||
+ private final BossBar bossbar;
|
||||
+ private static TPSBarTask instance;
|
||||
+ private final NamespacedKey key;
|
||||
+ private BossBar bossbar;
|
||||
+
|
||||
+ public TPSBarTask() {
|
||||
+ instance = this;
|
||||
+
|
||||
+ this.key = new NamespacedKey("purpur", "tpsbar");
|
||||
+ }
|
||||
+
|
||||
+ BossBar bossbar = Bukkit.getBossBar(key);
|
||||
+ public BossBar getBossBar() {
|
||||
+ if (bossbar == null) {
|
||||
+ bossbar = Bukkit.createBossBar(key, "TPS: 20.0", BarColor.RED, BarStyle.SEGMENTED_20);
|
||||
+ bossbar = Bukkit.getBossBar(key);
|
||||
+ if (bossbar == null) {
|
||||
+ bossbar = Bukkit.createBossBar(key, "TPS: 20.0", BarColor.RED, BarStyle.SEGMENTED_20);
|
||||
+ }
|
||||
+ bossbar.setVisible(true);
|
||||
+ bossbar.setProgress(1.0D);
|
||||
+ }
|
||||
+ bossbar.setVisible(true);
|
||||
+ bossbar.setProgress(1.0D);
|
||||
+
|
||||
+ this.bossbar = bossbar;
|
||||
+ return bossbar;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void run() {
|
||||
+ BossBar bossbar = getBossBar();
|
||||
+ if (bossbar.getPlayers().isEmpty()) {
|
||||
+ return;
|
||||
+ }
|
||||
@@ -164,20 +167,22 @@ index 0000000000000000000000000000000000000000..170f01516aab72e5b192695a73602ff6
|
||||
+ @Override
|
||||
+ public void cancel() {
|
||||
+ super.cancel();
|
||||
+ BossBar bossbar = getBossBar();
|
||||
+ bossbar.setVisible(false);
|
||||
+ bossbar.removeAll();
|
||||
+ Bukkit.removeBossBar(key);
|
||||
+ }
|
||||
+
|
||||
+ public static void removePlayer(Player player) {
|
||||
+ instance.bossbar.removePlayer(player);
|
||||
+ instance.getBossBar().removePlayer(player);
|
||||
+ }
|
||||
+
|
||||
+ public static void togglePlayer(Player player) {
|
||||
+ if (instance.bossbar.getPlayers().contains(player)) {
|
||||
+ instance.bossbar.removePlayer(player);
|
||||
+ BossBar bossbar = instance.getBossBar();
|
||||
+ if (bossbar.getPlayers().contains(player)) {
|
||||
+ bossbar.removePlayer(player);
|
||||
+ } else {
|
||||
+ instance.bossbar.addPlayer(player);
|
||||
+ bossbar.addPlayer(player);
|
||||
+ instance.run();
|
||||
+ }
|
||||
+ }
|
||||
|
||||
Reference in New Issue
Block a user