package main import ( "encoding/json" "log" "strings" ) func clientSendCWMsg(userID64 int64, s string) { c := TGCommand{ Type: commandSendMsg, Text: s, FromUserID64: userID64, ToChatID64: userID64ChtWrsBot, } MQTGCmdQueue <- c } func clientRefreshCWMsg(chatID64 int64, msgID64 int64) { c := TGCommand{ Type: commandRefreshMsg, FromChatID64: chatID64, FromMsgID64: msgID64, } b, _ := json.Marshal(c) log.Printf("clientRefreshCWMsg:\n%s\n", string(b)) MQTGCmdQueue <- c } func clientMsgMeAck(m *ChatWarsMessageMeAck) { if _, ok := clientsQueue[m.Msg.UserID64]; ok { if v, ok := clientsCW.Load(m.Msg.UserID64); ok { c := v.(*ChatWarsClient) if c.LastUpdate.Before(m.Msg.Date) { c.GuildID64 = m.GuildID64 c.State = m.State c.LastUpdate = m.Msg.Date if getObjGuildID(``) != m.GuildID64 && strings.Compare(c.Role, ``) == 0 { clientSendCWMsg(m.Msg.UserID64, "/g_roles") } } } else { c := ChatWarsClient{ UserID64: m.UserID64, TelegramID64: m.Msg.UserID64, GuildID64: m.GuildID64, State: m.State, LastUpdate: m.Msg.Date, } clientsCW.Store(m.Msg.UserID64, &c) if getObjGuildID(``) != m.GuildID64 { clientSendCWMsg(m.Msg.UserID64, "/g_roles") } } } } func clientMsgGRolesAck(m *ChatWarsMessageGRolesAck) { if _, ok := clientsQueue[m.Msg.UserID64]; ok { if v, ok := clientsCW.Load(m.Msg.UserID64); ok { c := v.(*ChatWarsClient) if c.LastUpdate.Before(m.Msg.Date) { if m.CommanderID64 == c.UserID64 { c.Role = `commander` } else if m.BartenderID64 == c.UserID64 { c.Role = `bartender` } else if m.SquireID64 == c.UserID64 { c.Role = `squire` } else if m.TreasurerID64 == c.UserID64 { c.Role = `treasurer` } else { c.Role = `none` } c.LastUpdate = m.Msg.Date } } } }