Add Discord button

This commit is contained in:
Jafea7 2025-09-13 22:07:45 +10:00
parent 7f6e7008e0
commit f83d9a2554
1 changed files with 12 additions and 8 deletions

View File

@ -15,7 +15,6 @@ import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
// import java.awt.Desktop;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -53,8 +52,12 @@ public class HelpTab extends Tab {
Button openCfg = new Button("Open Config Dir"); Button openCfg = new Button("Open Config Dir");
openCfg.setStyle("-fx-font-family: 'Arial'; -fx-font-size: 16px; -fx-font-weight: bold; -fx-text-fill: #ffffff; -fx-background-color: #FF9800; -fx-padding: 15 30; -fx-border-radius: 5; -fx-background-radius: 5;"); openCfg.setStyle("-fx-font-family: 'Arial'; -fx-font-size: 16px; -fx-font-weight: bold; -fx-text-fill: #ffffff; -fx-background-color: #FF9800; -fx-padding: 15 30; -fx-border-radius: 5; -fx-background-radius: 5;");
Button openDiscord = new Button("Discord");
openDiscord.setStyle("-fx-font-family: 'Arial'; -fx-font-size: 16px; -fx-font-weight: bold; -fx-text-fill: #ffffff; -fx-background-color: #ff0022; -fx-padding: 15 30; -fx-border-radius: 5; -fx-background-radius: 5;");
File cfgDir = Config.getInstance().getConfigDir(); File cfgDir = Config.getInstance().getConfigDir();
String path = (cfgDir != null) ? cfgDir.getAbsolutePath() : "Unknown"; String path = (cfgDir != null) ? cfgDir.getAbsolutePath() : "Unknown";
Label configStaticLabel = new Label("Config Dir:"); Label configStaticLabel = new Label("Config Dir:");
configStaticLabel.setStyle("-fx-font-family: 'Arial'; -fx-font-size: 14px; -fx-font-weight: bold; -fx-alignment: center;"); configStaticLabel.setStyle("-fx-font-family: 'Arial'; -fx-font-size: 14px; -fx-font-weight: bold; -fx-alignment: center;");
Label configValueLabel = new Label(path); Label configValueLabel = new Label(path);
@ -75,8 +78,9 @@ public class HelpTab extends Tab {
VBox vbox = new VBox(); VBox vbox = new VBox();
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setSpacing(20); vbox.setSpacing(20);
vbox.getChildren().addAll(wanLabelBox, openHelp, configLabelBox, openCfg, logLabelBox, openLog); vbox.getChildren().addAll(wanLabelBox, openHelp, configLabelBox, openCfg, logLabelBox, openLog, openDiscord);
// Set up the BorderPane layout
BorderPane layout = new BorderPane(); BorderPane layout = new BorderPane();
layout.setCenter(vbox); layout.setCenter(vbox);
@ -95,14 +99,13 @@ public class HelpTab extends Tab {
File logFile = new File("ctbrec.log"); File logFile = new File("ctbrec.log");
if (logFile.exists()) { if (logFile.exists()) {
try { try {
// Use Runtime.getRuntime().exec() to open the file in a separate process
String osName = System.getProperty("os.name").toLowerCase(); String osName = System.getProperty("os.name").toLowerCase();
ProcessBuilder pb = null; ProcessBuilder pb = null;
if (osName.contains("mac")) { if (osName.contains("mac")) {
pb = new ProcessBuilder("open", logFile.getAbsolutePath()); pb = new ProcessBuilder("open", logFile.getAbsolutePath());
} else if (osName.contains("win")) { } else if (osName.contains("win")) {
pb = new ProcessBuilder("explorer.exe", logFile.getAbsolutePath()); pb = new ProcessBuilder("explorer.exe", logFile.getAbsolutePath());
} else { // Assume it's a Unix/Linux system } else {
pb = new ProcessBuilder("xdg-open", logFile.getAbsolutePath()); pb = new ProcessBuilder("xdg-open", logFile.getAbsolutePath());
} }
pb.start(); pb.start();
@ -118,14 +121,13 @@ public class HelpTab extends Tab {
File configDir = Config.getInstance().getConfigDir(); File configDir = Config.getInstance().getConfigDir();
if (configDir.exists()) { if (configDir.exists()) {
try { try {
// Use Runtime.getRuntime().exec() to open the file in a separate process
String osName = System.getProperty("os.name").toLowerCase(); String osName = System.getProperty("os.name").toLowerCase();
ProcessBuilder pb = null; ProcessBuilder pb = null;
if (osName.contains("mac")) { if (osName.contains("mac")) {
pb = new ProcessBuilder("open", configDir.getAbsolutePath()); pb = new ProcessBuilder("open", configDir.getAbsolutePath());
} else if (osName.contains("win")) { } else if (osName.contains("win")) {
pb = new ProcessBuilder("explorer.exe", configDir.getAbsolutePath()); pb = new ProcessBuilder("explorer.exe", configDir.getAbsolutePath());
} else { // Assume it's a Unix/Linux system } else {
pb = new ProcessBuilder("xdg-open", configDir.getAbsolutePath()); pb = new ProcessBuilder("xdg-open", configDir.getAbsolutePath());
} }
pb.start(); pb.start();
@ -136,8 +138,10 @@ public class HelpTab extends Tab {
log.warn("Config dir doesn't exist: {}", configDir.getAbsolutePath()); log.warn("Config dir doesn't exist: {}", configDir.getAbsolutePath());
} }
}); });
openDiscord.setOnAction(e -> DesktopIntegration.open("https://discord.gg/8jCXgVHzgf"));
} }
private void startDocumentationServer() { private void startDocumentationServer() {
new Thread(() -> { new Thread(() -> {
try { try {