mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 04:22:01 -08:00
added Construct and Sideboard callbacks
This commit is contained in:
parent
a316b01b15
commit
27da366eea
12 changed files with 173 additions and 56 deletions
|
|
@ -111,6 +111,7 @@ import mage.client.game.GamePanel;
|
|||
import mage.client.plugins.impl.Plugins;
|
||||
import mage.client.table.TablesPane;
|
||||
import mage.client.tournament.TournamentPane;
|
||||
import mage.client.util.DeckUtil;
|
||||
import mage.client.util.EDTExceptionHandler;
|
||||
import mage.client.util.GameManager;
|
||||
import mage.client.util.SettingsManager;
|
||||
|
|
@ -126,6 +127,7 @@ import mage.utils.MageVersion;
|
|||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
|
|
@ -1647,6 +1649,31 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
public void gameError(UUID gameId, String message) {
|
||||
this.showErrorDialog("Game Error", message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sideboard(UUID tableId, DeckView deckView, int time, boolean limited) {
|
||||
Deck deck = DeckUtil.construct(deckView);
|
||||
if (limited) {
|
||||
construct(deck, tableId, time);
|
||||
} else {
|
||||
sideboard(deck, tableId, time);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void construct(UUID tableId, DeckView deckView, int time) {
|
||||
Deck deck = DeckUtil.construct(deckView);
|
||||
construct(deck, tableId, time);
|
||||
}
|
||||
|
||||
|
||||
protected void sideboard(Deck deck, UUID tableId, int time) {
|
||||
showDeckEditor(DeckEditorMode.SIDEBOARDING, deck, tableId, time);
|
||||
}
|
||||
|
||||
protected void construct(Deck deck, UUID tableId, int time) {
|
||||
showDeckEditor(DeckEditorMode.LIMITED_BUILDING, deck, tableId, time);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,19 +31,15 @@ import java.util.List;
|
|||
import java.util.UUID;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.client.MageFrame;
|
||||
import mage.client.constants.Constants.DeckEditorMode;
|
||||
import mage.client.draft.DraftPanel;
|
||||
import mage.client.game.GamePanel;
|
||||
import mage.client.util.DeckUtil;
|
||||
import mage.client.util.audio.AudioManager;
|
||||
import mage.client.util.object.SaveObjectUtil;
|
||||
import mage.interfaces.callback.CallbackClient;
|
||||
import mage.interfaces.callback.ClientCallback;
|
||||
import mage.utils.CompressUtil;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.DraftClientMessage;
|
||||
import mage.view.DraftView;
|
||||
import mage.view.GameView;
|
||||
|
|
@ -308,25 +304,25 @@ public class CallbackClientImpl implements CallbackClient {
|
|||
// JOptionPane.INFORMATION_MESSAGE);
|
||||
// } break;
|
||||
// }
|
||||
case "sideboard":
|
||||
{
|
||||
TableClientMessage message = (TableClientMessage) callback.getData();
|
||||
DeckView deckView = message.getDeck();
|
||||
Deck deck = DeckUtil.construct(deckView);
|
||||
if (message.getFlag()) {
|
||||
construct(deck, message.getTableId(), message.getTime());
|
||||
} else {
|
||||
sideboard(deck, message.getTableId(), message.getTime());
|
||||
} break;
|
||||
}
|
||||
case "construct":
|
||||
{
|
||||
TableClientMessage message = (TableClientMessage) callback.getData();
|
||||
DeckView deckView = message.getDeck();
|
||||
Deck deck = DeckUtil.construct(deckView);
|
||||
construct(deck, message.getTableId(), message.getTime());
|
||||
break;
|
||||
}
|
||||
// case "sideboard":
|
||||
// {
|
||||
// TableClientMessage message = (TableClientMessage) callback.getData();
|
||||
// DeckView deckView = message.getDeck();
|
||||
// Deck deck = DeckUtil.construct(deckView);
|
||||
// if (message.getFlag()) {
|
||||
// construct(deck, message.getTableId(), message.getTime());
|
||||
// } else {
|
||||
// sideboard(deck, message.getTableId(), message.getTime());
|
||||
// } break;
|
||||
// }
|
||||
// case "construct":
|
||||
// {
|
||||
// TableClientMessage message = (TableClientMessage) callback.getData();
|
||||
// DeckView deckView = message.getDeck();
|
||||
// Deck deck = DeckUtil.construct(deckView);
|
||||
// construct(deck, message.getTableId(), message.getTime());
|
||||
// break;
|
||||
// }
|
||||
case "draftOver":
|
||||
MageFrame.removeDraft(callback.getObjectId());
|
||||
break;
|
||||
|
|
@ -484,13 +480,13 @@ public class CallbackClientImpl implements CallbackClient {
|
|||
}
|
||||
}
|
||||
|
||||
protected void sideboard(Deck deck, UUID tableId, int time) {
|
||||
frame.showDeckEditor(DeckEditorMode.SIDEBOARDING, deck, tableId, time);
|
||||
}
|
||||
|
||||
protected void construct(Deck deck, UUID tableId, int time) {
|
||||
frame.showDeckEditor(DeckEditorMode.LIMITED_BUILDING, deck, tableId, time);
|
||||
}
|
||||
// protected void sideboard(Deck deck, UUID tableId, int time) {
|
||||
// frame.showDeckEditor(DeckEditorMode.SIDEBOARDING, deck, tableId, time);
|
||||
// }
|
||||
//
|
||||
// protected void construct(Deck deck, UUID tableId, int time) {
|
||||
// frame.showDeckEditor(DeckEditorMode.LIMITED_BUILDING, deck, tableId, time);
|
||||
// }
|
||||
|
||||
private void handleException(Exception ex) {
|
||||
logger.fatal("Client error\n", ex);
|
||||
|
|
|
|||
|
|
@ -4,27 +4,23 @@ import java.io.Serializable;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import mage.client.components.MageUI;
|
||||
//import mage.interfaces.MageClient;
|
||||
//import mage.interfaces.callback.ClientCallback;
|
||||
import mage.remote.Connection;
|
||||
//import mage.remote.Session;
|
||||
//import mage.remote.SessionImpl;
|
||||
import mage.utils.MageVersion;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.junit.Ignore;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import javax.swing.SwingUtilities;
|
||||
import mage.choices.Choice;
|
||||
import mage.client.components.MageUI;
|
||||
import mage.interfaces.ServerState;
|
||||
import mage.remote.Connection;
|
||||
import mage.utils.MageVersion;
|
||||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
import mage.view.UserRequestMessage;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.junit.Ignore;
|
||||
import org.mage.network.Client;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.messages.MessageType;
|
||||
|
|
@ -228,6 +224,16 @@ public class MultiConnectTest {
|
|||
public void gameError(UUID gameId, String message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sideboard(UUID tableId, DeckView deck, int time, boolean limited) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void construct(UUID tableId, DeckView deck, int time) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] argv) throws Exception {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ package mage.view;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.cards.decks.Deck;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package org.mage.network;
|
||||
|
||||
import org.mage.network.messages.callback.ConstructCallback;
|
||||
import io.netty.bootstrap.ServerBootstrap;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
|
|
@ -28,6 +29,7 @@ import mage.choices.Choice;
|
|||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.DraftClientMessage;
|
||||
import mage.view.DraftView;
|
||||
import mage.view.GameClientMessage;
|
||||
|
|
@ -66,6 +68,7 @@ import org.mage.network.messages.callback.GameTargetCallback;
|
|||
import org.mage.network.messages.callback.GameUpdateCallback;
|
||||
import org.mage.network.messages.callback.InformClientCallback;
|
||||
import org.mage.network.messages.callback.JoinedTableCallback;
|
||||
import org.mage.network.messages.callback.SideboardCallback;
|
||||
import org.mage.network.messages.callback.UserRequestDialogCallback;
|
||||
|
||||
/**
|
||||
|
|
@ -326,12 +329,16 @@ public class Server {
|
|||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
public void sideboard(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
public void sideboard(String sessionId, UUID tableId, DeckView deck, int time, boolean limited) {
|
||||
Channel ch = findChannel(sessionId);
|
||||
if (ch != null)
|
||||
ch.writeAndFlush(new SideboardCallback(tableId, deck, time, limited)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void construct(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
public void construct(String sessionId, UUID tableId, DeckView deck, int time) {
|
||||
Channel ch = findChannel(sessionId);
|
||||
if (ch != null)
|
||||
ch.writeAndFlush(new ConstructCallback(tableId, deck, time)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void startTournament(String sessionId, UUID tournamentId, TableClientMessage tableClientMessage) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import mage.interfaces.ServerState;
|
|||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
|
|
@ -55,5 +56,8 @@ public interface MageClient {
|
|||
public void gameEndInfo(UUID gameId, GameEndView view);
|
||||
|
||||
public void userRequestDialog(UUID gameId, UserRequestMessage userRequestMessage);
|
||||
|
||||
public void sideboard(UUID tableId, DeckView deck, int time, boolean limited);
|
||||
public void construct(UUID tableId, DeckView deck, int time);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package org.mage.network.messages.callback;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.view.DeckView;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
import org.mage.network.messages.ClientMessage;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ConstructCallback extends ClientMessage {
|
||||
private final UUID tableId;
|
||||
private final DeckView deck;
|
||||
private final int time;
|
||||
|
||||
public ConstructCallback(UUID tableId, DeckView deck, int time) {
|
||||
this.tableId = tableId;
|
||||
this.deck = deck;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.getClient().construct(tableId, deck, time);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package org.mage.network.messages.callback;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.view.DeckView;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
import org.mage.network.messages.ClientMessage;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class SideboardCallback extends ClientMessage {
|
||||
private final UUID tableId;
|
||||
private final DeckView deck;
|
||||
private final int time;
|
||||
private final boolean limited;
|
||||
|
||||
public SideboardCallback(UUID tableId, DeckView deck, int time, boolean limited) {
|
||||
this.tableId = tableId;
|
||||
this.deck = deck;
|
||||
this.time = time;
|
||||
this.limited = limited;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.getClient().sideboard(tableId, deck, time, limited);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -49,15 +49,12 @@ import javax.swing.SwingUtilities;
|
|||
import javax.swing.UIManager;
|
||||
import mage.choices.Choice;
|
||||
import mage.interfaces.ServerState;
|
||||
//import mage.interfaces.MageClient;
|
||||
//import mage.interfaces.callback.ClientCallback;
|
||||
import mage.remote.Connection;
|
||||
//import mage.remote.Session;
|
||||
//import mage.remote.SessionImpl;
|
||||
import mage.utils.MageVersion;
|
||||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
|
|
@ -460,4 +457,14 @@ public class ConsoleFrame extends javax.swing.JFrame implements MageClient {
|
|||
public void gameError(UUID gameId, String message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sideboard(UUID tableId, DeckView deck, int time, boolean limited) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void construct(UUID tableId, DeckView deck, int time) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import mage.utils.MageVersion;
|
|||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
|
|
@ -207,4 +208,14 @@ public class TestClient implements MageClient {
|
|||
public void gameError(UUID gameId, String message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sideboard(UUID tableId, DeckView deck, int time, boolean limited) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void construct(UUID tableId, DeckView deck, int time) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ import mage.view.AbilityPickerView;
|
|||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.ChatMessage.MessageColor;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.DraftClientMessage;
|
||||
import mage.view.DraftView;
|
||||
import mage.view.GameClientMessage;
|
||||
|
|
@ -1290,12 +1291,12 @@ public class ServerMain implements MageServer {
|
|||
server.draftPick(sessionId, draftId, draftClientMessage);
|
||||
}
|
||||
|
||||
public void sideboard(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
|
||||
server.sideboard(sessionId, tableId, tableClientMessage);
|
||||
public void sideboard(String sessionId, UUID tableId, DeckView deck, int time, boolean limited) {
|
||||
server.sideboard(sessionId, tableId, deck, time, limited);
|
||||
}
|
||||
|
||||
public void construct(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
|
||||
server.construct(sessionId, tableId, tableClientMessage);
|
||||
public void construct(String sessionId, UUID tableId, DeckView deck, int time) {
|
||||
server.construct(sessionId, tableId, deck, time);
|
||||
}
|
||||
|
||||
public void startTournament(String sessionId, UUID tournamentId, TableClientMessage tableClientMessage) {
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ import mage.server.util.SystemUtil;
|
|||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.DraftClientMessage;
|
||||
import mage.view.DraftView;
|
||||
import mage.view.GameClientMessage;
|
||||
|
|
@ -279,12 +280,12 @@ public class User {
|
|||
}
|
||||
|
||||
public void sideboard(final Deck deck, final UUID tableId, final int time, boolean limited) {
|
||||
ServerMain.getInstance().sideboard(sessionId, tableId, new TableClientMessage(deck, tableId, time, limited));
|
||||
ServerMain.getInstance().sideboard(sessionId, tableId, new DeckView(deck), time, limited);
|
||||
sideboarding.put(tableId, deck);
|
||||
}
|
||||
|
||||
public void construct(final Deck deck, final UUID tableId, final int time) {
|
||||
ServerMain.getInstance().construct(sessionId, tableId, new TableClientMessage(deck, tableId, time));
|
||||
ServerMain.getInstance().construct(sessionId, tableId, new DeckView(deck), time);
|
||||
}
|
||||
|
||||
public void tournamentStarted(final UUID tournamentId, final UUID playerId) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue