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=
     



   
Prisma Cloud utility scripts, and a Python SDK for Prisma Cloud APIs.

pcs-toolbox Prisma Cloud utility scripts, and a Python SDK for Prisma Cloud APIs. Table of Contents Support Setup Configuration Script Usage CSPM Scri

Palo Alto Networks 34 Dec 15, 2022
Automatically detect changes made to the official Telegram sites.

🕷 Telegram Web Crawler This project is developed to automatically detect changes made to the official Telegram sites. This is necessary for anticipat

Il'ya 115 Dec 31, 2022
A modern Python client for controlling Wyze devices.

Python Wyze SDK A modern Python client for controlling Wyze devices. Whether you're building a custom app, or integrating into a third-party service l

Shaun Tarves 205 Jan 02, 2023
A Bot to get RealTime Tweets to a Specific Chats from Desired Persons on Twitter to Telegram Chat.

TgTwitterStreamer A Bot to get RealTime Tweets to a Specific Chats from Desired Persons on Twitter to Telegram Chat. For Getting ENV's Refer this Link

Anonymous 69 Dec 20, 2022
This project checks the weather in the next 12 hours and sends an SMS to your phone number if it's going to rain to remind you to take your umbrella.

RainAlert-Request-Twilio This project checks the weather in the next 12 hours and sends an SMS to your phone number if it's going to rain to remind yo

9 Apr 15, 2022
This bot can stream audio or video files and urls in telegram voice chats :)

Voice Chat Streamer This bot can stream audio or video files and urls in telegram voice chats :) 🎯 Follow me and star this repo for more telegram bot

Anjana Madu 63 Dec 25, 2022
The smart farm is an idea that designing Smart Farm by IoT

The smart farm is an idea that designing Smart Farm by IoT. Using Raspberry Pi 4 detect the data from different sensors(Raindrop sensor and DHT22 sensor), and push the data to Azure IoT central.

Jiage 1 Jan 11, 2022
Demonstrating attacks, mitigations, and monitoring on AWS

About Inspectaroo is a web app which allows users to upload images to view metadata. It is designed to show off many AWS services including EC2, Lambd

Alex McCormack 1 Feb 11, 2022
Telegram to TamTam stickers

Telegram to TamTam stickers @tg_stickers TamTam бот, который конвертирует Telegram стикеры в формат TamTam и помогает загрузить их в TamTam. Все делае

Ivan Buymov 22 Nov 01, 2022
Discord bot for playing Werewolf game on League of Legends.

LoLWolf LoL人狼をプレイするときのDiscord用botです。 (Discord bot for playing Werewolf game on League of Legends.) 以下のボタンを押してbotをあなたのDiscordに招待することで誰でも簡単に使用することができます。

Hatsuka 4 Oct 18, 2021
Graviti TensorBay Python SDK

TensorBay Python SDK is a python library to access TensorBay and manage your datasets. It provides: A pythonic way to access your

Graviti 72 Aug 22, 2022
pyhakuna is a client to access the API of the time keeping service hakuna.ch.

pyhakuna pyhakuna is a client to access the API of the time keeping service hakuna.ch. The Hakuna API is – unfortunately – personal and currently does

Christian Mäder 1 Feb 15, 2022
Simple bot to receive feedback,same as livegram bot but with more features & full control over bot

Kontak Simple bot to receive feedback,same as livegram bot but with more features & full control over bot Deploy to VPS

Mahin Ahmed 2 Dec 16, 2021
go-cqhttp API typing annoations, return data models and utils for nonebot

go-cqhttp API typing annoations, return data models and utils for nonebot

风屿 6 Jan 04, 2023
Telegram Userbot built with Pyrogram

Pyrogram Userbot A Telegram Userbot based on Pyrogram This repository contains the source code of a Telegram Userbot and the instructions for running

Athfan Khaleel 113 Jan 03, 2023
Auto file forward bot with python

Auto-File-Forward-Bot Auto file forward bot. Without Admin Permission in FROM_CHANNEL Only Give Permission In your Telegram Personal Channel Please fo

Milas 1 Oct 15, 2021
The most fresh and updateable Telegram userbot. By one of the most active contibutors to GeekTG

Installation Script installation: Simply run this command out of root: . (wget -qO- http://gg.gg/get_hikka) Manual installation: apt update && apt in

Dan Gazizullin 150 Jan 04, 2023
A simple tool that allows you to change your default AWS CLI profile.

Select AWS Profile Select AWS Profile (slapr) is a simple tool that lets you select which AWS Profile you want to use and sets it as the default AWS p

Antoni Yanev 2 Nov 09, 2022
Sniper for Anigame and Izzi discord bots!

Anigame Sniper Gen-3 Features Inbuilt Spammer Responds to your messages in discord (on/off) Snipes only where you want it to Set latency so that the b

22 Nov 13, 2022
For specific function. For my own convenience. Remind owner to share data to another DITO user.

For specific function. For my own convenience. Remind owner to share data to another DITO user.

Meigo 1 Dec 14, 2021