fix: propagate parent module attributes to child commands#3258
Open
Sim-hu wants to merge 1 commit intodiscord-net:devfrom
Open
fix: propagate parent module attributes to child commands#3258Sim-hu wants to merge 1 commit intodiscord-net:devfrom
Sim-hu wants to merge 1 commit intodiscord-net:devfrom
Conversation
When a sub-module is nested inside a parent module, attributes like EnabledInDm, DefaultPermission, IsNsfw, DefaultMemberPermissions, ContextTypes, and IntegrationTypes are now inherited from the parent module builder. Child modules can still override these values with their own attributes. Previously, nested modules would always use default values instead of inheriting from their parent, causing attributes like EnabledInDm(false) on a parent module to have no effect on commands within child modules.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2875
When attributes like
[EnabledInDm(false)]are placed on a parent module class, child commands still allowed DM execution because the module builder never copied these values from the parent.The internal
ModuleBuilderconstructor now inheritsDefaultPermission,IsEnabledInDm,IsNsfw,DefaultMemberPermissions,ContextTypes, andIntegrationTypesfrom the parent builder when one is provided. Child modules can still override any of these via their own attributes sinceBuildModuleprocesses attributes after construction.