mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +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>
|
||||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||||
</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>
|
||||
</configuration>
|
||||
</plugin>
|
||||
@@ -127,9 +130,12 @@
|
||||
</descriptorRefs>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>forge.view.Main</mainClass>
|
||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||
</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>
|
||||
</configuration>
|
||||
<executions>
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@@ -23,17 +23,8 @@ import forge.error.ExceptionHandler;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.gui.card.CardReaderExperiments;
|
||||
import forge.util.BuildInfo;
|
||||
import forge.util.JVMOptions;
|
||||
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.
|
||||
*/
|
||||
@@ -42,37 +33,6 @@ public final class Main {
|
||||
* Main entry point for Forge
|
||||
*/
|
||||
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 -> {
|
||||
options.setEnableExternalConfiguration(true);
|
||||
options.setRelease(BuildInfo.getVersionString());
|
||||
@@ -88,7 +48,7 @@ public final class Main {
|
||||
|
||||
//Turn off the Java 2D system's use of Direct3D to improve rendering speed (particularly when Full Screen)
|
||||
System.setProperty("sun.java2d.d3d", "false");
|
||||
|
||||
|
||||
//Turn on OpenGl acceleration to improve performance
|
||||
//System.setProperty("sun.java2d.opengl", "True");
|
||||
|
||||
@@ -110,7 +70,7 @@ public final class Main {
|
||||
// command line startup here
|
||||
String mode = args[0].toLowerCase();
|
||||
|
||||
switch(mode) {
|
||||
switch (mode) {
|
||||
case "sim":
|
||||
SimulateMatch.simulate(args);
|
||||
break;
|
||||
@@ -130,8 +90,9 @@ public final class Main {
|
||||
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
@Override
|
||||
protected void finalize() throws Throwable {
|
||||
try {
|
||||
ExceptionHandler.unregisterErrorHandling();
|
||||
@@ -141,5 +102,6 @@ public final class Main {
|
||||
}
|
||||
|
||||
// disallow instantiation
|
||||
private Main() { }
|
||||
private Main() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,10 +134,11 @@
|
||||
</descriptorRefs>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>forge.app.Main</mainClass>
|
||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||
</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.app.Main</Main-Class>
|
||||
<SplashScreen-Image>splash/logo.gif</SplashScreen-Image>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.badlogic.gdx.Gdx;
|
||||
import forge.interfaces.IDeviceAdapter;
|
||||
import forge.util.BuildInfo;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.JVMOptions;
|
||||
import forge.util.OperatingSystem;
|
||||
import forge.util.RestartUtil;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
@@ -17,30 +16,12 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.RuntimeMXBean;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Main {
|
||||
private static final String versionString = BuildInfo.getVersionString();
|
||||
public static void main(String[] args) {
|
||||
checkJVMArgs(System.getProperty("java.version"));
|
||||
}
|
||||
|
||||
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);
|
||||
new GameLauncher(versionString);
|
||||
}
|
||||
|
||||
public static class DesktopAdapter implements IDeviceAdapter {
|
||||
|
||||
@@ -815,13 +815,12 @@ public class CardRenderer {
|
||||
g.drawRect(BORDER_THICKNESS, Color.MAGENTA, cx, cy, cw, ch);
|
||||
}
|
||||
//Ability Icons
|
||||
boolean onbattlefield = ZoneType.Battlefield.equals(card.getZone());
|
||||
if (unselectable) {
|
||||
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));
|
||||
} 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
|
||||
String keywordKey = card.getCurrentState().getKeywordKey();
|
||||
String abilityText = card.getCurrentState().getAbilityText();
|
||||
|
||||
Reference in New Issue
Block a user