ImplDiscordStuff #1
							
								
								
									
										121
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								main.go
									
									
									
									
									
								
							@@ -6,8 +6,8 @@ import (
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/signal"
 | 
			
		||||
	"syscall"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"syscall"
 | 
			
		||||
 | 
			
		||||
	"github.com/BurntSushi/toml"
 | 
			
		||||
	"github.com/bwmarrin/discordgo"
 | 
			
		||||
@@ -27,7 +27,7 @@ type Config struct {
 | 
			
		||||
 | 
			
		||||
type Discord struct {
 | 
			
		||||
	Token   string `toml:"token"`
 | 
			
		||||
	AppID	string	`toml:"appid"`
 | 
			
		||||
	AppID   string `toml:"appid"`
 | 
			
		||||
	GuildID string `toml:"guildid"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -105,27 +105,7 @@ var (
 | 
			
		||||
	commands = []discordgo.ApplicationCommand{
 | 
			
		||||
		{
 | 
			
		||||
			Name: "rickroll-em",
 | 
			
		||||
			Type: discordgo.UserApplicationCommand,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			Name: "google-it",
 | 
			
		||||
			Type: discordgo.MessageApplicationCommand,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			Name: "stackoverflow-it",
 | 
			
		||||
			Type: discordgo.MessageApplicationCommand,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			Name: "godoc-it",
 | 
			
		||||
			Type: discordgo.MessageApplicationCommand,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			Name: "discordjs-it",
 | 
			
		||||
			Type: discordgo.MessageApplicationCommand,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			Name: "discordpy-it",
 | 
			
		||||
			Type: discordgo.MessageApplicationCommand,
 | 
			
		||||
			Description: "List all webhooks in the server",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	commandsHandlers = map[string]func(client *discordgo.Session, i *discordgo.InteractionCreate){
 | 
			
		||||
@@ -161,76 +141,6 @@ var (
 | 
			
		||||
				panic(err)
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"google-it": func(s *discordgo.Session, i *discordgo.InteractionCreate) {
 | 
			
		||||
			err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
 | 
			
		||||
				Type: discordgo.InteractionResponseChannelMessageWithSource,
 | 
			
		||||
				Data: &discordgo.InteractionResponseData{
 | 
			
		||||
					Content: searchLink(
 | 
			
		||||
						i.ApplicationCommandData().Resolved.Messages[i.ApplicationCommandData().TargetID].Content,
 | 
			
		||||
						"https://google.com/search?q=%s", "+"),
 | 
			
		||||
					Flags: discordgo.MessageFlagsEphemeral,
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				panic(err)
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"stackoverflow-it": func(s *discordgo.Session, i *discordgo.InteractionCreate) {
 | 
			
		||||
			err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
 | 
			
		||||
				Type: discordgo.InteractionResponseChannelMessageWithSource,
 | 
			
		||||
				Data: &discordgo.InteractionResponseData{
 | 
			
		||||
					Content: searchLink(
 | 
			
		||||
						i.ApplicationCommandData().Resolved.Messages[i.ApplicationCommandData().TargetID].Content,
 | 
			
		||||
						"https://stackoverflow.com/search?q=%s", "+"),
 | 
			
		||||
					Flags: discordgo.MessageFlagsEphemeral,
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				panic(err)
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"godoc-it": func(s *discordgo.Session, i *discordgo.InteractionCreate) {
 | 
			
		||||
			err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
 | 
			
		||||
				Type: discordgo.InteractionResponseChannelMessageWithSource,
 | 
			
		||||
				Data: &discordgo.InteractionResponseData{
 | 
			
		||||
					Content: searchLink(
 | 
			
		||||
						i.ApplicationCommandData().Resolved.Messages[i.ApplicationCommandData().TargetID].Content,
 | 
			
		||||
						"https://pkg.go.dev/search?q=%s", "+"),
 | 
			
		||||
					Flags: discordgo.MessageFlagsEphemeral,
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				panic(err)
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"discordjs-it": func(s *discordgo.Session, i *discordgo.InteractionCreate) {
 | 
			
		||||
			err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
 | 
			
		||||
				Type: discordgo.InteractionResponseChannelMessageWithSource,
 | 
			
		||||
				Data: &discordgo.InteractionResponseData{
 | 
			
		||||
					Content: searchLink(
 | 
			
		||||
						i.ApplicationCommandData().Resolved.Messages[i.ApplicationCommandData().TargetID].Content,
 | 
			
		||||
						"https://discord.js.org/#/docs/main/stable/search?query=%s", "+"),
 | 
			
		||||
					Flags: discordgo.MessageFlagsEphemeral,
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				panic(err)
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"discordpy-it": func(s *discordgo.Session, i *discordgo.InteractionCreate) {
 | 
			
		||||
			err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
 | 
			
		||||
				Type: discordgo.InteractionResponseChannelMessageWithSource,
 | 
			
		||||
				Data: &discordgo.InteractionResponseData{
 | 
			
		||||
					Content: searchLink(
 | 
			
		||||
						i.ApplicationCommandData().Resolved.Messages[i.ApplicationCommandData().TargetID].Content,
 | 
			
		||||
						"https://discordpy.readthedocs.io/en/stable/search.html?q=%s", "+"),
 | 
			
		||||
					Flags: discordgo.MessageFlagsEphemeral,
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				panic(err)
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -242,27 +152,26 @@ func main() {
 | 
			
		||||
 | 
			
		||||
	client.AddHandler(func(client *discordgo.Session, r *discordgo.Ready) {
 | 
			
		||||
		log.Println("Bot is online")
 | 
			
		||||
 | 
			
		||||
		cmdIDs := make(map[string]string, len(commands))
 | 
			
		||||
 | 
			
		||||
		for _, cmd := range commands {
 | 
			
		||||
			fmt.Println(cmd)
 | 
			
		||||
			rcmd, err := client.ApplicationCommandCreate(client.State.User.ID, config.Discord.GuildID, &cmd)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Fatalf("Cannot create slash command %q: %v", cmd.Name, err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			cmdIDs[rcmd.ID] = rcmd.Name
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	client.AddHandler(func(client *discordgo.Session, i *discordgo.InteractionCreate) {
 | 
			
		||||
		if h, ok := commandsHandlers[i.ApplicationCommandData().Name]; ok {
 | 
			
		||||
			h(client, i)
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	cmdIDs := make(map[string]string, len(commands))
 | 
			
		||||
 | 
			
		||||
	for _, cmd := range commands {
 | 
			
		||||
		rcmd, err := client.ApplicationCommandCreate(config.Discord.AppID, config.Discord.GuildID, &cmd)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Fatalf("Cannot create slash command %q: %v", cmd.Name, err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		cmdIDs[rcmd.ID] = rcmd.Name
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := client.Open()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println("Error opening connection:", err)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user