mirror of
https://github.com/magefree/mage.git
synced 2025-12-27 14:02:05 -08:00
add more methods + refactored some packages
This commit is contained in:
parent
95e9623186
commit
72a301d604
83 changed files with 693 additions and 268 deletions
|
|
@ -27,59 +27,22 @@
|
|||
*/
|
||||
package mage.client;
|
||||
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.cards.repository.CardCriteria;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.cards.repository.CardRepository;
|
||||
import mage.client.cards.BigCard;
|
||||
import mage.client.chat.ChatPanel;
|
||||
import mage.client.components.MageComponents;
|
||||
import mage.client.components.MageJDesktop;
|
||||
import mage.client.components.MageRoundPane;
|
||||
import mage.client.components.MageUI;
|
||||
import mage.client.components.ext.dlg.DialogManager;
|
||||
import mage.client.components.tray.MageTray;
|
||||
import mage.client.constants.Constants.DeckEditorMode;
|
||||
import mage.client.deckeditor.DeckEditorPane;
|
||||
import mage.client.deckeditor.collection.viewer.CollectionViewerPane;
|
||||
import mage.client.dialog.*;
|
||||
import mage.client.draft.DraftPane;
|
||||
import mage.client.draft.DraftPanel;
|
||||
import mage.client.game.GamePane;
|
||||
import mage.client.game.GamePanel;
|
||||
import mage.client.plugins.impl.Plugins;
|
||||
import mage.client.remote.CallbackClientImpl;
|
||||
import mage.client.table.TablesPane;
|
||||
import mage.client.tournament.TournamentPane;
|
||||
import mage.client.util.EDTExceptionHandler;
|
||||
import mage.client.util.SettingsManager;
|
||||
import mage.client.util.SystemUtil;
|
||||
import mage.client.util.audio.MusicPlayer;
|
||||
import mage.client.util.gui.ArrowBuilder;
|
||||
import mage.client.util.stats.UpdateMemUsageTask;
|
||||
import mage.components.ImagePanel;
|
||||
//import mage.interfaces.MageClient;
|
||||
import mage.interfaces.callback.CallbackClient;
|
||||
import mage.interfaces.callback.ClientCallback;
|
||||
import mage.remote.Connection;
|
||||
import mage.remote.Connection.ProxyType;
|
||||
//import mage.remote.Session;
|
||||
//import mage.remote.SessionImpl;
|
||||
import mage.utils.MageVersion;
|
||||
import mage.view.GameEndView;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.card.arcane.ManaSymbols;
|
||||
import org.mage.plugins.card.constants.Constants;
|
||||
import org.mage.plugins.card.images.DownloadPictures;
|
||||
import org.mage.plugins.card.utils.impl.ImageManagerImpl;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.*;
|
||||
import javax.swing.JToolBar.Separator;
|
||||
import javax.swing.event.PopupMenuEvent;
|
||||
import javax.swing.event.PopupMenuListener;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.AlphaComposite;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.SplashScreen;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.beans.PropertyVetoException;
|
||||
import java.io.IOException;
|
||||
|
|
@ -91,28 +54,92 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.prefs.Preferences;
|
||||
import static mage.client.dialog.PreferencesDialog.KEY_CONNECT_FLAG;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.AbstractButton;
|
||||
import javax.swing.Box;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JDesktopPane;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JInternalFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JLayeredPane;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.JToggleButton;
|
||||
import javax.swing.JToolBar.Separator;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.event.PopupMenuEvent;
|
||||
import javax.swing.event.PopupMenuListener;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.cards.repository.CardCriteria;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.cards.repository.CardRepository;
|
||||
import mage.cards.repository.ExpansionInfo;
|
||||
import mage.cards.repository.ExpansionRepository;
|
||||
import mage.client.cards.BigCard;
|
||||
import mage.client.chat.ChatPanel;
|
||||
import mage.client.components.MageComponents;
|
||||
import mage.client.components.MageJDesktop;
|
||||
import mage.client.components.MageRoundPane;
|
||||
import mage.client.components.MageUI;
|
||||
import mage.client.components.ext.dlg.DialogManager;
|
||||
import mage.client.components.tray.MageTray;
|
||||
import mage.client.constants.Constants.DeckEditorMode;
|
||||
import mage.client.deckeditor.DeckEditorPane;
|
||||
import mage.client.deckeditor.collection.viewer.CollectionViewerPane;
|
||||
import mage.client.dialog.AboutDialog;
|
||||
import mage.client.dialog.ConnectDialog;
|
||||
import mage.client.dialog.ErrorDialog;
|
||||
import mage.client.dialog.FeedbackDialog;
|
||||
import mage.client.dialog.GameEndDialog;
|
||||
import mage.client.dialog.PreferencesDialog;
|
||||
import mage.client.dialog.TableWaitingDialog;
|
||||
import mage.client.dialog.UserRequestDialog;
|
||||
import mage.client.draft.DraftPane;
|
||||
import mage.client.draft.DraftPanel;
|
||||
import mage.client.game.GamePane;
|
||||
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.EDTExceptionHandler;
|
||||
import mage.client.util.GameManager;
|
||||
import mage.client.util.audio.AudioManager;
|
||||
import mage.game.Table;
|
||||
import mage.client.util.SettingsManager;
|
||||
import mage.client.util.SystemUtil;
|
||||
import mage.client.util.audio.MusicPlayer;
|
||||
import mage.client.util.gui.ArrowBuilder;
|
||||
import mage.client.util.stats.UpdateMemUsageTask;
|
||||
import mage.components.ImagePanel;
|
||||
import mage.interfaces.ServerState;
|
||||
import mage.remote.Connection;
|
||||
import mage.remote.Connection.ProxyType;
|
||||
import mage.utils.MageVersion;
|
||||
import mage.view.AbilityPickerView;
|
||||
import mage.view.CardsView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
import mage.view.UserRequestMessage;
|
||||
import net.java.truevfs.access.TArchiveDetector;
|
||||
import net.java.truevfs.access.TConfig;
|
||||
import net.java.truevfs.kernel.spec.FsAccessOption;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.card.arcane.ManaSymbols;
|
||||
import org.mage.network.Client;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.MessageType;
|
||||
import org.mage.network.messages.MessageType;
|
||||
import org.mage.plugins.card.constants.Constants;
|
||||
import org.mage.plugins.card.images.DownloadPictures;
|
||||
import org.mage.plugins.card.utils.impl.ImageManagerImpl;
|
||||
|
||||
/**
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
|
|
@ -1581,6 +1608,43 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
public void userRequestDialog(UUID gameId, UserRequestMessage userRequestMessage) {
|
||||
showUserRequestDialog(userRequestMessage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameUpdate(UUID gameId, GameView gameView) {
|
||||
GamePanel panel = MageFrame.getGame(gameId);
|
||||
if (panel != null) {
|
||||
panel.updateGame(gameView);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameInform(UUID gameId, GameClientMessage message) {
|
||||
GamePanel panel = MageFrame.getGame(gameId);
|
||||
if (panel != null) {
|
||||
panel.inform(message.getMessage(), message.getGameView());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameInformPersonal(UUID gameId, GameClientMessage message) {
|
||||
GamePanel panel = MageFrame.getGame(gameId);
|
||||
if (panel != null) {
|
||||
JOptionPane.showMessageDialog(panel, message.getMessage(), "Game message", JOptionPane.INFORMATION_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameOver(UUID gameId, String message) {
|
||||
GamePanel panel = MageFrame.getGame(gameId);
|
||||
if (panel != null) {
|
||||
panel.endMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameError(UUID gameId, String message) {
|
||||
this.showErrorDialog("Game Error", message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,32 +33,19 @@ import javax.swing.JOptionPane;
|
|||
import javax.swing.SwingUtilities;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.client.MageFrame;
|
||||
import mage.client.chat.ChatPanel;
|
||||
import static mage.client.chat.ChatPanel.ChatType.TABLES;
|
||||
import static mage.client.chat.ChatPanel.ChatType.TOURNAMENT;
|
||||
import mage.client.constants.Constants.DeckEditorMode;
|
||||
import mage.client.draft.DraftPanel;
|
||||
import mage.client.game.GamePanel;
|
||||
import mage.client.plugins.impl.Plugins;
|
||||
import mage.client.util.DeckUtil;
|
||||
import mage.client.util.GameManager;
|
||||
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.AbilityPickerView;
|
||||
import mage.view.ChatMessage;
|
||||
import mage.view.ChatMessage.MessageType;
|
||||
import static mage.view.ChatMessage.SoundToPlay.PlayerLeft;
|
||||
import static mage.view.ChatMessage.SoundToPlay.PlayerQuitTournament;
|
||||
import static mage.view.ChatMessage.SoundToPlay.PlayerSubmittedDeck;
|
||||
import static mage.view.ChatMessage.SoundToPlay.PlayerWhispered;
|
||||
import mage.view.DeckView;
|
||||
import mage.view.DraftClientMessage;
|
||||
import mage.view.DraftView;
|
||||
import mage.view.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
import mage.view.TableClientMessage;
|
||||
import mage.view.UserRequestMessage;
|
||||
|
|
@ -195,16 +182,16 @@ public class CallbackClientImpl implements CallbackClient {
|
|||
// panel.init((GameView) callback.getData());
|
||||
// } break;
|
||||
// }
|
||||
case "gameOver":
|
||||
{
|
||||
GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
if (panel != null) {
|
||||
panel.endMessage((String) callback.getData());
|
||||
} break;
|
||||
}
|
||||
case "gameError":
|
||||
frame.showErrorDialog("Game Error", (String) callback.getData());
|
||||
break;
|
||||
// case "gameOver":
|
||||
// {
|
||||
// GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
// if (panel != null) {
|
||||
// panel.endMessage((String) callback.getData());
|
||||
// } break;
|
||||
// }
|
||||
// case "gameError":
|
||||
// frame.showErrorDialog("Game Error", (String) callback.getData());
|
||||
// break;
|
||||
// case "gameAsk":
|
||||
// {
|
||||
// GameClientMessage message = (GameClientMessage) callback.getData();
|
||||
|
|
@ -281,13 +268,13 @@ public class CallbackClientImpl implements CallbackClient {
|
|||
// panel.getAmount(message.getMin(), message.getMax(), message.getMessage());
|
||||
// } break;
|
||||
// }
|
||||
case "gameUpdate":
|
||||
{
|
||||
GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
if (panel != null) {
|
||||
panel.updateGame((GameView) callback.getData());
|
||||
} break;
|
||||
}
|
||||
// case "gameUpdate":
|
||||
// {
|
||||
// GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
// if (panel != null) {
|
||||
// panel.updateGame((GameView) callback.getData());
|
||||
// } break;
|
||||
// }
|
||||
// case "endGameInfo":
|
||||
// MageFrame.getInstance().showGameEndDialog((GameEndView) callback.getData());
|
||||
// break;
|
||||
|
|
@ -296,31 +283,31 @@ public class CallbackClientImpl implements CallbackClient {
|
|||
if (messageData.size() == 2) {
|
||||
JOptionPane.showMessageDialog(null, messageData.get(1), messageData.get(0), JOptionPane.WARNING_MESSAGE);
|
||||
} break;
|
||||
case "gameInform":
|
||||
if (callback.getMessageId() > gameInformMessageId) {
|
||||
{
|
||||
GameClientMessage message = (GameClientMessage) callback.getData();
|
||||
GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
if (panel != null) {
|
||||
panel.inform(message.getMessage(), message.getGameView());
|
||||
}
|
||||
}
|
||||
// no longer needed because phase skip handling on server side now
|
||||
} else {
|
||||
logger.warn(new StringBuilder("message out of sequence - ignoring").append("MessageId = ").append(callback.getMessageId()).append(" method = ").append(callback.getMethod()));
|
||||
//logger.warn("message out of sequence - ignoring");
|
||||
}
|
||||
gameInformMessageId = messageId;
|
||||
break;
|
||||
case "gameInformPersonal":
|
||||
{
|
||||
GameClientMessage message = (GameClientMessage) callback.getData();
|
||||
GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
if (panel != null) {
|
||||
JOptionPane.showMessageDialog(panel, message.getMessage(), "Game message",
|
||||
JOptionPane.INFORMATION_MESSAGE);
|
||||
} break;
|
||||
}
|
||||
// case "gameInform":
|
||||
// if (callback.getMessageId() > gameInformMessageId) {
|
||||
// {
|
||||
// GameClientMessage message = (GameClientMessage) callback.getData();
|
||||
// GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
// if (panel != null) {
|
||||
// panel.inform(message.getMessage(), message.getGameView());
|
||||
// }
|
||||
// }
|
||||
//// no longer needed because phase skip handling on server side now
|
||||
// } else {
|
||||
// logger.warn(new StringBuilder("message out of sequence - ignoring").append("MessageId = ").append(callback.getMessageId()).append(" method = ").append(callback.getMethod()));
|
||||
// //logger.warn("message out of sequence - ignoring");
|
||||
// }
|
||||
// gameInformMessageId = messageId;
|
||||
// break;
|
||||
// case "gameInformPersonal":
|
||||
// {
|
||||
// GameClientMessage message = (GameClientMessage) callback.getData();
|
||||
// GamePanel panel = MageFrame.getGame(callback.getObjectId());
|
||||
// if (panel != null) {
|
||||
// JOptionPane.showMessageDialog(panel, message.getMessage(), "Game message",
|
||||
// JOptionPane.INFORMATION_MESSAGE);
|
||||
// } break;
|
||||
// }
|
||||
case "sideboard":
|
||||
{
|
||||
TableClientMessage message = (TableClientMessage) callback.getData();
|
||||
|
|
|
|||
|
|
@ -17,17 +17,17 @@ import org.junit.Ignore;
|
|||
import javax.swing.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
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.GameClientMessage;
|
||||
import mage.view.GameEndView;
|
||||
import mage.view.GameView;
|
||||
import mage.view.UserRequestMessage;
|
||||
import org.mage.network.Client;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.MessageType;
|
||||
import org.mage.network.messages.MessageType;
|
||||
|
||||
/**
|
||||
* Test for emulating the connection from multi mage clients.
|
||||
|
|
@ -203,6 +203,31 @@ public class MultiConnectTest {
|
|||
public void userRequestDialog(UUID gameId, UserRequestMessage userRequestMessage) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameUpdate(UUID gameId, GameView gameView) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameInform(UUID gameId, GameClientMessage message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameInformPersonal(UUID gameId, GameClientMessage message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameOver(UUID gameId, String message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameError(UUID gameId, String message) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] argv) throws Exception {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue