blob: 2f8cbf6f2ea9fd28e52ac1a7ae6077cfbb8b41ff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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);
}
}
|