remove message from send messages queue when minecraft answers the ack message
parent
0b65decaa3
commit
f5a793b526
|
@ -55,6 +55,15 @@ func (mcClient *MinecraftClient) AddMessageToSendQueue(raw []byte, cmdID int) {
|
|||
mcClient.SendQueueMessages = append(mcClient.SendQueueMessages, &SendQueueMessage{MessageRaw: raw, CmdID: cmdID, TrySendCount: 0, Time: time.Now()})
|
||||
}
|
||||
|
||||
func (mcClient *MinecraftClient) IsCmdIDInSendMessagesQueue(cmdID int) bool {
|
||||
for msgCmdID, _ := range mcClient.SendQueueMessages {
|
||||
if cmdID == msgCmdID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (mcClient *MinecraftClient) RemoveMessageFromSendQueueByCmdID(cmdID int) {
|
||||
mcClient.sendQueueMessagesMu.Lock()
|
||||
defer mcClient.sendQueueMessagesMu.Unlock()
|
||||
|
|
|
@ -25,6 +25,12 @@ func HandleMinecraftMessage(conn *websocket.Conn, msg []byte) {
|
|||
if isCmdIDInList(mcClient.CmdIDs, cmdID) {
|
||||
mcClient.RemoveCmdID(cmdID)
|
||||
}
|
||||
|
||||
if mcClient.IsCmdIDInSendMessagesQueue(cmdID) {
|
||||
mcClient.RemoveMessageFromSendQueueByCmdID(cmdID)
|
||||
|
||||
// TODO: handle ack answer (send answer to mobile or handle her)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue