diff options
author | tylermurphy534 <tylerm@tylerm.dev> | 2023-07-30 22:13:49 +0000 |
---|---|---|
committer | tylermurphy534 <tylerm@tylerm.dev> | 2023-07-30 22:13:49 +0000 |
commit | a2ea5a635e1b841f58c05ca07e4b547a38fe3433 (patch) | |
tree | 5217465c967796680cc03b11359490f638d6b78c /src/main/java/dev/tylerm/khs/game/Disguiser.java | |
parent | Update 'README.md' (diff) | |
parent | 1.7.5 rc4 (diff) | |
download | kenshinshideandseek-a2ea5a635e1b841f58c05ca07e4b547a38fe3433.tar.gz kenshinshideandseek-a2ea5a635e1b841f58c05ca07e4b547a38fe3433.tar.bz2 kenshinshideandseek-a2ea5a635e1b841f58c05ca07e4b547a38fe3433.zip |
Merge pull request '1.7.5' (#10) from dev into main
Reviewed-on: https://g.tylerm.dev/tylermurphy534/KenshinsHideAndSeek/pulls/10
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); + } + +} |