parent
10e392c6cc
commit
3fa9643f3a
@ -1,5 +0,0 @@
|
||||
from .challonge import Challonge
|
||||
|
||||
def setup(bot):
|
||||
n = Challonge(bot)
|
||||
bot.add_cog(n)
|
@ -1,134 +0,0 @@
|
||||
import os
|
||||
|
||||
import challonge
|
||||
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
|
||||
from redbot.core.utils.chat_formatting import pagify
|
||||
from redbot.core.utils.chat_formatting import box
|
||||
from redbot.core import Config
|
||||
from redbot.core import checks
|
||||
|
||||
|
||||
|
||||
|
||||
class Challonge:
|
||||
"""Cog for organizing Challonge tourneys"""
|
||||
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
self.config = Config.get_conf(self, identifier=6710497108108111110103101)
|
||||
default_global = {
|
||||
"username": None,
|
||||
"apikey": None
|
||||
}
|
||||
default_guild = {
|
||||
"reportchannel": None,
|
||||
"announcechannel": None
|
||||
}
|
||||
|
||||
self.config.register_global(**default_global)
|
||||
self.config.register_guild(**default_guild)
|
||||
|
||||
await self._set_credentials()
|
||||
|
||||
# ************************Challonge command group start************************
|
||||
|
||||
@commands.group()
|
||||
@commands.guild_only()
|
||||
async def challonge(self, ctx):
|
||||
"""Challonge command base"""
|
||||
if ctx.invoked_subcommand is None:
|
||||
await ctx.send_help()
|
||||
# await ctx.send("I can do stuff!")
|
||||
|
||||
|
||||
@challonge.command(name="apikey")
|
||||
async def c_apikey(self, ctx, username, apikey):
|
||||
"""Sets challonge username and apikey"""
|
||||
await self.config.username.set(username)
|
||||
await self.config.apikey.set(apikey)
|
||||
await self._set_credentials()
|
||||
await ctx.send("Success!")
|
||||
|
||||
@challonge.command(name="report")
|
||||
async def c_report(self, ctx, channel: discord.TextChannel=None):
|
||||
"""Set the channel for self-reporting matches"""
|
||||
if channel is None:
|
||||
channel = ctx.channel
|
||||
|
||||
await self.config.guild(ctx.guild).reportchnnl.set(channel.id)
|
||||
|
||||
channel = (await self._get_reportchnnl(ctx.guild))
|
||||
await ctx.send("Self-Reporting Channel is now set to: " + channel.mention)
|
||||
|
||||
@challonge.command(name="announce")
|
||||
async def c_announce(self, ctx, channel: discord.TextChannel=None):
|
||||
"""Set the channel for tournament announcements"""
|
||||
if channel is None:
|
||||
channel = ctx.channel
|
||||
|
||||
await self.config.guild(ctx.guild).announcechnnl.set(channel.id)
|
||||
|
||||
channel = (await self._get_announcechnnl(ctx.guild))
|
||||
await ctx.send("Announcement Channel is now set to: " + channel.mention)
|
||||
|
||||
# ************************Private command group start************************
|
||||
async def _print_tourney(self, guild: discord.Guild, tID: int):
|
||||
channel = (await self._get_announcechnnl(ctx.guild))
|
||||
|
||||
await channel.send()
|
||||
|
||||
async def _set_credentials(self):
|
||||
username = await self.config.username
|
||||
apikey = await self.config.apikey
|
||||
if username and apikey:
|
||||
challonge.set_credentials(username, apikey)
|
||||
return True
|
||||
return False
|
||||
|
||||
async def _get_message_from_id(self, guild: discord.Guild, message_id: int):
|
||||
"""
|
||||
Tries to find a message by ID in the current guild context.
|
||||
:param ctx:
|
||||
:param message_id:
|
||||
:return:
|
||||
"""
|
||||
for channel in guild.text_channels:
|
||||
try:
|
||||
return await channel.get_message(message_id)
|
||||
except discord.NotFound:
|
||||
pass
|
||||
except AttributeError: # VoiceChannel object has no attribute 'get_message'
|
||||
pass
|
||||
|
||||
return None
|
||||
|
||||
async def _get_announcechnnl(self, guild: discord.Guild):
|
||||
channelid = await self.config.guild(guild).announcechnnl()
|
||||
channel = self._get_channel_from_id(channelid)
|
||||
return channel
|
||||
|
||||
async def _get_reportchnnl(self, guild: discord.Guild):
|
||||
channelid = await self.config.guild(guild).reportchnnl()
|
||||
channel = self._get_channel_from_id(channelid)
|
||||
return channel
|
||||
|
||||
def _get_channel_from_id(self, channelid):
|
||||
return self.bot.get_channel(channelid)
|
||||
|
||||
def _get_user_from_id(self, userid):
|
||||
# guild = self._get_guild_from_id(guildID)
|
||||
# return discord.utils.get(guild.members, id=userid)
|
||||
return self.bot.get_user(userid)
|
||||
|
||||
def _get_guild_from_id(self, guildID):
|
||||
return self.bot.get_guild(guildID)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"author" : ["Bobloy"],
|
||||
"bot_version" : [3,0,0],
|
||||
"description" : "[Incomplete] Cog to organize tournaments within Discord using Challonge",
|
||||
"hidden" : false,
|
||||
"install_msg" : "Thank you for installing the Challonge Cog.",
|
||||
"requirements" : ["iso8601", "challonge"],
|
||||
"short" : "[Incomplete] Cog to organize Challonge tournaments",
|
||||
"tags" : ["game", "fun", "fight", "tournament", "tourney", "challonge", "elimination", "bracket", "bobloy"]
|
||||
}
|
Loading…
Reference in new issue