aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me>2024-04-15 16:48:16 +0200
committerAnhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me>2024-04-15 16:48:16 +0200
commita8c0a395acc257ac019851f69d9913fd3fa51c9f (patch)
tree0a6986991f87e44fd0f0ba46c5cf9253557cf6f9
parentf97df035c36c546afd665a1ec7da04cad35d869a (diff)
feat(xp): disable xp in disabled channels
-rw-r--r--config/guild.go5
-rw-r--r--xp/events.go5
2 files changed, 10 insertions, 0 deletions
diff --git a/config/guild.go b/config/guild.go
index 5728759..6ed07c6 100644
--- a/config/guild.go
+++ b/config/guild.go
@@ -3,6 +3,7 @@ package config
import (
"github.com/anhgelus/gokord"
"gorm.io/gorm"
+ "strings"
)
type GuildConfig struct {
@@ -33,6 +34,10 @@ func (cfg *GuildConfig) Save() {
gokord.DB.Save(cfg)
}
+func (cfg *GuildConfig) IsDisabled(channelID string) bool {
+ return strings.Contains(cfg.DisabledChannels, channelID)
+}
+
func (cfg *GuildConfig) FindXpRole(roleID string) (int, *XpRole) {
for i, r := range cfg.XpRoles {
if r.RoleID == roleID {
diff --git a/xp/events.go b/xp/events.go
index f936bd2..9796e72 100644
--- a/xp/events.go
+++ b/xp/events.go
@@ -6,6 +6,7 @@ import (
"fmt"
"github.com/anhgelus/gokord"
"github.com/anhgelus/gokord/utils"
+ "github.com/anhgelus/les-copaings-bot/config"
"github.com/bwmarrin/discordgo"
"github.com/redis/go-redis/v9"
"slices"
@@ -24,6 +25,10 @@ func OnMessage(s *discordgo.Session, m *discordgo.MessageCreate) {
if m.Author.Bot {
return
}
+ cfg := config.GetGuildConfig(m.GuildID)
+ if cfg.IsDisabled(m.ChannelID) {
+ return
+ }
c := GetCopaing(m.Author.ID, m.GuildID)
// add xp
trimmed := utils.TrimMessage(strings.ToLower(m.Content))