CSUN Discord Textbot
Project Summary
Currently being used in my school’s (CSUN) Discord server which hosts 3000 users. I used the Discord API to develop a text-bot programmed in JavaScript to play games and interact with users like playing in a simulated stock market, connect four, Pokémon, Akinator, find the IMBD results of a movie, find the lyrics to a song, etc.
Tools, libraries, frameworks, etc.
JavaScript, Node.Js, MongoDB, Mongoose, Discord.js
Project Description
Currently, the bot is on its 3rd iteration. The first two iterations were
programmed in Python. After reviewing the Discord.js library and its
capabilities I decided to transition to JavaScript.
The bot uses MongoDB to store user details, server details, and movies for
movie night. Below there are the commands with details on what they are.
Some noteable commands would be the Akinator command to play an Akinator
game with the bot, the connect-4 command to play a game with any other user,
and finally the Pokémon command.
The Pokémon command while not currently finished allows each user to
catch various Pokémon that spawns, battle Pokémon to train your Pokémon,
and battle other users to glory and money. Currently, only the first
generation of Pokémon and types are implemented.
~help [command name] - Use a command name as an argument to display details for a command
Server Only: No Cooldown: 10 Seconds Aliases: ~botinfo, ~info, ~commands
~maps [desired map] - Use a map name as an argument to display that map
subcommands: campus, housing, shuttle, water, lactation
Server Only: No Cooldown: 5 Seconds Aliases: ~m, ~map
Server Only: No Cooldown: 1 Seconds Aliases: ~test
Server Only: Yes Cooldown: 30 Seconds Aliases: ~serverinfo, server-details, server-details, serverdtls
Server Only: Yes Cooldown: 5 Seconds Aliases: ~userinfo, ~user-details, ~userdetails, ~userdtls, usrdtls
Server Only: No Cooldown: 2 Seconds Aliases: ~ak
~coinflip [number] - Use a number to tell the bot how many coins to flip
Server Only: No Cooldown: 5 Seconds Aliases: ~coin-flip, ~flip-coin, ~flip
~connect-four [challenge] [@player] - Use a subcommand to challenge, play, or resign
subcommands: challenge, place, resign, draw
Server Only: No Cooldown: 2 Seconds Aliases: ~c4, ~connect, ~cfour, ~connect
~dice [number] - Choose the number of dice you want to roll
Server Only: No Cooldown: 0.1 Seconds Aliases: ~dice-roll, ~rolldiceServer Only: No Cooldown: 5 Seconds Aliases: ~gibfunny, ~tellajoke
Server Only: No Cooldown: 5 Seconds Aliases: ~rate
~buy [portfolio number] [ticker] [amount (usd)] - Use a subcommand to buy, sell and check your portfolio
subcommands: buy, sell, price, watchlist, portfolio
Server Only: Yes Cooldown: 2 Seconds Aliases: ~stocks, ~s
Server Only: No Cooldown: 5 Seconds Aliases: ~imbd
Server Only: No Cooldown: 5 Seconds Aliases: ~lyric, ~song, ~songDetails
Server Only: No Cooldown: 5 Seconds Aliases: ~whoismatty
~list - Use a subcommand to print 10 random movies or add/remove movie to database
subcommands: list, add, remove, check, show
Server Only: Yes Cooldown: 0.,2 Seconds Aliases: ~movie
Server Only: No Yes Cooldown: 5 Seconds Aliases: ~oam
Server Only: Yes Cooldown: 5 Seconds Aliases: ~red, ~redit
Server Only: No Cooldown: 5 Seconds Aliases: ~repeat
Server Only: Yes Cooldown: 0.1 Seconds Aliases: ~suggest, ~please, ~suggestion, ~complaint, ~complain
Server Only: Yes Cooldown: 10 Seconds Aliases: ~remove, ~delete
Server Only: Yes Cooldown: 5 Seconds Aliases: ~boot
Server Only: Yes Cooldown: 10 Seconds Aliases: ~deletemessages, deletemessage, prunemessage
Server Only: Yes Cooldown: 10 Seconds Aliases: ~restart, ~reboot, ~reset
Server Only: Yes Cooldown: 10 Seconds Aliases: ~reset-bot, restart-bot, reboot-bot
Server Only: Yes Cooldown: 18 days Aliases: ~updateyear, ~updateme