当前位置: 首页>>代码示例>>Python>>正文


Python discord.Forbidden方法代码示例

本文整理汇总了Python中discord.Forbidden方法的典型用法代码示例。如果您正苦于以下问题:Python discord.Forbidden方法的具体用法?Python discord.Forbidden怎么用?Python discord.Forbidden使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在discord的用法示例。


在下文中一共展示了discord.Forbidden方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _change_cooldown_role

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def _change_cooldown_role(self, member: discord.Member, coro_func: CoroutineFunc) -> None:
        """
        Change `member`'s cooldown role via awaiting `coro_func` and handle errors.

        `coro_func` is intended to be `discord.Member.add_roles` or `discord.Member.remove_roles`.
        """
        guild = self.bot.get_guild(constants.Guild.id)
        role = guild.get_role(constants.Roles.help_cooldown)
        if role is None:
            log.warning(f"Help cooldown role ({constants.Roles.help_cooldown}) could not be found!")
            return

        try:
            await coro_func(role)
        except discord.NotFound:
            log.debug(f"Failed to change role for {member} ({member.id}): member not found")
        except discord.Forbidden:
            log.debug(
                f"Forbidden to change role for {member} ({member.id}); "
                f"possibly due to role hierarchy"
            )
        except discord.HTTPException as e:
            log.error(f"Failed to change role for {member} ({member.id}): {e.status} {e.code}") 
开发者ID:python-discord,项目名称:bot,代码行数:25,代码来源:help_channels.py

示例2: convert

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def convert(self, ctx, argument):
        id_regex = re.compile(r'^(?:(?P<channel_id>[0-9]{15,21})-)?(?P<message_id>[0-9]{15,21})$')
        link_regex = re.compile(
            r'^https?://(?:(ptb|canary)\.)?discord(?:app)?\.com/channels/'
            r'(?:([0-9]{15,21})|(@me))'
            r'/(?P<channel_id>[0-9]{15,21})/(?P<message_id>[0-9]{15,21})/?$'
        )
        match = id_regex.match(argument) or link_regex.match(argument)
        if not match:
            raise BadArgument('Message "{msg}" not found.'.format(msg=argument))
        message_id = int(match.group("message_id"))
        channel_id = match.group("channel_id")
        message = ctx.bot._connection._get_message(message_id)
        if message:
            return message
        channel = ctx.bot.get_channel(int(channel_id)) if channel_id else ctx.channel
        if not channel:
            raise BadArgument('Channel "{channel}" not found.'.format(channel=channel_id))
        try:
            return await channel.fetch_message(message_id)
        except discord.NotFound:
            raise BadArgument('Message "{msg}" not found.'.format(msg=argument))
        except discord.Forbidden:
            raise BadArgument("Can't read messages in {channel}".format(channel=channel.mention)) 
开发者ID:Rapptz,项目名称:discord.py,代码行数:26,代码来源:converter.py

示例3: on_command_error

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def on_command_error(self, ctx, exception):
        self.stats.increment("RPGBot.errors", tags=["RPGBot:errors"], host="scw-8112e8")
        logging.info(f"Exception in {ctx.command} {ctx.guild}:{ctx.channel} {exception}")
        exception = getattr(exception, "original", exception)
        traceback.print_tb(exception.__traceback__)
        print(exception)
        try:
            if isinstance(exception, commands.MissingRequiredArgument):
                await ctx.send(f"```{exception}```")
            elif isinstance(exception, TimeoutError):
                await ctx.send(await _(ctx, "This operation ran out of time! Please try again"))
            elif isinstance(exception, discord.Forbidden):
                await ctx.send(await _(ctx, "Error: This command requires the bot to have permission to send links."))
            else:
                await ctx.send(f"`{exception} If this is unexpected, please report this to the bot creator`")
        except discord.Forbidden:
            pass 
开发者ID:henry232323,项目名称:RPGBot,代码行数:19,代码来源:RPGBot.py

示例4: _massmove

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def _massmove(self, ctx, from_channel, to_channel):
        """Internal function: Massmove users to another voice channel"""
        # check if channels are voice channels. Or moving will be very... interesting...
        type_from = str(from_channel.type)
        type_to = str(to_channel.type)
        if type_from == 'text':
            await self.bot.say('{} is not a valid voice channel'.format(from_channel.name))
            log.debug('SID: {}, from_channel not a voice channel'.format(from_channel.server.id))
        elif type_to == 'text':
            await self.bot.say('{} is not a valid voice channel'.format(to_channel.name))
            log.debug('SID: {}, to_channel not a voice channel'.format(to_channel.server.id))
        else:
            try:
                log.debug('Starting move on SID: {}'.format(from_channel.server.id))
                log.debug('Getting copy of current list to move')
                voice_list = list(from_channel.voice_members)
                for member in voice_list:
                    await self.bot.move_member(member, to_channel)
                    log.debug('Member {} moved to channel {}'.format(member.id, to_channel.id))
                    await asyncio.sleep(0.05)
            except discord.Forbidden:
                await self.bot.say('I have no permission to move members.')
            except discord.HTTPException:
                await self.bot.say('A error occured. Please try again') 
开发者ID:Kowlin,项目名称:refactored-cogs,代码行数:26,代码来源:massmove.py

示例5: item23

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def item23(self, ctx):
        """Buy a mechanical duck (40 exp)
        !shop 23"""
        message = ctx.message
        _ = self.bot._;
        language = await self.bot.db.get_pref(ctx.channel, "language")

        try:
            await ctx.message.delete()
        except discord.Forbidden:
            await self.bot.hint(ctx=ctx, message=_("If you ask a server admin to give me the `manage_message` permission, I will be able to delete that kind of shop commands ;)", language))
        except discord.NotFound:
            pass

        await self.bot.db.add_to_stat(message.channel, message.author, "exp", -40)
        await self.bot.send_message(ctx=ctx, force_pm=True, message=_(":money_with_wings: You prepared a mechanical duck on the channel for 40 exp. It's wrong, but so funny!", language))

        async def spawn_mech_duck():
            await asyncio.sleep(90)
            duck = await ducks.MechanicalDuck.create(self.bot, ctx.channel, user=ctx.message.author)
            await spawning.spawn_duck(self.bot, ctx.channel, instance=duck, ignore_event=True)

        asyncio.ensure_future(spawn_mech_duck()) 
开发者ID:DuckHunt-discord,项目名称:DHV3,代码行数:25,代码来源:shop.py

示例6: kick

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def kick(self, ctx, user, *, reason=""):
        """Kicks a user (if you have the permission)."""
        user = get_user(ctx.message, user)
        if user:
            try:
                await user.kick(reason=reason)
                return_msg = "Kicked user `{}`".format(user.mention)
                if reason:
                    return_msg += " for reason `{}`".format(reason)
                return_msg += "."
                await ctx.message.edit(content=self.bot.bot_prefix + return_msg)
            except discord.Forbidden:
                await ctx.message.edit(content=self.bot.bot_prefix + 'Could not kick user. Not enough permissions.')
        else:
            return await ctx.message.edit(content=self.bot.bot_prefix + 'Could not find user.')


    # TODO: Add reason with ban 
开发者ID:appu1232,项目名称:Discord-Selfbot,代码行数:20,代码来源:mod.py

示例7: hackban

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def hackban(self, ctx, user_id: int):
        """Bans a user outside of the server."""
        author = ctx.message.author
        guild = author.guild

        user = guild.get_member(user_id)
        if user is not None:
            return await ctx.invoke(self.ban, user=user)

        try:
            await self.bot.http.ban(user_id, guild.id, 0)
            await ctx.message.edit(content=self.bot.bot_prefix + 'Banned user: %s' % user_id)
        except discord.NotFound:
            await ctx.message.edit(content=self.bot.bot_prefix + 'Could not find user. '
                               'Invalid user ID was provided.')
        except discord.errors.Forbidden:
            await ctx.message.edit(content=self.bot.bot_prefix + 'Could not ban user. Not enough permissions.') 
开发者ID:appu1232,项目名称:Discord-Selfbot,代码行数:19,代码来源:mod.py

示例8: mute

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def mute(self, ctx, *, user: str):
        """Chat mutes a user (if you have the permission)."""
        if ctx.invoked_subcommand is None:
            user = get_user(ctx.message, user)
            if user and user != self.bot.user:
                failed = []
                channel_length = 0
                for channel in ctx.message.guild.channels:
                    if type(channel) != discord.channel.TextChannel:
                        continue
                    overwrites = channel.overwrites_for(user)
                    overwrites.send_messages = False
                    channel_length += 1
                    try:
                        await channel.set_permissions(user, overwrite=overwrites)
                    except discord.Forbidden:
                        failed.append(channel)
                if failed and len(failed) < channel_length:
                    await ctx.message.edit(content=self.bot.bot_prefix + "Muted user in {}/{} channels: {}".format(channel_length - len(failed), channel_length, user.mention))
                elif failed:
                    await ctx.message.edit(content=self.bot.bot_prefix + "Failed to mute user. Not enough permissions.")
                else:
                    await ctx.message.edit(content=self.bot.bot_prefix + 'Muted user: %s' % user.mention)
            else:
                await ctx.message.edit(content=self.bot.bot_prefix + 'Could not find user.') 
开发者ID:appu1232,项目名称:Discord-Selfbot,代码行数:27,代码来源:mod.py

示例9: channel

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def channel(self, ctx, *, user: str):
        user = get_user(ctx.message, user)
        if user:
            overwrites = ctx.message.channel.overwrites_for(user)
            is_empty = self.are_overwrites_empty(overwrites)
            try:
                if not is_empty:
                    ctx.message.channel.set_permissions(user, overwrite=overwrites)
                else:
                    await channel.set_permissions(user, overwrite=None)
                await channel.set_permissions(user, overwrite=overwrites)
                await ctx.message.edit(content=self.bot.bot_prefix + 'Unmuted user in this channel: %s' % user.mention)
            except discord.Forbidden:
                await ctx.message.edit(content=self.bot.bot_prefix + 'Unable to unmute user. Not enough permissions.')
        else:
            await ctx.message.edit(content=self.bot.bot_prefix + 'Could not find user.') 
开发者ID:appu1232,项目名称:Discord-Selfbot,代码行数:18,代码来源:mod.py

示例10: servercount

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def servercount(self, ctx: commands.Context):
        """Send servers stats of the bot."""
        msg = _(
            "{name} is running on `{shard_count}` {shards}.\n"
            "Serving `{servs}` servers (`{channels}` channels).\n"
            "For a total of `{users}` users (`{unique}` unique).\n"
            "(`{users}` visible now, `{real_total}` total)"
        ).format(
            name=ctx.bot.user.name,
            shard_count=humanize_number(self.bot.shard_count),
            shards=_("shards") if self.bot.shard_count > 1 else _("shard"),
            servs=humanize_number(len(self.bot.guilds)),
            channels=humanize_number(sum(len(s.channels) for s in self.bot.guilds)),
            users=humanize_number(sum(len(s.members) for s in self.bot.guilds)),
            unique=humanize_number(len(self.bot.users)),
            real_total=humanize_number(sum(s.member_count for s in self.bot.guilds)),
        )
        try:
            em = discord.Embed(color=await ctx.embed_colour(), description=msg)
            await ctx.send(embed=em)
        except discord.Forbidden:
            await ctx.send(msg) 
开发者ID:PredaaA,项目名称:predacogs,代码行数:24,代码来源:marttools.py

示例11: removerole

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def removerole(self, ctx, rolename, user: discord.Member=None):
        """Removes a role from user, defaults to author

        Role name must be in quotes if there are spaces."""
        server = ctx.message.server
        author = ctx.message.author

        role = self._role_from_string(server, rolename)
        if role is None:
            await self.bot.say("Role not found.")
            return

        if user is None:
            user = author

        if role in user.roles:
            try:
                await self.bot.remove_roles(user, role)
                await self.bot.say("Role successfully removed.")
            except discord.Forbidden:
                await self.bot.say("I don't have permissions to manage roles!")
        else:
            await self.bot.say("User does not have that role.") 
开发者ID:tekulvw,项目名称:Squid-Plugins,代码行数:25,代码来源:admin.py

示例12: whisper

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def whisper(self, ctx, id, *, text):
        author = ctx.message.author

        target = discord.utils.get(self.bot.get_all_members(), id=id)
        if target is None:
            target = self.bot.get_channel(id)
            if target is None:
                target = self.bot.get_server(id)

        prefix = "Hello, you're getting a message from {} ({})".format(
            author.name, author.id)
        payload = "{}\n\n{}".format(prefix, text)

        try:
            for page in pagify(payload, delims=[" ", "\n"], shorten_by=10):
                await self.bot.send_message(target, box(page))
        except discord.errors.Forbidden:
            log.debug("Forbidden to send message to {}".format(id))
        except (discord.errors.NotFound, discord.errors.InvalidArgument):
            log.debug("{} not found!".format(id))
        else:
            await self.bot.say("Done.") 
开发者ID:tekulvw,项目名称:Squid-Plugins,代码行数:24,代码来源:admin.py

示例13: sendembed

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def sendembed(self, ctx, color:Optional[discord.Color]=None, *, text):
		"""
		Send an embed.
		
		Use the optional parameter `color` to change the color of the embed.
		The embed will contain the text `text`.
		All normal discord formatting will work inside the embed. 
		"""
		if color is None:
			color = await ctx.embed_color()
		embed = discord.Embed(
			description=text,
			color=color
		)
		await ctx.send(embed=embed)
		try:
			await ctx.message.delete()
		except discord.Forbidden:
			pass 
开发者ID:Flame442,项目名称:FlameCogs,代码行数:21,代码来源:simpleembed.py

示例14: on_member_join

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def on_member_join(self, m):
        config = await self.bot.db.config.find_one({'_id': str(m.guild.id)})
        if not config:
            return
        try:
            type = config['welctype']
        except KeyError:
            return
        if type is False:
            return

        channel = int(config['welcchannel'])
        msg = config['welc']
        success = False
        i = 0
        while not success:
            try:
                await self.bot.get_channel(channel).send(msg.format(name=m, server=m.guild, mention=m.mention, member=m, membercount=len(m.guild.members)))
            except (discord.Forbidden, AttributeError):
                i += 1
            except IndexError:
                # the channel set doesn't allow remixbot to send messages
                pass
            else:
                success = True 
开发者ID:cree-py,项目名称:RemixBot,代码行数:27,代码来源:config.py

示例15: say

# 需要导入模块: import discord [as 别名]
# 或者: from discord import Forbidden [as 别名]
def say(channel, *args, **kwargs):
    if type(channel) is str:
        # Server/Channel id
        server_id, channel_id = channel.split("/")
        channel = get_server(server_id).get_channel(channel_id)
    if "client" in kwargs:
        client = kwargs["client"]
        del kwargs["client"]
    else:
        client = get_client(channel.server.id)
    if asyncio.get_event_loop() != client.loop:
        # Allows it to speak across shards
        client.run_task(say, *((channel,) + args), **kwargs)
    else:
        try:
            await client.send_message(channel, *args, **kwargs)
        except discord.Forbidden as send_error:
            raise SendMessagePermMissing(send_error) 
开发者ID:MacDue,项目名称:DueUtil,代码行数:20,代码来源:util.py


注:本文中的discord.Forbidden方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。