diff --git a/Mage.Common/src/mage/interfaces/callback/CallbackClientDaemon.java b/Mage.Common/src/mage/interfaces/callback/CallbackClientDaemon.java index 0dc97b365b3..daf76cbb5d4 100644 --- a/Mage.Common/src/mage/interfaces/callback/CallbackClientDaemon.java +++ b/Mage.Common/src/mage/interfaces/callback/CallbackClientDaemon.java @@ -31,6 +31,9 @@ package mage.interfaces.callback; import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.logging.Level; +import java.util.logging.Logger; +import mage.util.Logging; /** * @@ -38,6 +41,8 @@ import java.util.concurrent.Executors; */ public class CallbackClientDaemon extends Thread { + private final static Logger logger = Logging.getLogger(CallbackClientDaemon.class.getName()); + private static ExecutorService callbackExecutor = Executors.newCachedThreadPool(); private final CallbackClient client; private final CallbackServer server; @@ -60,13 +65,18 @@ public class CallbackClientDaemon extends Thread { new Runnable() { @Override public void run() { - client.processCallback(callback); + try { + client.processCallback(callback); + } + catch (Exception ex) { + logger.log(Level.SEVERE, null, ex); + } } } ); } } catch(Exception ex) { - System.out.print(ex.getMessage()); + logger.log(Level.SEVERE, null, ex); } } } diff --git a/Mage.Common/src/mage/view/CardView.java b/Mage.Common/src/mage/view/CardView.java index 9d8f1a4828e..e0ee9051411 100644 --- a/Mage.Common/src/mage/view/CardView.java +++ b/Mage.Common/src/mage/view/CardView.java @@ -37,6 +37,8 @@ import mage.Constants.Rarity; import mage.ObjectColor; import mage.cards.Card; import mage.game.permanent.Permanent; +import mage.game.permanent.PermanentToken; +import mage.game.permanent.token.Token; /** * @@ -77,15 +79,39 @@ public class CardView implements Serializable { this.superTypes = card.getSupertype(); this.color = card.getColor(); this.manaCost = card.getManaCost().getSymbols(); - this.art = card.getArt(); - this.rarity = card.getRarity(); - this.expansionSetCode = card.getExpansionSetCode(); + if (card instanceof PermanentToken) { + this.art = ""; + this.rarity = Rarity.NA; + this.expansionSetCode = ""; + } + else { + this.art = card.getArt(); + this.rarity = card.getRarity(); + this.expansionSetCode = card.getExpansionSetCode(); + } } protected CardView() { } + CardView(Token token) { + this.id = token.getId(); + this.name = token.getName(); + this.rules = formatRules(token.getAbilities().getRules()); + this.power = token.getPower().toString(); + this.toughness = token.getToughness().toString(); + this.loyalty = token.getLoyalty().toString(); + this.cardTypes = token.getCardType(); + this.subTypes = token.getSubtype(); + this.superTypes = token.getSupertype(); + this.color = token.getColor(); + this.manaCost = token.getManaCost().getSymbols(); + this.art = ""; + this.rarity = Rarity.NA; + this.expansionSetCode = ""; + } + protected List formatRules(List rules) { List newRules = new ArrayList(); for (String rule: rules) { diff --git a/Mage.Common/src/mage/view/PermanentView.java b/Mage.Common/src/mage/view/PermanentView.java index 56dc0b93824..05b22c5059a 100644 --- a/Mage.Common/src/mage/view/PermanentView.java +++ b/Mage.Common/src/mage/view/PermanentView.java @@ -34,6 +34,7 @@ import java.util.UUID; import mage.cards.Card; import mage.counters.Counter; import mage.game.permanent.Permanent; +import mage.game.permanent.PermanentToken; /** * @@ -67,7 +68,12 @@ public class PermanentView extends CardView { counters.add(new CounterView(counter)); } } - original = new CardView(card); + if (permanent instanceof PermanentToken) { + original = new CardView(((PermanentToken)permanent).getToken()); + } + else { + original = new CardView(card); + } } public boolean isTapped() {