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
|
||||
}
|
||||
|
||||
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) AddMessageToSendQueue(raw []byte, cmdID int, originDest int) {
|
||||
mcClient.SendQueueMessages = append(mcClient.SendQueueMessages, &SendQueueMessage{MessageRaw: raw, CmdID: cmdID, TrySendCount: 0, OriginDest: originDest, Time: time.Now()})
|
||||
}
|
||||
|
||||
func (mcClient *MinecraftClient) IsCmdIDInSendMessagesQueue(cmdID int) bool {
|
||||
|
|
|
@ -6,5 +6,6 @@ type SendQueueMessage struct {
|
|||
MessageRaw []byte
|
||||
CmdID int
|
||||
TrySendCount int
|
||||
OriginDest int // This value tells from which destination this message was sent. (example: voice, mobile, backend)
|
||||
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
|
||||
|
||||
serverName := getMinecraftServerNameByDest(dest)
|
||||
|
@ -237,7 +237,7 @@ func SendMessageToMinecraftServer(status int, dest int, playerUuid string, cmdNu
|
|||
}
|
||||
|
||||
if status == kraProtocol.StatusGet {
|
||||
mcClient.AddMessageToSendQueue(raw, cmdID)
|
||||
mcClient.AddMessageToSendQueue(raw, cmdID, originDest)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -123,7 +123,15 @@ func HandleWebMessage(isVoice bool, conn *websocket.Conn, uuid string, msg []byt
|
|||
|
||||
// no ack
|
||||
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 {
|
||||
raw := kraProtocol.EncodeWebMessage(kraProtocol.StatusErrTryAgain, cmdID, cmdNumber, args)
|
||||
|
|
Loading…
Reference in New Issue