From 9ac6d396a80792527a7c8ba8cec90c10e3dc46b1 Mon Sep 17 00:00:00 2001 From: Bobloy Date: Wed, 9 May 2018 09:42:02 -0400 Subject: [PATCH] Gotta be RedContext until next beta --- werewolf/builder.py | 12 +++++++----- werewolf/game.py | 5 +++-- werewolf/werewolf.py | 46 ++++++++++++++++++++++---------------------- 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/werewolf/builder.py b/werewolf/builder.py index c673e3f..fbf5a1c 100644 --- a/werewolf/builder.py +++ b/werewolf/builder.py @@ -6,6 +6,8 @@ import discord from discord.ext import commands # Import all roles here +from redbot.core import RedContext + from werewolf.roles.seer import Seer from werewolf.roles.vanillawerewolf import VanillaWerewolf from werewolf.roles.villager import Villager @@ -188,7 +190,7 @@ async def encode(roles, rand_roles): return out_code -async def next_group(ctx: commands.Context, pages: list, +async def next_group(ctx: RedContext, pages: list, controls: dict, message: discord.Message, page: int, timeout: float, emoji: str): perms = message.channel.permissions_for(ctx.guild.me) @@ -208,7 +210,7 @@ async def next_group(ctx: commands.Context, pages: list, page=page, timeout=timeout) -async def prev_group(ctx: commands.Context, pages: list, +async def prev_group(ctx: RedContext, pages: list, controls: dict, message: discord.Message, page: int, timeout: float, emoji: str): perms = message.channel.permissions_for(ctx.guild.me) @@ -275,7 +277,7 @@ class GameBuilder: self.rand_roles = [] setup() - async def build_game(self, ctx: commands.Context): + async def build_game(self, ctx: RedContext): new_controls = { '⏪': prev_group, "⬅": prev_page, @@ -293,7 +295,7 @@ class GameBuilder: out = await encode(self.code, self.rand_roles) return out - async def list_roles(self, ctx: commands.Context, pages: list, + async def list_roles(self, ctx: RedContext, pages: list, controls: dict, message: discord.Message, page: int, timeout: float, emoji: str): perms = message.channel.permissions_for(ctx.guild.me) @@ -308,7 +310,7 @@ class GameBuilder: return await menu(ctx, pages, controls, message=message, page=page, timeout=timeout) - async def select_page(self, ctx: commands.Context, pages: list, + async def select_page(self, ctx: RedContext, pages: list, controls: dict, message: discord.Message, page: int, timeout: float, emoji: str): perms = message.channel.permissions_for(ctx.guild.me) diff --git a/werewolf/game.py b/werewolf/game.py index 438659f..344f145 100644 --- a/werewolf/game.py +++ b/werewolf/game.py @@ -3,6 +3,7 @@ import random import discord from discord.ext import commands +from redbot.core import RedContext from werewolf.builder import parse_code from werewolf.player import Player @@ -77,7 +78,7 @@ class Game: # for c_data in self.p_channels.values(): # asyncio.ensure_future(c_data["channel"].delete("Werewolf game-over")) - async def setup(self, ctx: commands.Context): + async def setup(self, ctx: RedContext): """ Runs the initial setup @@ -674,7 +675,7 @@ class Game: async def get_day_target(self, target_id, source=None): return self.players[target_id] # ToDo check source - async def set_code(self, ctx: commands.Context, game_code): + async def set_code(self, ctx: RedContext, game_code): if game_code is not None: self.game_code = game_code await ctx.send("Code has been set") diff --git a/werewolf/werewolf.py b/werewolf/werewolf.py index 65e73c1..b53b463 100644 --- a/werewolf/werewolf.py +++ b/werewolf/werewolf.py @@ -1,6 +1,6 @@ import discord from discord.ext import commands -from redbot.core import Config, checks +from redbot.core import Config, checks, RedContext from redbot.core.bot import Red @@ -36,7 +36,7 @@ class Werewolf: del game @commands.command() - async def buildgame(self, ctx: commands.Context): + async def buildgame(self, ctx: RedContext): gb = GameBuilder() code = await gb.build_game(ctx) @@ -47,7 +47,7 @@ class Werewolf: @checks.guildowner() @commands.group() - async def wwset(self, ctx: commands.Context): + async def wwset(self, ctx: RedContext): """ Base command to adjust settings. Check help for command list. """ @@ -56,7 +56,7 @@ class Werewolf: @commands.guild_only() @wwset.command(name="list") - async def wwset_list(self, ctx: commands.Context): + async def wwset_list(self, ctx: RedContext): """ Lists current guild settings """ @@ -74,7 +74,7 @@ class Werewolf: @commands.guild_only() @wwset.command(name="role") - async def wwset_role(self, ctx: commands.Context, role: discord.Role=None): + async def wwset_role(self, ctx: RedContext, role: discord.Role=None): """ Assign the game role This role should not be manually assigned @@ -88,7 +88,7 @@ class Werewolf: @commands.guild_only() @wwset.command(name="category") - async def wwset_category(self, ctx: commands.Context, category_id=None): + async def wwset_category(self, ctx: RedContext, category_id=None): """ Assign the channel category """ @@ -105,7 +105,7 @@ class Werewolf: @commands.guild_only() @wwset.command(name="channel") - async def wwset_channel(self, ctx: commands.Context, channel: discord.TextChannel=None): + async def wwset_channel(self, ctx: RedContext, channel: discord.TextChannel=None): """ Assign the village channel """ @@ -118,7 +118,7 @@ class Werewolf: @commands.guild_only() @wwset.command(name="logchannel") - async def wwset_log_channel(self, ctx: commands.Context, channel: discord.TextChannel=None): + async def wwset_log_channel(self, ctx: RedContext, channel: discord.TextChannel=None): """ Assign the log channel """ @@ -130,7 +130,7 @@ class Werewolf: await ctx.send("Game Log Channel has been set to **{}**".format(channel.mention)) @commands.group() - async def ww(self, ctx: commands.Context): + async def ww(self, ctx: RedContext): """ Base command for this cog. Check help for the commands list. """ @@ -139,7 +139,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="new") - async def ww_new(self, ctx: commands.Context, game_code=None): + async def ww_new(self, ctx: RedContext, game_code=None): """ Create and join a new game of Werewolf """ @@ -151,7 +151,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="join") - async def ww_join(self, ctx: commands.Context): + async def ww_join(self, ctx: RedContext): """ Joins a game of Werewolf """ @@ -166,7 +166,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="code") - async def ww_code(self, ctx: commands.Context, code): + async def ww_code(self, ctx: RedContext, code): """ Adjust game code """ @@ -181,7 +181,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="quit") - async def ww_quit(self, ctx: commands.Context): + async def ww_quit(self, ctx: RedContext): """ Quit a game of Werewolf """ @@ -192,7 +192,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="start") - async def ww_start(self, ctx: commands.Context): + async def ww_start(self, ctx: RedContext): """ Checks number of players and attempts to start the game """ @@ -205,7 +205,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="stop") - async def ww_stop(self, ctx: commands.Context): + async def ww_stop(self, ctx: RedContext): """ Stops the current game """ @@ -223,7 +223,7 @@ class Werewolf: @commands.guild_only() @ww.command(name="vote") - async def ww_vote(self, ctx: commands.Context, target_id: int): + async def ww_vote(self, ctx: RedContext, target_id: int): """ Vote for a player by ID """ @@ -263,7 +263,7 @@ class Werewolf: await ctx.send("Nothing to vote for in this channel") @ww.command(name="choose") - async def ww_choose(self, ctx: commands.Context, data): + async def ww_choose(self, ctx: RedContext, data): """ Arbitrary decision making Handled by game+role @@ -285,7 +285,7 @@ class Werewolf: await game.choose(ctx, data) @ww.group(name="search") - async def ww_search(self, ctx: commands.Context): + async def ww_search(self, ctx: RedContext): """ Find custom roles by name, alignment, category, or ID """ @@ -293,7 +293,7 @@ class Werewolf: await ctx.send_help() @ww_search.command(name="name") - async def ww_search_name(self, ctx: commands.Context, *, name): + async def ww_search_name(self, ctx: RedContext, *, name): """Search for a role by name""" if name is not None: from_name = role_from_name(name) @@ -303,7 +303,7 @@ class Werewolf: await ctx.send("No roles containing that name were found") @ww_search.command(name="alignment") - async def ww_search_alignment(self, ctx: commands.Context, alignment: int): + async def ww_search_alignment(self, ctx: RedContext, alignment: int): """Search for a role by alignment""" if alignment is not None: from_alignment = role_from_alignment(alignment) @@ -313,7 +313,7 @@ class Werewolf: await ctx.send("No roles with that alignment were found") @ww_search.command(name="category") - async def ww_search_category(self, ctx: commands.Context, category: int): + async def ww_search_category(self, ctx: RedContext, category: int): """Search for a role by category""" if category is not None: pages = role_from_category(category) @@ -323,7 +323,7 @@ class Werewolf: await ctx.send("No roles in that category were found") @ww_search.command(name="index") - async def ww_search_index(self, ctx: commands.Context, idx: int): + async def ww_search_index(self, ctx: RedContext, idx: int): """Search for a role by ID""" if idx is not None: idx_embed = role_from_id(idx) @@ -332,7 +332,7 @@ class Werewolf: else: await ctx.send("Role ID not found") - async def _get_game(self, ctx: commands.Context, game_code=None): + async def _get_game(self, ctx: RedContext, game_code=None): guild: discord.Guild = ctx.guild if guild is None: