This project was originally created as part of Old School Maple (OSM), an Old School MapleStory private server which aimed to provide the most authentic and nostalgic GMS circa 2005-2007 MapleStory experience.
A general purpose Discord bot with a multitude of features.
The following features are meant to be used alongside a MapleStory private server and OSM's Website.
- Track and reward users who
Nitro Boost
the Discord server. - View the next time a user will receive their reward for
Nitro Boosting
the Discord server. - Track a user's in-game level, job, and rank by setting their IGN as their Discord nickname.
- Mute, kick, and ban users.
- Ban/Unban streamers from appearing on the featured streamers list.
- Check the status of a coupon code.
- Clear multiple posts in the chat.
- Set and unset server messages in-game through Discord.
- Host random giveaways for Discord users to join. At the end of a giveaway, one or more winners are selected and rewarded with a coupon code.
- Generate new coupon codes to give away to anyone.
- Report a Discord user to the staff.
- Have the Discord bot say any message for you.
- Get the current time of the server.
- Manually link a
YouTube
video to be featured on the front page. - Manually reward a player with a vote.
- Display a welcome message to anyone joining the server.
- Display a list of commands for normal and staff users.
- Display a list of frequently asked questions.
- Display information on how to get featured as a streamer.
- Display a list of common issues players have with launching the game.
- Display the referral link of a user who has connected their IGN to their Discord.
- Display a list of tips for new players.
- Display some basic information on the server.
This project likely contains some extra and unnecessary code and hasn't been thoroughly tested or optimized.
First, import the OSM Database and retrieve the discord
schema. That will contain the necessary tables this application requires.
Then to launch the Discord bot:
git clone https://github.com/nikitabuyevich/osm-discord-bot
cd osm-discord-bot/
npm install
npm start
- Node - at least v11.x - A JavaScript runtime environment that executes JavaScript code outside of a browser.
- MySQL - v5.7.x - A relational database management system.
- OSM Database - Old School Maple's database structure.
Make sure to update all the variables inside the settings/config.js
and settings/index.js
files which start with CHANGE_THIS_TO_*
to their appropriate values.
This project utilizes ESLint to uphold coding standards. You can view the configured ESLint settings inside the .eslintrc.json file.
The easiest way to deploy and host this bot would be to:
- Install Node on a server.
- Run
npm install pm2 -g
to install pm2. - Clone this repo and
cd
into its directory. - Run
pm2 start bot.js --watch
- This will launch the bot and have it run in the background. Any new code changes will restart the instance. - Run
pm2 save
- Will save the current settings ofpm2
. - Run
pm2 startup
- Will runpm2
on system startup.
- Babel - Convert ECMAScript 2015+ code into a backwards compatible version of JavaScript that can be run by older JavaScript engines.
- Nikita Buyevich (Roar / asdf) - nikitabuyevich
This project is licensed under the MIT License - see the LICENSE file for details.
- Some code has been referenced from Stan Barkmeijer's Discord.js Bot YouTube series.