Skip to content

Commit af04fab

Browse files
committed
fix moderation active checks & init settings table on guild join/ready & delete settings on delete
1 parent 4833e89 commit af04fab

File tree

7 files changed

+44
-5
lines changed

7 files changed

+44
-5
lines changed

cmd/dbot/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ func main() {
8080
listeners.Metrics(b),
8181
listeners.Moderation(b),
8282
listeners.Music(b),
83+
listeners.Settings(b),
8384
); err != nil {
8485
b.Logger.Fatal("Failed to setup discord dbot: ", err)
8586
}

db/guild_settings.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
)
1111

1212
type GuildSettingsDB interface {
13+
CreateIfNotExist(guildID snowflake.ID) error
1314
Get(guildID snowflake.ID) (GuildSetting, error)
1415
UpdateModeration(guildID snowflake.ID, webhookID snowflake.ID, webhookToken string) error
1516
Delete(guildID snowflake.ID) error
@@ -19,6 +20,14 @@ type guildSettingsDBImpl struct {
1920
db *sql.DB
2021
}
2122

23+
func (s *guildSettingsDBImpl) CreateIfNotExist(guildID snowflake.ID) error {
24+
_, err := table.GuildSetting.INSERT(table.GuildSetting.AllColumns).
25+
VALUES(String(guildID.String()), String("0"), String("")).
26+
ON_CONFLICT(table.GuildSetting.ID).DO_NOTHING().
27+
Exec(s.db)
28+
return err
29+
}
30+
2231
func (s *guildSettingsDBImpl) Get(guildID snowflake.ID) (GuildSetting, error) {
2332
var model GuildSetting
2433
return model, table.GuildSetting.SELECT(table.GuildSetting.AllColumns).WHERE(table.GuildSetting.ID.EQ(String(guildID.String()))).Query(s.db, &model)
@@ -34,5 +43,6 @@ func (s *guildSettingsDBImpl) UpdateModeration(guildID snowflake.ID, webhookID s
3443
}
3544

3645
func (s *guildSettingsDBImpl) Delete(guildID snowflake.ID) error {
37-
return nil
46+
_, err := table.GuildSetting.DELETE().WHERE(table.GuildSetting.ID.EQ(String(guildID.String()))).Exec(s.db)
47+
return err
3848
}

dbot/commands/report-user.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func reportUserHandler(b *dbot.Bot, p *message.Printer, e *events.ApplicationCom
4646
Flags: discord.MessageFlagEphemeral,
4747
})
4848
}
49-
if settings.ModerationLogWebhookID == "" {
49+
if settings.ModerationLogWebhookID == "0" {
5050
return e.CreateMessage(discord.MessageCreate{
5151
Content: "Moderation is not enabled on this server, please reach to a moderator.",
5252
Flags: discord.MessageFlagEphemeral,

dbot/commands/report.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func reportHandler(b *dbot.Bot, p *message.Printer, e *events.ApplicationCommand
5656
Flags: discord.MessageFlagEphemeral,
5757
})
5858
}
59-
if settings.ModerationLogWebhookID == "" {
59+
if settings.ModerationLogWebhookID == "0" {
6060
return e.CreateMessage(discord.MessageCreate{
6161
Content: "Moderation is not enabled on this server, please reach to a moderator.",
6262
Flags: discord.MessageFlagEphemeral,

dbot/commands/settings.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func settingsModerationLogChannelHandler(b *dbot.Bot, p *message.Printer, e *eve
7474
})
7575
}
7676

77-
if settings.ModerationLogWebhookID == "" || settings.ModerationLogWebhookToken == "" {
77+
if settings.ModerationLogWebhookID == "0" || settings.ModerationLogWebhookToken == "" {
7878
incomingWebhook, err := b.Client.Rest().CreateWebhook(data.Snowflake("channel"), discord.WebhookCreate{
7979
Name: "Automod",
8080
})

dbot/listeners/moderation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func Moderation(b *dbot.Bot) bot.EventListener {
2020
b.Logger.Errorf("Failed to get guild settings: %s", err)
2121
return
2222
}
23-
if settings.ModerationLogWebhookID == "" {
23+
if settings.ModerationLogWebhookID == "0" {
2424
return
2525
}
2626

dbot/listeners/settings.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package listeners
2+
3+
import (
4+
"github.com/KittyBot-Org/KittyBotGo/dbot"
5+
"github.com/disgoorg/disgo/bot"
6+
"github.com/disgoorg/disgo/events"
7+
)
8+
9+
func Settings(b *dbot.Bot) bot.EventListener {
10+
return bot.NewListenerFunc(func(event bot.Event) {
11+
switch e := event.(type) {
12+
case *events.GuildJoin:
13+
if err := b.DB.GuildSettings().CreateIfNotExist(e.Guild.ID); err != nil {
14+
b.Logger.Error("Failed to create guild settings: ", err)
15+
}
16+
17+
case *events.GuildLeave:
18+
if err := b.DB.GuildSettings().Delete(e.Guild.ID); err != nil {
19+
b.Logger.Error("Failed to delete guild settings: ", err)
20+
}
21+
22+
case *events.GuildReady:
23+
if err := b.DB.GuildSettings().CreateIfNotExist(e.Guild.ID); err != nil {
24+
b.Logger.Error("Failed to create guild settings: ", err)
25+
}
26+
}
27+
})
28+
}

0 commit comments

Comments
 (0)