Discord Python Bot
Budget: $30 – $250 AUD
Bot Functionality Specification
Command: /match @username
Initiation:
The bot initiates a dialog box in the channel upon command /match @username.
Visibility: Only visible to the user who executed the command.
User Input Collection:
The bot requests the following details from the user:
Time in 24-hour format.
Date in DD/MM/YYYY format.
Map selection from a provided list of options.
Match Request Notification:
After input collection, the bot sends an embedded message in the channel.
Format: “@challenger has requested a new match with @opponent! Accept / Decline”
Visibility: Only visible to @challenger and @opponent.
Acceptance or Declination:
If accepted, the bot announces:
“MATCH ACCEPTED @challenger vs @opponent Time: [Time] Date: [Date] Map: [Map]”
Visibility: Visible to everyone in the server.
If declined, the bot:
Asks the opponent for a declination reason.
Announces: “MATCH DECLINED @challenger VS @opponent Reason: [Reason]”
Visibility: Visible to everyone in the server.
Score Reporting System
Post-Match Score Submission Prompt:
After the match time has elapsed, the bot requests score submissions from @challenger and @opponent, providing a 'Dispute' button.
Visibility: Only visible to @challenger and @opponent.
Score Submission and Validation:
On receiving matching scores, the bot declares the winner and updates the leaderboard.
Match result format: “MATCH RESULTS @Challenger WIN / [Score] @Opponent LOSS / [Score]”
Visibility: Visible to everyone in the server.
Dispute Resolution:
In case of score dispute or non-matching scores, a dedicated dispute channel is created.
Participants: Users with the 'Referee' role, @challenger, and @opponent.
Referees resolve the dispute by using the command !referee, specifying the winner, loser, and their scores.
Post-resolution, the bot updates the leaderboard and closes the match.
Command: /leaderboard
Leaderboard Display:
The bot displays the top 20 leaderboard rankings.
Format includes rankings, usernames, and win/loss records, using emojis for the top three positions.
Example Format:
? @username WINS/LOSSES
? @username WINS/LOSSES
? @username WINS/LOSSES
#4 @username WINS/LOSSES
...continues up to #20
Command: /match @username
Initiation:
The bot initiates a dialog box in the channel upon command /match @username.
Visibility: Only visible to the user who executed the command.
User Input Collection:
The bot requests the following details from the user:
Time in 24-hour format.
Date in DD/MM/YYYY format.
Map selection from a provided list of options.
Match Request Notification:
After input collection, the bot sends an embedded message in the channel.
Format: “@challenger has requested a new match with @opponent! Accept / Decline”
Visibility: Only visible to @challenger and @opponent.
Acceptance or Declination:
If accepted, the bot announces:
“MATCH ACCEPTED @challenger vs @opponent Time: [Time] Date: [Date] Map: [Map]”
Visibility: Visible to everyone in the server.
If declined, the bot:
Asks the opponent for a declination reason.
Announces: “MATCH DECLINED @challenger VS @opponent Reason: [Reason]”
Visibility: Visible to everyone in the server.
Score Reporting System
Post-Match Score Submission Prompt:
After the match time has elapsed, the bot requests score submissions from @challenger and @opponent, providing a 'Dispute' button.
Visibility: Only visible to @challenger and @opponent.
Score Submission and Validation:
On receiving matching scores, the bot declares the winner and updates the leaderboard.
Match result format: “MATCH RESULTS @Challenger WIN / [Score] @Opponent LOSS / [Score]”
Visibility: Visible to everyone in the server.
Dispute Resolution:
In case of score dispute or non-matching scores, a dedicated dispute channel is created.
Participants: Users with the 'Referee' role, @challenger, and @opponent.
Referees resolve the dispute by using the command !referee, specifying the winner, loser, and their scores.
Post-resolution, the bot updates the leaderboard and closes the match.
Command: /leaderboard
Leaderboard Display:
The bot displays the top 20 leaderboard rankings.
Format includes rankings, usernames, and win/loss records, using emojis for the top three positions.
Example Format:
? @username WINS/LOSSES
? @username WINS/LOSSES
? @username WINS/LOSSES
#4 @username WINS/LOSSES
...continues up to #20