File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package commands
2+
3+ import (
4+ "strings"
5+
6+ "github.com/bwmarrin/discordgo"
7+ "github.com/gaucho-racing/sentinel/discord/config"
8+ "github.com/gaucho-racing/sentinel/discord/pkg/logger"
9+ "github.com/gaucho-racing/sentinel/discord/service"
10+ )
11+
12+ func InitializeBot () {
13+ if service .Discord == nil {
14+ logger .SugarLogger .Errorln ("Discord session is not connected" )
15+ return
16+ }
17+ service .Discord .AddHandler (OnDiscordMessage )
18+ service .Discord .Identify .Intents = discordgo .MakeIntent (discordgo .IntentsAll )
19+ err := service .Discord .Open ()
20+ if err != nil {
21+ logger .SugarLogger .Errorln ("Error opening Discord connection:" , err )
22+ return
23+ }
24+ logger .SugarLogger .Infof ("Discord Bot is now running! [Prefix = %s]" , config .DiscordPrefix )
25+ }
26+
27+ func OnDiscordMessage (s * discordgo.Session , m * discordgo.MessageCreate ) {
28+ if m .Author .ID == s .State .User .ID {
29+ return
30+ }
31+ if ! strings .HasPrefix (m .Content , config .DiscordPrefix ) {
32+ return
33+ }
34+ parts := strings .Fields (m .Content [len (config .DiscordPrefix ):])
35+ if len (parts ) == 0 {
36+ return
37+ }
38+ command := parts [0 ]
39+ args := parts [1 :]
40+ switch command {
41+ case "ping" :
42+ Ping (args , s , m )
43+ default :
44+ logger .SugarLogger .Infof ("Unknown command: %s" , command )
45+ }
46+ }
Original file line number Diff line number Diff line change 1- package service
1+ package commands
22
33import (
44 "strconv"
77 "github.com/gaucho-racing/sentinel/discord/config"
88)
99
10- func Ping (s * discordgo.Session , m * discordgo.MessageCreate ) {
10+ func Ping (args [] string , s * discordgo.Session , m * discordgo.MessageCreate ) {
1111 message , err := s .ChannelMessageSend (m .ChannelID , "Pong from " + config .Service .FormattedNameWithVersion ()+ "!" )
1212 if err == nil {
1313 delay := message .Timestamp .Sub (m .Timestamp ).Milliseconds ()
Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ func Verify() {
3838 logger .SugarLogger .Warnln ("DISCORD_GUILD is not set" )
3939 }
4040 if DiscordPrefix == "" {
41- DiscordPrefix = "s !"
41+ DiscordPrefix = "d !"
4242 logger .SugarLogger .Infof ("DISCORD_PREFIX is not set, defaulting to %s" , DiscordPrefix )
4343 }
4444}
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package main
22
33import (
44 "github.com/gaucho-racing/sentinel/discord/api"
5+ "github.com/gaucho-racing/sentinel/discord/commands"
56 "github.com/gaucho-racing/sentinel/discord/config"
67 "github.com/gaucho-racing/sentinel/discord/database"
78 "github.com/gaucho-racing/sentinel/discord/pkg/logger"
@@ -18,7 +19,7 @@ func main() {
1819 rincon .Init (& config .Service , & config .Routes )
1920 database .Init ()
2021 service .ConnectDiscord ()
21- service .InitializeBot ()
22+ commands .InitializeBot ()
2223
2324 api .Run ()
2425}
Original file line number Diff line number Diff line change @@ -17,64 +17,3 @@ func ConnectDiscord() {
1717 Discord = dg
1818 logger .SugarLogger .Infoln ("Created Discord session" )
1919}
20-
21- func InitializeBot () {
22- Discord .AddHandler (OnDiscordMessage )
23- Discord .Identify .Intents = discordgo .MakeIntent (discordgo .IntentsAll )
24- err := Discord .Open ()
25- if err != nil {
26- logger .SugarLogger .Errorln ("Error opening Discord connection:" , err )
27- return
28- }
29- logger .SugarLogger .Infof ("Discord Bot is now running! [Prefix = %s]" , config .DiscordPrefix )
30- }
31-
32- func OnDiscordMessage (s * discordgo.Session , m * discordgo.MessageCreate ) {
33- if m .Author .ID == s .State .User .ID {
34- return
35- }
36- if len (m .Content ) < len (config .DiscordPrefix ) || m .Content [:len (config .DiscordPrefix )] != config .DiscordPrefix {
37- return
38- }
39- args := splitCommand (m .Content [len (config .DiscordPrefix ):])
40- if len (args ) == 0 {
41- return
42- }
43- command := args [0 ]
44- args = args [1 :]
45- switch command {
46- case "ping" :
47- Ping (s , m )
48- default :
49- logger .SugarLogger .Infof ("Unknown command: %s" , command )
50- }
51- }
52-
53- func splitCommand (s string ) []string {
54- var result []string
55- for _ , part := range splitBySpace (s ) {
56- if part != "" {
57- result = append (result , part )
58- }
59- }
60- return result
61- }
62-
63- func splitBySpace (s string ) []string {
64- var parts []string
65- current := ""
66- for _ , c := range s {
67- if c == ' ' {
68- if current != "" {
69- parts = append (parts , current )
70- current = ""
71- }
72- } else {
73- current += string (c )
74- }
75- }
76- if current != "" {
77- parts = append (parts , current )
78- }
79- return parts
80- }
Original file line number Diff line number Diff line change @@ -44,7 +44,7 @@ services:
4444 DATABASE_NAME : sentinel
4545 DISCORD_TOKEN : ${DISCORD_TOKEN}
4646 DISCORD_GUILD : ${DISCORD_GUILD}
47- DISCORD_PREFIX : ${DISCORD_PREFIX:-s!}
47+ DISCORD_PREFIX : d!
4848
4949 db :
5050 container_name : sentinel-db
You can’t perform that action at this time.
0 commit comments