mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
add manifest entries to forge desktop/mobile jar
allow launching the jar without launcher if possible
This commit is contained in:
@@ -85,6 +85,9 @@
|
|||||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
<manifestEntries>
|
||||||
|
<Add-Opens>java.desktop/java.beans java.desktop/javax.swing.border java.desktop/javax.swing.event java.desktop/sun.swing java.desktop/java.awt.image java.desktop/java.awt.color java.desktop/sun.awt.image java.desktop/javax.swing java.desktop/java.awt java.base/java.util java.base/java.lang java.base/java.lang.reflect java.base/java.text java.desktop/java.awt.font java.base/jdk.internal.misc java.base/sun.nio.ch java.base/java.nio java.base/java.math java.base/java.util.concurrent java.base/java.net</Add-Opens>
|
||||||
|
</manifestEntries>
|
||||||
</archive>
|
</archive>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
@@ -127,9 +130,12 @@
|
|||||||
</descriptorRefs>
|
</descriptorRefs>
|
||||||
<archive>
|
<archive>
|
||||||
<manifest>
|
<manifest>
|
||||||
<mainClass>forge.view.Main</mainClass>
|
|
||||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
<manifestEntries>
|
||||||
|
<Add-Opens>java.desktop/java.beans java.desktop/javax.swing.border java.desktop/javax.swing.event java.desktop/sun.swing java.desktop/java.awt.image java.desktop/java.awt.color java.desktop/sun.awt.image java.desktop/javax.swing java.desktop/java.awt java.base/java.util java.base/java.lang java.base/java.lang.reflect java.base/java.text java.desktop/java.awt.font java.base/jdk.internal.misc java.base/sun.nio.ch java.base/java.nio java.base/java.math java.base/java.util.concurrent java.base/java.net</Add-Opens>
|
||||||
|
<Main-Class>forge.view.Main</Main-Class>
|
||||||
|
</manifestEntries>
|
||||||
</archive>
|
</archive>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|||||||
@@ -23,17 +23,8 @@ import forge.error.ExceptionHandler;
|
|||||||
import forge.gui.GuiBase;
|
import forge.gui.GuiBase;
|
||||||
import forge.gui.card.CardReaderExperiments;
|
import forge.gui.card.CardReaderExperiments;
|
||||||
import forge.util.BuildInfo;
|
import forge.util.BuildInfo;
|
||||||
import forge.util.JVMOptions;
|
|
||||||
import io.sentry.Sentry;
|
import io.sentry.Sentry;
|
||||||
|
|
||||||
import javax.swing.JButton;
|
|
||||||
import javax.swing.JDialog;
|
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import java.lang.management.ManagementFactory;
|
|
||||||
import java.lang.management.RuntimeMXBean;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main class for Forge's swing application view.
|
* Main class for Forge's swing application view.
|
||||||
*/
|
*/
|
||||||
@@ -42,37 +33,6 @@ public final class Main {
|
|||||||
* Main entry point for Forge
|
* Main entry point for Forge
|
||||||
*/
|
*/
|
||||||
public static void main(final String[] args) {
|
public static void main(final String[] args) {
|
||||||
String javaVersion = System.getProperty("java.version");
|
|
||||||
checkJVMArgs(javaVersion, args);
|
|
||||||
}
|
|
||||||
static void checkJVMArgs(String javaVersion, String[] args) {
|
|
||||||
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
|
|
||||||
List<String> arguments = runtimeMxBean.getInputArguments();
|
|
||||||
|
|
||||||
List<Object> options = new ArrayList<>();
|
|
||||||
JButton ok = new JButton("OK");
|
|
||||||
options.add(ok);
|
|
||||||
JVMOptions.getStringBuilder().append("Java Version: ").append(javaVersion).append("\nArguments: \n");
|
|
||||||
for (String a : arguments) {
|
|
||||||
if (a.startsWith("-agent") || a.startsWith("-javaagent"))
|
|
||||||
continue;
|
|
||||||
JVMOptions.getStringBuilder().append(a).append("\n");
|
|
||||||
}
|
|
||||||
JOptionPane pane = new JOptionPane(JVMOptions.getStringBuilder(), JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION, null, options.toArray());
|
|
||||||
JDialog dlg = pane.createDialog(JOptionPane.getRootFrame(), "Error");
|
|
||||||
ok.addActionListener(e -> {
|
|
||||||
dlg.setVisible(false);
|
|
||||||
System.exit(0);
|
|
||||||
});
|
|
||||||
dlg.setResizable(false);
|
|
||||||
|
|
||||||
if (!JVMOptions.checkRuntime(arguments)) {
|
|
||||||
dlg.setVisible(true);
|
|
||||||
} else {
|
|
||||||
start(args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static void start(final String[] args) {
|
|
||||||
Sentry.init(options -> {
|
Sentry.init(options -> {
|
||||||
options.setEnableExternalConfiguration(true);
|
options.setEnableExternalConfiguration(true);
|
||||||
options.setRelease(BuildInfo.getVersionString());
|
options.setRelease(BuildInfo.getVersionString());
|
||||||
@@ -110,7 +70,7 @@ public final class Main {
|
|||||||
// command line startup here
|
// command line startup here
|
||||||
String mode = args[0].toLowerCase();
|
String mode = args[0].toLowerCase();
|
||||||
|
|
||||||
switch(mode) {
|
switch (mode) {
|
||||||
case "sim":
|
case "sim":
|
||||||
SimulateMatch.simulate(args);
|
SimulateMatch.simulate(args);
|
||||||
break;
|
break;
|
||||||
@@ -130,8 +90,9 @@ public final class Main {
|
|||||||
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
protected void finalize() throws Throwable {
|
protected void finalize() throws Throwable {
|
||||||
try {
|
try {
|
||||||
ExceptionHandler.unregisterErrorHandling();
|
ExceptionHandler.unregisterErrorHandling();
|
||||||
@@ -141,5 +102,6 @@ public final class Main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// disallow instantiation
|
// disallow instantiation
|
||||||
private Main() { }
|
private Main() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,10 +134,11 @@
|
|||||||
</descriptorRefs>
|
</descriptorRefs>
|
||||||
<archive>
|
<archive>
|
||||||
<manifest>
|
<manifest>
|
||||||
<mainClass>forge.app.Main</mainClass>
|
|
||||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||||
</manifest>
|
</manifest>
|
||||||
<manifestEntries>
|
<manifestEntries>
|
||||||
|
<Add-Opens>java.desktop/java.beans java.desktop/javax.swing.border java.desktop/javax.swing.event java.desktop/sun.swing java.desktop/java.awt.image java.desktop/java.awt.color java.desktop/sun.awt.image java.desktop/javax.swing java.desktop/java.awt java.base/java.util java.base/java.lang java.base/java.lang.reflect java.base/java.text java.desktop/java.awt.font java.base/jdk.internal.misc java.base/sun.nio.ch java.base/java.nio java.base/java.math java.base/java.util.concurrent java.base/java.net</Add-Opens>
|
||||||
|
<Main-Class>forge.app.Main</Main-Class>
|
||||||
<SplashScreen-Image>splash/logo.gif</SplashScreen-Image>
|
<SplashScreen-Image>splash/logo.gif</SplashScreen-Image>
|
||||||
</manifestEntries>
|
</manifestEntries>
|
||||||
</archive>
|
</archive>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.badlogic.gdx.Gdx;
|
|||||||
import forge.interfaces.IDeviceAdapter;
|
import forge.interfaces.IDeviceAdapter;
|
||||||
import forge.util.BuildInfo;
|
import forge.util.BuildInfo;
|
||||||
import forge.util.FileUtil;
|
import forge.util.FileUtil;
|
||||||
import forge.util.JVMOptions;
|
|
||||||
import forge.util.OperatingSystem;
|
import forge.util.OperatingSystem;
|
||||||
import forge.util.RestartUtil;
|
import forge.util.RestartUtil;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
@@ -17,30 +16,12 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.lang.management.ManagementFactory;
|
|
||||||
import java.lang.management.RuntimeMXBean;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
private static final String versionString = BuildInfo.getVersionString();
|
private static final String versionString = BuildInfo.getVersionString();
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
checkJVMArgs(System.getProperty("java.version"));
|
new GameLauncher(versionString);
|
||||||
}
|
|
||||||
|
|
||||||
static void checkJVMArgs(String javaVersion) {
|
|
||||||
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
|
|
||||||
List<String> arguments = runtimeMxBean.getInputArguments();
|
|
||||||
JVMOptions.getStringBuilder().append("Java Version: ").append(javaVersion).append("\nArguments: \n");
|
|
||||||
for (String a : arguments) {
|
|
||||||
if (a.startsWith("-agent") || a.startsWith("-javaagent"))
|
|
||||||
continue;
|
|
||||||
JVMOptions.getStringBuilder().append(a).append("\n");
|
|
||||||
}
|
|
||||||
if (!JVMOptions.checkRuntime(arguments)) {
|
|
||||||
new DialogWindow("Error", JVMOptions.getStringBuilder().toString());
|
|
||||||
} else
|
|
||||||
new GameLauncher(versionString);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class DesktopAdapter implements IDeviceAdapter {
|
public static class DesktopAdapter implements IDeviceAdapter {
|
||||||
|
|||||||
@@ -815,13 +815,12 @@ public class CardRenderer {
|
|||||||
g.drawRect(BORDER_THICKNESS, Color.MAGENTA, cx, cy, cw, ch);
|
g.drawRect(BORDER_THICKNESS, Color.MAGENTA, cx, cy, cw, ch);
|
||||||
}
|
}
|
||||||
//Ability Icons
|
//Ability Icons
|
||||||
boolean onbattlefield = ZoneType.Battlefield.equals(card.getZone());
|
|
||||||
if (unselectable) {
|
if (unselectable) {
|
||||||
g.setAlphaComposite(0.6f);
|
g.setAlphaComposite(0.6f);
|
||||||
}
|
}
|
||||||
if (onbattlefield && onTop) {
|
if (ZoneType.Battlefield.equals(card.getZone()) && onTop) {
|
||||||
drawAbilityIcons(g, card, cx, cy, cw, ch, cx + ((cw * 2) / 2.3f), cy, cw / 5.5f, cw / 5.7f, showAbilityIcons(card));
|
drawAbilityIcons(g, card, cx, cy, cw, ch, cx + ((cw * 2) / 2.3f), cy, cw / 5.5f, cw / 5.7f, showAbilityIcons(card));
|
||||||
} else if (canShow && !onbattlefield && showAbilityIcons(card)) {
|
} else if (canShow && !ZoneType.Battlefield.equals(card.getZone()) && showAbilityIcons(card)) {
|
||||||
//draw indicator for flash or can be cast at instant speed, enabled if show ability icons is enabled
|
//draw indicator for flash or can be cast at instant speed, enabled if show ability icons is enabled
|
||||||
String keywordKey = card.getCurrentState().getKeywordKey();
|
String keywordKey = card.getCurrentState().getKeywordKey();
|
||||||
String abilityText = card.getCurrentState().getAbilityText();
|
String abilityText = card.getCurrentState().getAbilityText();
|
||||||
|
|||||||
Reference in New Issue
Block a user