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 }