Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions objects/channel/channeltype.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,15 @@ const (
ChannelTypeGuildStageVoice
ChannelTypeGuildDirectory
ChannelTypeGuildForum
ChannelTypeGuildMedia
)

func (t ChannelType) IsThread() bool {
return t == ChannelTypeGuildPublicThread ||
t == ChannelTypeGuildPrivateThread ||
t == ChannelTypeGuildNewsThread
}

func (t ChannelType) IsPostBased() bool {
return t == ChannelTypeGuildForum || t == ChannelTypeGuildMedia
}
76 changes: 62 additions & 14 deletions permission/permission.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package permission

import "github.com/TicketsBot-cloud/gdl/objects/channel"

type Permission uint64

const (
Expand Down Expand Up @@ -75,9 +77,9 @@ func BuildPermissions(permissions ...Permission) uint64 {
func (p Permission) String() string {
switch p {
case CreateInstantInvite:
return "Create Instant Invite"
return "Create Invite"
case KickMembers:
return "Kick Members"
return "Kick, Approve and Reject Members"
case BanMembers:
return "Ban Members"
case Administrator:
Expand All @@ -93,13 +95,13 @@ func (p Permission) String() string {
case PrioritySpeaker:
return "Priority Speaker"
case Stream:
return "Stream"
return "Video"
case ViewChannel:
return "Read Messages"
return "View Channels"
case SendMessages:
return "Send Messages"
return "Send Messages and Create Posts"
case SendTTSMessages:
return "Send TTS Messages"
return "Send Text-to-speech Messages"
case ManageMessages:
return "Manage Messages"
case EmbedLinks:
Expand All @@ -109,7 +111,7 @@ func (p Permission) String() string {
case ReadMessageHistory:
return "Read Message History"
case MentionEveryone:
return "Mention Everyone"
return "Mention @everyone, @here and All Roles"
case UseExternalEmojis:
return "Use External Emojis"
case ViewGuildInsights:
Expand All @@ -135,50 +137,95 @@ func (p Permission) String() string {
case ManageWebhooks:
return "Manage Webhooks"
case ManageEmojis:
return "Manage Emojis"
return "Manage Expressions"
case UseApplicationCommands:
return "Use Application Commands"
case RequestToSpeak:
return "Request to Speak"
case ManageEvents:
return "Manage Events"
case ManageThreads:
return "Manage Threads"
return "Manage Threads and Posts"
case CreatePublicThreads:
return "Create Public Threads"
case CreatePrivateThreads:
return "Create Private Threads"
case UseExternalStickers:
return "Use External Stickers"
case SendMessagesInThreads:
return "Send Messages in Threads"
return "Send Messages in Threads and Posts"
case UseEmbeddedActivities:
return "Use Embedded Activities"
return "Use Activities"
case ModerateMembers:
return "Moderate Members"
return "Time out members"
case ViewCreatorMonetizationAnalytics:
return "View Creator Monetization Analytics"
case UseSoundboard:
return "Use Soundboard"
case CreateGuildExpressions:
return "Create Guild Expressions"
return "Create Expressions"
case CreateEvents:
return "Create Events"
case UseExternalSounds:
return "Use External Sounds"
case SendVoiceMessages:
return "Send Voice Messages"
case SendPolls:
return "Send Polls"
return "Create Polls"
case UseExternalApps:
return "Use External Apps"
case PinMessages:
return "Pin Messages"
case BypassSlowmode:
return "Bypass Slowmode"
default:
return "Unknown Permission"
}
}

func (p Permission) ChannelName(channelType channel.ChannelType) string {
if channelType == channel.ChannelTypeGuildCategory {
if p == ManageRoles {
return "Manage Permissions"
}

return p.String()
}

if channelType.IsPostBased() {
switch p {
case SendMessages:
return "Create Posts"
case SendMessagesInThreads:
return "Send Messages in Posts"
case ManageThreads:
return "Manage Posts"
case ReadMessageHistory:
return "Read Post History"
}
} else {
switch p {
case SendMessages:
return "Send Messages"
case SendMessagesInThreads:
return "Send Messages in Threads"
case ManageThreads:
return "Manage Threads"
}
}

switch p {
case ViewChannel:
return "View Channel"
case ManageChannels:
return "Manage Channel"
case ManageRoles:
return "Manage Permissions"
default:
return p.String()
}
}

var AllPermissions = []Permission{
CreateInstantInvite,
KickMembers,
Expand Down Expand Up @@ -230,4 +277,5 @@ var AllPermissions = []Permission{
SendPolls,
UseExternalApps,
PinMessages,
BypassSlowmode,
}
Loading