Skip to content
This repository has been archived by the owner on Oct 6, 2024. It is now read-only.

Commit

Permalink
feat: add delete-emotes
Browse files Browse the repository at this point in the history
  • Loading branch information
lenisko committed Mar 1, 2024
1 parent deeaab0 commit 4981dea
Showing 1 changed file with 53 additions and 6 deletions.
59 changes: 53 additions & 6 deletions discord/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,19 @@ var (
Commands = []*discordgo.ApplicationCommand{
{
Name: "list-emotes",
Description: "List emotes",
Description: "List all guild emotes",
DefaultMemberPermissions: &defaultMemberPermissions,
DMPermission: &dmPermission,
},
{
Name: "create-emotes",
Description: "Create emotes",
Description: "Create Porygon emotes",
DefaultMemberPermissions: &defaultMemberPermissions,
DMPermission: &dmPermission,
},
{
Name: "delete-emotes",
Description: "Delete all emotes (created by Porygon)",
DefaultMemberPermissions: &defaultMemberPermissions,
DMPermission: &dmPermission,
},
Expand All @@ -31,6 +37,7 @@ var (
CommandHandlers = map[string]func(s *discordgo.Session, i *discordgo.InteractionCreate){
"list-emotes": listEmotes,
"create-emotes": createEmotes,
"delete-emotes": deleteEmotes,
}
)

Expand All @@ -39,11 +46,15 @@ func listEmotes(s *discordgo.Session, i *discordgo.InteractionCreate) {

guildEmotes, _ := s.GuildEmojis(i.GuildID)

emotesList.WriteString("```")
for _, emote := range guildEmotes {
emotesList.WriteString(fmt.Sprintf("<:%s:%s>\n", emote.Name, emote.ID))
if len(guildEmotes) > 0 {
emotesList.WriteString("```")
for _, emote := range guildEmotes {
emotesList.WriteString(fmt.Sprintf("<:%s:%s>\n", emote.Name, emote.ID))
}
emotesList.WriteString("```")
} else {
emotesList.WriteString("No guild emotes.")
}
emotesList.WriteString("```")

_ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
Type: discordgo.InteractionResponseChannelMessageWithSource,
Expand All @@ -54,6 +65,42 @@ func listEmotes(s *discordgo.Session, i *discordgo.InteractionCreate) {
})
}

func deleteEmotes(s *discordgo.Session, i *discordgo.InteractionCreate) {
var output strings.Builder

_ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
Type: discordgo.InteractionResponseDeferredChannelMessageWithSource,
Data: &discordgo.InteractionResponseData{
Flags: discordgo.MessageFlagsEphemeral,
},
})

guildEmotes, _ := s.GuildEmojis(i.GuildID)

if len(guildEmotes) > 0 {
output.WriteString("```")
for _, emote := range guildEmotes {
if emote.User.ID == s.State.User.ID {
err := s.GuildEmojiDelete(i.GuildID, emote.ID)
if err != nil {
output.WriteString(fmt.Sprintf("%s - failed to remove: %s\n", emote.Name, err))
} else {
output.WriteString(fmt.Sprintf("%s - removed\n", emote.Name))
}
} else {
output.WriteString(fmt.Sprintf("%s - skipping, other owner %s\n", emote.Name, emote.User.String()))
}
}
output.WriteString("```")
} else {
output.WriteString("No guild emotes to delete.")
}

_, _ = s.FollowupMessageCreate(i.Interaction, true, &discordgo.WebhookParams{
Content: output.String(),
})
}

func createEmotes(s *discordgo.Session, i *discordgo.InteractionCreate) {
var output strings.Builder

Expand Down

0 comments on commit 4981dea

Please sign in to comment.