Skip to content

farhannysf/apx_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[GVAW] Bot

A simple Discord bot to check for ArmA 3 and DCS server status.

About

This project is made to improve players convenience and reduce time spent when checking current mission and number of players of ArmA 3 and DCS servers through Discord integration.

Features

The bot is able to show current mission, number of players and active players list on a server when !serverstats command is invoked by a user.

It asynchronously fetches ArmA 3 server data directly from the host server's Steam query port (which defaults to port 2303 if not specified by user) with python-a2s while DCS server data is asynchronously fetched through DCS official website server list.

Users can browse through the list of ArmA 3 servers on Battlemetrics by server name to retrieve the server IP with !serversearch command.

Channel authorization can be managed by users with sufficient permission in the Discord guild through !channelconfig command.

Respectively, server list can also be managed by by users with sufficient permission in the Discord guild through !serverconfig command.

The bot is also containerized using Docker with image pulled from Platform One registry to provide more security and portability in deployment.

It is using Sentry for logging and error tracking, Segment with Amplitude integration for analytics and Google Cloud Firestore to store channel, server list and configuration variables.

There are two available built-in runtime modes, each accomodates for development and production purpose. This is designed to keep environments across the application lifecycle as similar as possible and maximize dev/prod parity.

Usage

!gvawhelp

Display help message.

help


!channelconfig

Authorize or revoke bot access to channels.

!channelconfig authorize #example-channel

Authorize bot access to #example-channel.

!channelconfig revoke #example-channel

Revoke bot access to #example-channel.

channelconfig


!serversearch

Search for ArmA 3 servers IP address.

!serversearch server name

Search for ArmA 3 server IP address by server name.

serversearch


!serverconfig

Assign or remove ArmA 3/DCS servers to the bot.

You can specify optional Steam query port for ArmA 3 server on IP address argument.

DCS servers must have -dcs suffix on its name.

!serverconfig update [name] [IP address]

Assign a name to ArmA 3 server using the respective IP address and save it to the bot.

!serverconfig update [name] [IP address:port]

Assign a name to ArmA 3 server using the respective IP address with optional Steam query port on IP address parameter and save it to the bot.

!serverconfig update [name-dcs] [IP address]

Assign a name to DCS server using the respective IP address and save it to the bot.

!serverconfig delete [name]

Remove saved server from the bot by the assigned name.

serverconfig


!serverstats

Check status of saved server.

!serverstats [name]

Check status of a server by the assigned name.

serverstats


Sites/Tools used

Tools

API

Sites

About

A simple Discord bot to show server status for ArmA 3 and DCS.

Topics

Resources

License

Stars

Watchers

Forks

Languages