@@ -5,16 +5,17 @@ import (
55 "time"
66
77 "cloud.google.com/go/logging"
8- rcon "github.com/gtaylor/factorio-rcon"
98)
109
11- func monitor (r * rcon. RCON , logger * logging.Logger , cfg configMonitor ) {
10+ func monitor (logger * logging.Logger , cfg config ) {
1211 // Keep track of how long the server has been empty for
1312 emptySince := time .Now ().UTC ()
1413
1514 // Main monitoring loop
1615 for {
17- time .Sleep (cfg .MonitorInterval )
16+ time .Sleep (cfg .Monitor .MonitorInterval )
17+
18+ r := dialAndAuth (logger , cfg .RCON )
1819
1920 players , errCP := r .CmdPlayers ()
2021 if errCP != nil {
@@ -26,6 +27,8 @@ func monitor(r *rcon.RCON, logger *logging.Logger, cfg configMonitor) {
2627 continue
2728 }
2829
30+ r .Close ()
31+
2932 logger .Log (logging.Entry {
3033 Payload : fmt .Sprintf ("%+v" , players ),
3134 Severity : logging .Info ,
@@ -49,9 +52,9 @@ func monitor(r *rcon.RCON, logger *logging.Logger, cfg configMonitor) {
4952 })
5053 }
5154
52- if emptySince .Add (cfg .MonitorLimit ).Before (time .Now ().UTC ()) {
55+ if emptySince .Add (cfg .Monitor . MonitorLimit ).Before (time .Now ().UTC ()) {
5356 logger .Log (logging.Entry {
54- Payload : fmt .Sprintf ("Threshold reached; %s elapsed without any online players" , cfg .MonitorLimit ),
57+ Payload : fmt .Sprintf ("Threshold reached; %s elapsed without any online players" , cfg .Monitor . MonitorLimit ),
5558 Severity : logging .Notice ,
5659 })
5760
0 commit comments