SquireBot is a Discord bot designed to run and manage tournaments entirely within a Discord.

Overview

Overview

SquireBot is a Discord bot designed to run and manage tournaments entirely within a Discord.

The current intended usecase is Magic: the Gathering tournaments, though it can be used outside that context.

Since SquireBot centralizes the tournament management experience completely inside Discord, tournaments can be interfaced with on both mobile and desktop platforms. This allows players to interact with the tournament from the table they are sit at, outside the venue, or digitally around the globe. This makes SquireBot ideal for both in-person and digital events.

Features

There are many new tournament softwares becoming available, and SquireBot aims to be an alterative to them. From the tournament organizer's perspective, SquireBot handles all major tournament logistics, including:

  • Managing player deck lists
  • Pairing players
  • Creating private voice channels and roles for a match
  • Notifing players about the end of time in round
  • Recording result of a match and confirmation from the other players
  • Reporting the standings of players
  • And more!

SquireBot is also flexible. It is a central goal to allow TOs to organize tournaments as they wish and for SquireBot to help them do so. If SquireBot doesn't have a feature, it will be taken into consideration.

From the player's perspective, SquireBot allows them to interact with a tournament from a service that they likely already have.

Setup

To get SquireBot working on your server, you need to do the following. First, add the default roles and channels that SquireBot will be using 1. Create a "Tournament Admin" Discord Role. 2. Create a "Tournament Judge" Discord Role. 3. Create a channel titled "match-pairings" 4. Create two channel category titled "Matches" and "More Matches".

Setup

To get this bot working on your server, you to only do a few things. First, add the bot to your server here. This will get the bot all necessary permissions, namely:

  • Manage roles and channels
  • Send messages
  • Read message history
  • Mention Everyone
  • Add Reactions

Note, SquireBot will never use @everyone but needs that permission so it can mention arbitary roles. SquireBot makes roles for each tournament and each match in a tournament and uses these roles to alert players about the status of their match (such as the recording of a result, result confirmation, and time in round).

Using SquireBot

SquireBot's commands are broken into three categories, player, judge, and admin commands. Each category is protected by the judge and admin roles. This prevents players from using judge commands and judges from using admin commands; however, admin can still use any command and judges can still use player commands. Since tournament admin are pinged when a player tries to use a command that they do not have permission to, the help message that SquireBot gives is catered to that user's role.

To see SquireBot's help message, use the command !squirebot-help. In that message will be the below links, which go into more depth about each command. There are two other links which are crash courses for new tournament admin and players. These are also linked in the help message.

Development

To run a new instance of SquireBot, you will need its prerequistes and dependencies. SquireBot is written in python3 (and run/tested in python3.8). Its only non-standard dependencies are the Discord API library and the python-dotenv library. Both are available via pip3.

Once its libraries are installed, you need an .env file. This is where you'll specify your Discord Auth token for the bot. If you only intend to run SquireBot, you'll need the following:

DISCORD_TOKEN=
   
MAX_COIN_FLIPS=
   

If you want to work on SquireBot and add features too, you'll want to add a value for the testing bot's token. While this could be the same token as SquireBot's, adding a bot account is free of charge and the added compartmentalization does not hurt.

TESTING_TOKEN=
   

Lastly, if you'd error messages logged in Discord, you can specify the IDs to a Discord guild and text channel where errors will be logged.

DEV_SERVER_ID=
   
ERROR_LOG_CHANNEL_ID=
   

Trice Bot Setup

SquireBot has integration with TriceBot, which helps organize players in Cockatrice as well as provides a single location to pull replay from. Follow the intrustion in its README to set it up. TriceBot should be ran on the same machine as SquireBot on https://127.0.0.1:8000 with SSL enabled. It is recommended to use nginx to expose the tricebot replay downloads to the WAN (reverse proxy https to API_URL) you can you nginx to hide the /api/* endpoints as well.

The auth token for TriceBot should be put into the .env file with:

TRICE_BOT_AUTH_TOKEN=
   
API_URL=
   
    : 
    https://127.0.0.1:8000>

    EXTERN_URL=
     



   
An Unofficial TikTok API Wrapper In Python

This is an unofficial api wrapper for TikTok.com in python. With this api you are able to call most trending and fetch specific user information as well as much more.

David Teather 2.9k Jan 08, 2023
Repositório para meu Discord Bot pessoal

BassetinhoBot Escrevi o código usando o Python 3.8.3 e até agora não tive problemas rodando nas versões mais recentes. Repositório para o Discord Bot

Vinícius Bassete 1 Jan 04, 2022
A casino discord bot written in Python

Casino Bot Casino bot is a gambling discord bot I made for my friends. It is able to play blackjack, slots, flip a coin, and roll dice. It stores ever

Connor Swislow 27 Dec 30, 2022
Super simple anti-spam Discord bot

AutoAntiRaidBot Super simple anti-spam Discord bot. Will automatically kick any member with an account made under 1 day ago, and will ban any member w

Kainoa Kanter 6 Jun 27, 2022
Secure Tunnel Manager

Making life easy of those who are in need of OpenSource alternative of AWS Secure Tunnel.

Suyash Chavan 1 Sep 27, 2022
A telegram bot written in Python to fetch random SFW & NSFW anime images

Tsuzumi A telegram bot written in python to fetch both random SFW & NSFW Anime images using nekos.life & waifu.pics API Commands SFW Commands : /

Nisarga Adhikary 3 Oct 12, 2022
Discord bot for polls and votes including STV. Supports hiding results and is written with Discord.py

VoteBot Discord voting bot capable of standard polls, as found in many other bots; anonymous polls, where votes are hidden and totals are only display

6 Nov 15, 2022
A plugin for modmail-bot for stealing,making ,etc emojis

EmojiPlugin for the Modmail-bot My first plugin .. its very Basic I will make more and better too Only 3 commands for now emojiadd-supports .jpg, .png

1 Dec 28, 2021
A simple anti-ghostping python bot made using diskord.

Anti Ghostping A simple Anti-Ghostping python bot made with ❤ using Diskord Requirements No one will use this but, all you need for this bot is: Pytho

RyZe 2 Sep 12, 2022
Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially maintained by the Tuya Developer Team.

Tuya Home Assistant Integration Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially mainta

Tuya 704 Jan 03, 2023
A bot written in Python to automate attending classes on MyClass (Codetantra).

codetantrabot This is python program to attend class on myclass(codetantra) Prerequisites You should have Python3 and Pip installed on your system Run

Aniket Kumar 1 Feb 08, 2022
ShoukoKomiRobot - An anime themed telegram bot that can convert telegram media

ShoukoKomiRobot • 𝕎𝕣𝕚𝕥𝕥𝕖𝕟 𝕀𝕟 Python3 • 𝕃𝕚𝕓𝕣𝕒𝕣𝕪 𝕌𝕤𝕖𝕕 Pyrogram

25 Aug 14, 2022
This repo provides the source code for "Cross-Domain Adaptive Teacher for Object Detection".

Cross-Domain Adaptive Teacher for Object Detection This is the PyTorch implementation of our paper: Cross-Domain Adaptive Teacher for Object Detection

Meta Research 91 Dec 12, 2022
Python Telegram bot api.

pyTelegramBotAPI A simple, but extensible Python implementation for the Telegram Bot API. Getting started. Writing your first bot Prerequisites A simp

FrankWang 6.4k Jan 09, 2023
A telegram user and chat info extractor with pyrogram python module

Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/FayasNoushad/Telegram-Info/blob/main/LICENSE

Fayas Noushad 8 Dec 22, 2021
The programm for collecting data from Tinkoff API and building Excel table.

tinkproject The program for portfolio analysis via Tinkoff API Hello! This is my first project, please, don't judge me. This project was developed for

214 Dec 02, 2022
Telegram Music Bot for YouTube/SoundCloud/Mixcloud

Telegram Music Bot Telegram Music Bot for YouTube/SoundCloud/Mixcloud This bot downloads and sends the audio when someone send a YouTube/SoundCloud/Mi

Calls Music 76 Jan 02, 2023
Python Library for Secp256k1 Bitcoin curve to do fast ECC calculation

secp256k1 Python Library for Secp256k1 Bitcoin curve to do fast ECC calculation Example Usage import secp256k1 as ice print('[C]',privatekey_to_addres

iceland 49 Jan 01, 2023
Tinyman Python SDK

tinyman-py-sdk Tinyman Python SDK Design Goal This SDK is designed for automated interaction with the Tinyman AMM. It will be most useful for develope

Tinyman 113 Dec 30, 2022
Bendford analysis of Ethereum transaction

Bendford analysis of Ethereum transaction The python script script.py extract from already downloaded archive file the ethereum transaction. The value

sleepy ramen 2 Dec 18, 2021