#access in class variable

1 messages · Page 1 of 1 (latest)

robust sentinel
#
class Poker(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.roles = []
        self.players = []
        self.table = {}

    @commands.slash_command()
    @commands.has_permissions(administrator=True)
    async def set_authorized_role(self, ctx, *role: discord.Role):
        for r in role:
            self.roles.append(r)

    @commands.slash_command()
    @commands.has_any_role(#problem here)
    async def set_env_table(self, ctx):
        guild = ctx.guild

        overwrites = {
            guild.default_role: discord.PermissionOverwrite(read_messages=False),
            guild.get_role(get_ID_role_by_name(ctx, "player")): discord.PermissionOverwrite(read_messages=True)
        }

        await ctx.respond("Generation de l'environnement...")
        await guild.create_text_channel(name="tables", overwrites=overwrites)

How i access to self.roles outside a method ?

I've tried :

  • self.roles
  • *self.roles
  • create method to return self.roles
opal drum
# robust sentinel ```py class Poker(commands.Cog): def __init__(self, bot): self.bot =...
class Poker(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.roles = []
        self.players = []
        self.table = {}

    @commands.slash_command()
    @commands.has_permissions(administrator=True)
    async def set_authorized_role(self, ctx, *role: discord.Role):
        for r in role:
            self.roles.append(r)

    @commands.slash_command()
-   @commands.has_any_role(#problem here)
    async def set_env_table(self, ctx):
+   guild_role_ids = [role.id for role in self.roles]
+   if any(user_role.id in guild_role_ids for user_role in ctx.author.roles):
+.      # do something
        guild = ctx.guild

        overwrites = {
            guild.default_role: discord.PermissionOverwrite(read_messages=False),
            guild.get_role(get_ID_role_by_name(ctx, "player")): discord.PermissionOverwrite(read_messages=True)
        }

        await ctx.respond("Generation de l'environnement...")
        await guild.create_text_channel(name="tables", overwrites=overwrites)

Something like this would work

#

(probably, haven't tested)

robust sentinel
#

i can't use has_any_roles ?

opal drum
#

not in this case