add save game

This commit is contained in:
shoopea
2025-12-14 13:37:46 +01:00
parent 162a59b665
commit 8554b4ea2a
3 changed files with 38 additions and 11 deletions

35
bot.go
View File

@@ -91,7 +91,8 @@ func (b *Bot) BotHandlers() {
b.bot.Handle("/help", botHelp) b.bot.Handle("/help", botHelp)
b.bot.Handle("/version", botVersion) b.bot.Handle("/version", botVersion)
b.bot.Handle("/save", botSave) b.bot.Handle("/save_config", botSaveConfig)
b.bot.Handle("/save_game", botSaveGame)
b.bot.Handle("/reset", botReset) b.bot.Handle("/reset", botReset)
b.bot.Handle("/ready", botReady) b.bot.Handle("/ready", botReady)
@@ -162,6 +163,8 @@ func botHelp(m *tb.Message) {
msg = fmt.Sprintf("%s/lorries - lorries graph\r\n", msg) msg = fmt.Sprintf("%s/lorries - lorries graph\r\n", msg)
msg = fmt.Sprintf("%s/ships - ships graph\r\n", msg) msg = fmt.Sprintf("%s/ships - ships graph\r\n", msg)
msg = fmt.Sprintf("%s/version - version\r\n", msg) msg = fmt.Sprintf("%s/version - version\r\n", msg)
msg = fmt.Sprintf("%s/save_config - save configuration\r\n", msg)
msg = fmt.Sprintf("%s/save_game - save game\r\n", msg)
msg = fmt.Sprintf("%s/help - this\r\n", msg) msg = fmt.Sprintf("%s/help - this\r\n", msg)
bot.SendChat(m.Chat.ID, msg) bot.SendChat(m.Chat.ID, msg)
@@ -320,7 +323,7 @@ func botActuallyDelete(m *tb.Message) {
func botCompanies(m *tb.Message) { func botCompanies(m *tb.Message) {
str := "Companies :" str := "Companies :"
for k, v := range srv.Status.Companies { for k, v := range srv.Status.Companies {
str = str + "\r\n" + fmt.Sprintf(" - %s (%d - %t)", v.Name, k, v.Protected) str = str + "\r\n" + fmt.Sprintf(" - %s (id:%d - protected:%t)", v.Name, k, v.Protected)
} }
bot.SendChat(m.Chat.ID, str) bot.SendChat(m.Chat.ID, str)
} }
@@ -394,6 +397,7 @@ func botActuallyReset(m *tb.Message) {
cc.Online = false cc.Online = false
cc.TimeLeft = 0 cc.TimeLeft = 0
} }
cfg.Clients = make(map[int]*ClientConfig)
bot.SendChat(m.Chat.ID, "Game resetted.") bot.SendChat(m.Chat.ID, "Game resetted.")
} }
delete(botActionMap, ref) delete(botActionMap, ref)
@@ -636,13 +640,13 @@ func botVersion(m *tb.Message) {
return return
} }
func botSave(m *tb.Message) { func botSaveConfig(m *tb.Message) {
if m.Sender.ID != int(cfg.Telegram.AdminID) { if m.Sender.ID != int(cfg.Telegram.AdminID) {
bot.SendChat(m.Chat.ID, "Only the admin can use this command.") bot.SendChat(m.Chat.ID, "Only the admin can use this command.")
return return
} }
r := regexp.MustCompile("^\\/save (?P<Filename>[a-zA-Z0-9._\\/]+)") r := regexp.MustCompile("^\\/save_config (?P<Filename>[a-zA-Z0-9._\\/]+)")
if !r.MatchString(m.Text) { if !r.MatchString(m.Text) {
bot.SendChat(m.Chat.ID, "Wrong usage.") bot.SendChat(m.Chat.ID, "Wrong usage.")
@@ -661,6 +665,29 @@ func botSave(m *tb.Message) {
return return
} }
func botSaveGame(m *tb.Message) {
if m.Sender.ID != int(cfg.Telegram.AdminID) {
bot.SendChat(m.Chat.ID, "Only the admin can use this command.")
return
}
r := regexp.MustCompile("^\\/savge (?P<Number>[0-9]+)")
if !r.MatchString(m.Text) {
bot.SendChat(m.Chat.ID, "Wrong usage.")
return
}
px := PacketAdminRCon{
Packet: Packet{PType: AdminPacketAdminRCon},
Command: fmt.Sprintf("save %d", r.ReplaceAllString(m.Text, "${Number}")),
}
srv.Send(px.Bytes())
return
}
func botTransfer(m *tb.Message) { func botTransfer(m *tb.Message) {
r := regexp.MustCompile("^\\/transfer @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)") r := regexp.MustCompile("^\\/transfer @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)")

View File

@@ -4,7 +4,7 @@ import (
_ "embed" _ "embed"
"encoding/json" "encoding/json"
"image/color" "image/color"
"io/ioutil" "os"
"time" "time"
"github.com/tidwall/pretty" "github.com/tidwall/pretty"
@@ -74,7 +74,7 @@ func (c *Config) Load(path string) error {
return err return err
} }
b, err := ioutil.ReadFile(path) b, err := os.ReadFile(path)
if err != nil { if err != nil {
return c.Save(path) return c.Save(path)
} }
@@ -94,7 +94,7 @@ func (c *Config) Save(path string) error {
return nil return nil
} }
err = ioutil.WriteFile(path, b, 0644) err = os.WriteFile(path, b, 0644)
return err return err
} }

View File

@@ -1,6 +1,6 @@
// Code generated by version.sh (@generated) DO NOT EDIT. // Code generated by version.sh (@generated) DO NOT EDIT.
package main package main
var githash = "564e078" var githash = "162a59b"
var buildstamp = "2021-12-29_01:21:09" var buildstamp = "2025-12-14_12:36:09"
var commits = "259" var commits = "261"
var version = "564e078-b259 - 2021-12-29_01:21:09" var version = "162a59b-b261 - 2025-12-14_12:36:09"