Go to file
2020-03-30 15:09:39 +02:00
gui added auto detect arma path 2020-03-30 15:09:39 +02:00
linux added auto updater 2020-03-30 02:46:25 +02:00
patcher changed license from MIT to GPLv3 2020-03-30 02:57:42 +02:00
screenshots added README content 2020-03-30 04:43:10 +02:00
.gitignore created modules and added patcher 2020-03-29 23:37:39 +02:00
LICENSE changed license from MIT to GPLv3 2020-03-30 02:57:42 +02:00
pom.xml added launch4j distribution 2020-03-30 02:46:53 +02:00
README.md added README content 2020-03-30 04:43:10 +02:00

Custom ArmA 3 Launcher

This is the official launcher/download-client of the-town.net.

This launcher uses a differential download method called zsync. This means that only changes between any old versions of the files on the computer and the files provided online are downloaded.

An optimised client-side implementation of the rsync algorithm. It allows updating of files from a remote web server, with efficiency approaching that of rsync -z, without requiring a special remote server application.

Configure

If you want to use our launcher for your project, please change the icons! Open gui/src/main/resources/arma3launcher.json and edit the variables as you need. To configure your logo replace the logo* files inside the gui/src/main/resources/icons/ folder.

Build

To build this project simply run

mvn package

After building the package you find the universal auto patcher inside patcher/target/patcher.jar. Inside gui/target/ you find the gui as jar, jar with dependencies, jar wrapper build with launch4j and an assembled zip file.

Distribute

After building the package you find inside the gui/target/ folder an zip file. This zip file contains an empty jre/ and an empty logs/ folder. Bundle your own JRE with minimum JRE12 and put it in the *.zip/jre/.

Linux/Mac users can run the arma3launcher-gui.jar.
Windows users can simply run the arma3launcher.exe and the launch4j wrapper prioritize the local JRE else use the bundled jre.

Server side setup

For the server side you need a simple webserver with no special configuration.

The server side setup/configuration is done inside the <webserver root>/.sync/ folder. Upload the files from linux/.sync/ to <webserver root>/.sync/.

generateRepo.sh

The generateRepo.sh is very important to run after every update of mods. Add new mods simply to <webserver root>.

You should generate the repository locally and update the changes via rsync. On Windows choose mingw or the linux subsystem.

rsync -a --exclude 'generateRepo.sh*' ./ remote_user@remote_host_or_ip:<webserver root>

modset.json

The modset.json file is generated automatically by running the generateRepo.sh. It is containing the folder structure as well as the file sizes and sha1 sums.

server.json

The server.json file contains all server as well as the modsets. The modsets are simply strings that should equal the corresponding folder.
Please see the example file.

changelog.txt

The changelog.txt is a plain text file to write your changelogs for the modpacks, client or what ever.
The file is caches for 5 minutes and only loaded if the user switches the tab to the changelog tab.

version.txt

The version.txt is used for the autoupdater. It contains one line:

x.x.x:FILE.jar

x.x.x is the new version. FILE.jar is the new file that the client will download inside the <webserver root>/.sync/ folder.

patcher.jar

The patcher.jar is a universal patcher and should not need to be updated. The client download the patcher just once the %APDATA%/<launcher name> directory and only if a new version is available. If the patcher.jar already exists, the client skips the download.

arma3launcher.jar

The arma3launcher.jar is only a representation of the FILE.jar. See version.txt.

Screenshots

server server server server