This commit is contained in:
shoopea 2019-05-30 16:36:40 +08:00
parent c4ac28ed64
commit 4cec05553c
6 changed files with 44 additions and 7 deletions

View File

@ -16,9 +16,7 @@ func clientSendCWMsg(userID64 int64, s string) {
} }
func clientMsgMeAck(m *ChatWarsMessageMeAck) { func clientMsgMeAck(m *ChatWarsMessageMeAck) {
log.Printf("clientMsgMeAck %d\n", m.UserID64)
if _, ok := clientsQueue[m.Msg.UserID64]; ok { if _, ok := clientsQueue[m.Msg.UserID64]; ok {
log.Printf("Client in clientsQueue\n")
if c, ok := clientsCW[m.UserID64]; ok { if c, ok := clientsCW[m.UserID64]; ok {
if c.LastUpdate.Before(m.Msg.Date) { if c.LastUpdate.Before(m.Msg.Date) {
c.GuildID64 = m.GuildID64 c.GuildID64 = m.GuildID64
@ -39,7 +37,5 @@ func clientMsgMeAck(m *ChatWarsMessageMeAck) {
clientSendCWMsg(m.Msg.UserID64, "/g_roles") clientSendCWMsg(m.Msg.UserID64, "/g_roles")
} }
} }
} else {
log.Printf("Client not in clientsQueue\n")
} }
} }

10
def.go
View File

@ -78,6 +78,14 @@ type ChatWarsMessageMeAck struct {
State string `json:"state"` State string `json:"state"`
} }
type parseSubTypeMessageGRolesAck struct {
Msg *ChatWarsMessage `json:"msg"`
BartenderID64 int64 `json:"bartender"`
CommanderID64 int64 `json:"commander"`
SquireID64 int64 `json:"squire"`
TreasurerID64 int64 `json:"treasurer"`
}
type ChatWarsMessageGoQuestAck struct { type ChatWarsMessageGoQuestAck struct {
ObjID64 int64 `json:"obj_id"` ObjID64 int64 `json:"obj_id"`
} }
@ -273,6 +281,8 @@ const (
objSubTypeMessageTUReportAck = 351 // result from /tu_report (not done) objSubTypeMessageTUReportAck = 351 // result from /tu_report (not done)
objSubTypeMessageTimeout = 352 // generic timeout for action objSubTypeMessageTimeout = 352 // generic timeout for action
objSubTypeMessageGoQuestAck = 353 // confirm quest destination/busyness (done) objSubTypeMessageGoQuestAck = 353 // confirm quest destination/busyness (done)
objSubTypeMessageGRolesReq = 354 // /g_roles (not done)
objSubTypeMessageGRolesAck = 355 // result from /g_roles (not done)
objSubTypeJobPillage = 601 objSubTypeJobPillage = 601
objSubTypeJobTribute = 602 objSubTypeJobTribute = 602
objSubTypeJobStatus = 603 objSubTypeJobStatus = 603

24
msg.go
View File

@ -56,11 +56,29 @@ func parseSubTypeMessageMeAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMe
return &cwm, nil return &cwm, nil
} }
func parseSubTypeMessageGRolesAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageGRolesAck, error) {
cwm := ChatWarsMessageGRolesAck{
Msg: m,
}
/*
BartenderID64: getObjUserID(r.ReplaceAllString(m.Text, "${Bartender}")),
CommanderID64: getObjUserID(r.ReplaceAllString(m.Text, "${Commander}")),
SquireID64: getObjUserID(r.ReplaceAllString(m.Text, "${Squire}")),
TreasurerID64: getObjUserID(r.ReplaceAllString(m.Text, "${Treasurer}")),
*/
log.Printf("parseSubTypeMessageGRolesAck : Guild roles Ack identified\n")
log.Printf("parseSubTypeMessageGRolesAck : Bartender : %s\n", r.ReplaceAllString(m.Text, "${Bartender}"))
log.Printf("parseSubTypeMessageGRolesAck : Commander : %s\n", r.ReplaceAllString(m.Text, "${Commander}"))
log.Printf("parseSubTypeMessageGRolesAck : Squire : %s\n", r.ReplaceAllString(m.Text, "${Squire}"))
log.Printf("parseSubTypeMessageGRolesAck : Treasurer : %s\n", r.ReplaceAllString(m.Text, "${Treasurer}"))
return &cwm, nil
}
func parseSubTypeMessageGoQuestAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageGoQuestAck, error) { func parseSubTypeMessageGoQuestAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageGoQuestAck, error) {
cwm := ChatWarsMessageGoQuestAck{} cwm := ChatWarsMessageGoQuestAck{}
log.Printf("parseSubTypeMessageReport : Go Quest Ack report identified\n") log.Printf("parseSubTypeMessageGoQuestAck : Go Quest Ack report identified\n")
log.Printf("parseSubTypeMessageReport : Place : %s\n", r.ReplaceAllString(m.Text, "${Place}")) log.Printf("parseSubTypeMessageGoQuestAck : Place : %s\n", r.ReplaceAllString(m.Text, "${Place}"))
log.Printf("parseSubTypeMessageReport : Time : %s\n", r.ReplaceAllString(m.Text, "${Time}")) log.Printf("parseSubTypeMessageGoQuestAck : Time : %s\n", r.ReplaceAllString(m.Text, "${Time}"))
return &cwm, nil return &cwm, nil
} }

View File

@ -137,6 +137,8 @@ func resetMsgParsingRules() {
,(5000, ` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "Go Quest Ack Dead Marshes", "^You went to the (?P<Place>[a-zA-Z ]+). The dead are near. Back in (?P<Time>[0-9]+) minutes$") ,(5000, ` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "Go Quest Ack Dead Marshes", "^You went to the (?P<Place>[a-zA-Z ]+). The dead are near. Back in (?P<Time>[0-9]+) minutes$")
,(5000, ` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "Go Quest Ack Mountain", "^(?P<Place>[a-zA-Z ']+) can be a dangerous place. You decided to investigate, what's going on. You'll be back in (?P<Time>[0-9]+) minutes.$") ,(5000, ` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "Go Quest Ack Mountain", "^(?P<Place>[a-zA-Z ']+) can be a dangerous place. You decided to investigate, what's going on. You'll be back in (?P<Time>[0-9]+) minutes.$")
,(5000, ` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "Go Quest Ack Devil's Valley", "^You went to the (?P<Place>[a-zA-Z ']+). Don't lose your soul. Back in (?P<Time>[0-9]+) minutes$") ,(5000, ` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "Go Quest Ack Devil's Valley", "^You went to the (?P<Place>[a-zA-Z ']+). Don't lose your soul. Back in (?P<Time>[0-9]+) minutes$")
,(5000, ` + strconv.Itoa(objSubTypeMessageGRolesReq) + `, "Guild roles Req", "^/g_roles$")
,(5000, ` + strconv.Itoa(objSubTypeMessageGRolesAck) + `, "Guild roles Req", "^Roles\\nBartender:\\n(?P<Bartender>.*)\\n\\n\nnCommander:\\n(?P<Commander>.*)\\n\\n\\nSquire:\\n(?P<Squire>.*)\\n\\n\\nTreasurer:\\n(?P<Treasurer>.*)$")
;`) ;`)
failOnError(err, "resetMsgParsingRules : populate table msg_rules") failOnError(err, "resetMsgParsingRules : populate table msg_rules")
} }

2
sql.go
View File

@ -367,6 +367,8 @@ func initDB() {
,(` + strconv.Itoa(objSubTypeMessageUnionWar) + `, "union_war", "Union war report", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageUnionWar) + `, "union_war", "Union war report", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageTimeout) + `, "timeout", "Generic timeout", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageTimeout) + `, "timeout", "Generic timeout", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "go_quest_ack", "Go Quest Ack", ` + strconv.Itoa(objTypeMessage) + `) ,(` + strconv.Itoa(objSubTypeMessageGoQuestAck) + `, "go_quest_ack", "Go Quest Ack", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageGRolesReq) + `, "groles_req", "Guild roles Req", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeMessageGRolesAck) + `, "groles_ack", "Guild roles Ack", ` + strconv.Itoa(objTypeMessage) + `)
,(` + strconv.Itoa(objSubTypeJobPillage) + `, "job_pillage", "Pillage job", ` + strconv.Itoa(objTypeJob) + `) ,(` + strconv.Itoa(objSubTypeJobPillage) + `, "job_pillage", "Pillage job", ` + strconv.Itoa(objTypeJob) + `)
,(` + strconv.Itoa(objSubTypeJobTribute) + `, "job_tribute", "Tribute job", ` + strconv.Itoa(objTypeJob) + `) ,(` + strconv.Itoa(objSubTypeJobTribute) + `, "job_tribute", "Tribute job", ` + strconv.Itoa(objTypeJob) + `)
,(` + strconv.Itoa(objSubTypeJobWithdrawal) + `, "job_withdraw", "Withdrawal job", ` + strconv.Itoa(objTypeJob) + `) ,(` + strconv.Itoa(objSubTypeJobWithdrawal) + `, "job_withdraw", "Withdrawal job", ` + strconv.Itoa(objTypeJob) + `)

View File

@ -235,6 +235,15 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) {
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageUnionWar.") logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageUnionWar.")
err = setObjSubTypeId(objId, objSubTypeMessageUnionWar) err = setObjSubTypeId(objId, objSubTypeMessageUnionWar)
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : setObjSubTypeId(UnionWar)") logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : setObjSubTypeId(UnionWar)")
case objSubTypeMessageGRolesReq:
err = setObjSubTypeId(objId, objSubTypeMessageGRolesReq)
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : setObjSubTypeId(GRolesReq)")
case objSubTypeMessageGRolesAck:
cwm, err := parseSubTypeMessageGRolesAck(m, r)
cwm.Msg = m
clientMsgMeAck(cwm)
err = setObjSubTypeId(objId, objSubTypeMessageGRolesAck)
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : setObjSubTypeId(GRolesAck)")
case objSubTypeMessageAuctionAnnounce: case objSubTypeMessageAuctionAnnounce:
cwm := ChatWarsMessageAuctionAnnounce{ cwm := ChatWarsMessageAuctionAnnounce{
ObjID64: objId, ObjID64: objId,