diff --git a/Mage.Common/src/mage/remote/Session.java b/Mage.Common/src/mage/remote/Session.java index 1a1030ad77d..8dd8b80f29b 100644 --- a/Mage.Common/src/mage/remote/Session.java +++ b/Mage.Common/src/mage/remote/Session.java @@ -28,150 +28,15 @@ package mage.remote; -import mage.cards.decks.DeckCardLists; -import mage.game.match.MatchOptions; -import mage.game.tournament.TournamentOptions; import mage.interfaces.Action; -import mage.view.*; - -import java.util.Collection; -import java.util.List; -import java.util.UUID; +import mage.remote.interfaces.*; /** * Extracted interface for SessionImpl class. * * @author noxx */ -public interface Session { - - boolean connect(Connection connection); - - boolean stopConnecting(); - - boolean connect(); - - void disconnect(boolean showMessage); - - boolean sendFeedback(String title, String type, String message, String email); - - boolean isConnected(); - - boolean ping(); - - String[] getPlayerTypes(); - - List getGameTypes(); - - String[] getDeckTypes(); - - List getTournamentTypes(); - - boolean isTestMode(); - - UUID getMainRoomId(); - - UUID getRoomChatId(UUID roomId); - - UUID getTableChatId(UUID tableId); - - UUID getGameChatId(UUID gameId); - - TableView getTable(UUID roomId, UUID tableId); - - boolean watchTable(UUID roomId, UUID tableId); - - boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList); - - boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill); - - Collection getTables(UUID roomId) throws MageRemoteException; - - Collection getFinishedMatches(UUID roomId) throws MageRemoteException; - - Collection getConnectedPlayers(UUID roomId) throws MageRemoteException; - - TournamentView getTournament(UUID tournamentId) throws MageRemoteException; - - UUID getTournamentChatId(UUID tournamentId); - - boolean sendPlayerUUID(UUID gameId, UUID data); - - boolean sendPlayerBoolean(UUID gameId, boolean data); - - boolean sendPlayerInteger(UUID gameId, int data); - - boolean sendPlayerString(UUID gameId, String data); - - DraftPickView sendCardPick(UUID draftId, UUID cardId); - - boolean joinChat(UUID chatId); - - boolean leaveChat(UUID chatId); - - boolean sendChatMessage(UUID chatId, String message); - - boolean sendBroadcastMessage(String message); - - boolean joinGame(UUID gameId); - - boolean joinDraft(UUID draftId); - - boolean joinTournament(UUID tournamentId); - - boolean watchGame(UUID gameId); - - boolean replayGame(UUID gameId); - - TableView createTable(UUID roomId, MatchOptions matchOptions); - - TableView createTournamentTable(UUID roomId, TournamentOptions tournamentOptions); - - boolean isTableOwner(UUID roomId, UUID tableId); - - boolean removeTable(UUID roomId, UUID tableId); - - boolean removeTable(UUID tableId); - - boolean swapSeats(UUID roomId, UUID tableId, int seatNum1, int seatNum2); - - boolean leaveTable(UUID roomId, UUID tableId); - - boolean startGame(UUID roomId, UUID tableId); - - boolean startTournament(UUID roomId, UUID tableId); - - boolean startChallenge(UUID roomId, UUID tableId, UUID challengeId); - - boolean submitDeck(UUID tableId, DeckCardLists deck); - - boolean updateDeck(UUID tableId, DeckCardLists deck); - - boolean concedeGame(UUID gameId); - - boolean stopWatching(UUID gameId); - - boolean startReplay(UUID gameId); - - boolean stopReplay(UUID gameId); - - boolean nextPlay(UUID gameId); - - boolean previousPlay(UUID gameId); - - boolean skipForward(UUID gameId, int moves); - - boolean cheat(UUID gameId, UUID playerId, DeckCardLists deckList); - - List getUsers(); - - List getServerMessages(); - - boolean disconnectUser(String userSessionId); - - String getUserName(); - - boolean updateAvatar(int avatarId); +public interface Session extends ClientData, Connect, GamePlay, GameTypes, ServerState, ChatSession, Feedback, PlayerActions, Replays, Testable { void setEmbeddedMageServerAction(Action embeddedMageServerAction); } diff --git a/Mage.Common/src/mage/remote/interfaces/ChatSession.java b/Mage.Common/src/mage/remote/interfaces/ChatSession.java new file mode 100644 index 00000000000..41b4062a339 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/ChatSession.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import java.util.UUID; + +/** + * @author noxx + */ +public interface ChatSession { + + UUID getRoomChatId(UUID roomId); + + UUID getTableChatId(UUID tableId); + + UUID getGameChatId(UUID gameId); + + UUID getTournamentChatId(UUID tournamentId); + + boolean joinChat(UUID chatId); + + boolean leaveChat(UUID chatId); + + boolean sendChatMessage(UUID chatId, String message); + + boolean sendBroadcastMessage(String message); +} diff --git a/Mage.Common/src/mage/remote/interfaces/ClientData.java b/Mage.Common/src/mage/remote/interfaces/ClientData.java new file mode 100644 index 00000000000..bb773befbc5 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/ClientData.java @@ -0,0 +1,38 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +/** + * @author noxx + */ +public interface ClientData { + + String getUserName(); + + boolean updateAvatar(int avatarId); +} diff --git a/Mage.Common/src/mage/remote/interfaces/Connect.java b/Mage.Common/src/mage/remote/interfaces/Connect.java new file mode 100644 index 00000000000..b21a435c1a5 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/Connect.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import mage.remote.Connection; + +/** + * @author noxx + */ +public interface Connect { + + boolean connect(Connection connection); + + boolean stopConnecting(); + + boolean connect(); + + void disconnect(boolean showMessage); + + boolean ping(); + + boolean isConnected(); + + boolean disconnectUser(String userSessionId); +} diff --git a/Mage.Common/src/mage/remote/interfaces/Feedback.java b/Mage.Common/src/mage/remote/interfaces/Feedback.java new file mode 100644 index 00000000000..a5ef9a3098c --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/Feedback.java @@ -0,0 +1,35 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +/** + * @author noxx + */ +public interface Feedback { + boolean sendFeedback(String title, String type, String message, String email); +} diff --git a/Mage.Common/src/mage/remote/interfaces/GamePlay.java b/Mage.Common/src/mage/remote/interfaces/GamePlay.java new file mode 100644 index 00000000000..55865592054 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/GamePlay.java @@ -0,0 +1,61 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import mage.cards.decks.DeckCardLists; +import mage.view.DraftPickView; + +import java.util.UUID; + +/** + * @author noxx + */ +public interface GamePlay { + + boolean startGame(UUID roomId, UUID tableId); + + boolean watchGame(UUID gameId); + + boolean stopWatching(UUID gameId); + + boolean sendPlayerUUID(UUID gameId, UUID data); + + boolean sendPlayerBoolean(UUID gameId, boolean data); + + boolean sendPlayerInteger(UUID gameId, int data); + + boolean sendPlayerString(UUID gameId, String data); + + boolean concedeGame(UUID gameId); + + boolean submitDeck(UUID tableId, DeckCardLists deck); + + boolean updateDeck(UUID tableId, DeckCardLists deck); + + DraftPickView sendCardPick(UUID draftId, UUID cardId); +} diff --git a/Mage.Common/src/mage/remote/interfaces/GameTypes.java b/Mage.Common/src/mage/remote/interfaces/GameTypes.java new file mode 100644 index 00000000000..b85178b3561 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/GameTypes.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import mage.view.GameTypeView; +import mage.view.TournamentTypeView; + +import java.util.List; + +/** + * @author noxx + */ +public interface GameTypes { + + String[] getPlayerTypes(); + + List getGameTypes(); + + String[] getDeckTypes(); + + List getTournamentTypes(); +} diff --git a/Mage.Common/src/mage/remote/interfaces/PlayerActions.java b/Mage.Common/src/mage/remote/interfaces/PlayerActions.java new file mode 100644 index 00000000000..d641fdfafd4 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/PlayerActions.java @@ -0,0 +1,77 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import mage.cards.decks.DeckCardLists; +import mage.game.match.MatchOptions; +import mage.game.tournament.TournamentOptions; +import mage.remote.MageRemoteException; +import mage.view.TableView; +import mage.view.TournamentView; + +import java.util.UUID; + +/** + * @author noxx + */ +public interface PlayerActions { + + TableView createTable(UUID roomId, MatchOptions matchOptions); + + TableView createTournamentTable(UUID roomId, TournamentOptions tournamentOptions); + + boolean removeTable(UUID roomId, UUID tableId); + + boolean removeTable(UUID tableId); + + boolean joinGame(UUID gameId); + + boolean joinDraft(UUID draftId); + + boolean joinTournament(UUID tournamentId); + + boolean leaveTable(UUID roomId, UUID tableId); + + boolean swapSeats(UUID roomId, UUID tableId, int seatNum1, int seatNum2); + + boolean startTournament(UUID roomId, UUID tableId); + + boolean startChallenge(UUID roomId, UUID tableId, UUID challengeId); + + boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill); + + boolean watchTable(UUID roomId, UUID tableId); + + boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList); + + TableView getTable(UUID roomId, UUID tableId); + + TournamentView getTournament(UUID tournamentId) throws MageRemoteException; + + boolean isTableOwner(UUID roomId, UUID tableId); +} diff --git a/Mage.Common/src/mage/remote/interfaces/Replays.java b/Mage.Common/src/mage/remote/interfaces/Replays.java new file mode 100644 index 00000000000..23884dbdb48 --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/Replays.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import java.util.UUID; + +/** + * @author noxx + */ +public interface Replays { + + boolean replayGame(UUID gameId); + + boolean startReplay(UUID gameId); + + boolean stopReplay(UUID gameId); + + boolean nextPlay(UUID gameId); + + boolean previousPlay(UUID gameId); + + boolean skipForward(UUID gameId, int moves); +} diff --git a/Mage.Common/src/mage/remote/interfaces/ServerState.java b/Mage.Common/src/mage/remote/interfaces/ServerState.java new file mode 100644 index 00000000000..eb82685fa2d --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/ServerState.java @@ -0,0 +1,56 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import mage.remote.MageRemoteException; +import mage.view.MatchView; +import mage.view.TableView; +import mage.view.UserView; + +import java.util.Collection; +import java.util.List; +import java.util.UUID; + +/** + * @author noxx + */ +public interface ServerState { + + UUID getMainRoomId(); + + List getUsers(); + + Collection getConnectedPlayers(UUID roomId) throws MageRemoteException; + + List getServerMessages(); + + Collection getTables(UUID roomId) throws MageRemoteException; + + Collection getFinishedMatches(UUID roomId) throws MageRemoteException; + +} diff --git a/Mage.Common/src/mage/remote/interfaces/Testable.java b/Mage.Common/src/mage/remote/interfaces/Testable.java new file mode 100644 index 00000000000..b7ac4382dec --- /dev/null +++ b/Mage.Common/src/mage/remote/interfaces/Testable.java @@ -0,0 +1,42 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.remote.interfaces; + +import mage.cards.decks.DeckCardLists; + +import java.util.UUID; + +/** + * @author noxx + */ +public interface Testable { + + boolean isTestMode(); + + boolean cheat(UUID gameId, UUID playerId, DeckCardLists deckList); +}