Exemplo n.º 1
0
 def update_overwrite(ctx: commands.Context,
                      overwrite: discord.PermissionOverwrite,
                      permissions: dict):
     base_perms = dict(iter(discord.PermissionOverwrite()))
     old_perms = copy(permissions)
     user_perms = ctx.channel.permissions_for(ctx.author)
     invalid_perms = []
     valid_perms = []
     not_allowed: List[str] = []
     for perm in old_perms.keys():
         if perm not in base_perms.keys():
             invalid_perms.append(f"`{perm}`")
             del permissions[perm]
         else:
             valid_perms.append(f"`{perm}`")
     overwrite.update(**permissions)
     if invalid_perms:
         invalid = (
             f"\nThe following permissions were invalid:\n{humanize_list(invalid_perms)}\n"
         )
         possible = humanize_list(
             [f"`{perm}`" for perm in base_perms.keys()])
         invalid += f"Possible permissions are:\n{possible}"
     else:
         invalid = ""
     return overwrite, valid_perms, invalid, not_allowed
Exemplo n.º 2
0
async def lock(ctx, *args):
    """
    Lock the channel from certain member role
    """
    # await bot.send_message(destination=ctx.message.author, content=ctx.message.server.roles[0].name)
    role = ctx.message.server.roles[0]
    permissions = list(role.permissions)
    permissions = {pair[0]:pair[1] for pair in permissions}
    permissions['send_messages'] = False
    
    # fk this shit
    raise NotImplemented

    permissions = PermissionOverwrite()
    permissions.update(kwargs=permissions)
    print(permissions.from_pair['send_messages'])
    await bot.edit_channel_permissions(ctx.message.channel, role, overwrite=permissions)
Exemplo n.º 3
0
    async def repair(self, ctx, gameName, user):
        if not await isAuthorized(ctx, "repair", 0): return

        try:
            userID = int(''.join(num for num in user if num.isdigit()))
            user = get(ctx.guild.members, id=userID)

            if user == None:
                await ctx.send("User ID lookup failed.")
                return

            game = getGames(ctx.guild, gameName)

            if game == None:
                await ctx.send("Game not found. Please try again.")
                return

            gameList = getUserGames(ctx.guild, userID)
            gameList = [
                session for session in gameList if session[1] == gameName
            ]

            if not gameList:
                playCatObj = get(ctx.guild.categories, name=game[4])
                await ctx.channel.edit(category=playCatObj,
                                       sync_permissions=True)

                overwrite = PermissionOverwrite()
                overwrite.update(read_messages=True,
                                 send_message_history=True,
                                 send_messages=True,
                                 manage_messages=True)
                await ctx.channel.set_permissions(user, overwrite=overwrite)

                setUserGame(ctx.guild, str(userID), gameName,
                            str(ctx.channel.id))
                await ctx.send("Channel added to active games for {}".format(
                    user.name))
            else:
                await ctx.send("Game already exists:\n" + "UserID = " +
                               str(gameList[0][0]) + "\n" + "Game Name = " +
                               str(gameList[0][1]) + "\n" + "RoomID = " +
                               str(gameList[0][2]))
        except Exception as e:
            print(e)