Skip to content

Heroku compatible version of the Rust Server Status updater. Updates activity status on discord bot and displays how many players are connected to your server from rest api.

License

Notifications You must be signed in to change notification settings

JonoHall/discord-serverstatus

 
 

Repository files navigation

Discord bot that displayes online players

Docker Automated build Docker Pulls Docker Build Status Build Status

Discord-bot

Bot

Updates activity status on discord bot and displays how many players are connected to your game server that support sourcequery / rest api sites and webrcon.

This was first created for the game Rust, but it also now support any games that support sourcequery or from rest api from the sites below.

Written in nodejs and requires npm and nodejs.

You can run it on windows, macOS, linux or docker, se the installation for more info.

  • Sourcequery
  • Supported api sites:
  • rust-servers.info
  • rust-servers.net
  • battlemetrics.com (All games)
  • Bot update status every 1-3 minutes

Changelog

Changelog

Configuration

example_config.json

Location: config/serverX.json (default on first startup: config/server1.json)

{
  "debug" : false,
  "token"  : "your token here",
  "apiSite" : 4,
  "apiUrl" : "https://full uri here",
  "serverIp": "",
  "serverPort": "28015",
  "enableRcon" : "0",
  "rconhost"   : "",
  "rconport"   : "",
  "rconpass"   : "",
  "prefix" : "!",
  "roles"  :  ["Administrator", "admins"],
  "queueMessage"  :  "currently waiting in queue.",
  "statusType" : "",
  "updateInterval" : "1"
}

Installation:

  1. Download it as zip or use git clone https://github.com/kennethrisa/discord-rustserverstatus.git
  2. Extract it and open folder, than open powershell in the same folder.
  3. Run command: npm install (This downloads the require modules from package.json)
  4. a: You can manualy do this with command: npm install discord.js request ws sourcequery
  5. b: You should now see that you have a new folder node_modules.
  6. c: Start the bot npm start, and then close it, you will then see it has created a config file under /config/server1.json
  7. Open config/server1.json and add your token from (Do not use client secret) https://discordapp.com/developers/applications/me/ Discord-bot-token
  8. Now we can start the bot with command: node app.js and you should see that the bot is started.

Install Windows only from command prompt (Manuall start)

  • Open powershell in the directory you downloaded: npm install
  • npm start # (It will fail bc of config file does not exist and create an example one)
  • It will now create a config file in folder config/server1.json
  • Edit server1.json with all the information.
  • Start the bot again: npm start

Windows only: Install the app as a windows service.

  • Open powershell: npm install
  • npm install -g node-windows
  • npm link node-windows
  • node installSVC.js
  • You will get some prompt to allow it to install, press yes on all.
  • Open services.msc and see discord-rustserverstatus is started. now it will always start on bootup.
  • Uninstall:
    • node uninstallSVC.js
    • Press yes on all prompts

Linux only: Start bot always using forever

  • $ npm install forever -g
  • $ forever start /path/to/app.js
  • Someone named nimdasys on oxide reported it. Thanks

Create your discord-bot and invite it to your server:

Docker

Using sourcequery:
docker run --name discord-rustserverstatus --restart=unless-stopped \
   -e token="your token here" \
   -e apiSite=4 \
   -e serverIp=1.1.1.1 \
   -e serverPort=28015 \
   -e roles="Owner" \
   kenrisa/discord-rustserverstatus:latest

docker run --name discord-rustserverstatus --restart=unless-stopped \
   -e token=your_token_here \
   -e apiSite=1 \
   -e apiUrl="https://full uri here" \
   -e enableRcon=1 \
   -e rconhost=yourip \
   -e rconport=28016 \
   -e rconpass="yourpassword" \
   -e prefix="!" \
   -e roles="Owner" \
   -e queueMessage="currently waiting in queue" \
   -e statusType=""
   -e updateInterval="3" \
   kenrisa/discord-rustserverstatus:latest
  • Using docker-compose
git clone https://github.com/kennethrisa/discord-rustserverstatus.git
docker-compose pull
docker-compose up -d

Using with volumes and support for multiple bots:
Remove environment, and only have volumes:
---
version: '2'
services:
  bot:
    build: .
    image: kenrisa/discord-rustserverstatus
    container_name: discord-rustserverstatus
    restart: unless-stopped
    volumes:
      - ./config:/usr/src/app/config

  • You can also build the image your self using the docker-compose
git clone https://github.com/kennethrisa/discord-rustserverstatus.git
docker-compose build
docker-compose up -d

Heroku

To run this app on Heroku, create a new app using this repository.

  1. Add your config variables to Settings -> Config Vars (click the "Reveal Config Vars" button), see configuration section further down this documentation for required variables.
  2. Go to "Resources" and turn the "Web" dyno off, and enable the "Worker" dyno.
  3. Check your bot is running by checking the log file screen "More" -> "View Logs".

About

Heroku compatible version of the Rust Server Status updater. Updates activity status on discord bot and displays how many players are connected to your server from rest api.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 98.7%
  • Dockerfile 1.3%