node-openttd-admin
v0.2.4
Published
A Node.js Library for connecting to Openttd's admin interface.
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 server map - 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
