BOWOT

June 25, 2020 ยท View on GitHub

A fun discord bot made with Golang using disgord, gommand and FaunaDB.

Features

  • Multi-guild support with guild specific settings.
    • Guild specific prefix.
    • Unlimited custom commands per guild.
    • Wakephrase support which lets bot to listen to messages for certain phrases and react to them (ratelimited to avoid spam).
  • Low memory footprint.
  • Selfroles
    • Autodetects guild selfroles using regex set per guild by the administrator.
    • Supports default selfrole for new members.
    • User settings to pick your own selfrole.
  • Easy and free database using FaunaDB.
  • Music
    • Using youtube-dl and ffmpeg.
    • Supports every site supported by youtube-dl such as Twitch livestreams, soundcloud, etc...
    • Supports spotify (converted to youtube links) and youtube playlist.
    • Queues
  • Reddit commands to get random reddit posts.
    • Subreddits configurable using config file.
  • Economy - get some cOwOins.
    • Gamble, daily, leaderboards
  • Hydrate reminder
    • Reminds added user by DM to drink some water every 45 mins.
  • Intelligent bot reply using Botlibre (This chatbot AI will be replaced by a more powerful chatbot AI in future). Users can talk to bowot by mentioning him (@).
  • Error reporting using sentry.
  • Configuration using YAML.
  • Docker deployment.

Deployment

  1. Clone the repository
  2. Rename the configuration file config.yaml.example to config.yaml and edit it.
  3. Build the docker and run it (the config file is placed in /root/ if you want to provide configuration file dynamically).

Commands available

CommandDescription
aboutAbout bowot.
balanceCheck your balance cOwOins.
chuckGets random Chuck Norris joke.
customsGet all the guild custom commands.
dailyGrab your daily cowoins.
defineDefines a word.
diceThrow a dice.
gambleGamble cowoins.
leaderboardcOwOin leaderboard.
pingGet average latency of the bot.
pollMake a reaction based poll.
memeGets random meme from reddit.
whooshGets random whoosh from reddit.
copypastaGets random copypasta from reddit.
selfrolesGet all the guild selfroles.
wakephrasesGet all the guild wakephrases.
translateTranslate from one language to another.
userUser specific settings.
uwufyUwufy a sentence.
valorantGet current valorant server status.
settingsGuild specific settings (administrator only).
bakaCall somebody baka.
cuddleCuddle somebody.
hugHug somebody.
kissKiss somebody.
patPat somebody.
pokePoke somebody.
slapSlap somebody.
smugSmug somebody.
tickleTickle somebody.
joinJoin the current voice channel.
playPlay a song or unpause.
pausePause playback.
stopStop playback.
skipSkip current song.
shuffleShuffle the queue.
clearClear the queue.
removeRemove a track from the queue.
leaveLeave the current voice channel.
queueShows the queue.