SafeMoon
Discord Bot
https://safemoon.net/
About • Commands • Requirements • Installation • Setup • License • Contributors
About
SafeBot is open source to allow our community to utilize, contribute and improve the experience of the SafeMoon Discord Server. You can also invite SafeBot to your own server, by clicking here.
Feel free to leave a
Commands
Substitute !
in the below commands to be the prefix that is set in config.json
.
Command | Aliases | Permissions | Feature |
---|---|---|---|
!price | !p | - | Shows the current price of $SAFEMOON from the Dex Guru API (falls back to Pancake if Dex fails) |
!price-detailed | !pd | - | Show the statistics of the $SAFEMOON coin |
!pricewatch | !pw | ADMINISTRATOR | Set the channel that will receive continuous updates of the $SAFEMOON statistics and price |
Requirements
If you want to run the bot within a containerised environment, this repository is setup to use Docker.
Installation
You can add SafeBot to your server by clicking here, otherwise, you can clone this repository and host the bot yourself.
$ git clone https://github.com/Safemoon-Protocol/Discord-Bot.git
Once you've cloned the repository to your machine or server, you will need to run the below command to grab the dependencies that the bot requires to run.
$ npm install
Setup
Copy the config.example.json
file within the src/
directory, and rename it to config.json
. You can then
update the values in the JSON file to your preference. The configuration file should look something like this:
{
"token": "YOUR_BOT_TOKEN",
"prefix": "!",
"mongoPath": "mongodb://localhost:27017/",
"contractAddress": "0x8076C74C5e3F5852037F31Ff0093Eeb8c8ADd8D3",
"bscScanApiKey": "YOUR_API_KEY_GOES_HERE"
}
To find your bot's token, go to the Discord Developer Portal and create a bot. Copy the token that Discord gives you, and place this inside of your configuration JSON file. You will also need to give your bot on the Developer Portal privileged gateway intents, you can find this on the Bot Settings on the portal.
Configuration Setting | Information |
---|---|
token |
Get this from Discord's Developer Portal |
prefix |
The prefix that will be used by the bot for each command |
mongoPath |
The connection URI for the Mongo database |
contractAddress |
The SafeBot contract address |
bscScanApiKey |
Your generated BscScan API Key from your BscScan account |
Running with Docker?
If you're running the SafeBot within a containerised environment such as Docker, ensure that
your config.json
file references the container name for the mongoPath
variable. From the
above example, we would rename localhost
to db
, to match the container name in the
docker-compose.yml
file.
{
"mongoPath": "mongodb://username:password@db:27017/",
...
}
There is also a .env.example
file that you will need to copy & rename to .env
when using Docker.
From the mongoPath
above, there is username:password
, this should be whatever you set the environment
variables of MONGODB_USERNAME
and MONGODB_PASSWORD
to in the .env
file.
You should set the DISCORD_RUNNER
variable to either local
or shard
, depending on your criteria, see below.
Discord Runner | Criteria |
---|---|
local |
If you're running the bot on your local machine or for a small Discord server |
shard |
If you're expecting the bot you're hosting to be on multiple large guilds |
If you're running the bot on your local machine or without Docker, you can use the following command to start the bot.
$ npm run start
If you're using Docker & Docker Compose, you can use the following command to start the bot and its services.
$ docker-compose up -d
# To view the logs of the bot, you can use this command
$ docker-compose logs -f bot
Additional Information
There are a few other commands that are baked into the package.json
file for convenience.
You can find them in the table below.
Command | Use Case |
---|---|
npm run start |
Running the bot on your local machine |
npm run shard |
Running the bot on your local machine, for multiple large guilds |
npm run dev:local |
Run the bot via nodemon , to automatically restart it when files are changed |
npm run dev:shard |
Run the bot via nodemon , to automatically restart it when files are changed |
npm run docker:local |
This command is used by docker-compose.yml . Installs dependencies and then runs the bot without Discord sharding. |
npm run docker:shard |
This command is used by docker-compose.yml . Installs dependencies and then runs the bot with Discord sharding enabled. |
License
Released under the GNU GPL v3 license.
Contributors
Find the list of