Today I’m pleased to commit a piece of work we had under the hood for quite a while. It’s surprising how some relatively simple things go overseen for months. Anyway it’s working and published now, for you people to test it out, rejoice and why not, contribute whatever you feel we missed.
I’m talking about two graphical user interfaces, one for server settings configuration and one for game server registering against a particular Login server. In the past, you were provided with an “ugly” DOS text-based application for the latter task and for the first one, all you had was a text editor of your choice. Please read more for for some screenshots, design and usage talkabouts…
First of all, have a peek to what they look like on windows XP:

L2J GameServer registering and configuration interfaces
And Kubuntu 9.04:

L2J Gameserver configuration interface, in GNU/Linux.
L2J server settings configuration tool
Let’s talk about the way it works. When it was first written, we agreed with KenM to keep it simple and maintenance-free for the most of it. So when you run the server config tool, it goes through the “config” directory looking for *.properties files and creates one tab per file. Any comment preceding a configuration value will become a tooltip in this GUI (as you can see in the Win screenie). A basic interpretation procedure choses whether you should see a checkbox, an IP widget or a plain text input widget. And that’s about all. Whenever a new file is added, this GUI should support it. All you should need for this tool to work (out of a graphical environment, of course) is to have write permissions for the config files and have them (as well as the languages/images directories) in the correct place. Stock L2J build should grant that. There’s a simple .exe wrapper and a bash script that will server as launchers.
L2J GS registering tool
This tool requires a MySQL server running, you should know the username/password to connect with it. Servername.xml file should be in the login folder too. If for any reason there’s no graphical interface available, this tool should gracefully fall back to the old text based system. I didn’t test it, tho

Translation files
I’ve decided to distribute translation files along with the datapack, since the only one that is mandatory for these tools to work are the english ones. The datapack build file should place them accordingly, but if you do not use eclipse for datapack moving the ‘configurator’ and ‘gsregister’ folders out from ‘l2jserver/gameserver/data/lang’ to ‘l2jserver/languages’ would do the trick. You’re encouraged to contribute any fix or missing language in the forums!
What’s missing
I’d like to have optional translations for the tooltips, included in the i18n files. It would be also good to have some more deep checking rules for whatever values are defined by the user. Maybe some xml file could tell the GUI what to validate for a given configuration entry (if no validation is defined, GUI should flawlessly let values go thru), such as “XPRate should be an integer”, etc. I’m optimistic for that you guys will come up with more ideas and functionality.
Credits
All I did out of committing, was to add i18n and some minor improvements. All the glory for this work goes to KenM and the guys at the team who contributed with translations. Enjoy!
Read the article here