aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryson Steck <brysonsteck@protonmail.com>2023-05-21 00:00:15 -0600
committerBryson Steck <brysonsteck@protonmail.com>2023-05-21 00:00:15 -0600
commitd38d79e9b7de14f837b02b850cbd86a5c03cfc1b (patch)
treed3a32c38fdd7307d823b8854cd28b05ce8ab6731
parent633132c1c058a9e7bd994b350b775e1b9aa779ab (diff)
downloadServerCraft-d38d79e9b7de14f837b02b850cbd86a5c03cfc1b.tar
ServerCraft-d38d79e9b7de14f837b02b850cbd86a5c03cfc1b.tar.gz
ServerCraft-d38d79e9b7de14f837b02b850cbd86a5c03cfc1b.tar.bz2
update readme, windows still borked
-rw-r--r--README.md34
-rw-r--r--src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/PrimaryController.kt15
-rw-r--r--src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml16
3 files changed, 53 insertions, 12 deletions
diff --git a/README.md b/README.md
index 8f24bce..207e8d6 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,42 @@ Is the `server.properties` file too overwhelming? Here is a graphical applicatio
## About
-ServerCraft is designed for the layman who has knowledge of Minecraft but has no idea how to create a simple server.
+ServerCraft is designed for the layman who has knowledge of Minecraft but has no idea how to create a simple server. It provides a simple interface for running a Minecraft server and managing it's settings, all automated with simple clicks.
## Features
* Utilizes the Spigot Minecraft server for performance and extensibility
-* Automatically downloads the correct Java version, no more confusing errors when trying to run the server
+* Automatically downloads the correct Java version, no more confusing errors when trying to run a server
* Common settings available at a glance
* Separate section for common settings that are a little more advanced, such as:
* The amount of RAM to allocate to the server
* Render and simulation distances
- *
+ * Enabling command blocks
+
+## Screenshots
+
+provide screenshots
+
+## Building and Running
+
+Pre-compiled binaries are available to download [here](https://codeberg.org/brysonsteck/ServerCraft/releases). Simply download the correct file for your OS. (`.exe` or `.msi` for Windows, `.dmg` or `.pkg` for macOS, etc.)
+
+ServerCraft uses Gradle as the build system of choice. At the very least, you will need to install at least Java 11. ServerCraft is built on OpenJFX, of which requires Java 11 or later. The binaries I offer on the [releases page](https://codeberg.org/brysonsteck/ServerCraft/releases) are bundled with Java 17 and do not require installing Java to run.
+
+However, installing Gradle is not necessary. You can replace `gradle` in the following instructions with `./gradlew` on Unix systems and `.\gradlew.bat` on Windows systems, as long as your current directory is the root of the repository. These scripts download and run a Gradle jar file.
+
+To build ServerCraft from source, creating a fat jar, Java class files, etc., run:
+```
+gradle build
+```
+
+To run ServerCraft from source, run:
+```
+gradle run
+```
+
+To compile binaries for the current system, run:
+```
+gradle pack
+```
+**NOTE**: Building binaries on Windows requires the WiX toolset and Inno Setup to be installed and on the PATH. See this JavaPackager [GitHub page](https://github.com/fvarrui/JavaPackager/blob/master/docs/windows-tools-guide.md) for installation instructions. \ No newline at end of file
diff --git a/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/PrimaryController.kt b/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/PrimaryController.kt
index 5b26481..75ebbbd 100644
--- a/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/PrimaryController.kt
+++ b/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/PrimaryController.kt
@@ -494,23 +494,32 @@ class PrimaryController {
builder.directory(File(directory + "ServerCraft" + File.separator + "Spigot"))
val proc = builder.start()
val reader = InputStreamReader(proc.inputStream)
+ val errors = InputStreamReader(proc.errorStream)
val br = BufferedReader(reader)
+ val ebr = BufferedReader(errors)
try {
var line = br.readLine()
+ var errorLine = ebr.readline()
var currentline = 0.0
- while (line != null) {
+ while (line != null || errorLine != null) {
if (!building) {
proc.destroy()
}
- withContext(Dispatchers.JavaFx) {log(line)}
+ withContext(Dispatchers.JavaFx) {
+ if (errorLine != null) {
+ log(errorLine)
+ }
+ log(line)
+ }
line = br.readLine()
+ errorLine = ebr.readline()
currentline++
if (currentline > 15) {
withContext(Dispatchers.JavaFx) {progressBar.progress = if (spigotBuilt) {currentline/1100.0} else {currentline/14122.0} }
}
}
} catch (e: IOException) {
- withContext(Dispatchers.JavaFx) {log("Stream Closed")}
+ withContext(Dispatchers.JavaFx) {log("Stream Closed: ${e.toString()}")}
}
}
diff --git a/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml b/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml
index f0b73f3..a4d561a 100644
--- a/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml
+++ b/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml
@@ -36,20 +36,24 @@
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0" />
</padding>
</ButtonBar>
- <Label layoutX="52.0" layoutY="135.0" text="A graphical interface for creating Minecraft servers" textAlignment="CENTER" />
- <TabPane layoutY="158.0" prefHeight="161.0" prefWidth="398.0" stylesheets="@css/info-tabs.css" tabClosingPolicy="UNAVAILABLE">
+ <Label alignment="CENTER" layoutX="1.0" layoutY="135.0" prefHeight="15.0" prefWidth="398.0" text="A graphical interface for creating Minecraft servers" textAlignment="CENTER" />
+ <TabPane layoutY="158.0" prefHeight="166.0" prefWidth="398.0" stylesheets="@css/info-tabs.css" tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab text="About">
<content>
- <Pane prefHeight="200.0" prefWidth="200.0">
+ <Pane prefHeight="200.0" prefWidth="398.0">
<children>
<Label alignment="TOP_LEFT" prefWidth="398.0" text="This program is for simple Minecraft servers, and expects that the user knows how to port forward.&#10;&#10;ServerCraft is free and open source under the GNU General Public License Version 3.0" wrapText="true">
<padding>
<Insets bottom="13.0" left="13.0" right="13.0" top="13.0" />
</padding>
</Label>
- <Hyperlink fx:id="license" layoutX="127.0" layoutY="110.0" onAction="#openHyperlink" text="License" />
- <Hyperlink fx:id="source" layoutX="189.0" layoutY="110.0" onAction="#openHyperlink" text="Source Code" />
+ <HBox alignment="CENTER" layoutY="106.0" prefHeight="21.0" prefWidth="398.0">
+ <children>
+ <Hyperlink fx:id="license" onAction="#openHyperlink" text="License" />
+ <Hyperlink fx:id="source" onAction="#openHyperlink" text="Source Code" />
+ </children>
+ </HBox>
</children>
<padding>
<Insets bottom="13.0" left="13.0" right="13.0" top="13.0" />
@@ -61,7 +65,7 @@
<content>
<Pane prefHeight="200.0" prefWidth="200.0">
<children>
- <Label layoutX="78.0" layoutY="109.0" text="Want to join the list? Contribute with a PR!" textAlignment="CENTER" />
+ <Label alignment="CENTER" layoutY="109.0" prefHeight="15.0" prefWidth="398.0" text="Want to join the list? Contribute with a PR!" textAlignment="CENTER" />
<VBox>
<children>
<Label text="Bryson Steck" VBox.vgrow="ALWAYS">