diff --git a/forge-game/pom.xml b/forge-game/pom.xml
index c1bfd257cb5..ce71344eab3 100644
--- a/forge-game/pom.xml
+++ b/forge-game/pom.xml
@@ -32,7 +32,7 @@
io.sentry
sentry-logback
- 5.7.0
+ 7.14.0
diff --git a/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java
index 4cb107a8b9c..d3ccfa091da 100644
--- a/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java
+++ b/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java
@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import forge.util.Lang;
+import io.sentry.Hint;
import org.apache.commons.lang3.StringUtils;
import forge.card.ColorSet;
@@ -240,7 +241,9 @@ public class ManaEffect extends SpellAbilityEffect {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", card.getName());
bread.setData("SA", sa.toString());
- Sentry.addBreadcrumb(bread, sa);
+ Hint hint = new Hint();
+ hint.set(sa.toString(), sa);
+ Sentry.addBreadcrumb(bread, hint);
continue;
}
diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java
index d5f73de19f3..8ff9161e9c2 100644
--- a/forge-game/src/main/java/forge/game/card/Card.java
+++ b/forge-game/src/main/java/forge/game/card/Card.java
@@ -56,6 +56,7 @@ import forge.util.*;
import forge.util.collect.FCollection;
import forge.util.collect.FCollectionView;
import io.sentry.Breadcrumb;
+import io.sentry.Hint;
import io.sentry.Sentry;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.mutable.MutableBoolean;
@@ -2613,7 +2614,9 @@ public class Card extends GameEntity implements Comparable, IHasSVars {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", this.getName());
bread.setData("Keyword", keyword);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.getName(), this);
+ Sentry.addBreadcrumb(bread, hint);
throw new RuntimeException("Error in Card " + this.getName() + " with Keyword " + keyword, e);
}
@@ -3184,7 +3187,9 @@ public class Card extends GameEntity implements Comparable, IHasSVars {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", this.getName());
bread.setData("Keyword", keyword);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.getName(), this);
+ Sentry.addBreadcrumb(bread, hint);
throw new RuntimeException("Error in Card " + this.getName() + " with Keyword " + keyword, e);
}
diff --git a/forge-game/src/main/java/forge/game/card/CardCopyService.java b/forge-game/src/main/java/forge/game/card/CardCopyService.java
index d9967e61a45..0b7b45491db 100644
--- a/forge-game/src/main/java/forge/game/card/CardCopyService.java
+++ b/forge-game/src/main/java/forge/game/card/CardCopyService.java
@@ -10,6 +10,7 @@ import forge.game.ability.ApiType;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import io.sentry.Breadcrumb;
+import io.sentry.Hint;
import io.sentry.Sentry;
import java.util.List;
@@ -214,7 +215,9 @@ public class CardCopyService {
bread.setData("Card", copyFrom.getName());
bread.setData("CardState", copyFrom.getCurrentStateName().toString());
bread.setData("Player", copyFrom.getController().getName());
- Sentry.addBreadcrumb(bread, copyFrom);
+ Hint hint = new Hint();
+ hint.set(copyFrom.getName(), copyFrom);
+ Sentry.addBreadcrumb(bread, hint);
final Card newCopy = new Card(copyFrom.getId(), copyFrom.getPaperCard(), copyFrom.getGame(), null);
cachedMap.put(copyFrom.getId(), newCopy);
diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java
index 2bd6b3807cd..4e8ae55d172 100644
--- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java
+++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java
@@ -51,6 +51,7 @@ import forge.util.Localizer;
import forge.util.TextUtil;
import io.sentry.Breadcrumb;
import io.sentry.Sentry;
+import io.sentry.Hint;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
@@ -542,7 +543,9 @@ public class CardFactoryUtil {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", card.getName());
bread.setData("Ability", rawAbility);
- Sentry.addBreadcrumb(bread, card);
+ Hint hint = new Hint();
+ hint.set(card.getName(), card);
+ Sentry.addBreadcrumb(bread, hint);
// rethrow the exception with card Name for the user
throw new RuntimeException("crash in raw Ability, check card script of " + card.getName(), e);
diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java
index ff7c0ade289..5d45082881f 100644
--- a/forge-game/src/main/java/forge/game/card/CardState.java
+++ b/forge-game/src/main/java/forge/game/card/CardState.java
@@ -50,6 +50,7 @@ import forge.game.trigger.Trigger;
import forge.util.collect.FCollection;
import forge.util.collect.FCollectionView;
import io.sentry.Breadcrumb;
+import io.sentry.Hint;
import io.sentry.Sentry;
public class CardState extends GameObject implements IHasSVars {
@@ -303,7 +304,9 @@ public class CardState extends GameObject implements IHasSVars {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", card.getName());
bread.setData("Keyword", s);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.name, this);
+ Sentry.addBreadcrumb(bread, hint);
//rethrow
throw new RuntimeException("Error in Keyword " + s + " for card " + card.getName(), e);
diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java
index efd94ef8e8e..6f9aaee18a1 100644
--- a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java
+++ b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java
@@ -17,6 +17,7 @@ import forge.game.staticability.StaticAbility;
import forge.game.trigger.Trigger;
import forge.util.Lang;
import io.sentry.Breadcrumb;
+import io.sentry.Hint;
import io.sentry.Sentry;
public abstract class KeywordInstance> implements KeywordInterface {
@@ -106,7 +107,9 @@ public abstract class KeywordInstance> implements K
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", host.getName());
bread.setData("Keyword", this.original);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.original, this);
+ Sentry.addBreadcrumb(bread, hint);
// add Extra for debugging
Sentry.setExtra("Card", host.getName());
@@ -122,7 +125,9 @@ public abstract class KeywordInstance> implements K
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", host.getName());
bread.setData("Keyword", this.original);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.original, this);
+ Sentry.addBreadcrumb(bread, hint);
//rethrow
throw new RuntimeException("Error in Keyword " + this.original + " for card " + host.getName(), e);
@@ -157,7 +162,9 @@ public abstract class KeywordInstance> implements K
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Player", player.getName());
bread.setData("Keyword", this.original);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.original, this);
+ Sentry.addBreadcrumb(bread, hint);
// add Extra for debugging
Sentry.setExtra("Player", player.getName());
@@ -173,7 +180,9 @@ public abstract class KeywordInstance> implements K
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Player", player.getName());
bread.setData("Keyword", this.original);
- Sentry.addBreadcrumb(bread, this);
+ Hint hint = new Hint();
+ hint.set(this.original, this);
+ Sentry.addBreadcrumb(bread, hint);
//rethrow
throw new RuntimeException("Error in Keyword " + this.original + " for player " + player.getName(), e);
diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java
index eb825725674..b5a730d174e 100644
--- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java
+++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java
@@ -43,6 +43,7 @@ import forge.game.zone.ZoneType;
import forge.util.FileSection;
import forge.util.Visitor;
import io.sentry.Breadcrumb;
+import io.sentry.Hint;
import io.sentry.Sentry;
public class TriggerHandler {
@@ -135,7 +136,9 @@ public class TriggerHandler {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", host.getName());
bread.setData("Trigger", trigParse);
- Sentry.addBreadcrumb(bread, host);
+ Hint hint = new Hint();
+ hint.set(host.getName(), host);
+ Sentry.addBreadcrumb(bread, hint);
//rethrow
throw new RuntimeException("Error in Trigger for Card: " + host.getName(), e);
@@ -163,7 +166,9 @@ public class TriggerHandler {
Breadcrumb bread = new Breadcrumb(msg);
bread.setData("Card", host.getName());
bread.setData("Params", mapParams.toString());
- Sentry.addBreadcrumb(bread, host);
+ Hint hint = new Hint();
+ hint.set(host.getName(), host);
+ Sentry.addBreadcrumb(bread, hint);
//rethrow
throw new RuntimeException("Error in Trigger for Card: " + host.getName(), e);
diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml
index 3e078f2dbed..c121f6b4b54 100644
--- a/forge-gui-android/pom.xml
+++ b/forge-gui-android/pom.xml
@@ -133,7 +133,7 @@
io.sentry
sentry-android
- 5.7.0
+ 7.14.0
aar
@@ -150,7 +150,7 @@
io.sentry
sentry-android-core
- 5.7.0
+ 7.14.0
aar
@@ -170,7 +170,7 @@
io.sentry
sentry-android-ndk
- 5.7.0
+ 7.14.0
aar
@@ -191,12 +191,6 @@
-
-
- com.google.code.gson
- gson
- 2.9.0
-
com.badlogicgames.gdx-controllers
gdx-controllers-android
diff --git a/forge-gui/src/main/java/forge/model/FModel.java b/forge-gui/src/main/java/forge/model/FModel.java
index 2e4a1cdbdbc..02d352fb8ef 100644
--- a/forge-gui/src/main/java/forge/model/FModel.java
+++ b/forge-gui/src/main/java/forge/model/FModel.java
@@ -110,8 +110,7 @@ public final class FModel {
if (GuiBase.isAndroid()) //todo get device on other mobile platforms
System.out.println(GuiBase.getDeviceName() + " (RAM: " + GuiBase.getDeviceRAM() + "MB, Android " + GuiBase.getAndroidRelease() + " API Level " + GuiBase.getAndroidAPILevel() + ")");
else {
- System.out.println(System.getProperty("os.name") + " (" + System.getProperty("os.version") + " " + System.getProperty("os.arch") + ")");
- System.out.println("Java Version - " + RuntimeVersion.of(System.getProperty("java.version")).toString());
+ System.out.println(System.getProperty("os.name") + " (" + System.getProperty("os.version") + " " + System.getProperty("os.arch") + ")\n" + System.getProperty("java.vendor") + " (Java " + System.getProperty("java.runtime.version") + ", " + System.getProperty("java.vm.name") + ")");
}
ImageKeys.initializeDirs(
ForgeConstants.CACHE_CARD_PICS_DIR, ForgeConstants.CACHE_CARD_PICS_SUBDIR,