package fr.lyrgard.hexScape.listener; import com.google.common.eventbus.Subscribe; import fr.lyrgard.hexScape.bus.CoreMessageBus; import fr.lyrgard.hexScape.message.ArmyLoadedMessage; import fr.lyrgard.hexScape.message.CreateGameMessage; import fr.lyrgard.hexScape.message.GameCreatedMessage; import fr.lyrgard.hexScape.message.PieceMovedMessage; import fr.lyrgard.hexScape.message.PiecePlacedMessage; import fr.lyrgard.hexScape.model.GameRecord; import fr.lyrgard.hexScape.service.GameRecorderService; public class GameRecorderListener { private static GameRecorderListener instance; public static void start() { if (instance == null) { instance = new GameRecorderListener(); CoreMessageBus.register(instance); } } public static void stop() { if (instance != null) { CoreMessageBus.unregister(instance); instance = null; } } private GameRecorderListener() { } private GameRecord record = new GameRecord(); @Subscribe public void onEvent(GameCreatedMessage message) { GameRecorderService.getInstance().addAction(new CreateGameMessage(message.getGame().getName(), message.getGame().getMap(), message.getGame().getPlayerNumber())); } @Subscribe public void onEvent(ArmyLoadedMessage message) { GameRecorderService.getInstance().addAction(message); } @Subscribe public void onEvent(PiecePlacedMessage message) { GameRecorderService.getInstance().addAction(message); } @Subscribe public void onEvent(PieceMovedMessage message) { GameRecorderService.getInstance().addAction(message); } public GameRecord getRecord() { return record; } }