techy2493 / ts-disc-control

A Discord Bot for syncing Discord roles to Teamspeak clients using Server Query.
GNU General Public License v3.0
5 stars 1 forks source link
administration arma arma3 arma3-server bot cfx cfx-resource discord discord-bot discord-js fivem redm seeking-collaborators sync synchronization teamspeak teamspeak3 tools utility

ts-disc-control

This is a passion project to develop a tool focusing on communities which use both TS and Discord for their voice communications.

It allows automated synchronization of discord & teamspeak roles.

Join us on Discord!

https://discord.gg/SDHjZt9wYt

Join us in the TS-Disc-Control Discord to recieve notifications of updates, get help, and partake in discussions about features being implemented and to help choose the new features for each release!

Current Status

As of 06/20/2024 the project is on hiatus. Join our discord for community support. We will accept pull requests as possible. Another project converting this to C# also exists and is in progress however is also on hiatus if you would like to contribute to that project reach out on discord.

Readme is in flux, working on figuring out a new documentation strategy if you have specific requests for documentation please join us on Discord and provide your thoughts or provide feedback on #20

Hosting

I am currently looking into the requirements for making this a hosted bot and providing all requirements for OAuth to work. If you are interested in this please reach out on Discord to provide your input.

How & Is it Safe?

What is it and how does it work?

TS-DISC-Control is a Discord BOT, which should be used with a Discord Appliation & Bot. It does not automate any activity on your user account.

When you connect to a teamspeak server with this bot connected you will recieve a message inidcating you should log in with discord (this is done through normal OAuth2 flows which protect you the user and do not ever give your credentials to anyone but Discord). This authorization is only for identification of the discord client in the discord server the bot is connected to.

When your accounts are linked together you will automatically recieve and or lose the roles chosen to be synchronized (and only those) when you recieve or lose them in discord.

At this time, we are not offering a hosted bot for this, we offer this code for your use and you must set up the bot with your own application & bot account to use it.

What is it not.

TS-DISC-Control is NOT a self-bot. It will never act on your behalf with your account and it will not impersonate you or any other person. For the bot to start it must have a discord application & bot account associated for it to do anything at all.

Is it safe?

Safety is always relative and we do not offer any warranty or guarantee. However, the project is designed to follow all Discord Terms of Service and rules. Any changes which impact this will be announced within 24 hours on discord. We have requested discord perform a validation of our code to ensure we are not in breach, however they currently only review bots with 75 active guids or more. We are still aiming to have this done and will update on discord when we can.

This bot does not collect or store sensitive user information, it does not retain any rights to the user account even those for identity after the user ID is connected. It does not read messages (and therefore does not require the message intent and we reccomend not turning it on in your application). The database file used in this application only stores Teamspeak user ids (DBIDs which uniquely identify the user to the server) and Discord Ids which uniquely identify the discord user on the discord server (guild). It does not store any information about which roles a user has assigned preferring to check every time a sync is triggered.

DEMO

Demo servers are available at https://discord.gg/SDHjZt9wYt and wc147.teamspeak3.com

Current Features

These are the features which currently exist in ts-discord-control;

Roadmap

This is entirely a work in progress and is subject to change

SETUP

Discord Bot

Create your application & bot in Discord

For your token see: https://discordjs.guide/preparations/setting-up-a-bot-application.html

For your clientID and clientSecret see: https://discordjs.guide/oauth2/#getting-an-oauth2-url

Teamspeak

Create a serverquery account for your bot to monitor teamspeak, send messages to users, and assign server groups.

CONFIG FILE

See the configuration section of the wiki for information on configuring the bot, an example config file and descriptions of each configuration item and what it is used for.

Running the bot

Once the config file is filled out, run the bot by executing index.js with node.

To make it run continually you may want to use PM2, see: https://discordjs.guide/improving-dev-environment/pm2.html#installation

The file you should run is index.js found at the root of the bot's files (next to the config you should create)