diff --git a/src/util/Permissions.js b/src/util/Permissions.js index e6929e209..1b7123189 100644 --- a/src/util/Permissions.js +++ b/src/util/Permissions.js @@ -155,6 +155,15 @@ class Permissions { return this.missing(permissions, !explicit); } + /** + * Gets an {@link Array} of permission names (such as `VIEW_CHANNEL`) based on the permissions available. + * @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override + * @returns {string[]} + */ + toArray(checkAdmin = true) { + return Object.keys(this.constructor.FLAGS).filter(perm => this.has(perm, checkAdmin)); + } + /** * Freezes these permissions, making them immutable. * @returns {Permissions} These permissions