so://phie

poppy

A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy

blob: 14c245c8f432a15a4a34eefd361ad923ccd9889d (1632 bytes)[doc][blame][raw]

1package de.typable.minecrafthub.game;

2

3import java.util.HashMap;

4import java.util.Iterator;

5import java.util.Map;

6import java.util.Map.Entry;

7

8import org.bukkit.command.CommandExecutor;

9import org.bukkit.entity.Player;

10import org.bukkit.event.Listener;

11

12import de.typable.minecrafthub.Config;

13import de.typable.minecrafthub.constant.DefaultConstants;

14

15public abstract class Game implements CommandExecutor, Listener

16{

17 private Map<Player, PlayerState> players;

18 private Config config;

19

20 public Game()

21 {

22 players = new HashMap<>();

23 }

24

25 public void join(Player player)

26 {

27 if(players.containsKey(player))

28 {

29 player.sendMessage(DefaultConstants.Messages.ALREADY_INGAME);

30

31 return;

32 }

33

34 players.put(player, PlayerState.of(player));

35 }

36

37 public void leave(Player player)

38 {

39 PlayerState playerState = players.get(player);

40

41 if(playerState == null)

42 {

43 player.sendMessage(DefaultConstants.Messages.NOT_INGAME);

44

45 return;

46 }

47

48 playerState.apply(player);

49 players.remove(player);

50 }

51

52 public void leaveAll()

53 {

54 Iterator<Entry<Player, PlayerState>> iterator = players.entrySet().iterator();

55

56 while(iterator.hasNext())

57 {

58 Entry<Player, PlayerState> entry = iterator.next();

59 Player player = entry.getKey();

60 PlayerState playerState = entry.getValue();

61

62 playerState.apply(player);

63 iterator.remove();

64 }

65 }

66

67 public boolean isIngame(Player player)

68 {

69 return player != null && players.containsKey(player);

70 }

71

72 public Map<Player, PlayerState> getPlayers()

73 {

74 return players;

75 }

76

77 public void setConfig(Config config)

78 {

79 this.config = config;

80 }

81

82 public Config getConfig()

83 {

84 return config;

85 }

86}