mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 12:31:59 -08:00
added getCards method - fixes update database issue
This commit is contained in:
parent
b9df27c292
commit
c0e90b9d35
8 changed files with 68 additions and 2 deletions
|
|
@ -776,7 +776,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
private void updateDatabase(boolean forceDBComparison, ServerState serverState) {
|
||||
long cardDBVersion = CardRepository.instance.getContentVersionFromDB();
|
||||
if (forceDBComparison || serverState.getCardsContentVersion() > cardDBVersion) {
|
||||
List<String> classNames = CardRepository.instance.getClassNames();
|
||||
List<String> classNames = client.getCards(); //CardRepository.instance.getClassNames();
|
||||
List<CardInfo> cards = CardRepository.instance.getMissingCards(classNames);
|
||||
CardRepository.instance.addCards(cards);
|
||||
CardRepository.instance.setContentVersion(serverState.getCardsContentVersion());
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public class Client {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private class ClientInitializer extends ChannelInitializer<SocketChannel> {
|
||||
|
||||
@Override
|
||||
|
|
@ -196,6 +196,15 @@ public class Client {
|
|||
return client.getServerState();
|
||||
}
|
||||
|
||||
public List<String> getCards() {
|
||||
try {
|
||||
return clientMessageHandler.getCards();
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error getting cards", ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean submitDeck(UUID tableId, DeckCardLists deckCardLists) {
|
||||
try {
|
||||
return clientMessageHandler.submitDeck(tableId, deckCardLists);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import org.mage.network.messages.requests.ChatRoomIdRequest;
|
|||
import org.mage.network.messages.requests.CheatRequest;
|
||||
import org.mage.network.messages.requests.CreateTableRequest;
|
||||
import org.mage.network.messages.requests.CreateTournamentRequest;
|
||||
import org.mage.network.messages.requests.GetCardsRequest;
|
||||
import org.mage.network.messages.requests.GetRoomRequest;
|
||||
import org.mage.network.messages.requests.GetTournamentChatIdRequest;
|
||||
import org.mage.network.messages.requests.GetTournamentRequest;
|
||||
|
|
@ -99,6 +100,12 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
|
|||
return stringListQueue.take();
|
||||
}
|
||||
|
||||
public List<String> getCards() throws Exception {
|
||||
stringListQueue.clear();
|
||||
ctx.writeAndFlush(new GetCardsRequest()).addListener(WriteListener.getInstance());
|
||||
return stringListQueue.take();
|
||||
}
|
||||
|
||||
public UUID getChatRoomId(UUID roomId) throws Exception {
|
||||
uuidQueue.clear();
|
||||
ctx.writeAndFlush(new ChatRoomIdRequest(roomId)).addListener(WriteListener.getInstance());
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ public interface MageServer {
|
|||
ServerState getServerState();
|
||||
|
||||
List<String> getServerMessages();
|
||||
List<String> getCards();
|
||||
RoomView getRoom(UUID roomId);
|
||||
TableView createTable(String sessionId, UUID roomId, MatchOptions options);
|
||||
boolean joinTable(String sessionId, UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
package org.mage.network.messages.requests;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.interfaces.MageServer;
|
||||
import org.mage.network.messages.responses.GetCardsResponse;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class GetCardsRequest extends ServerRequest {
|
||||
|
||||
@Override
|
||||
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
|
||||
ctx.writeAndFlush(new GetCardsResponse(server.getCards())).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package org.mage.network.messages.responses;
|
||||
|
||||
import java.util.List;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
import org.mage.network.messages.ClientMessage;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class GetCardsResponse extends ClientMessage {
|
||||
|
||||
private List<String> cards;
|
||||
|
||||
public GetCardsResponse(List<String> cards) {
|
||||
this.cards = cards;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveStringList(cards);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -899,6 +899,11 @@ public class ServerMain implements MageServer {
|
|||
// }
|
||||
//
|
||||
|
||||
@Override
|
||||
public List<String> getCards() {
|
||||
return CardRepository.instance.getClassNames();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getServerMessages() {
|
||||
return ServerMessagesUtil.getInstance().getMessages();
|
||||
|
|
|
|||
|
|
@ -282,6 +282,7 @@ public enum CardRepository {
|
|||
return null;
|
||||
}
|
||||
|
||||
//TODO: cache the results of this query
|
||||
public List<String> getClassNames() {
|
||||
List<String> names = new ArrayList<>();
|
||||
try {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue