remove message from send messages queue when minecraft answers the ack message

master
Alex 2022-02-05 21:33:19 +01:00
parent 0b65decaa3
commit f5a793b526
2 changed files with 15 additions and 0 deletions

View File

@ -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()

View File

@ -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
}