def permission?(action, channel = nil)
      # If the member is the server owner, it irrevocably has all permissions.
      return true if owner?

      # First, check whether the user has Manage Roles defined.
      # (Coincidentally, Manage Permissions is the same permission as Manage Roles, and a
      # Manage Permissions deny overwrite will override Manage Roles, so we can just check for
      # Manage Roles once and call it a day.)
      return true if defined_permission?(:administrator, channel)

      # Otherwise, defer to defined_permission
      defined_permission?(action, channel)
    end
def permission?(action, channel = nil)
      # If the member is the server owner, it irrevocably has all permissions.
      return true if owner?

      # First, check whether the user has Manage Roles defined.
      # (Coincidentally, Manage Permissions is the same permission as Manage Roles, and a
      # Manage Permissions deny overwrite will override Manage Roles, so we can just check for
      # Manage Roles once and call it a day.)
      return true if defined_permission?(:administrator, channel)

      # Otherwise, defer to defined_permission
      defined_permission?(action, channel)
    end
Checks whether this user can do the particular action, regardless of whether it has the permission defined,
 through for example being the server owner or having the Manage Roles permission
 @param action [Symbol] The permission that should be checked. See also {Permissions::FLAGS} for a list.
 @param channel [Channel, nil] If channel overrides should be checked too, this channel specifies where the overrides should be checked.
 @example Check if the bot can send messages to a specific channel in a server.
   bot_profile = bot.profile.on(event.server)
   can_send_messages = bot_profile.permission?(:send_messages, channel)
 @return [true, false] whether or not this user has the permission.