Skip to content

Slash Command Permissions ​

Overview ​

Discord supplies the invoking member's channel permissions and the bot's application permissions in interaction payloads. Middleware turns those values into reusable policy checks.

Quick Start ​

go
package main
import (
    "github.com/discord-go/discord.go/bot"
    "github.com/discord-go/discord.go/permissions"
)
func register(r *bot.Router) { r.Command("moderate", "Moderate a member", func(c *bot.InteractionContext) { _ = c.Reply("allowed") }).RequirePermissions(permissions.ModerateMembers).RequireBotPermissions(permissions.ModerateMembers) }

Best Practices ​

Check both user and bot permissions, enforce hierarchy for role/member changes, and use GuildOnly for commands that require guild state. Return ephemeral denial messages.

Released under the Apache License 2.0.