A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: 14c245c8f432a15a4a34eefd361ad923ccd9889d (1632 bytes)[doc][blame][raw]
1
package de.typable.minecrafthub.game;3
import java.util.HashMap;4
import java.util.Iterator;5
import java.util.Map;6
import java.util.Map.Entry;8
import org.bukkit.command.CommandExecutor;9
import org.bukkit.entity.Player;10
import org.bukkit.event.Listener;12
import de.typable.minecrafthub.Config;13
import de.typable.minecrafthub.constant.DefaultConstants;15
public abstract class Game implements CommandExecutor, Listener16
{17
private Map<Player, PlayerState> players;18
private Config config;20
public Game()21
{22
players = new HashMap<>();23
}25
public void join(Player player)26
{27
if(players.containsKey(player))28
{29
player.sendMessage(DefaultConstants.Messages.ALREADY_INGAME);31
return;32
}34
players.put(player, PlayerState.of(player));35
}37
public void leave(Player player)38
{39
PlayerState playerState = players.get(player);41
if(playerState == null)42
{43
player.sendMessage(DefaultConstants.Messages.NOT_INGAME);45
return;46
}48
playerState.apply(player);49
players.remove(player);50
}52
public void leaveAll()53
{54
Iterator<Entry<Player, PlayerState>> iterator = players.entrySet().iterator();56
while(iterator.hasNext())57
{58
Entry<Player, PlayerState> entry = iterator.next();59
Player player = entry.getKey();60
PlayerState playerState = entry.getValue();62
playerState.apply(player);63
iterator.remove();64
}65
}67
public boolean isIngame(Player player)68
{69
return player != null && players.containsKey(player);70
}72
public Map<Player, PlayerState> getPlayers()73
{74
return players;75
}77
public void setConfig(Config config)78
{79
this.config = config;80
}82
public Config getConfig()83
{84
return config;85
}86
}