aboutsummaryrefslogtreecommitdiff
path: root/commands/config.go
blob: 838f7e9846485ecc864a636df63fa9022231f96f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package commands

import (
	"fmt"
	"strings"

	"git.anhgelus.world/anhgelus/les-copaings-bot/config"
	"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
	"github.com/anhgelus/gokord/cmd"
	"github.com/anhgelus/gokord/logger"
	discordgo "github.com/nyttikord/gokord"
)

const (
	ConfigModify = "config_modify"
)

func Config(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
	cfg := config.GetGuildConfig(i.GuildID)
	roles := ""
	l := len(cfg.XpRoles) - 1
	for i, r := range cfg.XpRoles {
		if i == l {
			roles += fmt.Sprintf("> Niveau %d - <@&%s>", exp.Level(r.XP), r.RoleID)
		} else {
			roles += fmt.Sprintf("> Niveau %d - <@&%s>\n", exp.Level(r.XP), r.RoleID)
		}
	}
	if len(roles) == 0 {
		roles = "Aucun rôle configuré :("
	}
	disChans := strings.Split(cfg.DisabledChannels, ";")
	l = len(disChans) - 1
	chans := ""
	for i, c := range disChans {
		if i == l-1 {
			chans += fmt.Sprintf("> <#%s>", c)
		} else if i != l {
			chans += fmt.Sprintf("> <#%s>\n", c)
		}
	}
	if len(chans) == 0 {
		chans = "Aucun salon désactivé :)"
	}
	var defaultChan string
	if len(cfg.FallbackChannel) == 0 {
		defaultChan = "Pas de valeur"
	} else {
		defaultChan = fmt.Sprintf("<#%s>", cfg.FallbackChannel)
	}
	//comp := component.New().
	//	Add(component.NewActionRow().Add(component.NewStringSelect(ConfigModify).
	//		SetPlaceholder("Modifier...").
	//		AddOption(
	//			component.NewSelectOption("Rôles liés à l'XP", config.ModifyXpRole).
	//				SetDescription("Gère les rôles liés à l'XP").
	//				SetEmoji(&discordgo.ComponentEmoji{Name: "🏅"}),
	//		).
	//		AddOption(
	//			component.NewSelectOption("Salons désactivés", config.ModifyDisChannel).
	//				SetDescription("Gère les salons désactivés").
	//				SetEmoji(&discordgo.ComponentEmoji{Name: "❌"}),
	//		).
	//		AddOption(
	//			// I don't have a better idea for this...
	//			component.NewSelectOption("Salons par défaut", config.ModifyFallbackChannel).
	//				SetDescription("Spécifie le salon par défaut").
	//				SetEmoji(&discordgo.ComponentEmoji{Name: "💾"}),
	//		).
	//		AddOption(
	//			component.NewSelectOption("Temps avec la réduction", config.ModifyTimeReduce).
	//				SetDescription("Gère le temps avant la réduction d'XP").
	//				SetEmoji(&discordgo.ComponentEmoji{Name: "⌛"}),
	//		),
	//	))
	msg := fmt.Sprintf(
		"# Config\n**Salon par défaut**\n%s\n\n**Rôles liés aux niveaux**\n%s\n\n**Salons désactivés**\n%s\n\n**Jours avant la réduction**\n%d",
		defaultChan,
		roles,
		chans,
		cfg.DaysXPRemains,
	)
	err := resp.SetMessage(msg).IsEphemeral().Send()
	if err != nil {
		logger.Alert("config/guild.go - Sending config", err.Error())
	}
}