A bot for hosting user-run raffles.
Raffle Bot Info
===================
This bot provides functionality for user-run raffles.
Users (with the create permission) can create named raffles. There is no limit to how many raffles one user can create!
The bot features a permissions system for server administrators to use. This allows you to set roles that can create raffles, list raffles, or delete raffles (delete raffle permissions allows the role to delete anyones raffle, not just raffles they own).
The bot also includes a deputy system. The deputy system allows a user to add deputies (users or roles) to their raffle. Deputies may add tickets and roll a winner for the raffle.
Raffle Bot Commands
===================
GENERAL
=======
!raffle
Displays info message (Top.gg link, support Discord server, changelog).
!raffle help [section]
Displays command information.
If a section is named, more detailed information and example commands are provided.
PERMISSIONS
===========
Server administrators are able to set per-role permissions.
Note: @everyone is a valid role.
The three types of permissions are:
**create** - allows the role to create raffles (using !raffle create).
**list** - allows the role to list raffles and tickets (using !raffle list and !raffle tickets list).
**delete** - allows the role to delete ALL raffles (everyone can delete their own raffle, regardless of permissions).
The commands for viewing, adding, and removing permissions are outlined below:
!raffle permissions
Displays the current role permissions for the server.
!raffle permissions [add/remove] [create/list/delete] [@roletag]
Adds or removes the permission type from the tagged role.
Example:
!raffle permissions add create @Moderator
Example:
!raffle permissions add list @everyone
RAFFLES
=======
!raffle list [@usertag/"name filter"]
Displays raffles in the server.
If an optional user is tagged, only raffles they own will be displayed.
If an optional name filter is provided, only raffles whose name contains that filter will be displayed (case-insensitive, must use "" if contains spaces).
Example:
!raffle list - Will list all raffles in the server.
Example:
!raffle list @Jack - Will list all raffles in the server owned by @Jack.
Example:
!raffle list "some raffle" - Will list all raffles in the server whose name contains "some raffle".
!raffle create ["raffle name"]
Creates a raffle with the given name.
Requires the create permission.
If the raffle name contains spaces, "" must be used.
Example:
!raffle create TestRaffle
Example:
!raffle create "Test Raffle With Spaces"
!raffle rename ["old raffle name"] ["new raffle name"]
Renames the raffle.
You must be an owner or deputy of the raffle to rename it.
If the raffle name(s) contains spaces, "" must be used.
Example:
!raffle rename "bad raffle name" "Good Raffle Name"
!raffle reset ["raffle name"]
Removes all tickets from the raffle.
You must be an owner or deputy of the raffle to reset it.
If the raffle name contains spaces, "" must be used.
Example:
!raffle reset "Test Raffle"
!raffle delete ["raffle name"]
Deletes the raffle from the server (including all tickets and deputies).
You must have delete permissions, or be the owner of the raffle, to delete a raffle.
If the raffle name contains spaces, "" must be used.
Example:
!raffle delete "Test Raffle"
TICKETS
=======
!raffle tickets list ["name filter"]
Displays tickets from raffles in the server.
You must have list permissions to use this command.
If an optional name filter is provided, only raffles whose name contains that filter will be displayed (case-insensitive, must use "" if contains spaces).
Example:
!raffle tickets list - Displays all raffle tickets in the server.
Example:
!raffle tickets list "Test Raffle" - Displays all raffle tickets in the server, whose raffle's name contains "test raffle".
!raffle tickets add ["raffle name"] [@usertag/"text"] [number of tickets]
Adds tickets to a user in a raffle.
You must be the owner or a deputy of the raffle to add/remove tickets to the raffle.
Use a negative number of tickets to subtract tickets from a user.
Example:
!raffle tickets add "Test Raffle" @Jack 5 - Adds 5 tickets to @Jack in "Test Raffle"
Example:
!raffle tickets add "Other Raffle" "Someone else" -5 - Removes 5 tickets from "Someone else" in "Other Raffle"
DEPUTIES
========
Raffle owners may deputize other users (or roles), allowing deputies to add/remove tickets to/from the raffle.
Deputies may also rename the raffle, they may also reset the raffle. They can also roll a winner for the raffle (using !raffle roll).
!raffle deputy [add/remove] ["raffle name"] [@usertag/@roletag]
Add or remove a deputy from the specified raffle.
If the raffle name contains spaces, "" must be used.
Example:
!raffle deputy add "Test Raffle" @Jack
Example:
!raffle deputy add "Test Raffle" @Moderators
Example:
!raffle deputy remove OtherRaffle @Jack
ROLLING
=======
!raffle roll ["raffle name"]
Rolls a winner for the raffle.
You must be an owner or deputy of the raffle to roll a winner for it.
If the raffle name contains spaces, "" must be used.
Example:
!raffle roll "Test Raffle"
Example:
!raffle roll MyRaffle