send message to mc client when connection with destination number is established

master
Alex 2022-03-19 22:26:28 +01:00
parent 91db91cdab
commit 0f61a33a36
2 changed files with 16 additions and 2 deletions

View File

@ -23,6 +23,8 @@ const (
DestPlayersCurrentServer = 11
DefaultCmdID = 1
DummyUUID = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
)
func EncodeWebMessage(status int, cmdID int, cmdNumber int, args interface{}) []byte {

View File

@ -3,6 +3,7 @@ package minecraft
import (
"github.com/gofiber/websocket/v2"
"krakatoa.net/backend/modules/cache"
"krakatoa.net/backend/modules/kraProtocol"
"krakatoa.net/backend/modules/logger"
"krakatoa.net/backend/modules/structs"
serverCommunication "krakatoa.net/backend/serverCommunication"
@ -17,10 +18,21 @@ func RunHub() {
select {
case connection := <-register:
servername := connection.Query("s")
dest := serverCommunication.GenerateDestForNewMinecraftClient()
cache.MinecraftClients[servername] = &structs.MinecraftClient{Name: servername, Dest: serverCommunication.GenerateDestForNewMinecraftClient(), Conn: connection}
cache.MinecraftClients[servername] = &structs.MinecraftClient{Name: servername, Dest: dest, Conn: connection}
logger.Minecraft.Debugln("connection registered ", connection.Query("c"), connection)
logger.Minecraft.Debugln("connection registered ", connection.Query("c"), connection, "dest:", dest)
mcClient := serverCommunication.GetMinecraftClientByConn(connection)
raw := kraProtocol.EncodeJavaMessage(kraProtocol.StatusGet, mcClient.GenerateMinecraftCmdID(), 0, kraProtocol.DummyUUID, 33767, mcClient.Dest)
err := mcClient.SendBinaryMessage(raw)
if err != nil {
logger.Minecraft.Warnln("failed to send msg to mc client:", mcClient.Name, "dest:", mcClient.Dest)
}
case data := <-broadcast:
logger.Minecraft.Debugln("message received", data.Msg)