In this recipe we will see how we can create a simple Extension that automatically joins users in an available Room and creates more Rooms when the seats are all occupied. Continue reading
Tag Archives: sfs2x
How to send an email from an Extension
Emails can be sent directly from your server side code in order to provide registration confirmations, updates or even debugging and stats reports.
In order to enable email sending you will need to setup the Emailer Service from the AdminTool: from theServerConfigurator choose the Emailer tab, turn on the service and set your SMTP parameters. Continue reading
How to schedule timed tasks in an Extension
Often times in the server-side game logic it is necessary to use timers for recurring events that are sent to the clients (e.g. the end of a turn time, npc actions, etc).
A quick solution to this problem is using the ScheduledThreadPoolExecutor class, provided in the JDK, which offers a convenient task executor backed by a pool of threads. SFS2X already runs its own instance of this Executor (wrapped in a class called TaskScheduler). Continue reading
How to check the server logs
SFS2X provides detailed logging of all its activities. You can consult them at any time by checking the logs/folder. Additionally under the logs/boot/ folder you will find detailed logs of the boot phase. Continue reading
Multiple DB connections
There can be cases in which one application requires to connect to multiple databases. By default each Zone in SFS2X exposes a single DBManager object but we can create more of these via code, to manage multiple data sources. Continue reading
Querying the database and sending resultsets
This recipe shows how to read data from a database and send it to the client in a convenient format. Continue reading
Custom login with database
This recipe discusses the common scenario in which you need to validate the client credentials against the user profiles stored in a database. We will also show how to execute more custom logic right after the login, for example setting User Variables and joining a Room from server-side. Continue reading
How to create an Extension based custom login
Implementing a custom login on the server-side is a simple process. SFS2X fires the following two login events.
- USER_LOGIN: fired when a client requests to join a Zone. Here we can validate the client credentials and decide if the User can continue the login process. At this stage the client is represented by a Sessionobject, not by an SFSUser object yet.
- USER_JOIN_ZONE: notified when a client has successfully joined a Zone (and is turned into an SFSUser).
How to setup a connection to an external Database
SFS2X allows connecting to databases in a way that is very similar to its predecessor. All you need to do is downloading the JDBC connector from your Database vendor (e.g. MySQL or MSSQL) and drop the .jar in the {SFS2XRoot}/lib/ folder.
Of course if you use ODBC instead of JDBC you can even skip the driver deployment step. In fact the ODBC driver is already provided by the Java Runtime.
The following is a list of pages where you can find the JDBC drivers for the most common RDBMS:
The next step is running the SFS2X AdminTool, launch the Zone Configurator module, select your Zone and finally click on the Database manager tab to edit the configuration.
At the end of the process click Submit and restart the server.
Celebrating 10 years!
Ten years ago, in late November 2004, we launched our first commercial version of SmartFoxServer, the Basic edition, which was soon followed by the PRO version in early 2005.
To celebrate the 10 years of activity, and in conjunction with the holiday season, we’re happy to announce an amazing 20% discount campaign on all licenses and license upgrades available in our online store.
The promotion will last until the end of 2014 and it will cover all our server products, including:
- SmartFoxServer Basic
- SmartFoxServer PRO (including BlueBox add-on)
- SmartFoxServer 2X (including Analytics add-on)
Visit our online shop to see all the discounted prices, and make sure to take advantage of this unique offer!
