summaryrefslogtreewikicommitdiff
path: root/src/main/java/dev/tylerm/khs/game/events/Border.java
diff options
context:
space:
mode:
authorTyler Murphy <tylerm@tylerm.dev>2023-07-30 18:12:47 -0400
committerTyler Murphy <tylerm@tylerm.dev>2023-07-30 18:12:47 -0400
commit000219a5ff183e469129e5804d0a6090d6b47b26 (patch)
tree5217465c967796680cc03b11359490f638d6b78c /src/main/java/dev/tylerm/khs/game/events/Border.java
parentMerge branch 'main' of ssh://g.tylerm.dev:21/tylermurphy534/KenshinsHideAndSe... (diff)
downloadkenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.tar.gz
kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.tar.bz2
kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.zip
1.7.5 rc4
Diffstat (limited to 'src/main/java/dev/tylerm/khs/game/events/Border.java')
-rw-r--r--src/main/java/dev/tylerm/khs/game/events/Border.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/main/java/dev/tylerm/khs/game/events/Border.java b/src/main/java/dev/tylerm/khs/game/events/Border.java
new file mode 100644
index 0000000..adcb5ce
--- /dev/null
+++ b/src/main/java/dev/tylerm/khs/game/events/Border.java
@@ -0,0 +1,72 @@
+package dev.tylerm.khs.game.events;
+
+import dev.tylerm.khs.Main;
+import dev.tylerm.khs.configuration.Map;
+
+import static dev.tylerm.khs.configuration.Config.*;
+import static dev.tylerm.khs.configuration.Localization.message;
+
+public class Border {
+
+ private int delay;
+ private boolean running;
+ private final Map map;
+ private int currentSize;
+
+ public Border(Map map) {
+ this.map = map;
+ this.delay = (int) (60 * map.getWorldBorderData().getY());
+ this.currentSize = (int) map.getWorldBorderData().getX();
+ }
+
+ public void update() {
+ if (delay == 30 && !running) {
+ Main.getInstance().getGame().broadcastMessage(worldBorderPrefix + message("WORLDBORDER_WARN"));
+ } else if (delay == 0) {
+ if (running) {
+ delay = (int) (60 * map.getWorldBorderData().getY());
+ running = false;
+ }
+ else decreaseWorldBorder();
+ }
+ delay--;
+ }
+
+ private void decreaseWorldBorder() {
+ if (currentSize == 100) return;
+ if(map.getGameSpawn().load() == null) return;
+ int change = (int) map.getWorldBorderData().getZ();
+ if (currentSize-change < 100) {
+ change = currentSize-100;
+ }
+ running = true;
+ Main.getInstance().getGame().broadcastMessage(worldBorderPrefix + message("WORLDBORDER_DECREASING").addAmount(change));
+ currentSize -= map.getWorldBorderData().getZ();
+ org.bukkit.WorldBorder border = map.getGameSpawn().load().getWorldBorder();
+ border.setSize(border.getSize()-change,30);
+ delay = 30;
+ }
+
+ public void resetWorldBorder() {
+ if(map.getGameSpawn().load() == null) return;
+ org.bukkit.WorldBorder border = map.getGameSpawn().load().getWorldBorder();
+ if (map.isWorldBorderEnabled()) {
+ border.setSize(map.getWorldBorderData().getX());
+ border.setCenter(map.getWorldBorderPos().getX(), map.getWorldBorderPos().getY());
+ currentSize = (int) map.getWorldBorderData().getX();
+ } else {
+ border.setSize(30000000);
+ border.setCenter(0, 0);
+ }
+ delay = (int) (60 * map.getWorldBorderData().getY());
+ }
+
+ public int getDelay() {
+ return delay;
+ }
+
+ public boolean isRunning() {
+ return running;
+ }
+
+} \ No newline at end of file