diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2022-08-07 21:55:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-07 21:55:08 -0400 |
commit | 00f67f0e4525f3c2eb1ded94627016e195950995 (patch) | |
tree | fc135226ae1f79040832173b83c21d23d16169fb /src/main/java/net/tylermurphy/hideAndSeek/game/Disguiser.java | |
parent | Merge pull request #71 from tylermurphy534/1.5.1 (diff) | |
parent | pom fix (diff) | |
download | kenshinshideandseek-00f67f0e4525f3c2eb1ded94627016e195950995.tar.gz kenshinshideandseek-00f67f0e4525f3c2eb1ded94627016e195950995.tar.bz2 kenshinshideandseek-00f67f0e4525f3c2eb1ded94627016e195950995.zip |
Merge pull request #72 from tylermurphy534/1.6.0
1.6.0
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/Disguiser.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/game/Disguiser.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Disguiser.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Disguiser.java new file mode 100644 index 0000000..2f8cbf6 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Disguiser.java @@ -0,0 +1,72 @@ +package net.tylermurphy.hideAndSeek.game; + +import static net.tylermurphy.hideAndSeek.configuration.Config.*; + +import net.tylermurphy.hideAndSeek.game.util.Disguise; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Map; + +public class Disguiser { + + private final Map<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(Map.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){ + if(!blockhuntEnabled){ + player.sendMessage(errorPrefix + "Please enable blockhunt in config.yml to enable disguises. Blockhunt does not work on 1.8"); + 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); + } + +} |