A maintained fork of Danny's discord.py

Overview

Nextcord

Discord server invite PyPI version info PyPI supported Python versions Nextcord documentation

Nextcord

A modern, easy-to-use, feature-rich, and async-ready API wrapper for Discord written in Python.

Fork notice

This is a fork of discord.py, which unfortunately has been officially discontinued on 28th August 2021. Nextcord will try to replace discord.py, with continued support and features, to still offer former discord.py users a stable API wrapper for their bots.

Key Features

  • Modern Pythonic API using async and await
  • Proper rate limit handling
  • Optimised in both speed and memory

Installing

Python 3.8 or higher is required

To install the library without full voice support, you can just run the following command:

# Linux/macOS
python3 -m pip install -U nextcord

# Windows
py -3 -m pip install -U nextcord

Otherwise to get voice support you should run the following command:

# Linux/macOS
python3 -m pip install -U "nextcord[voice]"

# Windows
py -3 -m pip install -U nextcord[voice]

To install additional packages for speedup, run the following command:

# Linux/macOS
python3 -m pip install -U "nextcord[speed]"

# Windows
py -3 -m pip install -U nextcord[speed]

To install the development version, do the following:

$ git clone https://github.com/nextcord/nextcord/
$ cd nextcord
$ python3 -m pip install -U .[voice]

Optional Packages

Please note that on Linux installing voice you must install the following packages via your favourite package manager (e.g. apt, dnf, etc) before running the above commands:

  • libffi-dev (or libffi-devel on some systems)
  • python-dev (e.g. python3.6-dev for Python 3.6)

Quick Example

from nextcord.ext import commands


bot = commands.Bot(command_prefix='$')

@bot.command()
async def ping(ctx):
    await ctx.reply('Pong!')

bot.run('token')

You can find more examples in the examples directory.

NOTE: It is not advised to leave your token directly in your code, as it allows anyone with it to access your bot. If you intend to make your code public you should store it securely.

Links

Comments
  • ImportError still occurring

    ImportError still occurring

    Summary

    libraries using d.py still throw an error

    Reproduction Steps

    after uninstalling discord.py (being incompatible) the error started

    Minimal Reproducible Code

    No response

    Expected Results

    they should've just imported and then work

    Actual Results

     File "/home/container/.local/lib/python3.8/site-packages/nextcord/ext/commands/bot.py", line 661, in _load_from_module_spec
        spec.loader.exec_module(lib)  # type: ignore
      File "<frozen importlib._bootstrap_external>", line 848, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "/home/container/process-nr/cogs/slash.py", line 18, in <module>
        import dbl
      File "/home/container/.local/lib/python3.8/site-packages/dbl/__init__.py", line 18, in <module>
        from .client import DBLClient
      File "/home/container/.local/lib/python3.8/site-packages/dbl/client.py", line 35, in <module>
        from discord import Client
    ImportError: cannot import name 'Client' from 'discord' (unknown location)
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/home/container/.local/lib/python3.8/site-packages/nextcord/client.py", line 351, in _run_event
        await coro(*args, **kwargs)
      File "/home/container/process-nr/main.py", line 417, in on_ready
        init_config()
      File "/home/container/process-nr/main.py", line 114, in init_config
        client.load_extension(f'cogs.{filename[:-3]}')
      File "/home/container/.local/lib/python3.8/site-packages/nextcord/ext/commands/bot.py", line 733, in load_extension
        self._load_from_module_spec(spec, name)
      File "/home/container/.local/lib/python3.8/site-packages/nextcord/ext/commands/bot.py", line 664, in _load_from_module_spec
        raise errors.ExtensionFailed(key, e) from e
    nextcord.ext.commands.errors.ExtensionFailed: Extension 'cogs.slash' raised an error: ImportError: cannot import name 'Client' from 'discord' (unknown location)
    

    Intents

    Intents.members

    System Information

    - Python v3.8.10-final
    - nextcord v2.0.0-alpha
        - nextcord pkg_resources: v2.0.0a2
    - aiohttp v3.7.3
    - system info: Linux 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020
    

    Checklist

    • [X] I have searched the open issues for duplicates.
    • [X] I have shown the entire traceback, if possible.
    • [X] I have removed my token from display, if visible.

    Additional Context

    No response

    t: bug s: planned p: medium 
    opened by piotr25691 29
  • feat(commands): add bot.load_extensions

    feat(commands): add bot.load_extensions

    Summary

    This PR adds 2 new functions in ext.commands.bot that do the following:

    • load all extensions from a given list of their names
    • load all submodule extensions found in a module

    Checklist

    • [ ] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
    • [ ] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement p: low 
    opened by EmreTech 21
  • feat: asynchronousifying setup function in cogs

    feat: asynchronousifying setup function in cogs

    Summary

    NOTE: THIS WILL RAISE AN KEYBOARDINTERRUPT IF YOU ARE DOING AS SKELMIS SAYS AND IS ENDING THE BOT USING CONTROL + C

    setup to be awaitable, fix issue #468

    Checklist

    • [x] If code changes were made then they have been tested. (pls help)
      • [x] I have updated the documentation to reflect the changes. (pls help)
    • [x] This PR fixes an issue.
    • [ ] This PR adds something new (e.g. new method or parameters).
    • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed) (uh not really, but yeah)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement s: in progress p: low 
    opened by MaskDuck 21
  • feat: automod support

    feat: automod support

    Summary

    discord/discord-api-docs#4860

    adds

    • enums.TriggerType
    • enums.EventType
    • enums.KeywordPresetRule
    • Intents.automod_configuration
    • Intents.automod_execution
    • Intents.automod
    • automod.AutoModerationRule
    • enums.ActionType
    • enums.KeywordPresetType
    • enums.EventType
    • enums.TriggerType
    • http.HTTPClient.list_guild_automod_rules
    • http.HTTPClient.get_automod_rules
    • http.HTTPClient.create_automod_rule
    • http.HTTPClient.modify_automod_rule
    • http.HTTPClient.delete_automod_rule
    • MessageType.automod_action
    • AuditLogAction.automod_rule_create
    • AuditLogAction.automod_rule_update
    • AuditLogAction.automod_rule_delete
    • AuditLogAction.automod_block_message
    • Guild.get_automod_rule
    • Guild.get_automod_rules

    edit

    changed Intents.all to account for the skip in intents values because discord has not released the bitfields inbetween

    Checklist

    • [ ] If code changes were made then they have been tested.
      • [x] I have updated the documentation to reflect the changes.
      • [x] I have run task pyright and fixed the relevant issues.
    • [x] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [x] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement s: in progress p: medium 
    opened by MaskDuck 20
  • feat: support more input types where files are used

    feat: support more input types where files are used

    Summary

    • Accept multiple formats (eg. Asset, Attachment, or bytes) and read the object conditionally based on the type. It adds extra time complexity only when users add Asset, Attachment, File for await avatar.read() and avatar.fp.read() else it'll simply pass the bytes which takes no extra time.

    Checklist

    • [x] If code changes were made then they have been tested.
      • [x] I have updated the documentation to reflect the changes.
    • [ ] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)

    Testing

        @group(pass_context=True, aliases=["t"])
        async def test(self, ctx: Context):
            """Testing Group commands for bot"""
            if ctx.invoked_subcommand is None:
                await ctx.send('Invalid sub command passed')
    
        @test.command(aliases=["pe"])
        async def pfp_edit(self, ctx: Context):
            old_avatar = self.bot.user.avatar
            await self.bot.user.edit(avatar=None)
            await sleep(20)
            await self.bot.user.edit(avatar=ctx.message.attachments[0])
            await sleep(20)
            await self.bot.user.edit(avatar=old_avatar)
            await sleep(20)
            await self.bot.user.edit(avatar=File("test/image.jpeg"))
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["sec"])
        async def scheduled_event_create(self, ctx: Context, channel: VoiceChannel):
            await ctx.guild.create_scheduled_event(
                entity_type=ScheduledEventEntityType.voice,
                start_time=ctx.message.created_at+timedelta(minutes=1),
                name="Testing", channel=channel,
                image=ctx.message.attachments[0]
            )
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["see"])
        async def scheduled_event_edit(self, ctx: Context, event_id: int):
            event = ctx.guild.get_scheduled_event(event_id)
            old_image = event.image
            await event.edit(image=None)
            await sleep(20)
            await event.edit(image=ctx.message.attachments[0])
            await sleep(20)
            await event.edit(image=old_image)
            await sleep(20)
            await event.edit(image=File("test/image.jpeg"))
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["cr"])
        async def create_role(self, ctx: Context):
            await ctx.guild.create_role(
                name="TESTING",
                color=Color.brand_red(),
                icon=ctx.message.attachments[0]
            )
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["gc"])
        async def guild_create(self, ctx: Context, template_code: str = None):
            guild = await self.bot.create_guild(
                name="TESTING",
                icon=ctx.message.attachments[0],
                code=template_code
            )
            channel = await guild.create_text_channel("demo")
            invite = await channel.create_invite()
            await ctx.author.send(invite.url)
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["ge"])
        async def guild_edit(self, ctx: Context, guild: Guild):
            await guild.edit(icon=None)
            await sleep(20)
            await guild.edit(icon=ctx.message.attachments[0])
            await sleep(20)
            await guild.edit(icon=ctx.author.display_avatar)
            await sleep(20)
            await guild.edit(icon=File("test/image.jpeg"))
    
        @test.command(aliases=["gr"])
        async def guild_remove(self, ctx: Context, guild: Guild):
            await guild.delete()
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["wc"])
        async def webhook_create(self, ctx: Context):
            await ctx.channel.create_webhook(
                name="Testing",
                avatar=ctx.message.attachments[0]
            )
            await ctx.message.add_reaction("πŸ‘")
    
        @test.command(aliases=["awe"])
        async def async_webhook_edit(self, ctx: Context):
            webhook = find(lambda wh: wh.user.id == self.bot.user.id, (await ctx.channel.webhooks()))
            await webhook.edit(avatar=None)
            await sleep(20)
            await webhook.edit(avatar=ctx.message.attachments[0])
            await sleep(20)
            await webhook.edit(avatar=ctx.author.display_avatar)
            await sleep(20)
            await webhook.edit(avatar=File("test/image.jpeg"))
            await ctx.message.add_reaction("πŸ‘")
    
    t: enhancement p: low s: awaiting review 
    opened by drlove2002 19
  • Replace star imports with manual imports

    Replace star imports with manual imports

    Summary

    Fix #635.

    Checklist

    • [ ] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
    • [x] This PR fixes an issue.
    • [ ] This PR adds something new (e.g. new method or parameters).
    • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed) Can be breaking change if user use not-public API. I copied all from __all__ variables.
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: bug p: medium s: awaiting review 
    opened by PerchunPak 18
  • Update application_commands/cog_example to ClientCog

    Update application_commands/cog_example to ClientCog

    Summary

    This updates the example for application command Cogs to the actual ClientCog. It also shows basic usage of the cog_check equivalent for ClientCog.

    Checklist

    • [X] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
    • [ ] This PR fixes an issue.
    • [ ] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [X] This PR is not a code change (e.g. documentation, README, ...)
    t: docs p: low s: awaiting review 
    opened by ToasterUwU 18
  • Add `Guild.online_members`

    Add `Guild.online_members`

    Summary

    This pull request adds online_members to the Guild class. This exists to save time for bot developers who need to quickly check if a user is online, or to find out how many users are online.

    Checklist

    • [ ] If code changes were made then they have been tested.
      • [x] I have updated the documentation to reflect the changes.
    • [ ] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    opened by mounderfod 18
  • slash checks/hooks

    slash checks/hooks

    Summary

    This PR adds application command checks, similar to the existing prefix command checks.

    Changes:

    • adds global, cog, and local checks to the application command, along with all the premade ones such as checks.guild_only()
    • implements before and after invoke hooks
    • new client event, on_application_error, similar to on_command_error
    • adds on_error error handlers to application commands
    • adds attached of type InteractionAttached (more on that in the next line), application_command, client, and bot attributes to the Interaction class
    • adds InteractionAttached class, added to each instance of Interaction. Used to store any data within the interaction itself.
    • moves _get_overridden_method from commands.Cog to application_commands.ClientCog
    • moves owner_id, owner_ids, and is_owner method from commands.Bot to nextcord.Client

    (The documentation and type hinting may need some review, not too sure if I did those correctly)

    Checklist

    • [x] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
    • [ ] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement p: medium s: awaiting review 
    opened by okay1204 15
  • fix: Python3.11 dataclass changes

    fix: Python3.11 dataclass changes

    Summary

    This closes #866 by migrating the syntax for flags.py inline with changes to Python 3.11

    Checklist

    • [x] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
      • [x] I have run task pyright and fixed the relevant issues.
    • [ ] This PR fixes an issue.
    • [ ] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: bug p: high 2.3 
    opened by Skelmis 14
  • feat(help)!: Improve the looks of help command

    feat(help)!: Improve the looks of help command

    Summary

    Refactors DefaultHelpCommand to look less outdated and ugly.

    You could consider this a breaking change due to DefaultHelpCommand loosing some functionality. Though, DefaultHelpCommand should not be subclassed to begin with.

    An image of how everything looks is in the comments.

    resolves #690

    Checklist

    • [x] If code changes were made then they have been tested.
      • [x] I have updated the documentation to reflect the changes.
      • [x] I have run task pyright and fixed the relevant issues.
    • [x] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    opened by H4ckerxx44 14
  • feat: on_application_command event

    feat: on_application_command event

    Summary

    closes #958

    Checklist

    • [ ] If code changes were made then they have been tested.
      • [x] I have updated the documentation to reflect the changes.
      • [ ] I have run task pyright and fixed the relevant issues.
    • [x] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement p: low s: awaiting review 
    opened by MaskDuck 0
  • refactor: remove mutable parameter defaults

    refactor: remove mutable parameter defaults

    Summary

    Closes #815

    Checklist

    • [x] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
      • [x] I have run task pyright and fixed the relevant issues.
    • [ ] This PR fixes an issue.
    • [ ] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: bug p: medium s: awaiting review 
    opened by ooliver1 0
  • on_application_command event

    on_application_command event

    Summary

    Dispatch an event when an application command is executed

    What is the feature request for?

    Application commands

    The Problem

    I want to receive an event when an application command is executed

    The Ideal Solution

    Dispatch an event called application_command

    The Current Solution

    @bot.event
    async def on_interaction(inter: Interaction) -> None:
      if inter.type = InteractionType.application_command:
        ...
    

    Additional Context

    No response

    t: enhancement p: low s: awaiting review 
    opened by MaskDuck 0
  • feat: add ability to format strings like text channel names

    feat: add ability to format strings like text channel names

    Summary

    Adds format_as_channel_name, a function to convert text to a text-channel compatible name, same as Discord does in the background when creating channels via the API.

    Example: "Joey's Cool Channel" -> "joeys-cool-channel"

    This is my first PR, I've looked at the contributing guidelines but I'm unsure about what to do regarding docs. Please could someone take a look? Thanks! πŸ˜…

    Checklist

    • [x] If code changes were made then they have been tested.
      • [ ] I have updated the documentation to reflect the changes.
      • [x] I have run task pyright and fixed the relevant issues.
    • [ ] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement p: low s: awaiting review 
    opened by squeakerdev 1
  • Global Checks for Application Commands

    Global Checks for Application Commands

    Summary

    Adding global checks for application commands

    What is the feature request for?

    Application commands

    The Problem

    After some looking around for a way to implement a global check for application commands (much like the global checks for context commands), it seems there isn't a way to do a global check of all slash commands.

    The Ideal Solution

    This feature would act just like global checks for context commands except it would apply to application commands.

    The Current Solution

    No response

    Additional Context

    No response

    t: enhancement p: medium help wanted 
    opened by RPrime2003 0
Releases(v2.3.2)
  • v2.3.2(Nov 11, 2022)

    What's Changed

    This is a bugfix release to resolve false positive argument checking. https://docs.nextcord.dev/en/stable/whats_new.html#v2-3-2

    Contributors of this Release: @EmreTech Full Changelog: https://github.com/nextcord/nextcord/compare/v2.3.1...v2.3.2

    Source code(tar.gz)
    Source code(zip)
  • v2.3.1(Nov 11, 2022)

    What's Changed

    This is a bugfix release to resolve an import error with nextcord.ui :pensive:. https://docs.nextcord.dev/en/stable/whats_new.html#v2-3-1

    Contributors of this Release: @kingmigdor Full Changelog: https://github.com/nextcord/nextcord/compare/v2.3.0...v2.3.1

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Nov 11, 2022)

    What's Changed

    This version includes support for small changes recently made by Discord, and many type annotation improvements. https://docs.nextcord.dev/en/stable/whats_new.html#v2-3-0

    New Contributors

    • @GestaIt made their first contribution in https://github.com/nextcord/nextcord/pull/773
    • @doublevcodes made their first contribution in https://github.com/nextcord/nextcord/pull/830
    • @e-codes-stuff made their first contribution in https://github.com/nextcord/nextcord/pull/858

    Contributors of this Release: @kingmigdor, @EmreTech, @ooliver1, @teaishealthy, @e-codes-stuff, @alentoghostflame, @doublevcodes, @toolifelesstocode, @DenverCoder1, @ToasterUwU, @MaskDuck, @Koalacards, @Skelmis, @GestaIt Full Changelog: https://github.com/nextcord/nextcord/compare/v2.2.0...v2.3.0

    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Sep 9, 2022)

    What's Changed

    This release comes with mostly quality of life changes. https://docs.nextcord.dev/en/stable/whats_new.html#v2-2-0

    Contributors of this Release: @DenverCoder1, @Soheab, @TrapDrap, @alentoghostflame, @benedictvs, @Skelmis, @i80287, @ooliver1, @H4ckerxx44 Full Changelog: https://github.com/nextcord/nextcord/compare/v2.1.1...v2.2.0

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Sep 9, 2022)

    What's Changed

    This release backports changes from v2.2.0 due to a breaking change in that release. https://docs.nextcord.dev/en/stable/whats_new.html#v2-1-1

    New Contributors

    • @i80287 made their first contribution in https://github.com/nextcord/nextcord/pull/787
    • @benedictvs made their first contribution in https://github.com/nextcord/nextcord/pull/792

    Contributors of this Release: @ooliver1, @H4ckerxx44, @Skelmis, @alentoghostflame, @DenverCoder1, @i80287, @benedictvs Full Changelog: https://github.com/nextcord/nextcord/compare/v2.1.0...v2.1.1

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Aug 8, 2022)

    What's Changed

    Adds support for many discord features, with a few bug fixes. https://docs.nextcord.dev/en/stable/whats_new.html#v2-1-0

    New Contributors

    • @EmreTech made their first contribution in https://github.com/nextcord/nextcord/pull/674
    • @TrapDrap made their first contribution in https://github.com/nextcord/nextcord/pull/714

    Contributors of this release: @ooliver1, @EmreTech, @DenverCoder1, @H4ckerxx44, @Skelmis, @Soheab, @toolifelesstocode, @ArjunSharda, @kingmigdor, @alentoghostflame, @RamzziSudip

    Full Changelog: https://github.com/nextcord/nextcord/compare/v2.0.0...v2.1.0

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Jun 28, 2022)

    What's Changed

    Only docs, ci and non-code changes have been merged since https://github.com/nextcord/nextcord/commit/3eeba694b2b4bfd464c290342030f7d040e8ff9d, the only non-code change for the past week has been #698

    We are proud to release nextcord 2.0 stable! Thank you everyone for helping get us to this point :) There will be an announcement in https://discord.gg/nextcord soon, watch out for that!

    New Contributors

    • @PerchunPak made their first contribution in https://github.com/nextcord/nextcord/pull/705

    Full Changelog: https://github.com/nextcord/nextcord/compare/v2.0.0rc2...v2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0rc2(Jun 23, 2022)

    What's Changed

    Bug Fixes

    • Apply checks to context menu commands by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/698

    Full Changelog: https://github.com/nextcord/nextcord/compare/v2.0.0rc1...v2.0.0rc2

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0rc1(Jun 20, 2022)

    What's Changed

    Features

    Bug Fixes

    New Contributors

    Full Changelog: https://github.com/nextcord/nextcord/compare/v2.0.0b4...v2.0.0rc1

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0b4(Jun 12, 2022)

    What's Changed

    Bug Fixes

    • app-cmds: dm_permission causing resync and cmds via bot not registering fully by @alentoghostflame in https://github.com/nextcord/nextcord/pull/664

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0b3...v2.0.0b4

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0b3(Jun 5, 2022)

    What's Changed

    • fix(voice): default websocket callback function is async by @Skelmis in https://github.com/nextcord/nextcord/pull/661

    New Contributors

    • @toolifelesstocode made their first contribution in https://github.com/nextcord/nextcord/pull/659

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0b2...2.0.0b3

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0b2(Jun 3, 2022)

  • 2.0.0b1(Jun 3, 2022)

    What's Changed

    NOTE

    This requires Intents.message_content to receive content for messages, see here for more info

    Features

    • cogs: allow setup function to be async by @MaskDuck in https://github.com/nextcord/nextcord/pull/536
    • ui: Modal _expires_at and View auto_defer by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/555
    • app-cmds: add autocomplete_function as an argument to SlashOption by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/544
    • events: add close event (#349) by @pmdevita in https://github.com/nextcord/nextcord/pull/553
    • to_file for assets, emojis, and stickers by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/562
    • interactions: make send return a PartialInteractionMessage by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/573
    • embeds: set image and thumbnail to not be kwarg forced by @RamzziSudip in https://github.com/nextcord/nextcord/pull/603
    • filename and description kwargs in to_file by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/602
    • embeds: return the Embed from Embed.clear_fields() by @MaskDuck in https://github.com/nextcord/nextcord/pull/626
    • embeds: return Embed from Embed.remove_field by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/630
    • interactions: return message from InteractionResponse.edit_message by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/622
    • member: add a disconnect helper method by @ToasterUwU in https://github.com/nextcord/nextcord/pull/637
    • app-cmds: ignore_forbidden kwarg, fix error with app check deco order by @alentoghostflame in https://github.com/nextcord/nextcord/pull/657

    Breaking Changes

    • guild: update bans to use an iterator and pagination by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/564
    • remove store channel functionality by @H4ckerxx44 in https://github.com/nextcord/nextcord/pull/560
    • app-cmds: rename classes, support app permissions and localisation by @alentoghostflame in https://github.com/nextcord/nextcord/pull/530
    • use discord api v10 by @ooliver1 in https://github.com/nextcord/nextcord/pull/647

    Bug fixes

    • removing embeds when editing with files and add embeds to PartialMessage.edit by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/551
    • messages: add context_menu_command to is_system by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/561
    • app-cmds: support leaving out interaction in numpy docstring by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/559
    • app-cmds: pass default_permission correctly (Closes: #373) by @hlieberman in https://github.com/nextcord/nextcord/pull/383
    • fix(member): fix typehint by @MaskDuck in https://github.com/nextcord/nextcord/pull/614
    • app-checks: remove unused argument from ApplicationCommand and remove unused variable invoke_error by @okay1204 in https://github.com/nextcord/nextcord/pull/611
    • channels: getting guild when no channel type by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/652
    • iterators: resolve infinite loop in scheduled event iterators by @ooliver1 in https://github.com/nextcord/nextcord/pull/644
    • iterators: guild iterator can paginate properly and 200 per page by @shiftinv in https://github.com/nextcord/nextcord/pull/649

    New Contributors

    • @Georgeees made their first contribution in https://github.com/nextcord/nextcord/pull/554
    • @pmdevita made their first contribution in https://github.com/nextcord/nextcord/pull/553
    • @hlieberman made their first contribution in https://github.com/nextcord/nextcord/pull/383
    • @ToasterUwU made their first contribution in https://github.com/nextcord/nextcord/pull/616
    • @shiftinv made their first contribution in https://github.com/nextcord/nextcord/pull/649

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0a10...2.0.0b1

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a10(Mar 22, 2022)

    What's Changed

    Features

    • AudioPlayer after parameter can be a coroutine by @anoadragon453 in https://github.com/nextcord/nextcord/pull/448
    • Modals by @ascpial in https://github.com/nextcord/nextcord/pull/445
    • Client.fetch_guilds with_counts boolean parameter by @JDJGInc in https://github.com/nextcord/nextcord/pull/475
    • Application commands checks/hooks by @okay1204 in https://github.com/nextcord/nextcord/pull/348
    • Automatic slash descriptions from docstrings by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/480
    • Adding Interaction.created_at, expires_at and has_expired by @kingmigdor in https://github.com/nextcord/nextcord/pull/534
    • GuildChannel.jump_url + PrivateChannel.jump_url @acco4321 in https://github.com/nextcord/nextcord/pull/531

    Breaking Changes

    • Member.timeout helper function (Member.timeout property -> Member.communication_disabled_until) by @Shlol762 in https://github.com/nextcord/nextcord/pull/423 - breaking change
    • File.description and parameter by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/525 - breaking change
      • append_files parameter removed from message edit methods
      • must specify existing attachments when adding files

    Fixes

    • Fix audio delay when calling after function - AudioPlayer by @Dysta in https://github.com/nextcord/nextcord/pull/515
    • fix: Return the correct timeout in View._expires_at by @Skelmis in https://github.com/nextcord/nextcord/pull/497
    • Cython compatibility by @AstroFloof in https://github.com/nextcord/nextcord/pull/517
    • Make utils.get content-aware by @frissyn in https://github.com/nextcord/nextcord/pull/463

    New Contributors

    • @ShowierData9978-Alt made their first contribution in https://github.com/nextcord/nextcord/pull/518
    • @Pysics made their first contribution in https://github.com/nextcord/nextcord/pull/520
    • @ascpial made their first contribution in https://github.com/nextcord/nextcord/pull/445
    • @Dysta made their first contribution in https://github.com/nextcord/nextcord/pull/515
    • @JDJGInc made their first contribution in https://github.com/nextcord/nextcord/pull/475
    • @okay1204 made their first contribution in https://github.com/nextcord/nextcord/pull/348
    • @AstroFloof made their first contribution in https://github.com/nextcord/nextcord/pull/517
    • @kingmigdor made their first contribution in https://github.com/nextcord/nextcord/pull/534
    • @acco4321 made their first contribution in https://github.com/nextcord/nextcord/pull/531
    • @EyadLordXxXxX made their first contribution in https://github.com/nextcord/nextcord/pull/538
    • @frissyn made their first contribution in https://github.com/nextcord/nextcord/pull/463

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0a9...2.0.0a10

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a9(Mar 6, 2022)

    What's Changed

    Fixes

    • Task bugfix and refactoring by @veni-vidi-code in https://github.com/nextcord/nextcord/pull/469
    • Replacing attachments by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/472
    • ApplicationCommand association now checks option length. by @alentoghostflame in https://github.com/nextcord/nextcord/pull/482
    • Make SlashOption extend typing.Any by @abrahammurciano in https://github.com/nextcord/nextcord/pull/500
    • Small performance improvement for dm messages by @veni-vidi-code in https://github.com/nextcord/nextcord/pull/461

    Features

    • Add join_notification_replies SystemChannelFlags by @MoonlightCapital in https://github.com/nextcord/nextcord/pull/486
    • Added Attachment support for slash commands. by @alentoghostflame in https://github.com/nextcord/nextcord/pull/476
    • Add support for scheduled event cover image by @Soheab in https://github.com/nextcord/nextcord/pull/489
    • Cache roles within Guild.fetch_roles by @Skelmis in https://github.com/nextcord/nextcord/pull/502
    • Alternate syntax for optional slash args by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/410
    • Add attachments to edit_original_message, Interaction.edit, Webhook.edit_message, WebhookMessage.edit by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/507
    • Default command_prefix in commands.Bot() by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/101

    New Contributors

    • @MoonlightCapital made their first contribution in https://github.com/nextcord/nextcord/pull/486
    • @MaskDuck made their first contribution in https://github.com/nextcord/nextcord/pull/471
    • @MouseMoosz made their first contribution in https://github.com/nextcord/nextcord/pull/495

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0a8...2.0.0a9

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a8(Feb 14, 2022)

    What's Changed

    • Slash commands will get type hints when slash annotations is used
    • Set default slash command/option description to "No description provided" instead of a space due to a major change by discord
    • Fix bug where calling is_system would error

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0a7...2.0.0a8

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a7(Feb 5, 2022)

    What's Changed

    • fix(events): member intents can work off now? by @ooliver1 in https://github.com/nextcord/nextcord/pull/346
    • Addition of role icons by @veni-vidi-code in https://github.com/nextcord/nextcord/pull/195
    • Slash fixes by @alentoghostflame in https://github.com/nextcord/nextcord/pull/344
    • Merge: #298 by @Lulalaby in https://github.com/nextcord/nextcord/pull/298
    • Add handler for message thread field update by @Artemis21 in https://github.com/nextcord/nextcord/pull/342
    • Add possibility to edit files on a message by @Gugu7264 in https://github.com/nextcord/nextcord/pull/318
    • feat: Send files with interaction response by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/354
    • [Slash Commands] Construct a Member if data is available by @Soheab in https://github.com/nextcord/nextcord/pull/327
    • fix(ext-core): i dont think numpy defaults as such by @ooliver1 in https://github.com/nextcord/nextcord/pull/363
    • Add raw_member_remove event by @Gugu7264 in https://github.com/nextcord/nextcord/pull/325
    • fix: allow deferring messages on component interactions by @onerandomusername in https://github.com/nextcord/nextcord/pull/368
    • fix: ScheduledEvent.edit missing arguments in http by @Gugu7264 in https://github.com/nextcord/nextcord/pull/374
    • fix: status not in list of valid_keys for edit event by @Gugu7264 in https://github.com/nextcord/nextcord/pull/381
    • fix: provide a copy of after in voice_state_update event by @Gugu7264 in https://github.com/nextcord/nextcord/pull/364
    • feat: Add delete_after to send_message, edit_message, edit by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/384
    • fix: check if time parameter is semi-timezone-aware and raise excepti… by @Gugu7264 in https://github.com/nextcord/nextcord/pull/380
    • Add client to interaction class by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/358
    • feat: delete_after for deferred/webhook messages by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/387
    • perf: Reduce API calls for delete_after by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/388
    • Bump aiohttp version in requirements by @freepizzas-dev in https://github.com/nextcord/nextcord/pull/386
    • fix: pass ConnectionState to CustomActivity, allowing to pass it to P… by @Gugu7264 in https://github.com/nextcord/nextcord/pull/375
    • chore: add note to ScheduledEvent.edit status parameter by @Gugu7264 in https://github.com/nextcord/nextcord/pull/385
    • Application Commands Documentation by @VincentRPS in https://github.com/nextcord/nextcord/pull/309
    • fix: ensure that a message's thread is the same one in the cache by @onerandomusername in https://github.com/nextcord/nextcord/pull/362
    • fix: Guild.chunk ignoring cache parameter by @Gugu7264 in https://github.com/nextcord/nextcord/pull/371
    • Add Thread.create_timestamp by @Soheab in https://github.com/nextcord/nextcord/pull/372
    • [URGENT] fix: custom activities can have no emotes AAAA by @Gugu7264 in https://github.com/nextcord/nextcord/pull/392
    • health check still present in unaliased by @TAG-Epic in https://github.com/nextcord/nextcord/pull/391
    • chore: move docstrings to the correct place by @Gugu7264 in https://github.com/nextcord/nextcord/pull/406
    • Add CONTEXT_MENU_COMMAND message type by @TAG-Epic in https://github.com/nextcord/nextcord/pull/390
    • Fixed dynamic cooldowns (BucketType.default case) by @EQUENOS in https://github.com/nextcord/nextcord/pull/411
    • Refactor and simplify app command examples by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/409
    • feat: Add file/files to InteractionResponse.edit_message by @DenverCoder1 in https://github.com/nextcord/nextcord/pull/412
    • Add allowed_mentions to interaction responses by @14ROVI in https://github.com/nextcord/nextcord/pull/407
    • Implement scheduled event covers by @TAG-Epic in https://github.com/nextcord/nextcord/pull/356
    • Revert "Implement scheduled event covers" by @ooliver1 in https://github.com/nextcord/nextcord/pull/413
    • Revert "Revert "Implement scheduled event covers"" by @ooliver1 in https://github.com/nextcord/nextcord/pull/414
    • [User commands] Construct member if possible by @Soheab in https://github.com/nextcord/nextcord/pull/360
    • fix(client): improper logging level for event by @ooliver1 in https://github.com/nextcord/nextcord/pull/418
    • Fixed issue #419 and #417 by @Shlol762 in https://github.com/nextcord/nextcord/pull/427
    • Fixed more doc typos by @Shlol762 in https://github.com/nextcord/nextcord/pull/430
    • fix(message): dont assign to the thread property by @ooliver1 in https://github.com/nextcord/nextcord/pull/431

    New Contributors

    • @Lulalaby made their first contribution in https://github.com/nextcord/nextcord/pull/298
    • @onerandomusername made their first contribution in https://github.com/nextcord/nextcord/pull/368
    • @freepizzas-dev made their first contribution in https://github.com/nextcord/nextcord/pull/386
    • @EQUENOS made their first contribution in https://github.com/nextcord/nextcord/pull/411
    • @14ROVI made their first contribution in https://github.com/nextcord/nextcord/pull/407

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0a6...2.0.0a7

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a6(Jan 8, 2022)

    What's Changed

    • Fix member.edit without a timeout raising an error
    • add scheduled events
    • update to API version 9
    • Add 'thread' field to messages

    Full Changelog: https://github.com/nextcord/nextcord/compare/2.0.0a5...2.0.0a6

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a5(Jan 1, 2022)

    • Added slash commands
    • General typing fixes
    • Added spammer user flag
    • Added timeouts
    • Default role mentions are now @everyone not @@everyone
    • Support for animated guild banners
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a4(Dec 15, 2021)

    • Fix typings e.g. on_guild_channel_pins_update
    • Tasks.loop bugfix if current day has passed
    • Bump aiohttp dependency to allow 3.8+
    • Interaction.send helper method for responding or sending
    • Commands group hook inheritance for child commands
    • Fix the permissions issue when iterating over a permission object
    • Prefer static_format over format with static assets
    • Fix VoiceClient aliasing not working as intended
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a3(Sep 22, 2021)

A maintained fork of Danny's discord.py

Nextcord A modern, easy-to-use, feature-rich, and async-ready API wrapper for Discord written in Python. Fork notice This is a fork of discord.py, whi

null 977 Jan 5, 2023
Maintained wavelink fork for pycord

Pycord.Wavelink Wavelink is robust and powerful Lavalink wrapper for Pycord! Wavelink features a fully asynchronous API that's intuitive and easy to u

Pycord Development 23 Dec 11, 2022
Maintained Fork of Jishaku For nextcord

Onami a debugging and utility extension for nextcord bots Read the documentation online. Fork Onami is a actively maintained fork of Jishaku for nextc

RPS 11 Dec 14, 2022
An API wrapper for discord; maintained and improved from discord.py

Fusion.py Documentation What is Fusion.py you might ask; Fusion.py is a Discord.py fork that has most of the good features from most of the big Discor

Senarc Studios 5 Apr 19, 2022
VoiceMaster-Discord-Bot - Fork from original Discord bot with max channel limit, staff role and more

VoiceMaster VoiceMaster is a discord bot created to change the way servers work,

null 2 Feb 28, 2022
DragDev Maintained Instance Of discord.py

discord.py - DragDev Flavour A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. The Future of discord.py

DragDev Studios 3 Aug 27, 2022
A fork of discord.py for anime enjoyers

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Key Features Modern Pythonic API using async and await

Senpai Development 4 Nov 5, 2021
A fork of discord.py meant to replace it

Texus A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Key Features Modern Pythonic API using async and

Texus 1 Nov 18, 2021
A fork of discord.py

discord.py A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. The Future of discord.py Please read the gi

null 1 Dec 19, 2021
Actively maintained, pure Python wrapper for the Twitter API. Supports both normal and streaming Twitter APIs.

Twython Twython is a Python library providing an easy way to access Twitter data. Supports Python 3. It's been battle tested by companies, educational

Ryan McGrath 1.9k Jan 2, 2023
Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially maintained by the Tuya Developer Team.

Tuya Home Assistant Integration Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially mainta

Tuya 704 Jan 3, 2023
Powerful Telegram Maintained UserBot in Telethon

Fire-X UserBot The Awaited Bot Fire-X userbot The Most Powerful Telegram Userbot. This Userbot is Safe to use in Your Telegram Account. It is not like

null 22 Oct 21, 2022
Elkeid HUB - A rule/event processing engine maintained by the Elkeid Team that supports streaming/offline data processing

Elkeid HUB - A rule/event processing engine maintained by the Elkeid Team that supports streaming/offline data processing

Bytedance Inc. 61 Dec 29, 2022
pymobiledevice fork with more recent coding standards and many more features

Description Features Installation Usage Sending your own messages Lockdown messages Instruments messages Example Lockdown services com.apple.instrumen

null 255 Dec 28, 2022
An Inline Telegram YouTube Downloader bot with custom, permanent thumbnail support and cancel upload facility. Make your fork now.

Inline-Tube-Mate (YouTube Downloader) An Inline Telegram bot that can download YouTube videos with permanent thumbnail support Bot need to be in Inlin

Renjith Mangal 41 Dec 14, 2022
A Fork of Gitlab's Permifrost tool for managing Snowflake Permissions

permifrost-fork This is a fork of the GitLab permifrost project. As the GitLab team is not currently maintaining the project, we've taken on maintenac

Hightouch 7 Oct 13, 2021
A fork of lavalink.py built for nextcord

nextcord-ext-lava is a wrapper for Lavalink which abstracts away most of the code necessary to use Lavalink, allowing for easier integration into your projects, while still promising full API coverage and powerful tools to get the most out of it.

nextcord-ext 4 Feb 27, 2022
Who are we? We are the Hunters of all Torrent in this world.πŸ—‘οΈ.Fork from SlamDevs

MIRROR HUNTER This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive. Repo la

Anime Republic 130 May 28, 2022
A continued fork of Disco

Orca Orca is an extensive and extendable Python 3.x library for the Discord API. orca boasts the following major features: Expressive, functional inte

RPS 4 Apr 3, 2022