package fr.lyrgard.hexScape.listener;
import java.io.File;
import com.google.common.eventbus.Subscribe;
import fr.lyrgard.hexScape.bus.CoreMessageBus;
import fr.lyrgard.hexScape.bus.GuiMessageBus;
import fr.lyrgard.hexScape.message.ArmyLoadedMessage;
import fr.lyrgard.hexScape.message.LoadArmyMessage;
import fr.lyrgard.hexScape.model.CurrentUserInfo;
import fr.lyrgard.hexScape.model.Universe;
import fr.lyrgard.hexScape.model.card.Army;
import fr.lyrgard.hexScape.model.game.Game;
import fr.lyrgard.hexScape.model.player.Player;
import fr.lyrgard.hexScape.service.ArmyService;
public class ArmyMessageListener extends AbstractMessageListener {
private static ArmyMessageListener instance;
public static void start() {
if (instance == null) {
instance = new ArmyMessageListener();
CoreMessageBus.register(instance);
}
}
private ArmyMessageListener() {
}
@Subscribe public void onLoadArmyMessage(LoadArmyMessage message) {
File armyFile = message.getArmyFile();
String playerId = message.getPlayerId();
Army army = ArmyService.getInstance().loadArmy(playerId, armyFile);
if (army != null) {
sendMessage(new ArmyLoadedMessage(playerId, army));
}
}
@Subscribe public void onArmyLoaded(ArmyLoadedMessage message) {
String playerId = message.getPlayerId();
Army army = message.getArmy();
if (CurrentUserInfo.getInstance().getGameId() != null) {
Game game = Universe.getInstance().getGamesByGameIds().get(CurrentUserInfo.getInstance().getGameId());
if (game != null) {
Player player =game.getPlayer(playerId);
if (player != null) {
player.setArmy(army);
GuiMessageBus.post(message);
}
}
}
}
}