From f5a793b526328df64225c636a6711d4d271a5811 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 5 Feb 2022 21:33:19 +0100 Subject: [PATCH] remove message from send messages queue when minecraft answers the ack message --- modules/structs/MinecraftClient.go | 9 +++++++++ serverCommunication/minecraft.go | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/modules/structs/MinecraftClient.go b/modules/structs/MinecraftClient.go index 956dd24..888c494 100644 --- a/modules/structs/MinecraftClient.go +++ b/modules/structs/MinecraftClient.go @@ -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() diff --git a/serverCommunication/minecraft.go b/serverCommunication/minecraft.go index 85f14c3..88c9986 100644 --- a/serverCommunication/minecraft.go +++ b/serverCommunication/minecraft.go @@ -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 }