diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-07-30 18:12:47 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-07-30 18:12:47 -0400 |
commit | 000219a5ff183e469129e5804d0a6090d6b47b26 (patch) | |
tree | 5217465c967796680cc03b11359490f638d6b78c /src/main/java/dev/tylerm/khs/game/Disguiser.java | |
parent | Merge branch 'main' of ssh://g.tylerm.dev:21/tylermurphy534/KenshinsHideAndSe... (diff) | |
download | kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.tar.gz kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.tar.bz2 kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.zip |
1.7.5 rc4
Diffstat (limited to 'src/main/java/dev/tylerm/khs/game/Disguiser.java')
-rw-r--r-- | src/main/java/dev/tylerm/khs/game/Disguiser.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/dev/tylerm/khs/game/Disguiser.java b/src/main/java/dev/tylerm/khs/game/Disguiser.java new file mode 100644 index 0000000..68166a3 --- /dev/null +++ b/src/main/java/dev/tylerm/khs/game/Disguiser.java @@ -0,0 +1,74 @@ +package dev.tylerm.khs.game; + +import static dev.tylerm.khs.configuration.Config.*; +import static dev.tylerm.khs.configuration.Localization.message; + +import dev.tylerm.khs.game.util.Disguise; +import dev.tylerm.khs.configuration.Map; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; + +public class Disguiser { + + private final HashMap<Player, Disguise> disguises; + + public Disguiser(){ + this.disguises = new HashMap<>(); + + } + + public Disguise getDisguise(Player player){ + return disguises.get(player); + } + + public boolean disguised(Player player) { return disguises.containsKey(player); } + + @Nullable + public Disguise getByEntityID(int ID){ + return disguises.values().stream().filter(disguise -> disguise.getEntityID() == ID).findFirst().orElse(null); + } + + @Nullable + public Disguise getByHitBoxID(int ID){ + return disguises.values().stream().filter(disguise -> disguise.getHitBoxID() == ID).findFirst().orElse(null); + } + + public void check(){ + for(HashMap.Entry<Player, Disguise> set : disguises.entrySet()){ + Disguise disguise = set.getValue(); + Player player = set.getKey(); + if(!player.isOnline()) { + disguise.remove(); + disguises.remove(player); + } else { + disguise.update(); + } + } + } + + public void disguise(Player player, Material material, Map map){ + if(!map.isBlockHuntEnabled()){ + player.sendMessage(errorPrefix + message("BLOCKHUNT_DISABLED")); + return; + } + if(disguises.containsKey(player)){ + disguises.get(player).remove(); + } + Disguise disguise = new Disguise(player, material); + disguises.put(player, disguise); + } + + public void reveal(Player player){ + if(disguises.containsKey(player)) + disguises.get(player).remove(); + disguises.remove(player); + } + + public void cleanUp() { + disguises.values().forEach(Disguise::remove); + } + +} |