diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2023-02-07 18:07:47 -0500 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2023-02-07 18:07:47 -0500 |
commit | 6770398c144500e8b7eb5d916ee6633678cfc208 (patch) | |
tree | 2911eeb2ca42d34d4361b6b6715c68b9e6a5b434 /src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java | |
parent | spawn patch, bounds checks, drop items, regen (diff) | |
download | kenshinshideandseek-6770398c144500e8b7eb5d916ee6633678cfc208.tar.gz kenshinshideandseek-6770398c144500e8b7eb5d916ee6633678cfc208.tar.bz2 kenshinshideandseek-6770398c144500e8b7eb5d916ee6633678cfc208.zip |
block solidifying beeps, stop right click attacks
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java b/src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java index b9ea09b..b3460d0 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/util/Disguise.java @@ -1,5 +1,7 @@ package net.tylermurphy.hideAndSeek.game.util; +import com.cryptomorin.xseries.XSound; +import com.cryptomorin.xseries.messages.ActionBar; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.util.packet.BlockChangePacket; import net.tylermurphy.hideAndSeek.util.packet.EntityTeleportPacket; @@ -20,7 +22,7 @@ public class Disguise { FallingBlock block; Horse hitBox; Location blockLocation; - boolean solid, solidify; + boolean solid, solidify, solidifying; static Team hidden; static { @@ -172,4 +174,37 @@ public class Disguise { } } + public void startSolidifying() { + if (solidifying) return; + if (solid) return; + solidifying = true; + final Location lastLocation = hider.getLocation(); + Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> solidifyUpdate(lastLocation, 3), 10); + } + + private void solidifyUpdate(Location lastLocation, int time) { + Location currentLocation = hider.getLocation(); + if(lastLocation.getWorld() != currentLocation.getWorld()) { + solidifying = false; + return; + } + if(lastLocation.distance(currentLocation) > .1) { + solidifying = false; + return; + } + if(time == 0) { + ActionBar.clearActionBar(hider); + setSolidify(true); + solidifying = false; + } else { + StringBuilder s = new StringBuilder(); + for (int i = 0; i < time; i++) { + s.append("▪"); + } + ActionBar.sendActionBar(hider, s.toString()); + XSound.BLOCK_NOTE_BLOCK_PLING.play(hider, 1, 1); + Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> solidifyUpdate(lastLocation, time - 1), 20); + } + } + }
\ No newline at end of file |