All Projects → mattgreen → Fogeybot

mattgreen / Fogeybot

Licence: mit
A Discord bot for Heroes of the Storm

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Fogeybot

Mantarobot
Multipurpose Discord bot made in Java using JDA.
Stars: ✭ 282 (+4600%)
Mutual labels:  discord-bot
Unifiedmessagerelay
Group Message Forward Framework (supports QQ Telegram Line Discord)
Stars: ✭ 363 (+5950%)
Mutual labels:  discord-bot
Discord Bot Client
A patched version of discord, with bot login support
Stars: ✭ 441 (+7250%)
Mutual labels:  discord-bot
Giveawaybot
🎉 Hold giveaways quickly and easily on your Discord server!
Stars: ✭ 290 (+4733.33%)
Mutual labels:  discord-bot
Modmailbot
Modmail Bot is a bot for Discord that makes it easier for users to contact moderators and admins for help.
Stars: ✭ 354 (+5800%)
Mutual labels:  discord-bot
Discord Term
Extensible Discord terminal client
Stars: ✭ 371 (+6083.33%)
Mutual labels:  discord-bot
Livebot
An app that allows you to be inside a bot!
Stars: ✭ 271 (+4416.67%)
Mutual labels:  discord-bot
D Zone
An ambient life simulation driven by user activity within a Discord server
Stars: ✭ 466 (+7666.67%)
Mutual labels:  discord-bot
Atlantabot
🤖 Another powerful Discord Bot with a web-dashboard used by more than 130k users!
Stars: ✭ 362 (+5933.33%)
Mutual labels:  discord-bot
Discordsrv
The Minecraft <-> Discord bridge plugin your mother warned you about. https://www.spigotmc.org/resources/discordsrv.18494/
Stars: ✭ 437 (+7183.33%)
Mutual labels:  discord-bot
Xiao
Xiao is a Discord bot coded in JavaScript with discord.js using the Commando command framework. With over 500 commands, she is one of the most feature-rich bots out there. Formerly XiaoBot.
Stars: ✭ 302 (+4933.33%)
Mutual labels:  discord-bot
Lightnovel Crawler
Download and generate e-books from online sources.
Stars: ✭ 344 (+5633.33%)
Mutual labels:  discord-bot
Evobot
🤖 EvoBot is a Discord Music Bot built with discord.js & uses Command Handler from discordjs.guide
Stars: ✭ 420 (+6900%)
Mutual labels:  discord-bot
Switchblade
The open source Discord bot that solves all of your problems.
Stars: ✭ 285 (+4650%)
Mutual labels:  discord-bot
Yagpdb
Yet another general purpose discord bot
Stars: ✭ 452 (+7433.33%)
Mutual labels:  discord-bot
Nostrum
Elixir Discord Library
Stars: ✭ 274 (+4466.67%)
Mutual labels:  discord-bot
Javacord
An easy to use multithreaded library for creating Discord bots in Java.
Stars: ✭ 368 (+6033.33%)
Mutual labels:  discord-bot
Dsharpplus
A .NET Standard library for making bots using the Discord API.
Stars: ✭ 635 (+10483.33%)
Mutual labels:  discord-bot
Bot
The community bot for the Python Discord community
Stars: ✭ 460 (+7566.67%)
Mutual labels:  discord-bot
Commando
Official command framework for discord.js
Stars: ✭ 434 (+7133.33%)
Mutual labels:  discord-bot

Introduction Build Status

A simple Discord bot written with discord.py for forming teams for pickup games.

It's tailored towards Heroes of the Storm.

Prerequisites

  • Python 3.5
  • A Discord bot user and client ID
  • Somewhere to run it (VPS, Heroku, BlueMix, etc)
  • MongoDB for persisted information

Running

First, clone the repo:

$ git clone https://github.com/mattgreen/fogeybot.git
$ cd fogeybot

Next, install dependencies:

$ pip install -r requirements.txt

Finally, start FogeyBot, specifying login information in environment variables:

$ DISCORD_TOKEN="bot_token" MONGO_URI="uri" python -m fogeybot

You can configure the bot to only listen for commands on a certain channel by setting the DISCORD_CHANNEL env var, as well.

Usage

Someone starts a pickup game via the !startpickup command, players can join the pickup in progress using the !joinpickup 1700 command, where 1700 is their MMR. After ten players have joined, the MMRs specified are used to produce two teams of approximately equal skill.

You can abort the game early using the !stoppickup command.

The balancing algorithm works by sorting players by their skill, pairing players with the closest player of approximate skill, and splitting the pair between teams. To prevent team 1 from being weighted too heavily towards better players, we alternate which team the first player of a pair is assigned to.

Status

This is used regularly to host pickup games for Fogey League.

Commands

General

!help

Prints help information

!uptime

Prints uptime information. Useful for monitoring how good your hosting is.

!coinflip

Flips a coin

Pickup

!startpickup

Starts a new pickup game

!addpickup name [mmr]

Adds the specified player to the current pickup game with the given MMR. If it is not specified, use a default MMR of 1500. This command is useful for quickly on-boarding new users.

If the MMR is not parsable, it is ignored. If it is outside a reasonable range, it defaults to 1500.

!joinpickup [mmr]

Adds the player to the current pickup game with the given MMR.

If the user has registered their battle tag (via !register), and no MMR is specified, it will be retrieved from HotsLogs. If the user has not registered their battle tag, or their HL profile is private, then use a default MMR of 1500.

If the MMR is not parsable, it is ignored. If it is outside a reasonable range, it defaults to 1500.

!pickupstatus

Prints out information about the current pickup, including who has joined and their MMR

!leavepickup

Removes your pickup slot, freeing it up for someone else.

!stoppickup

Stops the pickup game.

Games expire after 30 minutes of the first !startpickup command.

!randommap

Prints a random map, excluding Haunted Mines and Lost Cavern.

User registration

!register battletag#123

Associates the user's battle.net ID with the Discord account

!registrationstatus

Returns the user's battle.net ID, if any

!unregister

Removes the user's battle.net ID information, if any

Deploying

Files for running on BlueMix are included.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].