forked from External/mage
[app-wiring-refactor]: Remove static initialisation
- Remove all enum static managers - Introduce interfaces for the managers - Define new application wiring class (`ManagerFactory`) - Externalise the configuration
This commit is contained in:
parent
cf3dd2d94c
commit
d0c2135e17
48 changed files with 1385 additions and 911 deletions
|
|
@ -1,5 +1,7 @@
|
|||
package mage.server.game;
|
||||
|
||||
import mage.server.managers.IGamesRoomManager;
|
||||
import mage.server.managers.ManagerFactory;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.Optional;
|
||||
|
|
@ -9,36 +11,44 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
/**
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public enum GamesRoomManager {
|
||||
instance;
|
||||
public class GamesRoomManager implements IGamesRoomManager {
|
||||
|
||||
private final ManagerFactory managerFactory;
|
||||
private final ConcurrentHashMap<UUID, GamesRoom> rooms = new ConcurrentHashMap<>();
|
||||
private final UUID mainRoomId;
|
||||
private final UUID mainChatId;
|
||||
private UUID mainRoomId;
|
||||
private UUID mainChatId;
|
||||
private static final Logger logger = Logger.getLogger(GamesRoomManager.class);
|
||||
|
||||
|
||||
GamesRoomManager() {
|
||||
GamesRoom mainRoom = new GamesRoomImpl();
|
||||
public GamesRoomManager(ManagerFactory managerFactory) {
|
||||
this.managerFactory = managerFactory;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
GamesRoom mainRoom = new GamesRoomImpl(managerFactory);
|
||||
mainRoomId = mainRoom.getRoomId();
|
||||
mainChatId = mainRoom.getChatId();
|
||||
rooms.put(mainRoomId, mainRoom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID createRoom() {
|
||||
GamesRoom room = new GamesRoomImpl();
|
||||
GamesRoom room = new GamesRoomImpl(managerFactory);
|
||||
rooms.put(room.getRoomId(), room);
|
||||
return room.getRoomId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getMainRoomId() {
|
||||
return mainRoomId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getMainChatId() {
|
||||
return mainChatId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<GamesRoom> getRoom(UUID roomId) {
|
||||
if (rooms.containsKey(roomId)) {
|
||||
return Optional.of(rooms.get(roomId));
|
||||
|
|
@ -48,6 +58,7 @@ public enum GamesRoomManager {
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeTable(UUID tableId) {
|
||||
for (GamesRoom room : rooms.values()) {
|
||||
room.removeTable(tableId);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue