Skip to content

A bot for Discord that makes ranking/voting games easier to manage and create. Comprises a number of simple media ranking games such as "left vs right", "rank 1 through 5", "hug/kiss/punch", etc. Automatically creates threads from messages.

License

Notifications You must be signed in to change notification settings

alexandermaisey/discord-voting-games-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Discord Voting Games Bot

A bot for Discord that makes ranking/voting games easier to manage and create. Comprises a number of simple media ranking games such as "Upvote/Downvote" "Left or Right", "Rank 1 through 5", "Hug/Kiss/Punch", etc. Automatically creates threads from messages.

When a channel is configured to use this bot, messages without media attachments are automatically deleted; Messages with media attachments are populated automatically with the appropriate reaction emoji (i.e., if the channel's "game mode" is "Upvote/Downvote", the message will automatically have the emojis "⬆️" and "⬇️" applied).

Available Games include:

  • Rank 1 through 5
  • Rank 1 through 10
  • Left or Right
  • Left Right or Middle
  • Upvote/Downvote
  • Hug/Kiss/Punch

By default, the game is "Upvote/Downvote". This can be configured by invoking /set_game_type. This setting effects an entire channel so it is suggested that if you want a "Hug/Kiss/Punch" game, you create a channel for that and configure the bot appropriately within that channel. By default, users can only make one emoji reaction selection. This can be configured by invoking /set_allow_multiple By default, threads are automatically created by the bot. This can be configured by invoking /set_auto_threading By default, additional emojis reactions outside of those posted by the bot are automatically deleted (will be configurable in a later version)

Installation Instructions

  • yarn install to install; yarn dev to run in dev mode (hot reloads); yarn setup to install and build on a server followed by yarn start (or pm2 start bot_pm2.pson in pm2 environments)
  • TODO: Requires Discord bot token and client ID
  • TODO: Describe required channel permissions

TODO

  • Short term: Add function to set_allow_additional invokation
  • Short term: Simple logger with rotation
  • Short term: Implement sqlite for storage (currently configurations are in-memory only and reset when bot is run again)
  • Mid term: Determine how to best "catch up" any missed messages during down time/outages
  • Mid term: Various logic & efficiency improvements
  • Mid term: Automatically retrieve current published slash commands and delete/overwrite when necessary
  • Long term: Custom emoji selection for games
  • Long term: Custom command maker
  • Long term: Split out functionality so that individual users can select the "game mode" per message and are not restricted by the channel's configuration
  • Long term: Suggest game type by counting number of media attachments
  • Long term: (Paid version feature?) Bracket voting system with configurable number of rounds, round durations and expirations, etc.
  • Long term: (Paid version feature?) Implement quick and dirty tensorflow implementation to suggest game type based on number of detected dogs, faces, shoes, etc.

About

A bot for Discord that makes ranking/voting games easier to manage and create. Comprises a number of simple media ranking games such as "left vs right", "rank 1 through 5", "hug/kiss/punch", etc. Automatically creates threads from messages.

Resources

License

Stars

Watchers

Forks

Packages

No packages published