add save game
This commit is contained in:
35
bot.go
35
bot.go
@@ -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]+)")
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user