Package Exports
- node-openttd-admin
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-openttd-admin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-openttd-admin
A Node.js Library for connecting to Openttd's admin interface.
Preface
This module can be seen as an update to yorickvP/node-ottdadmin, however its completely rewritten to be a bit more tidy and standard, as well as working on more recent versions of node. I have kept the interface reasonably similar, however, its not a drop-in replacement.
Basic Usage
var ottd = require("node-openttd-admin"),
ottdConnection = new ottd.connection();
ottdConnection.connect("myserver.com", 3977);
ottdConnection.on('connect', function(){
ottdConnection.authenticate("MyBot", "MyPass");
});
ottdConnection.on('welcome', function(data){
ottdConnection.send_rcon("say \"hello world\"");
ottdConnection.close();
});Advanced Usage
Examples can be found in the examples/ folder
Functions
| Function Name | Description | parameters |
|---|---|---|
authenticate |
Send and authentication request - this must be performed within 10 seconds of the server connecting | username - name of the client (can be null for a default) password - server admin password |
send_rcon |
Send an rcon command | command - command to execute on the server |
send_chat |
Send a chat message | action - an action from enums.Actions desttype - a destination from enums.DestTypes id - TODO: Lookup msg - message body |
send_update_frequency |
Set a new update frequency | type - type of update (enums.UpdateTypes) frequency - frequency of update (enums.UpdateFrequencies) |
send_ping |
Send a ping request | int32 - 32bit integer that will be returned with pong |
Events
| Event Name | Description | Options |
|---|---|---|
connect |
Called when the tcp connection to the server is connected | none |
authenticate |
Called when successfully authenticated. welcome is more useful for connection however |
version- I have no idea TODO: Lookup |
welcome |
Called when the server sends its "welcome packet", which contains info about the server | name - name of the server version - sematic version of the server. ie- 1.4.0-beta2 dedicated - 0 or 1 depending on whether the server is running as a dedicated servermap - data about the map (seed, landscape, startdate, mapheight, mapwidth) |
newgame |
fired when a new game starts | none |
shutdown |
fired when a new game ends | none |
date |
fired when information about the date is received | date - the current date |
clientjoin |
fired when a client joins | id - id of joining client |
clientinfo |
Fired when information about the client is received | id - id of the clientip - ip address of the clientname - username of the clientlang - language idjoindate - date the player joined the gamecompany - id of the company that the player is in |
clientupdate |
Fired when an update from a client is received | id - id of the clientip - ip address of the clientname - username of the clientlang - language idjoindate - date the player joined the gamecompany - id of the company that the player is in |
clientquit |
fired when a client quits | id - id of the client |
clienterror |
Fired when a client has an error | id - id of the clienterr - error |
companyinfo |
Fired when info about a company is received | id - company id name - company name manager - company manager colour - company primary colour protected - whether the company is password protected startyear - year of inaugaration isai - whether the company is ai or a human player |
companyupdate |
Fired when an update happens to a company | id - company id name - company name manager - company manager colour - company primary colour protected - whether the company is password protected shares - who owns the 4 shares, this is an object with elements 1, 2, 3 and 4. |
companyremove |
Fired when a company is deleted | id - company idreason - reason for deletion (enums.CompanyRemoveReasons) |
companyeconomy |
fired on receiving information about the company's performance | id - company id money - money of the company loan - amount the company has borrowed income - income lastquarter - value, performance and cargo delivered (cargo) of the last quarter prevquarter - the same, but for the quarter before. |
companystats |
Fired on receiving information about the assets of a company | vehicles - number of trains, lorries, busses, planes and ships that the company owns stations - number of stations of each type that the company owns |
chat |
Fired on receiving a chat message | action - what action is included in the message (enums.Actions)desttype - where the message is aimed at (enums.DestTypes) id - message id message - message bodymoney - amount of money sent if action is GIVE_MONEY |
rcon |
Fired on receiving the output of an rcon command | colour - what colour the message is displayed in output - output of the rcon |
rconend |
Fired on receiving the end of an rcon command | command - the command that was sent to rcon |
console |
Fired on receiving output | origin - origin of the output output - body of the output |
pong |
Fired on receiving ping reply | int - integer passed to send_pong |
Enums
There are several enums provided,these are taken almost directly from yorickvP/node-ottdadmin.
This is just a list of them. Rather than listing all the entries here, please see enums.js
- UpdateTypes
- UpdateFrequencies
- CompanyRemoveReasons
- Actions
- DestTypes
- NetworkErrorCodes
Todo
Write initial documentation- Look up unknowns in documentation
Break up long switch into functions in another file- work out some way of doing tests
- Proof read everything