added a bunch of game methods

This commit is contained in:
betasteward 2015-06-17 19:54:33 -04:00
parent 58e85df735
commit 55fea43f20
32 changed files with 1105 additions and 200 deletions

View file

@ -167,11 +167,23 @@ public class Client {
}
public void sendPlayerUUID(UUID gameId, UUID id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
clientMessageHandler.sendPlayerUUID(gameId, id);
}
public void sendPlayerBoolean(UUID gameId, boolean b) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
clientMessageHandler.sendPlayerBoolean(gameId, b);
}
public void sendPlayerInteger(UUID gameId, int i) {
clientMessageHandler.sendPlayerInteger(gameId, i);
}
public void sendPlayerString(UUID gameId, String string) {
clientMessageHandler.sendPlayerString(gameId, string);
}
public void sendPlayerManaType(UUID gameId, UUID playerId, ManaType manaType) {
clientMessageHandler.sendPlayerManaType(gameId, playerId, manaType);
}
public String getUserName() {
@ -346,18 +358,6 @@ public class Client {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
// }
public void sendPlayerInteger(UUID gameId, int i) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void sendPlayerString(UUID gameId, String special) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void sendPlayerManaType(UUID gameId, UUID playerId, ManaType manaType) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void cheat(UUID gameId, UUID playerId, DeckCardLists importDeck) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

View file

@ -1,5 +1,14 @@
package org.mage.network;
import org.mage.network.model.UserRequestDialogMessage;
import org.mage.network.model.GameEndInfoMessage;
import org.mage.network.model.GameSelectAmountMessage;
import org.mage.network.model.GamePlayXManaMessage;
import org.mage.network.model.GamePlayManaMessage;
import org.mage.network.model.GameChooseChoiceMessage;
import org.mage.network.model.GameChoosePileMessage;
import org.mage.network.model.GameChooseAbilityMessage;
import org.mage.network.model.GameSelectMessage;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
@ -20,8 +29,18 @@ import io.netty.handler.timeout.IdleStateHandler;
import io.netty.util.concurrent.DefaultEventExecutorGroup;
import io.netty.util.concurrent.EventExecutorGroup;
import io.netty.util.concurrent.GlobalEventExecutor;
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import mage.choices.Choice;
import mage.game.Table;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.UserRequestMessage;
import org.apache.log4j.Logger;
import org.mage.network.handlers.ExceptionHandler;
import org.mage.network.handlers.MessageHandler;
@ -36,7 +55,10 @@ import org.mage.network.handlers.server.ServerRequestHandler;
//import org.mage.network.handlers.server.TableMessageHandler;
import org.mage.network.interfaces.MageServer;
import org.mage.network.model.ChatMessageMessage;
import org.mage.network.model.GameAskMessage;
import org.mage.network.model.GameInitMessage;
import org.mage.network.model.GameStartedMessage;
import org.mage.network.model.GameTargetMessage;
import org.mage.network.model.InformClientMessage;
import org.mage.network.model.JoinedTableMessage;
import org.mage.network.model.MessageType;
@ -186,5 +208,77 @@ public class Server {
ch.writeAndFlush(new GameStartedMessage(gameId, playerId)).addListener(WriteListener.getInstance());
}
public void initGame(String sessionId, UUID gameId, GameView gameView) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameInitMessage(gameId, gameView)).addListener(WriteListener.getInstance());
}
public void gameAsk(String sessionId, UUID gameId, GameView gameView, String question) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameAskMessage(gameId, gameView, question)).addListener(WriteListener.getInstance());
}
public void gameTarget(String sessionId, UUID gameId, GameView gameView, String question, CardsView cardView, Set<UUID> targets, boolean required, Map<String, Serializable> options) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameTargetMessage(gameId, gameView, question, cardView, targets, required, options)).addListener(WriteListener.getInstance());
}
public void gameSelect(String sessionId, UUID gameId, GameView gameView, String message, Map<String, Serializable> options) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameSelectMessage(gameId, gameView, message, options)).addListener(WriteListener.getInstance());
}
public void gameChooseAbility(String sessionId, UUID gameId, AbilityPickerView abilities) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameChooseAbilityMessage(gameId, abilities)).addListener(WriteListener.getInstance());
}
public void gameChoosePile(String sessionId, UUID gameId, String message, CardsView pile1, CardsView pile2) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameChoosePileMessage(gameId, message, pile1, pile2)).addListener(WriteListener.getInstance());
}
public void gameChooseChoice(String sessionId, UUID gameId, Choice choice) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameChooseChoiceMessage(gameId, choice)).addListener(WriteListener.getInstance());
}
public void gamePlayMana(String sessionId, UUID gameId, GameView gameView, String message) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GamePlayManaMessage(gameId, gameView, message)).addListener(WriteListener.getInstance());
}
public void gamePlayXMana(String sessionId, UUID gameId, GameView gameView, String message) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GamePlayXManaMessage(gameId, gameView, message)).addListener(WriteListener.getInstance());
}
public void gameSelectAmount(String sessionId, UUID gameId, String message, int min, int max) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameSelectAmountMessage(gameId, message, min, max)).addListener(WriteListener.getInstance());
}
public void endGameInfo(String sessionId, UUID gameId, GameEndView view) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new GameEndInfoMessage(gameId, view)).addListener(WriteListener.getInstance());
}
public void userRequestDialog(String sessionId, UUID gameId, UserRequestMessage userRequestMessage) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new UserRequestDialogMessage(gameId, userRequestMessage)).addListener(WriteListener.getInstance());
}
}

View file

@ -1,5 +1,10 @@
package org.mage.network.handlers.client;
import org.mage.network.model.SendPlayerManaTypeRequest;
import org.mage.network.model.SendPlayerIntegerRequest;
import org.mage.network.model.SendPlayerStringRequest;
import org.mage.network.model.SendPlayerUUIDRequest;
import org.mage.network.model.SendPlayerBooleanRequest;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.util.List;
@ -7,6 +12,7 @@ import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import mage.cards.decks.DeckCardLists;
import mage.constants.ManaType;
import mage.game.match.MatchOptions;
import mage.view.RoomView;
import mage.view.TableView;
@ -155,4 +161,24 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
stringListQueue.offer(list);
}
public void sendPlayerUUID(UUID gameId, UUID id) {
ctx.writeAndFlush(new SendPlayerUUIDRequest(gameId, id)).addListener(WriteListener.getInstance());
}
public void sendPlayerBoolean(UUID gameId, boolean b) {
ctx.writeAndFlush(new SendPlayerBooleanRequest(gameId, b)).addListener(WriteListener.getInstance());
}
public void sendPlayerInteger(UUID gameId, int i) {
ctx.writeAndFlush(new SendPlayerIntegerRequest(gameId, i)).addListener(WriteListener.getInstance());
}
public void sendPlayerString(UUID gameId, String string) {
ctx.writeAndFlush(new SendPlayerStringRequest(gameId, string)).addListener(WriteListener.getInstance());
}
public void sendPlayerManaType(UUID gameId, UUID playerId, ManaType manaType) {
ctx.writeAndFlush(new SendPlayerManaTypeRequest(gameId, playerId, manaType)).addListener(WriteListener.getInstance());
}
}

View file

@ -1,8 +1,18 @@
package org.mage.network.interfaces;
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import mage.choices.Choice;
import mage.game.Table;
import mage.interfaces.ServerState;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.UserRequestMessage;
import org.mage.network.model.MessageType;
/**
@ -24,5 +34,21 @@ public interface MageClient {
void joinedTable(UUID roomId, UUID tableId, UUID chatId, boolean owner, boolean tournament);
void gameStarted(UUID gameId, UUID playerId);
void initGame(UUID gameId, GameView gameView);
void gameAsk(UUID gameId, GameView gameView, String question);
void gameTarget(UUID gameId, GameView gameView, String question, CardsView cardView, Set<UUID> targets, boolean required, Map<String, Serializable> options);
void gameChooseAbility(UUID gameId, AbilityPickerView abilities);
void gameChoosePile(UUID gameId, String message, CardsView pile1, CardsView pile2);
void gameChooseChoice(UUID gameId, Choice choice);
void gamePlayMana(UUID gameId, GameView gameView, String message);
void gamePlayXMana(UUID gameId, GameView gameView, String message);
void gameSelectAmount(UUID gameId, String message, int min, int max);
void gameSelect(UUID gameId, GameView gameView, String message, Map<String, Serializable> options);
public void gameEndInfo(UUID gameId, GameEndView view);
public void userRequestDialog(UUID gameId, UserRequestMessage userRequestMessage);
}

View file

@ -3,6 +3,7 @@ package org.mage.network.interfaces;
import java.util.List;
import java.util.UUID;
import mage.cards.decks.DeckCardLists;
import mage.constants.ManaType;
import mage.game.match.MatchOptions;
import mage.interfaces.ServerState;
import mage.remote.Connection;
@ -38,8 +39,13 @@ public interface MageServer {
void swapSeats(String sessionId, UUID roomId, UUID tableId, int seatNum1, int seatNum2);
boolean startMatch(String sessionId, UUID roomId, UUID tableId);
UUID joinGame(final UUID gameId, final String sessionId);
UUID joinGame(UUID gameId, String sessionId);
void sendPlayerUUID(UUID gameId, String sessionId, UUID data);
void sendPlayerString(UUID gameId, String sessionId, String data);
void sendPlayerManaType(UUID gameId, UUID playerId, String sessionId, ManaType data);
void sendPlayerBoolean(UUID gameId, String sessionId, Boolean data);
void sendPlayerInteger(UUID gameId, String sessionId, Integer data);
void pingTime(long milliSeconds, String sessionId);
}

View file

@ -0,0 +1,28 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameAskMessage extends ClientMessage {
private UUID gameId;
private GameView gameView;
private String question;
public GameAskMessage(UUID gameId, GameView gameView, String question) {
this.gameId = gameId;
this.gameView = gameView;
this.question = question;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameAsk(gameId, gameView, question);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.AbilityPickerView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameChooseAbilityMessage extends ClientMessage {
private final UUID gameId;
private final AbilityPickerView abilities;
public GameChooseAbilityMessage(UUID gameId, AbilityPickerView abilities) {
this.gameId = gameId;
this.abilities = abilities;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameChooseAbility(gameId, abilities);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import java.util.UUID;
import mage.choices.Choice;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameChooseChoiceMessage extends ClientMessage {
private final UUID gameId;
private final Choice choice;
public GameChooseChoiceMessage(UUID gameId, Choice choice) {
this.gameId = gameId;
this.choice = choice;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameChooseChoice(gameId, choice);
}
}

View file

@ -0,0 +1,29 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.CardsView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameChoosePileMessage extends ClientMessage {
private final UUID gameId;
private final String message;
private final CardsView pile1;
private final CardsView pile2;
public GameChoosePileMessage(UUID gameId, String message, CardsView pile1, CardsView pile2) {
this.gameId = gameId;
this.message = message;
this.pile1 = pile1;
this.pile2 = pile2;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameChoosePile(gameId, message, pile1, pile2);
}
}

View file

@ -0,0 +1,26 @@
package org.mage.network.model;
import java.util.UUID;
import mage.game.Table;
import mage.view.GameEndView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameEndInfoMessage extends ClientMessage {
private final UUID gameId;
private final GameEndView view;
public GameEndInfoMessage(UUID gameId, GameEndView view) {
this.gameId = gameId;
this.view = view;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameEndInfo(gameId, view);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameInitMessage extends ClientMessage {
private UUID gameId;
private GameView gameView;
public GameInitMessage(UUID gameId, GameView gameView) {
this.gameId = gameId;
this.gameView = gameView;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().initGame(gameId, gameView);
}
}

View file

@ -0,0 +1,27 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GamePlayManaMessage extends ClientMessage {
private final UUID gameId;
private final GameView gameView;
private final String message;
public GamePlayManaMessage(UUID gameId, GameView gameView, String message) {
this.gameId = gameId;
this.gameView = gameView;
this.message = message;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gamePlayMana(gameId, gameView, message);
}
}

View file

@ -0,0 +1,27 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GamePlayXManaMessage extends ClientMessage {
private final UUID gameId;
private final GameView gameView;
private final String message;
public GamePlayXManaMessage(UUID gameId, GameView gameView, String message) {
this.gameId = gameId;
this.gameView = gameView;
this.message = message;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gamePlayXMana(gameId, gameView, message);
}
}

View file

@ -0,0 +1,28 @@
package org.mage.network.model;
import java.util.UUID;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameSelectAmountMessage extends ClientMessage {
private final UUID gameId;
private final String message;
private final int min;
private final int max;
public GameSelectAmountMessage(UUID gameId, String message, int min, int max) {
this.gameId = gameId;
this.message = message;
this.min = min;
this.max = max;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameSelectAmount(gameId, message, min, max);
}
}

View file

@ -0,0 +1,31 @@
package org.mage.network.model;
import java.io.Serializable;
import java.util.Map;
import java.util.UUID;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameSelectMessage extends ClientMessage {
private final UUID gameId;
private final GameView gameView;
private final String message;
private final Map<String, Serializable> options;
public GameSelectMessage(UUID gameId, GameView gameView, String message, Map<String, Serializable> options) {
this.gameId = gameId;
this.gameView = gameView;
this.message = message;
this.options = options;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameSelect(gameId, gameView, message, options);
}
}

View file

@ -0,0 +1,40 @@
package org.mage.network.model;
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import mage.view.CardsView;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class GameTargetMessage extends ClientMessage {
private final UUID gameId;
private final GameView gameView;
private final String question;
private final CardsView cardView;
private final Set<UUID> targets;
private final boolean required;
private final Map<String, Serializable> options;
public GameTargetMessage(UUID gameId, GameView gameView, String question, CardsView cardView, Set<UUID> targets, boolean required, Map<String, Serializable> options) {
this.gameId = gameId;
this.gameView = gameView;
this.question = question;
this.cardView = cardView;
this.targets = targets;
this.required = required;
this.options = options;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().gameTarget(gameId, gameView, question, cardView, targets, required, options);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SendPlayerBooleanRequest extends ServerRequest {
private final UUID gameId;
private final boolean b;
public SendPlayerBooleanRequest(UUID gameId, boolean b) {
this.gameId = gameId;
this.b = b;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.sendPlayerBoolean(gameId, ctx.channel().id().asLongText(), b);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SendPlayerIntegerRequest extends ServerRequest {
private final UUID gameId;
private final int i;
public SendPlayerIntegerRequest(UUID gameId, int i) {
this.gameId = gameId;
this.i = i;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.sendPlayerInteger(gameId, ctx.channel().id().asLongText(), i);
}
}

View file

@ -0,0 +1,28 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import mage.constants.ManaType;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SendPlayerManaTypeRequest extends ServerRequest {
private final UUID gameId;
private final UUID playerId;
private final ManaType manaType;
public SendPlayerManaTypeRequest(UUID gameId, UUID playerId, ManaType manaType) {
this.gameId = gameId;
this.playerId = playerId;
this.manaType = manaType;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.sendPlayerManaType(gameId, playerId, ctx.channel().id().asLongText(), manaType);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SendPlayerStringRequest extends ServerRequest {
private final UUID gameId;
private final String string;
public SendPlayerStringRequest(UUID gameId, String string) {
this.gameId = gameId;
this.string = string;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.sendPlayerString(gameId, ctx.channel().id().asLongText(), string);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SendPlayerUUIDRequest extends ServerRequest {
private final UUID gameId;
private final UUID id;
public SendPlayerUUIDRequest(UUID gameId, UUID id) {
this.gameId = gameId;
this.id = id;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.sendPlayerUUID(gameId, ctx.channel().id().asLongText(), id);
}
}

View file

@ -0,0 +1,25 @@
package org.mage.network.model;
import java.util.UUID;
import mage.view.UserRequestMessage;
import org.mage.network.handlers.client.ClientMessageHandler;
/**
*
* @author BetaSteward
*/
public class UserRequestDialogMessage extends ClientMessage {
private final UUID gameId;
private final UserRequestMessage userRequestMessage;
public UserRequestDialogMessage(UUID gameId, UserRequestMessage userRequestMessage) {
this.gameId = gameId;
this.userRequestMessage = userRequestMessage;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().userRequestDialog(gameId, userRequestMessage);
}
}