fix leaving message for 255 company
This commit is contained in:
parent
3b878e0641
commit
044eac9a77
64
bot.go
64
bot.go
@ -75,6 +75,7 @@ func (b *Bot) BotHandlers() {
|
||||
b.bot.Handle("/say", botSay)
|
||||
b.bot.Handle("/help", botHelp)
|
||||
b.bot.Handle("/transfer", botTransfer)
|
||||
b.bot.Handle("/version", botVersion)
|
||||
|
||||
b.bot.Handle(tb.OnPhoto, botPhoto)
|
||||
b.bot.Handle(tb.OnChannelPost, botChannelPost)
|
||||
@ -133,7 +134,7 @@ func botUnpause(m *tb.Message) {
|
||||
|
||||
func botDelete(m *tb.Message) {
|
||||
logInfoDebug("[%d] %s(%d) | %s(%d) : delete : %s\n", m.ID, m.Chat.Title, m.Chat.ID, m.Sender.Username, m.Sender.ID, m.Text)
|
||||
r := regexp.MustCompile("/delete (?P<CompanyID>[0-9]+)")
|
||||
r := regexp.MustCompile("\\/delete (?P<CompanyID>[0-9]+)")
|
||||
id := uint8(255)
|
||||
if r.MatchString(m.Text) {
|
||||
ID64, _ := strconv.ParseInt(r.ReplaceAllString(m.Text, "${CompanyID}"), 10, 64)
|
||||
@ -238,7 +239,7 @@ func botGive(m *tb.Message) {
|
||||
return
|
||||
}
|
||||
|
||||
r := regexp.MustCompile("^/give @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)")
|
||||
r := regexp.MustCompile("^\\/give @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)")
|
||||
|
||||
if !r.MatchString(m.Text) {
|
||||
bot.SendChat(m.Chat.ID, "Wrong format.")
|
||||
@ -270,8 +271,18 @@ func botGive(m *tb.Message) {
|
||||
bot.SendChat(m.Chat.ID, fmt.Sprintf("@%s now has %s left.", uStr, cc.TimeLeft.Round(time.Second)))
|
||||
}
|
||||
|
||||
func botVersion(m *tb.Message) {
|
||||
bot.SendChat(m.Chat.ID, version)
|
||||
return
|
||||
}
|
||||
|
||||
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]+)")
|
||||
|
||||
if !r.MatchString(m.Text) {
|
||||
bot.SendChat(m.Chat.ID, "Wrong usage.")
|
||||
return
|
||||
}
|
||||
|
||||
ccFrom, ok := cfg.Clients[m.Sender.ID]
|
||||
if !ok {
|
||||
@ -318,7 +329,7 @@ func botTake(m *tb.Message) {
|
||||
return
|
||||
}
|
||||
|
||||
r := regexp.MustCompile("^/take @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)")
|
||||
r := regexp.MustCompile("^\\/take @(?P<Username>[a-zA-Z0-9]+) (?P<Duration>[a-z0-9]+)")
|
||||
|
||||
if !r.MatchString(m.Text) {
|
||||
bot.SendChat(m.Chat.ID, "Wrong format.")
|
||||
@ -363,9 +374,10 @@ func botHelp(m *tb.Message) {
|
||||
msg = fmt.Sprintf("%s/players - list players\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/give - give time to player\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/take - take time from player\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/transfer - transfer time to player\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/transfer - transfer time between players\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/passwd - change passwd\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/say - send msg to the game\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/version - version\r\n", msg)
|
||||
msg = fmt.Sprintf("%s/help - this\r\n", msg)
|
||||
|
||||
bot.SendChat(m.Chat.ID, msg)
|
||||
@ -426,6 +438,46 @@ func botPasswd(m *tb.Message) {
|
||||
}
|
||||
|
||||
func botDeregister(m *tb.Message) {
|
||||
r := regexp.MustCompile("^\\/deregister @(?P<Username>[a-zA-Z0-9]+)$")
|
||||
if r.MatchString(m.Text) {
|
||||
if m.Sender.ID != int(cfg.Telegram.AdminID) {
|
||||
bot.SendChat(m.Chat.ID, "Not admin.")
|
||||
return
|
||||
}
|
||||
|
||||
uStr := r.ReplaceAllString(m.Text, "${Username}")
|
||||
var uID int
|
||||
|
||||
for ccID, cc := range cfg.Clients {
|
||||
if cc.Username == uStr {
|
||||
uID = ccID
|
||||
}
|
||||
}
|
||||
|
||||
if uID == 0 {
|
||||
bot.SendChat(m.Chat.ID, "No such user found.")
|
||||
return
|
||||
}
|
||||
|
||||
cc := cfg.Clients[uID]
|
||||
|
||||
if cc.CompanyID != 255 {
|
||||
for coID, co := range srv.Status.Companies {
|
||||
if coID == cc.CompanyID {
|
||||
cc.CompanyID = 255
|
||||
bot.SendChat(m.Chat.ID, fmt.Sprintf("Deregistered from %s. %s playable left.", co.Name, cc.TimeLeft.Round(time.Second)))
|
||||
return
|
||||
}
|
||||
}
|
||||
logInfoAlert("botRegister : %s : no such CompanyID : %d", cc.Username, cc.CompanyID)
|
||||
cc.CompanyID = 255
|
||||
bot.SendChat(m.Chat.ID, fmt.Sprintf("Registered company didn't exist anymore. %s playable left.", cc.TimeLeft.Round(time.Second)))
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
cc, ok := cfg.Clients[m.Sender.ID]
|
||||
if !ok {
|
||||
cc = &ClientConfig{
|
||||
@ -566,7 +618,7 @@ func botQuery(q *tb.Query) {
|
||||
}
|
||||
|
||||
func botText(m *tb.Message) {
|
||||
r := regexp.MustCompile("^/delete_(?P<Ref>[a-f0-9]{16})$")
|
||||
r := regexp.MustCompile("^\\/delete_(?P<Ref>[a-f0-9]{16})$")
|
||||
if r.MatchString(m.Text) {
|
||||
ref := r.ReplaceAllString(m.Text, "${Ref}")
|
||||
d, ok := companyDeleteMap[ref]
|
||||
|
@ -101,6 +101,9 @@ func (c *Config) Export() ([]byte, error) {
|
||||
}
|
||||
|
||||
func (c *Config) CompanyIsRegistered(id uint8) bool {
|
||||
if id == 255 {
|
||||
return false
|
||||
}
|
||||
for _, cc := range c.Clients {
|
||||
if cc.CompanyID == id {
|
||||
return true
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Code generated by version.sh (@generated) DO NOT EDIT.
|
||||
package main
|
||||
var githash = "cd98db8"
|
||||
var buildstamp = "2021-11-28_13:25:25"
|
||||
var commits = "209"
|
||||
var version = "cd98db8-b209 - 2021-11-28_13:25:25"
|
||||
var githash = "3b878e0"
|
||||
var buildstamp = "2021-11-28_13:40:44"
|
||||
var commits = "210"
|
||||
var version = "3b878e0-b210 - 2021-11-28_13:40:44"
|
||||
|
Loading…
Reference in New Issue
Block a user