Hazel 750464e543 Update README.md
Fix guidelines
2026-06-26 16:05:51 -04:00
2026-06-26 15:10:03 -04:00
2026-06-26 16:02:46 -04:00
2026-06-26 16:02:46 -04:00
2026-06-26 15:10:03 -04:00
2026-06-26 16:02:46 -04:00
2026-06-26 16:05:51 -04:00

Sweetbot

A simple Discord bot for pulling character images/stats/nightly rankings posts, using the maplestory.io API to build images. This bot was originally designed to work with a Cosmic v83 database and EXP table. If you're using a different source, you may need to change these.

Usage

Clone the repository with your preferred method:

git clone https://git.bitbouquet.network/Sweetgum/Sweetbot.git

Edit env.example and update the following environment variables:

Discord:

 DISCORD_TOKEN = "your discord bot token"
 DISCORD_CLIENT_ID = "your application client ID here"
 DISCORD_GUILD_ID = "your guild ID here"
 
 BOT_PREFIX = ! (change this if you'd like to use something other than '!' to call the bot)

 RANKINGS_CHANNEL_ID = "your rankings channel ID"

Database:

 DB_HOST = "localhost" (Change this if you're not running the bot on the same database host)
 DB_PORT = 3306 (Change this if your database uses a different port)
 DB_USER = "your db user"
 DB_PASSWORD = "your db password"
 DB_NAME = cosmic (Change this if you've changed your database name, or if using a different source)

Copy env.example to a .env for Node to use your configuration.

Install dependencies & run:

npm install
npm start

Reccommendations

It is NOT ADVISED to use the root user for the database when running this bot. Create a minimum-permissions service user instead.

Run the following commands in a MySQL shell:

CREATE USER 'service_user'@'%' IDENTIFIED BY 'your_password_here';

GRANT SELECT ON cosmic.characters TO 'service_user'@'%';
GRANT SELECT ON cosmic.inventoryitems TO 'service_user'@'%';

FLUSH PRIVILEGES;

'@''%" allows for connections from any host. If your bot runs on the same server, it's reccommended to limit it to 127.0.0.1/localhost.

It is reccommended to run the bot as a system service, so it continues to run once you exit the shell. It will also log activity & console output to the journal. For any systemd-based Linux distro, do the following:

Create a systemd service file: sudo nano /etc/systemd/system/sweetbot.service

Use this template, adjusting the paths to match where your bot runs:

[Unit]
Description=Sweetbot
After=network.target

[Service]
Type=simple
User='your_linux_user_here"
WorkingDirectory=/your/sweetbot/directory
ExecStart=/usr/bin/node /your/sweetbot/directory/bot.js
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Note: The node.js binary may exist in a different directory depending on your OS. Use which node to determine that.

Enable and start it:

sudo systemctl daemon-reload
sudo systemctl enable sweetbot
sudo systemctl start sweetbot

Credits

  • Lynx: Providing information on interacting with maplestory.io
  • maplestory.io: y'all are the goats!!!

Extra Information

Creating a Discord bot is a fairly simple process. For more information on how to create a Discord bot/application, please visit https://docs.discord.com/developers/quick-start/getting-started

Description
Discord bot for pulling character images/stats/daily rankings. Built for Sweetgum83 w/ Node.js.
Readme GPL-3.0 55 KiB
Languages
JavaScript 100%