diff --git a/modules/structs/MinecraftClient.go b/modules/structs/MinecraftClient.go index 28f006a..c6278fe 100644 --- a/modules/structs/MinecraftClient.go +++ b/modules/structs/MinecraftClient.go @@ -1,8 +1,35 @@ package structs -import "github.com/gofiber/websocket/v2" +import ( + "sync" + + "github.com/gofiber/websocket/v2" + "krakatoa.net/backend/modules/logger" +) type MinecraftClient struct { Name string Connection *websocket.Conn + connMu sync.Mutex + CmdIDs []int + cmdIDMu sync.Mutex +} + +func (mcClient *MinecraftClient) SendBinaryMessage(conn *websocket.Conn, msg []byte) error { + mcClient.connMu.Lock() + defer mcClient.connMu.Unlock() + return conn.WriteMessage(websocket.BinaryMessage, msg) +} + +func (mcClient *MinecraftClient) RemoveCmdID(cmdID int) { + mcClient.cmdIDMu.Lock() + defer mcClient.cmdIDMu.Unlock() + + newArr, err := removeCmdIDFromList(mcClient.CmdIDs, cmdID) + + if err != nil { + logger.WebVoice.Warnln("removeCmdIDFromList:", err) + } else { + mcClient.CmdIDs = newArr + } }