Revert "now added global commands" (DMs can crash the bot currently)
This commit is contained in:
		
							
								
								
									
										48
									
								
								handlers.go
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								handlers.go
									
									
									
									
									
								
							| @@ -28,27 +28,38 @@ func ready(s *discordgo.Session, event *discordgo.Ready) { | ||||
| 	findAndDeleteUnusedMessages() | ||||
| 	removeOldCommandFromAllGuilds(s) | ||||
| 	var existingCommandNames []string | ||||
| 	existingCommands, err := s.ApplicationCommands(s.State.User.ID, "") | ||||
| 	if err != nil { | ||||
| 		logrus.Errorf("error fetching existing global commands: %v", err) | ||||
| 	} else { | ||||
| 	for _, guild := range event.Guilds { | ||||
| 		existingCommands, err := s.ApplicationCommands(s.State.User.ID, guild.ID) | ||||
| 		for _, existingCommand := range existingCommands { | ||||
| 			existingCommandNames = append(existingCommandNames, existingCommand.Name) | ||||
| 		} | ||||
| 	} | ||||
| 	for _, command := range commands { | ||||
| 		if !slices.Contains(existingCommandNames, command.Definition.Name) || slices.Contains(os.Args, "--update="+command.Definition.Name) || slices.Contains(os.Args, "--update=all") { | ||||
| 			cmd, err := s.ApplicationCommandCreate(s.State.User.ID, "", &command.Definition) | ||||
| 			if err != nil { | ||||
| 				logrus.Errorf("error creating global command '%s': %v", cmd.Name, err) | ||||
| 			} else { | ||||
| 				logrus.Infof("Added global command '%s'", cmd.Name) | ||||
| 		if err != nil { | ||||
| 			logrus.Errorf("error fetching existing commands for guild %s: %v", guild.Name, err) | ||||
| 			continue | ||||
| 		} | ||||
| 		for _, command := range commands { | ||||
| 			if !slices.Contains(existingCommandNames, command.Definition.Name) || slices.Contains(os.Args, "--update="+command.Definition.Name) { | ||||
| 				cmd, err := s.ApplicationCommandCreate(s.State.User.ID, guild.ID, &command.Definition) | ||||
| 				logrus.Infof("Added command '%s'", cmd.Name) | ||||
| 				if err != nil { | ||||
| 					logrus.Error("error creating command,", err) | ||||
| 					continue | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	logrus.Info("Successfully started the Bot!") | ||||
| } | ||||
|  | ||||
| func guildCreate(s *discordgo.Session, event *discordgo.GuildCreate) { | ||||
| 	for _, command := range commands { | ||||
| 		_, err := s.ApplicationCommandCreate(s.State.User.ID, event.Guild.ID, &command.Definition) | ||||
| 		if err != nil { | ||||
| 			logrus.Errorf("error creating command for guild %s: %v", event.Guild.Name, err) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func interactionCreate(s *discordgo.Session, i *discordgo.InteractionCreate) { | ||||
| 	for _, command := range commands { | ||||
| 		switch i.Type { | ||||
| @@ -92,9 +103,12 @@ func interactionCreate(s *discordgo.Session, i *discordgo.InteractionCreate) { | ||||
| } | ||||
|  | ||||
| func removeOldCommandFromAllGuilds(s *discordgo.Session) { | ||||
| 	existingCommands, err := s.ApplicationCommands(s.State.User.ID, "") | ||||
| 	if err != nil { | ||||
| 		logrus.Errorf("error fetching existing commands: %v\n", err) | ||||
| 	for _, guild := range s.State.Guilds { | ||||
| 		existingCommands, err := s.ApplicationCommands(s.State.User.ID, guild.ID) | ||||
| 		if err != nil { | ||||
| 			logrus.Errorf("error fetching existing commands for guild %s: %v\n", guild.Name, err) | ||||
| 			continue | ||||
| 		} | ||||
| 		var commandIDs []string | ||||
| 		for _, command := range commands { | ||||
| 			commandIDs = append(commandIDs, command.Definition.Name) | ||||
| @@ -102,9 +116,9 @@ func removeOldCommandFromAllGuilds(s *discordgo.Session) { | ||||
| 		for _, existingCommand := range existingCommands { | ||||
| 			if !slices.Contains(commandIDs, existingCommand.Name) { | ||||
| 				logrus.Infof("Deleting command '%s'", existingCommand.Name) | ||||
| 				err := s.ApplicationCommandDelete(s.State.User.ID, "", existingCommand.ID) | ||||
| 				err := s.ApplicationCommandDelete(s.State.User.ID, guild.ID, existingCommand.ID) | ||||
| 				if err != nil { | ||||
| 					logrus.Errorf("error deleting command %s: %v", existingCommand.Name, err) | ||||
| 					logrus.Errorf("error deleting command %s for guild %s: %v", existingCommand.Name, guild.Name, err) | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										1
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								main.go
									
									
									
									
									
								
							| @@ -42,6 +42,7 @@ func main() { | ||||
| 	} | ||||
| 	bot.Identify.Intents = discordgo.IntentsGuildMessages | discordgo.IntentsGuilds | discordgo.IntentMessageContent | discordgo.IntentGuildMembers | ||||
| 	bot.AddHandler(ready) | ||||
| 	bot.AddHandler(guildCreate) | ||||
| 	bot.AddHandler(interactionCreate) | ||||
| 	bot.AddHandler(messageCreate) | ||||
| 	bot.AddHandler(messageDelete) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user