added better network support and disconnecting doesnt clos the client who hosts the server now
This commit is contained in:
		@@ -1,8 +1,12 @@
 | 
			
		||||
package pp.mdga.client;
 | 
			
		||||
 | 
			
		||||
import pp.mdga.Resources;
 | 
			
		||||
import pp.mdga.client.ceremonystate.CeremonyStates;
 | 
			
		||||
import pp.mdga.client.ceremonystate.PodiumState;
 | 
			
		||||
import pp.mdga.client.ceremonystate.StatisticsState;
 | 
			
		||||
import pp.mdga.message.server.ShutdownMessage;
 | 
			
		||||
import pp.mdga.notification.InfoNotification;
 | 
			
		||||
import pp.mdga.notification.StartDialogNotification;
 | 
			
		||||
 | 
			
		||||
public class CeremonyState extends ClientState {
 | 
			
		||||
 | 
			
		||||
@@ -77,6 +81,11 @@ public CeremonyStates getState() {
 | 
			
		||||
        return currentState;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void received(ShutdownMessage msg){
 | 
			
		||||
        logic.addNotification(new InfoNotification(Resources.stringLookup("server.shutdown")));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * this method is used to parse the selectNext from the clientGameLogic
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -401,9 +401,7 @@ public void received(ServerStartGameMessage msg) {
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void received(ShutdownMessage msg) {
 | 
			
		||||
        addNotification(new InfoNotification(Resources.stringLookup("server.shutdown")));
 | 
			
		||||
        addNotification(new StartDialogNotification());
 | 
			
		||||
        setState(dialogsState);
 | 
			
		||||
        state.received(msg);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,12 @@
 | 
			
		||||
package pp.mdga.client;
 | 
			
		||||
 | 
			
		||||
import pp.mdga.Resources;
 | 
			
		||||
import pp.mdga.game.BonusCard;
 | 
			
		||||
import pp.mdga.game.Color;
 | 
			
		||||
import pp.mdga.game.Piece;
 | 
			
		||||
import pp.mdga.message.server.*;
 | 
			
		||||
import pp.mdga.notification.InfoNotification;
 | 
			
		||||
import pp.mdga.notification.StartDialogNotification;
 | 
			
		||||
 | 
			
		||||
import java.lang.System.Logger.Level;
 | 
			
		||||
 | 
			
		||||
@@ -161,7 +164,9 @@ public void received(ServerStartGameMessage msg) {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void received(ShutdownMessage msg) {
 | 
			
		||||
        LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg.toString());
 | 
			
		||||
        logic.addNotification(new InfoNotification(Resources.stringLookup("server.shutdown")));
 | 
			
		||||
        logic.addNotification(new StartDialogNotification());
 | 
			
		||||
        logic.setState(logic.getDialogs());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -141,11 +141,9 @@ public void received(LobbyPlayerJoinedMessage msg) {
 | 
			
		||||
            System.out.println(msg.getId());
 | 
			
		||||
            logic.setOwnPlayerId(msg.getId());
 | 
			
		||||
        }
 | 
			
		||||
        if (msg.isHost() && msg.getId() == logic.getOwnPlayerId()) {
 | 
			
		||||
            logic.setHost(true);
 | 
			
		||||
        if (msg.getPlayer().getColor() != Color.NONE){
 | 
			
		||||
            logic.addNotification(new TskSelectNotification(msg.getPlayer().getColor(), msg.getPlayer().getName(), msg.getPlayer().getName().equals(logic.getOwnPlayerName())));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        logic.addNotification(new TskSelectNotification(msg.getPlayer().getColor(), msg.getPlayer().getName(), msg.getPlayer().getName().equals(logic.getOwnPlayerName())));
 | 
			
		||||
        logic.getGame().getPlayers().put(msg.getId(), msg.getPlayer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
 | 
			
		||||
import pp.mdga.game.Color;
 | 
			
		||||
import pp.mdga.message.server.CeremonyMessage;
 | 
			
		||||
import pp.mdga.message.server.ShutdownMessage;
 | 
			
		||||
import pp.mdga.server.ServerGameLogic;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -59,6 +60,7 @@ private CeremonyMessage createCeremonyMessage() {
 | 
			
		||||
    public void enter() {
 | 
			
		||||
        LOGGER.log(System.Logger.Level.DEBUG, "Entered CeremonyState state.");
 | 
			
		||||
        logic.getServerSender().broadcast(createCeremonyMessage());
 | 
			
		||||
        logic.getServerSender().shutdown();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -86,9 +86,9 @@ public void received(LeaveGameMessage msg, int from) {
 | 
			
		||||
            this.logic.getServerSender().broadcast(new ShutdownMessage());
 | 
			
		||||
            this.logic.getServerSender().shutdown();
 | 
			
		||||
        }
 | 
			
		||||
        this.logic.getServerSender().disconnectClient(from);
 | 
			
		||||
        this.logic.getGame().removePlayer(from);
 | 
			
		||||
        this.logic.getServerSender().broadcast(new LobbyPlayerLeaveMessage(from));
 | 
			
		||||
        this.logic.getServerSender().disconnectClient(from);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user