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("/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("/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/ships - ships graph\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)
bot.SendChat(m.Chat.ID, msg)
@@ -320,7 +323,7 @@ func botActuallyDelete(m *tb.Message) {
func botCompanies(m *tb.Message) {
str := "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)
}
@@ -394,6 +397,7 @@ func botActuallyReset(m *tb.Message) {
cc.Online = false
cc.TimeLeft = 0
}
cfg.Clients = make(map[int]*ClientConfig)
bot.SendChat(m.Chat.ID, "Game resetted.")
}
delete(botActionMap, ref)
@@ -636,13 +640,13 @@ func botVersion(m *tb.Message) {
return
}
func botSave(m *tb.Message) {
func botSaveConfig(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("^\\/save (?P<Filename>[a-zA-Z0-9._\\/]+)")
r := regexp.MustCompile("^\\/save_config (?P<Filename>[a-zA-Z0-9._\\/]+)")
if !r.MatchString(m.Text) {
bot.SendChat(m.Chat.ID, "Wrong usage.")
@@ -661,6 +665,29 @@ func botSave(m *tb.Message) {
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) {
r := regexp.MustCompile("^\\/transfer @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)")

View File

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

View File

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