24.09.2017, 03:00
(
Last edited by BiosMarcel; 17/02/2018 at 11:23 AM.
)
SA-MP Server Browser
Important Note to all people that have installed this app before 21.01.2018
I have made a small mistake and you might not be able to update to a newer version, if you want to assure that your version isn't broken, please reinstall the application.
Description
This application offers a row of tools for the San Andreas-Multiplayer mod for the Grand Theft Auto: San Andreas game.
Features
The whole project is hosted on GitHub under the following link:
https://github.com/Bios-Marcel/ServerBrowser
Languages
This software is currently available in the following languages (some might not be perfectly and completly translated):
There is a light and a dark theme, here are screenshots including both themes:
Installation
Overall, you have 3 options:
Javadoc is available under: https://bios-marcel.github.io/Server...w-summary.html
User Documentation (not complete) is available under: https://github.com/Bios-Marcel/ServerBrowser/wiki
You want to help?
You can help by reporting bugs, recommending new features or creating pull requests.
Another way for you to contribute, is to help localizing the application.
How to create a new language file
If you want to translate the program into another language, simply copy
and name it
. After having done the translation, send me the file or do a pull request on GitHub. Please be careful to not modify any of the key names, that means only edit whats behind a
. If possible try to escape all characters, since there is currently to UTF-8 support for language files.
To be localized
Note: Some of the follwing key-value pairs might already be correct, in that case i don't know it though.
German:
Done
Georgian:
Greek:
Dutch:
Russian:
Polish:
Romanian:
Spanish:
Turkish:
Bosnian:
Build
This project is managed using gradle.
Structure
It is a multi-project consisting of 1 subproject
The fact, that this is a multi-project is due to two components that don't exist anymore, this will soon be refactored.
Building with gradle
To see which tasks are available, run:
on Unix:
on Windows:
The first time you execute __gradlew__ (gradle wrapper) it will download a local copy of gradle into the project folder __.gradle__. This will not be committed to version control.
You are of course free to use your own or systems copy of gradle, but this approach has the advantage that we all share the same version of gradle.
Running tasks on subprojects
To run tasks on the subprojects, you can either __cd__ into the subproject and run the task, e.g.:
Or run it from the parent project by prefixing the task with the subprojects name and a ":" (colon).
Assemble and test the build outputs. You will find the results in the __build__ folder of __client__.
Syncing gradle with Eclipse
Typically, when you import a gradle project into eclipse, it takes care of creating the eclipse project files via the plugin buildship.
However, if you want to be extra sure, donґt want to use the plugin or need to fix some synchronization issue between eclipse and gradle; It is useful to know how to manually do it:
From the parent project run:
Eclipse will instantly reload the fresh project settings files.
Pipeline
__ServerBrowser__ utilizes advanced build techniques in order to assemble and optimize the output. The goal is to build the smallest possible 'self-contained' executable for Windows for the client.
__self-contained__ in this context means the JVM is bundled with the output.
In order to achieve this the following 2 step process is used:
1. Put all build outputs into a single JAR (fat JAR), including (transitive) dependencies.
2. Bundle the optimized JAR with a JVM and build a native container around them (exe/deb).
These steps map to these tools:
1. Gradle Shadow Plugin
2. javapackager + JavaFX-Gradle-Plugin
Our build scripts are largely glue around those tools.
Building the native output
This will generate an installable artifact in client/build/jfx/native. Depending on which platform you are building from, an EXE is generated on Windows, DEB/RPM on Linux and PKG/DMG on OSX.
We support Windows and Linux and in order to be able to generate an installer, some dependencies need to be installed.
Windows
- Inno Setup 5 or later
Linux (rpm)
- RPMBuild
Linux (deb)
- Debian packaging tools
Javapackager
The underlying technology for building native installer bundles is javapackager.
Learn more about it here:
- https://docs.oracle.com/javase/8/doc...packaging.html
- https://docs.oracle.com/javase/8/doc...apackager.html
- https://docs.oracle.com/javase/8/doc...apackager.html
Realising a signed build
Our builds are cryptographically signed. In order to build with signing enabled you need to setup 2 things.
Send me an E-Mail or send me a pm.
Important Note to all people that have installed this app before 21.01.2018
I have made a small mistake and you might not be able to update to a newer version, if you want to assure that your version isn't broken, please reinstall the application.
Description
This application offers a row of tools for the San Andreas-Multiplayer mod for the Grand Theft Auto: San Andreas game.
Features
- Save your favourite servers
- Access to a list of currently over 2000 servers
- Version changer
- Username history
- Access to SA-MP Settings via graphical userinterface
- Access to SA-MP chatlogs
- Server history
- MORE TO COME ...
- Serverspecific usernames
- Screenshot viewer
The whole project is hosted on GitHub under the following link:
https://github.com/Bios-Marcel/ServerBrowser
Languages
This software is currently available in the following languages (some might not be perfectly and completly translated):
- English
- German
- Georgian (Translated by Medzvel)
- Greek (Translated by vassilis)
- Dutch (Translated by Jsytlez)
- Russian (Translated by Codeah)
- Polish (Translated by AbyssMorgan)
- Romanian (Translated by IstuntmanI)
- Spanish (Translated by Unrea1, updated by RIDE2DAY)
- Turkish (Translated by MustafaKemalAtaturk)
- Bosnian (Translated by Tagic)
There is a light and a dark theme, here are screenshots including both themes:
Installation
Overall, you have 3 options:
-
Downloading the latest launcher.jar file
The latest launcher.jar is available under https://github.com/Bios-Marcel/Serve...eleases/latest , but it will require you to have Java 8 or later installed, i strongly suggest installing Java 9, since future versions of this project will use Java 9. -
Downloading the latest Installer
The latest installer is also available under https://github.com/Bios-Marcel/Serve...eleases/latest
Unlike when using the launcher.jar file, the installer won't require you to download anything other than the installer himself. -
Build all the stuff yourself
Incase you are paranoid and scared that i might have infected the files in the release section, feel free to build the project yourself.
For further information on how to build the project, check the Build Secti## on below
-
Your client isn't able to fetch servers
If your Client isn't able to fetch any servers anymore, the first thing you should do, is to try and download the latest version of the client.
The second thing you might want to check, is your firewall. Make sure you haven't blocked the application itself. -
Your client doesn't start anymore
In case your client doesn't start anymore, the first thing you should do, is to try and download the latest version of the client.
If downloading the latest version of the client doens't help, try removing your currently installed Java runtime, if you have never installed a Java runtime, deinstall the ServerBrowser using the default Windows uninstalling procedure. After deleting Java and/or the ServerBrowser reinstall it.
Javadoc is available under: https://bios-marcel.github.io/Server...w-summary.html
User Documentation (not complete) is available under: https://github.com/Bios-Marcel/ServerBrowser/wiki
You want to help?
You can help by reporting bugs, recommending new features or creating pull requests.
Another way for you to contribute, is to help localizing the application.
How to create a new language file
If you want to translate the program into another language, simply copy
Code:
/client/src/main/resources/com/msc/serverbrowser/localization/Lang_en.properties
Code:
lang_YOUR_COUNTRIES_SHORTCUT.propeties
Code:
=
To be localized
Note: Some of the follwing key-value pairs might already be correct, in that case i don't know it though.
German:
Done
Georgian:
Code:
errorFetchingServers=Couldn't fetch servers favourites=Favourites pageSize=PageSize fetchingServers=Fetching servers, please wait a moment. enterFilterValue=Enter filter value lagcomp=lagcomp: showTimestamps=Show times if available locateGTAManually=Click here to enter your GTA path manually. lastVisit=Last visit visitWebsite=Visit Website gtaNotFoundPrompt=Will be automatically detected if left empty addToFavourites=Add to favourites rememberLastView=Remember last view inputMethodText=Input method text editing and language switching ba=Bosnian sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? cantFindGTA=Can't find GTA installation sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? customSampPath=Custom SA-MP Path noFavouriteServers=You don't have any favourites. directmode=Directmode (Fix chat text drawing problems) tr=Turkish activePlayers=Active players: {0} showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update history=History restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames connectingToServer=Connecting to server allowCachingSampVersions=Allow caching downloaded SA-MP versions retrieving=Retrieving ... connectToServer=Connect to server removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates serverMightBeOfflineConnectAnyways=The server might not be online, do you want to try connecting to it anyways? noServerHistory=You haven't joined any servers recently. multicoreUsage=Multicore usage openDonationPageTooltip=Opens the 'Donate' section of the GitHub project page
Code:
errorFetchingServers=Couldn't fetch servers favourites=Favourites fetchingServers=Fetching servers, please wait a moment. chatTimestamps=Chat Timestamps enterFilterValue=Enter filter value lagcomp=lagcomp: showTimestamps=Show times if available locateGTAManually=Click here to enter your GTA path manually. lastVisit=Last visit visitWebsite=Visit Website gtaNotFoundPrompt=Will be automatically detected if left empty addToFavourites=Add to favourites ba=Bosnian generalSettingsTitle=General sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? sampVersion=SA-MP Version {0} cantFindGTA=Can't find GTA installation ping=Ping: sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? noFavouriteServers=You don't have any favourites. tr=Turkish informationSettingsTitle=Information showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update versionInfo=Version: {0} history=History chatlogs=Chatlogs restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames connectingToServer=Connecting to server retrieving=Retrieving ... connectToServer=Connect to server servers=Servers: {0} removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates serverMightBeOfflineConnectAnyways=The server might not be online, do you want to try connecting to it anyways? noServerHistory=You haven't joined any servers recently. openDonationPageTooltip=Opens the 'Donate' section of the GitHub project page
Code:
errorFetchingServers=Couldn't fetch servers favourites=Favourites fetchingServers=Fetching servers, please wait a moment. enterFilterValue=Enter filter value lagcomp=lagcomp: showTimestamps=Show times if available locateGTAManually=Click here to enter your GTA path manually. gamemodeTableHeader=Gamemode lastVisit=Last visit visitWebsite=Visit Website addToFavourites=Add to favourites ba=Bosnian sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? cantFindGTA=Can't find GTA installation ping=Ping: downloadSettingTitle=Downloads sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? map=Map: website=Website: noFavouriteServers=You don't have any favourites. tr=Turkish showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update history=History restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames updatesSettingTitle=Updates connectingToServer=Connecting to server retrieving=Retrieving ... connectToServer=Connect to server servers=Servers: {0} removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates serverMightBeOfflineConnectAnyways=The server might not be online, do you want to try connecting to it anyways? noServerHistory=You haven't joined any servers recently. serverOffline=Server is offline. openDonationPageTooltip=Opens the 'Donate' section of the GitHub project page
Code:
errorFetchingServers=Couldn't fetch servers favourites=Favourites enterFilterValue=Enter filter value lagcomp=lagcomp: showTimestamps=Show times if available locateGTAManually=Click here to enter your GTA path manually. lastVisit=Last visit visitWebsite=Visit Website addToFavourites=Add to favourites ba=Bosnian sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? cantFindGTA=Can't find GTA installation ping=Ping: sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? noFavouriteServers=You don't have any favourites. tr=Turkish showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update history=History restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames connectingToServer=Connecting to server retrieving=Retrieving ... connectToServer=Connect to server removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates serverMightBeOfflineConnectAnyways=The server might not be online, do you want to try connecting to it anyways? noServerHistory=You haven't joined any servers recently. openDonationPageTooltip=Opens the 'Donate' section of the GitHub project page
Code:
favourites=Favourites enterFilterValue=Enter filter value lagcomp=lagcomp: showTimestamps=Show times if available lastVisit=Last visit visitWebsite=Visit Website addToFavourites=Add to favourites ba=Bosnian sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? ping=Ping: sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? tr=Turkish showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update history=History restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames connectToServer=Connect to server removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates
Code:
lagcomp=lagcomp: lastVisit=Last visit visitWebsite=Visit Website addToFavourites=Add to favourites ba=Bosnian generalSettingsTitle=General sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? ping=Ping: sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port restoreLegacySettingsToDefault=Restore SA-MP settings to default connectToServer=Connect to server removeFromFavourites=Remove from favourites
Code:
favourites=Favourites enterFilterValue=Enter filter value showTimestamps=Show times if available lastVisit=Last visit visitWebsite=Visit Website addToFavourites=Add to favourites ba=Bosnian generalSettingsTitle=General sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? noFavouriteServers=You don't have any favourites. tr=Turkish showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update history=History restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames no=No connectingToServer=Connecting to server connectToServer=Connect to server removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates serverMightBeOfflineConnectAnyways=The server might not be online, do you want to try connecting to it anyways? noServerHistory=You haven't joined any servers recently.
Code:
favourites=Favourites pageSize=PageSize enterFilterValue=Enter filter value showTimestamps=Show times if available gamemodeTableHeader=Gamemode lastVisit=Last visit visitWebsite=Visit Website addToFavourites=Add to favourites ba=Bosnian sureYouWantToRestoreLegacySettingsAswell=Do you also, in addition to the application settings, want to reset the SA-MP settings? ping=Ping: sureYouWantToRestoreLegacySettings=Are you sure, that you want to reset the SA-MP settings? fpsLimit=FPS Limit website=Website: showChatlogColors=Show colors showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port donate=Donate applyUsername=Apply username all=All removeUsernameSingular=Remove username downloadingUpdate=Downloading update history=History restoreLegacySettingsToDefault=Restore SA-MP settings to default removeUsernamePlural=Remove usernames retrieving=Retrieving ... connectToServer=Connect to server removeFromFavourites=Remove from favourites checkingForUpdates=Checking for updates
Code:
pageSize=PageSize lagcomp=lagcomp: gamemodeTableHeader=Gamemode visitWebsite=Visit Website addToFavourites=Add to favourites ping=Ping: fpsLimit=FPS Limit showChatlogColorsAsText=Show colors as text copyIpAddressAndPort=Copy IP address and port connectToServer=Connect to server removeFromFavourites=Remove from favourites
This project is managed using gradle.
Structure
It is a multi-project consisting of 1 subproject
Code:
ServerBrowser The parent project |__ client The Windows GUI client with which humans interact
Building with gradle
To see which tasks are available, run:
on Unix:
Code:
$ ./gradlew tasks
Code:
$ ./gradlew.bat tasks
You are of course free to use your own or systems copy of gradle, but this approach has the advantage that we all share the same version of gradle.
Running tasks on subprojects
To run tasks on the subprojects, you can either __cd__ into the subproject and run the task, e.g.:
Code:
$ cd client $ ../gradlew run
Code:
$ ./gradlew client:run
Code:
$ ./gradlew build
Typically, when you import a gradle project into eclipse, it takes care of creating the eclipse project files via the plugin buildship.
However, if you want to be extra sure, donґt want to use the plugin or need to fix some synchronization issue between eclipse and gradle; It is useful to know how to manually do it:
From the parent project run:
Code:
$ ./gradlew eclipseClean eclipse
Pipeline
__ServerBrowser__ utilizes advanced build techniques in order to assemble and optimize the output. The goal is to build the smallest possible 'self-contained' executable for Windows for the client.
__self-contained__ in this context means the JVM is bundled with the output.
In order to achieve this the following 2 step process is used:
1. Put all build outputs into a single JAR (fat JAR), including (transitive) dependencies.
2. Bundle the optimized JAR with a JVM and build a native container around them (exe/deb).
These steps map to these tools:
1. Gradle Shadow Plugin
2. javapackager + JavaFX-Gradle-Plugin
Our build scripts are largely glue around those tools.
Building the native output
Code:
$ ./gradlew jfxNative
We support Windows and Linux and in order to be able to generate an installer, some dependencies need to be installed.
Windows
- Inno Setup 5 or later
Linux (rpm)
- RPMBuild
Linux (deb)
- Debian packaging tools
Javapackager
The underlying technology for building native installer bundles is javapackager.
Learn more about it here:
- https://docs.oracle.com/javase/8/doc...packaging.html
- https://docs.oracle.com/javase/8/doc...apackager.html
- https://docs.oracle.com/javase/8/doc...apackager.html
Realising a signed build
Our builds are cryptographically signed. In order to build with signing enabled you need to setup 2 things.
-
A local.properties file:
Code:localSecretKeystorePassword = "choose super secret pw" localSecretKeyPassword = "choose super secret pw yet again!"
-
Once you have your passwords setup, these can automatically generated for you with:
Code:$ ./gradlew jfxGenerateKeyStore
Send me an E-Mail or send me a pm.