teamspeak-async
v1.2.2
Published
Use Teamspeak ServerQuery from Node
Downloads
11
Maintainers
Readme
Teamspeak-Async
A library to interface the ServerQuery protocol on your Teamspeak Server.
Usage
Targets Node >= 7.6
and uses async/await. Transpile with Babel for older versions.
If provided with user and password, it will automatically authenticate on the server, and unless specified otherwise, it will use 1
and register for server
notifications.
This default is sensible for most users, but if you want to use another server, you can pass the option not to, same goes for registering for server
notifications.
/* If using Babel, you can of course import it instead */
const TeamSpeakClient = require('teamspeak-async').TeamSpeakClient
const client = new TeamSpeakClient({host: 'example.com'})
async function getClientNames(){
let clients = await client.send('clientlist')
return clients.map(client => return client.client_nickname)
}
/* Print names of everyone online */
getClientNames()
.then(names => {
names.map(name => console.log(name))
})
/* Make everyone online hate you */
client.send('clientlist').then(clients => {
clients.map(user => client.send('clientpoke', {clid:user.clid, msg:`Hello ${user.client_nickname}`}))
})
I recommend using the module config, that enables a project-global, config, with many great features like JSON5 support and different environments.
/* config example */
const config = require('config')
const TeamSpeakClient = require('teamspeak-async').TeamSpeakClient
const client = new TeamSpeakClient(config.teamspeak) /* or: config.get('teamspeak') */
Options:
host
: IP or Hostname for Teamspeak server - requiredport
: Port for ServerQuery, default10011
- optionaluser
: Username to authenticate with - optionalpassword
: Password to authenticate with - optionalserver
: Server ID to select, default1
- optionaldisableUse
: Disables automatically using server, defaultfalse
- optionaldisableRegister
: Disables registering forserver
notifications, defaultfalse
- optional
Methods:
send(command, params)
Send a request to the ServerQueryauthenticate(user, password)
Authenticate on your serverregister(event)
Registers for an eventuse(server)
Use a particular server
Contributions
Feel free to contribute to this repo. Just send a PR.
TODO:
Webpack instead of Babel, with uglify et al.
Unit tests with AVA
Linting with XO
Development
Clone repository and run npm install
in directory.
To build run npm run build
Development requires at least npm@4
, but I highly recommend npm@5
for a lot faster npm experience.
Debug
Teamspeak-async uses the debug module, to display extensive debug information. To enable it set TeamSpeakClient as target for the debug env variable before running your application
- windows:
set DEBUG=TeamSpeakClient
- linux/mac:
DEBUG=TeamSpeakClient npm start
Acknowledgements
Parsing of lines largely based on xbenjii/Teamspeak, the module that inspired me to create a modernised async Teamspeak ServerQuery client.
class Queue
based on Queue.js by Stephen Morley