mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 12:31:59 -08:00
added sendPlayerAction
This commit is contained in:
parent
7135cffc01
commit
8aeadf1143
5 changed files with 65 additions and 56 deletions
|
|
@ -13,6 +13,7 @@ import io.netty.handler.codec.serialization.ObjectEncoder;
|
|||
import io.netty.handler.ssl.SslContext;
|
||||
import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
|
||||
import io.netty.handler.timeout.IdleStateHandler;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
|
@ -23,7 +24,6 @@ import mage.constants.PlayerAction;
|
|||
import mage.game.match.MatchOptions;
|
||||
import mage.game.tournament.TournamentOptions;
|
||||
import mage.interfaces.ServerState;
|
||||
import mage.players.net.UserSkipPrioritySteps;
|
||||
import mage.remote.Connection;
|
||||
import mage.utils.MageVersion;
|
||||
import mage.view.DraftPickView;
|
||||
|
|
@ -34,11 +34,10 @@ import mage.view.UserDataView;
|
|||
import mage.view.UserView;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.network.handlers.ExceptionHandler;
|
||||
import org.mage.network.handlers.MessageHandler;
|
||||
import org.mage.network.handlers.client.HeartbeatHandler;
|
||||
import org.mage.network.handlers.PingMessageHandler;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
import org.mage.network.handlers.client.ClientRegisteredMessageHandler;
|
||||
import org.mage.network.handlers.client.HeartbeatHandler;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.MessageType;
|
||||
|
||||
|
|
@ -279,8 +278,12 @@ public class Client {
|
|||
}
|
||||
}
|
||||
|
||||
public void sendPlayerAction(PlayerAction passPriorityAction, UUID gameId, Object data) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
public void sendPlayerAction(PlayerAction passPriorityAction, UUID gameId, Serializable data) {
|
||||
try {
|
||||
clientMessageHandler.sendPlayerAction(passPriorityAction, gameId, data);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error swaping seats", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public TableView getTable(UUID roomId, UUID tableId) {
|
||||
|
|
|
|||
|
|
@ -1,18 +1,15 @@
|
|||
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.io.Serializable;
|
||||
import java.util.List;
|
||||
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.constants.PlayerAction;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.view.RoomView;
|
||||
import mage.view.TableView;
|
||||
|
|
@ -28,7 +25,13 @@ import org.mage.network.model.JoinGameRequest;
|
|||
import org.mage.network.model.JoinTableRequest;
|
||||
import org.mage.network.model.LeaveChatRequest;
|
||||
import org.mage.network.model.LeaveTableRequest;
|
||||
import org.mage.network.model.PlayerActionRequest;
|
||||
import org.mage.network.model.RemoveTableRequest;
|
||||
import org.mage.network.model.SendPlayerBooleanRequest;
|
||||
import org.mage.network.model.SendPlayerIntegerRequest;
|
||||
import org.mage.network.model.SendPlayerManaTypeRequest;
|
||||
import org.mage.network.model.SendPlayerStringRequest;
|
||||
import org.mage.network.model.SendPlayerUUIDRequest;
|
||||
import org.mage.network.model.ServerMessagesRequest;
|
||||
import org.mage.network.model.StartMatchRequest;
|
||||
import org.mage.network.model.SwapSeatRequest;
|
||||
|
|
@ -181,4 +184,8 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
|
|||
ctx.writeAndFlush(new SendPlayerManaTypeRequest(gameId, playerId, manaType)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void sendPlayerAction(PlayerAction action, UUID gameId, Serializable data) {
|
||||
ctx.writeAndFlush(new PlayerActionRequest(action, gameId, data)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package org.mage.network.interfaces;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import mage.constants.ManaType;
|
||||
import mage.constants.PlayerAction;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.interfaces.ServerState;
|
||||
import mage.remote.Connection;
|
||||
|
|
@ -45,6 +47,7 @@ public interface MageServer {
|
|||
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 sendPlayerAction(PlayerAction playerAction, UUID gameId, String sessionId, Serializable data);
|
||||
|
||||
void pingTime(long milliSeconds, String sessionId);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
import mage.constants.PlayerAction;
|
||||
import org.mage.network.interfaces.MageServer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class PlayerActionRequest extends ServerRequest {
|
||||
|
||||
private final PlayerAction playerAction;
|
||||
private final UUID gameId;
|
||||
private final Serializable data;
|
||||
|
||||
public PlayerActionRequest(PlayerAction playerAction, UUID gameId, Serializable data) {
|
||||
this.playerAction = playerAction;
|
||||
this.gameId = gameId;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
|
||||
server.sendPlayerAction(playerAction, gameId, ctx.channel().id().asLongText(), data);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -28,88 +28,59 @@
|
|||
|
||||
package mage.server;
|
||||
|
||||
import io.netty.channel.ChannelId;
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.Serializable;
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import mage.MageException;
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.cards.repository.CardRepository;
|
||||
import mage.cards.repository.CardScanner;
|
||||
import mage.cards.repository.ExpansionInfo;
|
||||
import mage.cards.repository.ExpansionRepository;
|
||||
import mage.choices.Choice;
|
||||
import mage.constants.ManaType;
|
||||
import mage.constants.PlayerAction;
|
||||
import mage.constants.TableState;
|
||||
import mage.game.GameException;
|
||||
import mage.game.Table;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.game.match.MatchType;
|
||||
import mage.game.tournament.TournamentOptions;
|
||||
import mage.game.tournament.TournamentType;
|
||||
import mage.interfaces.Action;
|
||||
import mage.interfaces.ActionWithResult;
|
||||
//import mage.interfaces.MageServer;
|
||||
import org.mage.network.interfaces.MageServer;
|
||||
import mage.interfaces.ServerState;
|
||||
//import mage.interfaces.callback.ClientCallback;
|
||||
import mage.remote.Connection;
|
||||
import mage.remote.DisconnectReason;
|
||||
import mage.remote.MageVersionException;
|
||||
import mage.server.draft.CubeFactory;
|
||||
import mage.server.draft.DraftManager;
|
||||
import mage.server.game.DeckValidatorFactory;
|
||||
import mage.server.game.GameFactory;
|
||||
import mage.server.game.GameManager;
|
||||
import mage.server.game.GamesRoom;
|
||||
import mage.server.game.GamesRoomManager;
|
||||
import mage.server.game.PlayerFactory;
|
||||
import mage.server.game.ReplayManager;
|
||||
import mage.server.services.LogKeys;
|
||||
import mage.server.services.impl.FeedbackServiceImpl;
|
||||
import mage.server.services.impl.LogServiceImpl;
|
||||
import mage.server.tournament.TournamentFactory;
|
||||
import mage.server.tournament.TournamentManager;
|
||||
import mage.server.util.ConfigSettings;
|
||||
import mage.server.util.PluginClassLoader;
|
||||
import mage.server.util.ServerMessagesUtil;
|
||||
import mage.server.util.SystemUtil;
|
||||
import mage.server.util.ThreadExecutor;
|
||||
import mage.server.util.config.GamePlugin;
|
||||
import mage.server.util.config.Plugin;
|
||||
import mage.utils.ActionWithBooleanResult;
|
||||
import mage.utils.ActionWithNullNegativeResult;
|
||||
import mage.utils.ActionWithTableViewResult;
|
||||
import mage.utils.CompressUtil;
|
||||
import mage.utils.MageVersion;
|
||||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.ChatMessage.MessageColor;
|
||||
import mage.view.DraftPickView;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
import mage.view.MatchView;
|
||||
import mage.view.RoomUsersView;
|
||||
import mage.view.RoomView;
|
||||
import mage.view.TableView;
|
||||
import mage.view.TournamentView;
|
||||
import mage.view.UserDataView;
|
||||
import mage.view.UserRequestMessage;
|
||||
import mage.view.UserView;
|
||||
import org.apache.commons.lang3.StringEscapeUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.network.Server;
|
||||
import org.mage.network.interfaces.MageServer;
|
||||
import org.mage.network.model.MessageType;
|
||||
|
||||
/**
|
||||
|
|
@ -791,22 +762,17 @@ public class ServerMain implements MageServer {
|
|||
// }
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void sendPlayerAction(final PlayerAction playerAction, final UUID gameId, final String sessionId, final Object data) throws MageException {
|
||||
// execute("sendPlayerAction", sessionId, new Action() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// Session session = SessionManager.getInstance().getSession(sessionId);
|
||||
// if (session == null) {
|
||||
// logger.error("Session not found sessionId: "+ sessionId + " gameId:" + gameId);
|
||||
// return;
|
||||
// }
|
||||
// GameManager.getInstance().sendPlayerAction(playerAction, gameId, session.getUserId(), data);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
//
|
||||
|
||||
@Override
|
||||
public void sendPlayerAction(final PlayerAction playerAction, final UUID gameId, final String sessionId, final Serializable data) {
|
||||
Session session = SessionManager.getInstance().getSession(sessionId);
|
||||
if (session == null) {
|
||||
logger.error("Session not found sessionId: "+ sessionId + " gameId:" + gameId);
|
||||
return;
|
||||
}
|
||||
GameManager.getInstance().sendPlayerAction(playerAction, gameId, session.getUserId(), data);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public boolean watchTable(final String sessionId, final UUID roomId, final UUID tableId) throws MageException {
|
||||
// return executeWithResult("setUserData", sessionId, new ActionWithBooleanResult() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue