origin dest added to reply the sender after successful reply of the target dest
parent
dbc4d922aa
commit
6e3946c620
|
@ -51,8 +51,8 @@ func (mcClient *MinecraftClient) GenerateMinecraftCmdID() int {
|
||||||
return mcClient.CurrentCmdIDIndexByBackend
|
return mcClient.CurrentCmdIDIndexByBackend
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mcClient *MinecraftClient) AddMessageToSendQueue(raw []byte, cmdID int) {
|
func (mcClient *MinecraftClient) AddMessageToSendQueue(raw []byte, cmdID int, originDest int) {
|
||||||
mcClient.SendQueueMessages = append(mcClient.SendQueueMessages, &SendQueueMessage{MessageRaw: raw, CmdID: cmdID, TrySendCount: 0, Time: time.Now()})
|
mcClient.SendQueueMessages = append(mcClient.SendQueueMessages, &SendQueueMessage{MessageRaw: raw, CmdID: cmdID, TrySendCount: 0, OriginDest: originDest, Time: time.Now()})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mcClient *MinecraftClient) IsCmdIDInSendMessagesQueue(cmdID int) bool {
|
func (mcClient *MinecraftClient) IsCmdIDInSendMessagesQueue(cmdID int) bool {
|
||||||
|
|
|
@ -6,5 +6,6 @@ type SendQueueMessage struct {
|
||||||
MessageRaw []byte
|
MessageRaw []byte
|
||||||
CmdID int
|
CmdID int
|
||||||
TrySendCount int
|
TrySendCount int
|
||||||
|
OriginDest int // This value tells from which destination this message was sent. (example: voice, mobile, backend)
|
||||||
Time time.Time
|
Time time.Time
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,7 +212,7 @@ func SendMessageToServer(dest int, playerUuid string, args string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SendMessageToMinecraftServer(status int, dest int, playerUuid string, cmdNumber int, args string) error {
|
func SendMessageToMinecraftServer(originDest, status int, dest int, playerUuid string, cmdNumber int, args string) error {
|
||||||
cmdID := kraProtocol.DefaultCmdID
|
cmdID := kraProtocol.DefaultCmdID
|
||||||
|
|
||||||
serverName := getMinecraftServerNameByDest(dest)
|
serverName := getMinecraftServerNameByDest(dest)
|
||||||
|
@ -237,7 +237,7 @@ func SendMessageToMinecraftServer(status int, dest int, playerUuid string, cmdNu
|
||||||
}
|
}
|
||||||
|
|
||||||
if status == kraProtocol.StatusGet {
|
if status == kraProtocol.StatusGet {
|
||||||
mcClient.AddMessageToSendQueue(raw, cmdID)
|
mcClient.AddMessageToSendQueue(raw, cmdID, originDest)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -123,7 +123,15 @@ func HandleWebMessage(isVoice bool, conn *websocket.Conn, uuid string, msg []byt
|
||||||
|
|
||||||
// no ack
|
// no ack
|
||||||
if dest == kraProtocol.DestProxy || dest == kraProtocol.DestPlayersCurrentServer { // forwarding message to java / minecraft
|
if dest == kraProtocol.DestProxy || dest == kraProtocol.DestPlayersCurrentServer { // forwarding message to java / minecraft
|
||||||
err = SendMessageToMinecraftServer(status, dest, uuid, cmdNumber, args)
|
var originDest int
|
||||||
|
|
||||||
|
if isVoice {
|
||||||
|
originDest = kraProtocol.DestVoice
|
||||||
|
} else {
|
||||||
|
originDest = kraProtocol.DestMobile
|
||||||
|
}
|
||||||
|
|
||||||
|
err = SendMessageToMinecraftServer(originDest, status, dest, uuid, cmdNumber, args)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
raw := kraProtocol.EncodeWebMessage(kraProtocol.StatusErrTryAgain, cmdID, cmdNumber, args)
|
raw := kraProtocol.EncodeWebMessage(kraProtocol.StatusErrTryAgain, cmdID, cmdNumber, args)
|
||||||
|
|
Loading…
Reference in New Issue