minecraft ack handling
parent
a90e1245d1
commit
2c8f5aa56b
|
@ -80,36 +80,56 @@ func HandleMinecraftMessage(conn *websocket.Conn, status int, cmdID int, dest in
|
|||
if status == kraProtocol.StatusGet {
|
||||
raw = kraProtocol.EncodeJavaMessage(kraProtocol.StatusReply, cmdID, 0, playerUuid, cmdNumber, resArgs)
|
||||
|
||||
err = conn.WriteMessage(websocket.BinaryMessage, raw)
|
||||
err = mcClient.SendBinaryMessage(raw)
|
||||
|
||||
if err != nil {
|
||||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
}
|
||||
} else if dest == kraProtocol.DestVoice || dest == kraProtocol.DestMobile { // forwarding messsage to voice or mobile
|
||||
destConn := getConnForDest(dest, playerUuid)
|
||||
webClient := GetWebClientByUuid(playerUuid)
|
||||
|
||||
if destConn != nil {
|
||||
raw = kraProtocol.EncodeWebMessage(status, cmdID, cmdNumber, args)
|
||||
if webClient == nil || dest == kraProtocol.DestVoice && webClient.VoiceConn == nil || dest == kraProtocol.DestMobile && webClient.MobileConn == nil {
|
||||
raw = kraProtocol.EncodeJavaMessage(kraProtocol.StatusErrTryAgain, cmdID, 0, playerUuid, cmdNumber, args)
|
||||
|
||||
err = destConn.WriteMessage(websocket.BinaryMessage, raw)
|
||||
err = mcClient.SendBinaryMessage(raw)
|
||||
|
||||
if err != nil {
|
||||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
} else { // conn is not connected
|
||||
raw = kraProtocol.EncodeJavaMessage(kraProtocol.StatusErrTryAgain, cmdID, dest, playerUuid, cmdNumber, args)
|
||||
return
|
||||
}
|
||||
|
||||
err = conn.WriteMessage(websocket.BinaryMessage, raw)
|
||||
if status == kraProtocol.StatusGet {
|
||||
raw = kraProtocol.EncodeWebMessage(kraProtocol.StatusGet, cmdID, cmdNumber, args)
|
||||
} else {
|
||||
raw = kraProtocol.EncodeWebMessage(kraProtocol.StatusSend, cmdID, cmdNumber, args)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
if dest == kraProtocol.DestVoice {
|
||||
webClient.SendBinaryMessage(webClient.VoiceConn, raw)
|
||||
} else {
|
||||
webClient.SendBinaryMessage(webClient.MobileConn, raw)
|
||||
}
|
||||
} else if dest == kraProtocol.DestProxy {
|
||||
client := GetMinecraftClientByName("proxy-1")
|
||||
|
||||
raw := kraProtocol.EncodeJavaMessage(status, cmdID, dest, playerUuid, cmdNumber, args)
|
||||
if client == nil {
|
||||
raw = kraProtocol.EncodeJavaMessage(kraProtocol.StatusErrTryAgain, cmdID, 0, playerUuid, cmdNumber, "")
|
||||
|
||||
err = mcClient.SendBinaryMessage(raw)
|
||||
|
||||
if err != nil {
|
||||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if status == kraProtocol.StatusGet {
|
||||
raw = kraProtocol.EncodeJavaMessage(kraProtocol.StatusGet, cmdID, dest, playerUuid, cmdNumber, args)
|
||||
} else {
|
||||
raw = kraProtocol.EncodeJavaMessage(kraProtocol.StatusSend, cmdID, dest, playerUuid, cmdNumber, args)
|
||||
}
|
||||
|
||||
err = client.SendBinaryMessage(raw)
|
||||
|
||||
|
|
|
@ -1,23 +1,19 @@
|
|||
package serverCommunication
|
||||
|
||||
import (
|
||||
"github.com/gofiber/websocket/v2"
|
||||
"krakatoa.net/backend/modules/kraProtocol"
|
||||
"krakatoa.net/backend/modules/logger"
|
||||
)
|
||||
|
||||
func getConnForDest(dest int, uuid string) *websocket.Conn {
|
||||
/*
|
||||
func getClientByDest(dest int, uuid string) (*structs.WebClient, *structs.MinecraftClient) {
|
||||
switch dest {
|
||||
case kraProtocol.DestVoice:
|
||||
return GetWebClientByUuid(uuid).VoiceConn
|
||||
return GetWebClientByUuid(uuid), nil
|
||||
case kraProtocol.DestMobile:
|
||||
return GetWebClientByUuid(uuid).MobileConn
|
||||
return GetWebClientByUuid(uuid), nil
|
||||
case kraProtocol.DestProxy:
|
||||
return GetMinecraftClientByName("proxy-1").Conn
|
||||
return nil, GetMinecraftClientByName("proxy-1")
|
||||
case kraProtocol.DestPlayersCurrentServer:
|
||||
return GetMinecraftClientByName("lobby-1").Conn
|
||||
return nil, GetMinecraftClientByName("lobby-1")
|
||||
default:
|
||||
logger.Web.Println("conn for dest is nil")
|
||||
return nil
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue