mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-26 03:39:00 +00:00
Enhanced exception handling on frontend.
This commit is contained in:
parent
618531f5c6
commit
8b5a96e825
@ -4,9 +4,24 @@ ROOT_DIR=.
|
|||||||
GOPROXY=https://goproxy.io
|
GOPROXY=https://goproxy.io
|
||||||
all: help
|
all: help
|
||||||
|
|
||||||
|
# To install `gojson` executable
|
||||||
|
# ```
|
||||||
|
# go install github.com/ChimeraCoder/gojson/gojson@latest
|
||||||
|
# ```
|
||||||
|
#
|
||||||
|
# OS detection reference https://stackoverflow.com/a/12099167
|
||||||
gen-constants:
|
gen-constants:
|
||||||
gojson -pkg common -name constants -input common/constants.json -o common/constants_struct.go
|
gojson -pkg common -name constants -input common/constants.json -o common/constants_struct.go
|
||||||
|
ifeq ($(OS),Windows_NT)
|
||||||
sed -i 's/int64/int/g' common/constants_struct.go
|
sed -i 's/int64/int/g' common/constants_struct.go
|
||||||
|
else
|
||||||
|
UNAME_S := $(shell uname -s)
|
||||||
|
ifeq ($(UNAME_S),Darwin)
|
||||||
|
sed -i '' -e 's/int64/int/g' common/constants_struct.go
|
||||||
|
else
|
||||||
|
sed -i 's/int64/int/g' common/constants_struct.go
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
run-test: build
|
run-test: build
|
||||||
ServerEnv=TEST ./$(PROJECTNAME)
|
ServerEnv=TEST ./$(PROJECTNAME)
|
||||||
|
@ -44,10 +44,10 @@
|
|||||||
"PASSWORD_RESET_CODE_GENERATION_PER_EMAIL_TOO_FREQUENTLY": 2020,
|
"PASSWORD_RESET_CODE_GENERATION_PER_EMAIL_TOO_FREQUENTLY": 2020,
|
||||||
"TRADE_CREATION_TOO_FREQUENTLY": 2021,
|
"TRADE_CREATION_TOO_FREQUENTLY": 2021,
|
||||||
"MAP_NOT_UNLOCKED": 2022,
|
"MAP_NOT_UNLOCKED": 2022,
|
||||||
|
|
||||||
"GET_SMS_CAPTCHA_RESP_ERROR_CODE": 2023,
|
"GET_SMS_CAPTCHA_RESP_ERROR_CODE": 2023,
|
||||||
"SMS_CAPTCHA_REQUESTED_TOO_FREQUENTLY": 2024,
|
"SMS_CAPTCHA_REQUESTED_TOO_FREQUENTLY": 2024,
|
||||||
"SMS_CAPTCHA_NOT_MATCH": 2025,
|
"SMS_CAPTCHA_NOT_MATCH": 2025,
|
||||||
|
"SAME_PLAYER_ALREADY_IN_SAME_ROOM": 2026,
|
||||||
|
|
||||||
"NOT_IMPLEMENTED_YET": 65535
|
"NOT_IMPLEMENTED_YET": 65535
|
||||||
},
|
},
|
||||||
|
@ -17,6 +17,7 @@ type constants struct {
|
|||||||
RetCode struct {
|
RetCode struct {
|
||||||
ActiveWatchdog int `json:"ACTIVE_WATCHDOG"`
|
ActiveWatchdog int `json:"ACTIVE_WATCHDOG"`
|
||||||
BattleStopped int `json:"BATTLE_STOPPED"`
|
BattleStopped int `json:"BATTLE_STOPPED"`
|
||||||
|
ClientMismatchedRenderFrame int `json:"CLIENT_MISMATCHED_RENDER_FRAME"`
|
||||||
Duplicated int `json:"DUPLICATED"`
|
Duplicated int `json:"DUPLICATED"`
|
||||||
FailedToCreate int `json:"FAILED_TO_CREATE"`
|
FailedToCreate int `json:"FAILED_TO_CREATE"`
|
||||||
FailedToDelete int `json:"FAILED_TO_DELETE"`
|
FailedToDelete int `json:"FAILED_TO_DELETE"`
|
||||||
@ -51,6 +52,7 @@ type constants struct {
|
|||||||
PlayerNotAddableToRoom int `json:"PLAYER_NOT_ADDABLE_TO_ROOM"`
|
PlayerNotAddableToRoom int `json:"PLAYER_NOT_ADDABLE_TO_ROOM"`
|
||||||
PlayerNotFound int `json:"PLAYER_NOT_FOUND"`
|
PlayerNotFound int `json:"PLAYER_NOT_FOUND"`
|
||||||
PlayerNotReaddableToRoom int `json:"PLAYER_NOT_READDABLE_TO_ROOM"`
|
PlayerNotReaddableToRoom int `json:"PLAYER_NOT_READDABLE_TO_ROOM"`
|
||||||
|
SamePlayerAlreadyInSameRoom int `json:"SAME_PLAYER_ALREADY_IN_SAME_ROOM"`
|
||||||
SendEmailTimeout int `json:"SEND_EMAIL_TIMEOUT"`
|
SendEmailTimeout int `json:"SEND_EMAIL_TIMEOUT"`
|
||||||
SmsCaptchaNotMatch int `json:"SMS_CAPTCHA_NOT_MATCH"`
|
SmsCaptchaNotMatch int `json:"SMS_CAPTCHA_NOT_MATCH"`
|
||||||
SmsCaptchaRequestedTooFrequently int `json:"SMS_CAPTCHA_REQUESTED_TOO_FREQUENTLY"`
|
SmsCaptchaRequestedTooFrequently int `json:"SMS_CAPTCHA_REQUESTED_TOO_FREQUENTLY"`
|
||||||
|
@ -3,6 +3,7 @@ module battle_srv
|
|||||||
go 1.18
|
go 1.18
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
dnmshared v0.0.0
|
||||||
github.com/Masterminds/squirrel v0.0.0-20180815162352-8a7e65843414
|
github.com/Masterminds/squirrel v0.0.0-20180815162352-8a7e65843414
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/gin-contrib/cors v0.0.0-20180514151808-6f0a820f94be
|
github.com/gin-contrib/cors v0.0.0-20180514151808-6f0a820f94be
|
||||||
@ -19,14 +20,12 @@ require (
|
|||||||
github.com/thoas/go-funk v0.0.0-20180716193722-1060394a7713
|
github.com/thoas/go-funk v0.0.0-20180716193722-1060394a7713
|
||||||
go.uber.org/zap v1.9.1
|
go.uber.org/zap v1.9.1
|
||||||
google.golang.org/protobuf v1.28.1
|
google.golang.org/protobuf v1.28.1
|
||||||
|
|
||||||
dnmshared v0.0.0
|
|
||||||
jsexport v0.0.0
|
jsexport v0.0.0
|
||||||
resolv v0.0.0
|
resolv v0.0.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/ChimeraCoder/gojson v1.0.0 // indirect
|
github.com/ChimeraCoder/gojson v1.1.0 // indirect
|
||||||
github.com/fatih/color v1.7.0 // indirect
|
github.com/fatih/color v1.7.0 // indirect
|
||||||
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 // indirect
|
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 // indirect
|
||||||
github.com/githubnemo/CompileDaemon v1.0.0 // indirect
|
github.com/githubnemo/CompileDaemon v1.0.0 // indirect
|
||||||
@ -44,7 +43,7 @@ require (
|
|||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 // indirect
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 // indirect
|
||||||
gopkg.in/go-playground/validator.v8 v8.18.2 // indirect
|
gopkg.in/go-playground/validator.v8 v8.18.2 // indirect
|
||||||
gopkg.in/yaml.v2 v2.2.1 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
|
@ -2,6 +2,8 @@ github.com/ByteArena/box2d v1.0.2 h1:f7f9KEQWhCs1n516DMLzi5w6u0MeeE78Mes4fWMcj9k
|
|||||||
github.com/ByteArena/box2d v1.0.2/go.mod h1:LzEuxY9iCz+tskfWCY3o0ywYBRafDDugdSj+/YGI6sE=
|
github.com/ByteArena/box2d v1.0.2/go.mod h1:LzEuxY9iCz+tskfWCY3o0ywYBRafDDugdSj+/YGI6sE=
|
||||||
github.com/ChimeraCoder/gojson v1.0.0 h1:gAYKGTV+xfQ4+l/4C/nazPbiQDUidG0G3ukAJnE7LNE=
|
github.com/ChimeraCoder/gojson v1.0.0 h1:gAYKGTV+xfQ4+l/4C/nazPbiQDUidG0G3ukAJnE7LNE=
|
||||||
github.com/ChimeraCoder/gojson v1.0.0/go.mod h1:nYbTQlu6hv8PETM15J927yM0zGj3njIldp72UT1MqSw=
|
github.com/ChimeraCoder/gojson v1.0.0/go.mod h1:nYbTQlu6hv8PETM15J927yM0zGj3njIldp72UT1MqSw=
|
||||||
|
github.com/ChimeraCoder/gojson v1.1.0 h1:/6S8djl/jColpJGTYniA3xrqJWuKeyEozzPtpr5L4Pw=
|
||||||
|
github.com/ChimeraCoder/gojson v1.1.0/go.mod h1:nYbTQlu6hv8PETM15J927yM0zGj3njIldp72UT1MqSw=
|
||||||
github.com/Masterminds/squirrel v0.0.0-20180815162352-8a7e65843414 h1:VHdYPA0V0YgL97gdjHevN6IVPRX+fOoNMqcYvUAzwNU=
|
github.com/Masterminds/squirrel v0.0.0-20180815162352-8a7e65843414 h1:VHdYPA0V0YgL97gdjHevN6IVPRX+fOoNMqcYvUAzwNU=
|
||||||
github.com/Masterminds/squirrel v0.0.0-20180815162352-8a7e65843414/go.mod h1:xnKTFzjGUiZtiOagBsfnvomW+nJg2usB1ZpordQWqNM=
|
github.com/Masterminds/squirrel v0.0.0-20180815162352-8a7e65843414/go.mod h1:xnKTFzjGUiZtiOagBsfnvomW+nJg2usB1ZpordQWqNM=
|
||||||
github.com/Pallinder/go-randomdata v0.0.0-20180616180521-15df0648130a h1:0OnS8GR4uI3nau+f/juCZlAq+zCrsHXRJlENrUQ4eU8=
|
github.com/Pallinder/go-randomdata v0.0.0-20180616180521-15df0648130a h1:0OnS8GR4uI3nau+f/juCZlAq+zCrsHXRJlENrUQ4eU8=
|
||||||
@ -92,3 +94,5 @@ gopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2G
|
|||||||
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
|
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
|
||||||
gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
|
gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
|
@ -174,16 +174,16 @@ func (pR *Room) updateScore() {
|
|||||||
pR.Score = calRoomScore(pR.EffectivePlayerCount, pR.Capacity, pR.State)
|
pR.Score = calRoomScore(pR.EffectivePlayerCount, pR.Capacity, pR.State)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pR *Room) AddPlayerIfPossible(pPlayerFromDbInit *Player, speciesId int, session *websocket.Conn, signalToCloseConnOfThisPlayer SignalToCloseConnCbType) bool {
|
func (pR *Room) AddPlayerIfPossible(pPlayerFromDbInit *Player, speciesId int, session *websocket.Conn, signalToCloseConnOfThisPlayer SignalToCloseConnCbType) int {
|
||||||
playerId := pPlayerFromDbInit.Id
|
playerId := pPlayerFromDbInit.Id
|
||||||
// TODO: Any thread-safety concern for accessing "pR" here?
|
// TODO: Any thread-safety concern for accessing "pR" here?
|
||||||
if RoomBattleStateIns.IDLE != pR.State && RoomBattleStateIns.WAITING != pR.State {
|
if RoomBattleStateIns.IDLE != pR.State && RoomBattleStateIns.WAITING != pR.State {
|
||||||
Logger.Warn("AddPlayerIfPossible error, roomState:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
Logger.Warn("AddPlayerIfPossible error, roomState:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
||||||
return false
|
return Constants.RetCode.PlayerNotAddableToRoom
|
||||||
}
|
}
|
||||||
if _, existent := pR.Players[playerId]; existent {
|
if _, existent := pR.Players[playerId]; existent {
|
||||||
Logger.Warn("AddPlayerIfPossible error, existing in the room.PlayersDict:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
Logger.Warn("AddPlayerIfPossible error, existing in the room.PlayersDict:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
||||||
return false
|
return Constants.RetCode.SamePlayerAlreadyInSameRoom
|
||||||
}
|
}
|
||||||
|
|
||||||
defer pR.onPlayerAdded(playerId, speciesId)
|
defer pR.onPlayerAdded(playerId, speciesId)
|
||||||
@ -210,19 +210,19 @@ func (pR *Room) AddPlayerIfPossible(pPlayerFromDbInit *Player, speciesId int, se
|
|||||||
})
|
})
|
||||||
newWatchdog.Stop()
|
newWatchdog.Stop()
|
||||||
pR.PlayerActiveWatchdogDict[playerId] = newWatchdog
|
pR.PlayerActiveWatchdogDict[playerId] = newWatchdog
|
||||||
return true
|
return Constants.RetCode.Ok
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pR *Room) ReAddPlayerIfPossible(pTmpPlayerInstance *Player, session *websocket.Conn, signalToCloseConnOfThisPlayer SignalToCloseConnCbType) bool {
|
func (pR *Room) ReAddPlayerIfPossible(pTmpPlayerInstance *Player, session *websocket.Conn, signalToCloseConnOfThisPlayer SignalToCloseConnCbType) int {
|
||||||
playerId := pTmpPlayerInstance.Id
|
playerId := pTmpPlayerInstance.Id
|
||||||
// TODO: Any thread-safety concern for accessing "pR" and "pEffectiveInRoomPlayerInstance" here?
|
// TODO: Any thread-safety concern for accessing "pR" and "pEffectiveInRoomPlayerInstance" here?
|
||||||
if RoomBattleStateIns.PREPARE != pR.State && RoomBattleStateIns.WAITING != pR.State && RoomBattleStateIns.IN_BATTLE != pR.State && RoomBattleStateIns.IN_SETTLEMENT != pR.State && RoomBattleStateIns.IN_DISMISSAL != pR.State {
|
if RoomBattleStateIns.PREPARE != pR.State && RoomBattleStateIns.WAITING != pR.State && RoomBattleStateIns.IN_BATTLE != pR.State && RoomBattleStateIns.IN_SETTLEMENT != pR.State && RoomBattleStateIns.IN_DISMISSAL != pR.State {
|
||||||
Logger.Warn("ReAddPlayerIfPossible error due to roomState:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
Logger.Warn("ReAddPlayerIfPossible error due to roomState:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
||||||
return false
|
return Constants.RetCode.PlayerNotReaddableToRoom
|
||||||
}
|
}
|
||||||
if _, existent := pR.Players[playerId]; !existent {
|
if _, existent := pR.Players[playerId]; !existent {
|
||||||
Logger.Warn("ReAddPlayerIfPossible error due to player nonexistent for room:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
Logger.Warn("ReAddPlayerIfPossible error due to player nonexistent for room:", zap.Any("playerId", playerId), zap.Any("roomId", pR.Id), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount))
|
||||||
return false
|
return Constants.RetCode.PlayerNotReaddableToRoom
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* WARNING: The "pTmpPlayerInstance *Player" used here is a temporarily constructed
|
* WARNING: The "pTmpPlayerInstance *Player" used here is a temporarily constructed
|
||||||
@ -251,7 +251,7 @@ func (pR *Room) ReAddPlayerIfPossible(pTmpPlayerInstance *Player, session *webso
|
|||||||
}) // For ReAdded player the new watchdog starts immediately
|
}) // For ReAdded player the new watchdog starts immediately
|
||||||
|
|
||||||
Logger.Warn("ReAddPlayerIfPossible finished.", zap.Any("roomId", pR.Id), zap.Any("playerId", playerId), zap.Any("joinIndex", pEffectiveInRoomPlayerInstance.JoinIndex), zap.Any("playerBattleState", pEffectiveInRoomPlayerInstance.BattleState), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount), zap.Any("AckingFrameId", pEffectiveInRoomPlayerInstance.AckingFrameId), zap.Any("AckingInputFrameId", pEffectiveInRoomPlayerInstance.AckingInputFrameId), zap.Any("LastSentInputFrameId", pEffectiveInRoomPlayerInstance.LastSentInputFrameId))
|
Logger.Warn("ReAddPlayerIfPossible finished.", zap.Any("roomId", pR.Id), zap.Any("playerId", playerId), zap.Any("joinIndex", pEffectiveInRoomPlayerInstance.JoinIndex), zap.Any("playerBattleState", pEffectiveInRoomPlayerInstance.BattleState), zap.Any("roomState", pR.State), zap.Any("roomEffectivePlayerCount", pR.EffectivePlayerCount), zap.Any("AckingFrameId", pEffectiveInRoomPlayerInstance.AckingFrameId), zap.Any("AckingInputFrameId", pEffectiveInRoomPlayerInstance.AckingInputFrameId), zap.Any("LastSentInputFrameId", pEffectiveInRoomPlayerInstance.LastSentInputFrameId))
|
||||||
return true
|
return Constants.RetCode.Ok
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pR *Room) ChooseStage() error {
|
func (pR *Room) ChooseStage() error {
|
||||||
|
@ -188,34 +188,33 @@ func Serve(c *gin.Context) {
|
|||||||
}()
|
}()
|
||||||
Logger.Debug("Acquired RoomHeapMux for player:", zap.Any("playerId", playerId))
|
Logger.Debug("Acquired RoomHeapMux for player:", zap.Any("playerId", playerId))
|
||||||
// Logger.Info("The RoomHeapManagerIns has:", zap.Any("addr", fmt.Sprintf("%p", models.RoomHeapManagerIns)), zap.Any("size", len(*(models.RoomHeapManagerIns))))
|
// Logger.Info("The RoomHeapManagerIns has:", zap.Any("addr", fmt.Sprintf("%p", models.RoomHeapManagerIns)), zap.Any("size", len(*(models.RoomHeapManagerIns))))
|
||||||
playerSuccessfullyAddedToRoom := false
|
playerRoomRelation := Constants.RetCode.UnknownError
|
||||||
if 0 < boundRoomId {
|
if 0 < boundRoomId {
|
||||||
if tmpPRoom, existent := (*models.RoomMapManagerIns)[int32(boundRoomId)]; existent {
|
if tmpPRoom, existent := (*models.RoomMapManagerIns)[int32(boundRoomId)]; existent {
|
||||||
pRoom = tmpPRoom
|
pRoom = tmpPRoom
|
||||||
res := pRoom.ReAddPlayerIfPossible(pPlayer, conn, signalToCloseConnOfThisPlayer)
|
playerRoomRelation = pRoom.ReAddPlayerIfPossible(pPlayer, conn, signalToCloseConnOfThisPlayer)
|
||||||
if !res {
|
if Constants.RetCode.Ok != playerRoomRelation {
|
||||||
Logger.Warn("Failed to get:\n", zap.Any("roomId", pRoom.Id), zap.Any("playerId", playerId), zap.Any("forBoundRoomId", boundRoomId))
|
Logger.Warn("Failed to get:\n", zap.Any("roomId", pRoom.Id), zap.Any("playerId", playerId), zap.Any("forBoundRoomId", boundRoomId))
|
||||||
} else {
|
|
||||||
playerSuccessfullyAddedToRoom = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if 0 < expectedRoomId {
|
} else if 0 < expectedRoomId {
|
||||||
if tmpRoom, existent := (*models.RoomMapManagerIns)[int32(expectedRoomId)]; existent {
|
if tmpRoom, existent := (*models.RoomMapManagerIns)[int32(expectedRoomId)]; existent {
|
||||||
pRoom = tmpRoom
|
pRoom = tmpRoom
|
||||||
|
playerRoomRelation = pRoom.ReAddPlayerIfPossible(pPlayer, conn, signalToCloseConnOfThisPlayer)
|
||||||
if pRoom.ReAddPlayerIfPossible(pPlayer, conn, signalToCloseConnOfThisPlayer) {
|
if Constants.RetCode.Ok != playerRoomRelation {
|
||||||
playerSuccessfullyAddedToRoom = true
|
playerRoomRelation = pRoom.AddPlayerIfPossible(pPlayer, speciesId, conn, signalToCloseConnOfThisPlayer)
|
||||||
} else if pRoom.AddPlayerIfPossible(pPlayer, speciesId, conn, signalToCloseConnOfThisPlayer) {
|
}
|
||||||
playerSuccessfullyAddedToRoom = true
|
if Constants.RetCode.Ok != playerRoomRelation {
|
||||||
} else {
|
|
||||||
Logger.Warn("Failed to get:\n", zap.Any("roomId", pRoom.Id), zap.Any("playerId", playerId), zap.Any("forExpectedRoomId", expectedRoomId))
|
Logger.Warn("Failed to get:\n", zap.Any("roomId", pRoom.Id), zap.Any("playerId", playerId), zap.Any("forExpectedRoomId", expectedRoomId))
|
||||||
playerSuccessfullyAddedToRoom = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if false == playerSuccessfullyAddedToRoom {
|
if Constants.RetCode.SamePlayerAlreadyInSameRoom == playerRoomRelation {
|
||||||
|
signalToCloseConnOfThisPlayer(playerRoomRelation, fmt.Sprintf("playerId == %v is already in a room, this account is possibly stolen!", playerId))
|
||||||
|
}
|
||||||
|
|
||||||
|
if Constants.RetCode.Ok != playerRoomRelation {
|
||||||
defer func() {
|
defer func() {
|
||||||
if pRoom != nil {
|
if pRoom != nil {
|
||||||
heap.Push(models.RoomHeapManagerIns, pRoom)
|
heap.Push(models.RoomHeapManagerIns, pRoom)
|
||||||
@ -229,9 +228,9 @@ func Serve(c *gin.Context) {
|
|||||||
} else {
|
} else {
|
||||||
pRoom = tmpRoom
|
pRoom = tmpRoom
|
||||||
Logger.Info("Successfully popped:\n", zap.Any("roomId", pRoom.Id), zap.Any("forPlayerId", playerId))
|
Logger.Info("Successfully popped:\n", zap.Any("roomId", pRoom.Id), zap.Any("forPlayerId", playerId))
|
||||||
res := pRoom.AddPlayerIfPossible(pPlayer, speciesId, conn, signalToCloseConnOfThisPlayer)
|
playerRoomRelation = pRoom.AddPlayerIfPossible(pPlayer, speciesId, conn, signalToCloseConnOfThisPlayer)
|
||||||
if !res {
|
if Constants.RetCode.Ok != playerRoomRelation {
|
||||||
signalToCloseConnOfThisPlayer(Constants.RetCode.PlayerNotAddableToRoom, fmt.Sprintf("AddPlayerIfPossible returns false for roomId == %v, playerId == %v!", pRoom.Id, playerId))
|
signalToCloseConnOfThisPlayer(playerRoomRelation, fmt.Sprintf("AddPlayerIfPossible returns false for roomId == %v, playerId == %v!", pRoom.Id, playerId))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,6 +109,7 @@ var constants = {
|
|||||||
"GET_SMS_CAPTCHA_RESP_ERROR_CODE": 2023,
|
"GET_SMS_CAPTCHA_RESP_ERROR_CODE": 2023,
|
||||||
"SMS_CAPTCHA_REQUESTED_TOO_FREQUENTLY": 2024,
|
"SMS_CAPTCHA_REQUESTED_TOO_FREQUENTLY": 2024,
|
||||||
"SMS_CAPTCHA_NOT_MATCH": 2025,
|
"SMS_CAPTCHA_NOT_MATCH": 2025,
|
||||||
|
"SAME_PLAYER_ALREADY_IN_SAME_ROOM": 2026,
|
||||||
|
|
||||||
"NOT_IMPLEMENTED_YET": 65535
|
"NOT_IMPLEMENTED_YET": 65535
|
||||||
},
|
},
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.2" tiledversion="1.2.3" orientation="orthogonal" renderorder="right-down" width="128" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="138">
|
<map version="1.2" tiledversion="1.2.3" orientation="orthogonal" renderorder="right-down" width="128" height="64" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="138">
|
||||||
<tileset firstgid="1" source="tiles0.tsx"/>
|
<tileset firstgid="1" source="tiles0.tsx"/>
|
||||||
<tileset firstgid="65" source="tiles1.tsx"/>
|
<tileset firstgid="65" source="tiles1.tsx"/>
|
||||||
<tileset firstgid="129" source="tiles2.tsx"/>
|
<tileset firstgid="129" source="tiles2.tsx"/>
|
||||||
<layer id="7" name="Ground" width="128" height="40">
|
<layer id="8" name="Ground" width="128" height="64">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzt2k0OgjAQQGECccMOo+5JvIlx484LeP9jaAxNSEOhlMGZOG/xbfyl81rc2FRV1QAAAAAAAAAAAADAD9zxpd1Bs7/2NWjzPAPPa2cGvtfODHyvnRn4XjszKFv7KdOW6zoKvYb+9vpf6W+G5f5zfZeep7/82kM3qf6Hj25C3DhFYwb/pqT/VlKfQ///7z91f+g2fj/9y/tLWbqfp7rvsQ/ob0tue6l9YHEGlvv3Qq+hv77x2tuBdv/SPVC6P7z3v0XCc/HjQZ8p9X5rwgy0W2j1rwfh/L8+Hgm1gNQZlfjsku/2fv7j/uPfgPFjUv010T/d/xH1niLd47KDNfcc+s/3aRdml2Opv/R+ov+6/ufB3Ny2nP+5PbD3+c/Zn/RP95f8zaW/Pdr/u7ZCu4Nm/6dz9Pdtz/5vZSq2hg==
|
eJzt2j1uwkAQgFEESkNHlKRHyk2iNHRcIPc/RlCEJWSxtrHHmRX7itfw651v1zTsNpvNDgAAAAAAAOAffPMnu0Nm/+xryNbyDFpeuxm0vXYzaHvtZtD22s1g3trfJlpyXa9Br9G/vv6f+lej5v5Dfcee1z9+7V23qP4vF4c7+o1LMmbwbOb0Xyrqc/R//v737g+Hhd+v//z+Ucbu56Xua+wD/esytX3UPqhxBjX3Pwa9Rv98t2vfX2X3n7sH5u6P1vt/9XTP9R/vHCcqvb823QyyW2T131515//n4lSwDVA6oxGfPee7Wz///f63vwG3j0X1z6R/uf+p1/ue6B4fK3jknqP/cJ/9yOymGOsfvZ/0f6z/+9XQ3Jac/6E9sPb5n7I/9S/3j/zN1b8+2f+7rkV2h8z+58bp37Y1+x8qlz37WmR30F9//fXXX38AAAAAAAAAAAAg1y8jXMSV
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="1" name="PlayerStartingPos">
|
<objectgroup id="1" name="PlayerStartingPos">
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 5
|
"__id__": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 11
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
@ -192,102 +195,28 @@
|
|||||||
"fileId": "ab6G+s0otA4rXhUsO3czRN",
|
"fileId": "ab6G+s0otA4rXhUsO3czRN",
|
||||||
"sync": false
|
"sync": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "cc.Node",
|
|
||||||
"_name": "VerticalLayout",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"_parent": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_children": [
|
|
||||||
{
|
|
||||||
"__id__": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 12
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"_active": true,
|
|
||||||
"_components": [
|
|
||||||
{
|
|
||||||
"__id__": 53
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 54
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"_prefab": {
|
|
||||||
"__id__": 55
|
|
||||||
},
|
|
||||||
"_opacity": 255,
|
|
||||||
"_color": {
|
|
||||||
"__type__": "cc.Color",
|
|
||||||
"r": 255,
|
|
||||||
"g": 255,
|
|
||||||
"b": 255,
|
|
||||||
"a": 255
|
|
||||||
},
|
|
||||||
"_contentSize": {
|
|
||||||
"__type__": "cc.Size",
|
|
||||||
"width": 960,
|
|
||||||
"height": 265
|
|
||||||
},
|
|
||||||
"_anchorPoint": {
|
|
||||||
"__type__": "cc.Vec2",
|
|
||||||
"x": 0.5,
|
|
||||||
"y": 0.5
|
|
||||||
},
|
|
||||||
"_trs": {
|
|
||||||
"__type__": "TypedArray",
|
|
||||||
"ctor": "Float64Array",
|
|
||||||
"array": [
|
|
||||||
0,
|
|
||||||
-9.924,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"_eulerAngles": {
|
|
||||||
"__type__": "cc.Vec3",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
"_skewX": 0,
|
|
||||||
"_skewY": 0,
|
|
||||||
"_is3DNode": false,
|
|
||||||
"_groupIndex": 0,
|
|
||||||
"groupIndex": 0,
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Node",
|
"__type__": "cc.Node",
|
||||||
"_name": "exitButton",
|
"_name": "exitButton",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 5
|
"__id__": 1
|
||||||
},
|
},
|
||||||
"_children": [],
|
"_children": [],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 6
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__id__": 7
|
"__id__": 7
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 8
|
"__id__": 9
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 10
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 11
|
"__id__": 10
|
||||||
},
|
},
|
||||||
"_opacity": 255,
|
"_opacity": 255,
|
||||||
"_color": {
|
"_color": {
|
||||||
@ -312,7 +241,7 @@
|
|||||||
"ctor": "Float64Array",
|
"ctor": "Float64Array",
|
||||||
"array": [
|
"array": [
|
||||||
-379.577,
|
-379.577,
|
||||||
100.5,
|
90.576,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@ -341,7 +270,7 @@
|
|||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 6
|
"__id__": 5
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"_materials": [
|
"_materials": [
|
||||||
@ -375,7 +304,7 @@
|
|||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 6
|
"__id__": 5
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"_normalMaterial": null,
|
"_normalMaterial": null,
|
||||||
@ -384,7 +313,7 @@
|
|||||||
"zoomScale": 1.2,
|
"zoomScale": 1.2,
|
||||||
"clickEvents": [
|
"clickEvents": [
|
||||||
{
|
{
|
||||||
"__id__": 9
|
"__id__": 8
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_N$interactable": true,
|
"_N$interactable": true,
|
||||||
@ -440,7 +369,7 @@
|
|||||||
"hoverSprite": null,
|
"hoverSprite": null,
|
||||||
"_N$disabledSprite": null,
|
"_N$disabledSprite": null,
|
||||||
"_N$target": {
|
"_N$target": {
|
||||||
"__id__": 6
|
"__id__": 5
|
||||||
},
|
},
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
@ -459,7 +388,7 @@
|
|||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 6
|
"__id__": 5
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"alignMode": 1,
|
"alignMode": 1,
|
||||||
@ -489,15 +418,86 @@
|
|||||||
"asset": {
|
"asset": {
|
||||||
"__uuid__": "dc804c5c-ff76-445e-ac69-52269055c3c5"
|
"__uuid__": "dc804c5c-ff76-445e-ac69-52269055c3c5"
|
||||||
},
|
},
|
||||||
"fileId": "1cUg34ZtdK9JfdGIG+lpdF",
|
"fileId": "3cdlb7LxhMzLDzxdQv8Z/x",
|
||||||
"sync": false
|
"sync": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "VerticalLayout",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_children": [
|
||||||
|
{
|
||||||
|
"__id__": 12
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_active": true,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 53
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 54
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": {
|
||||||
|
"__id__": 55
|
||||||
|
},
|
||||||
|
"_opacity": 255,
|
||||||
|
"_color": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 255,
|
||||||
|
"g": 255,
|
||||||
|
"b": 255,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_contentSize": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 960,
|
||||||
|
"height": 137
|
||||||
|
},
|
||||||
|
"_anchorPoint": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0.5,
|
||||||
|
"y": 0.5
|
||||||
|
},
|
||||||
|
"_trs": {
|
||||||
|
"__type__": "TypedArray",
|
||||||
|
"ctor": "Float64Array",
|
||||||
|
"array": [
|
||||||
|
0,
|
||||||
|
-68.939,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_eulerAngles": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_skewX": 0,
|
||||||
|
"_skewY": 0,
|
||||||
|
"_is3DNode": false,
|
||||||
|
"_groupIndex": 0,
|
||||||
|
"groupIndex": 0,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.Node",
|
"__type__": "cc.Node",
|
||||||
"_name": "HorizontalLayout",
|
"_name": "HorizontalLayout",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 5
|
"__id__": 11
|
||||||
},
|
},
|
||||||
"_children": [
|
"_children": [
|
||||||
{
|
{
|
||||||
@ -545,7 +545,7 @@
|
|||||||
"ctor": "Float64Array",
|
"ctor": "Float64Array",
|
||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
-64,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@ -1953,7 +1953,7 @@
|
|||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 5
|
"__id__": 11
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"_materials": [
|
"_materials": [
|
||||||
@ -1983,13 +1983,13 @@
|
|||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 5
|
"__id__": 11
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"_layoutSize": {
|
"_layoutSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
"width": 960,
|
"width": 960,
|
||||||
"height": 265
|
"height": 137
|
||||||
},
|
},
|
||||||
"_resize": 1,
|
"_resize": 1,
|
||||||
"_N$layoutType": 2,
|
"_N$layoutType": 2,
|
||||||
@ -2040,7 +2040,7 @@
|
|||||||
"__id__": 43
|
"__id__": 43
|
||||||
},
|
},
|
||||||
"exitBtnNode": {
|
"exitBtnNode": {
|
||||||
"__id__": 6
|
"__id__": 5
|
||||||
},
|
},
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
|
@ -536,7 +536,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
216.65450766436658,
|
216.05530045313827,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -461,7 +461,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
209.66956379694378,
|
209.7452601621179,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -518,7 +518,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
216.50635094610968,
|
216.05530045313827,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -293,7 +293,7 @@ cc.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
popupSimplePressToGo(labelString, hideYesButton) {
|
popupSimplePressToGo(labelString, hideYesButton, additionalOnDismissalCb) {
|
||||||
const self = this;
|
const self = this;
|
||||||
self.state = ALL_MAP_STATES.SHOWING_MODAL_POPUP;
|
self.state = ALL_MAP_STATES.SHOWING_MODAL_POPUP;
|
||||||
|
|
||||||
@ -306,6 +306,9 @@ cc.Class({
|
|||||||
const postDismissalByYes = () => {
|
const postDismissalByYes = () => {
|
||||||
self.transitToState(ALL_MAP_STATES.VISUAL);
|
self.transitToState(ALL_MAP_STATES.VISUAL);
|
||||||
canvasNode.removeChild(simplePressToGoDialogNode);
|
canvasNode.removeChild(simplePressToGoDialogNode);
|
||||||
|
if (additionalOnDismissalCb) {
|
||||||
|
additionalOnDismissalCb();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
simplePressToGoDialogNode.getChildByName("Hint").getComponent(cc.Label).string = labelString;
|
simplePressToGoDialogNode.getChildByName("Hint").getComponent(cc.Label).string = labelString;
|
||||||
yesButton.once("click", simplePressToGoDialogScriptIns.dismissDialog.bind(simplePressToGoDialogScriptIns, postDismissalByYes));
|
yesButton.once("click", simplePressToGoDialogScriptIns.dismissDialog.bind(simplePressToGoDialogScriptIns, postDismissalByYes));
|
||||||
|
@ -288,13 +288,21 @@ window.initPersistentSessionClient = function(onopenCb, expectedRoomId) {
|
|||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case constants.RET_CODE.SAME_PLAYER_ALREADY_IN_SAME_ROOM:
|
||||||
|
mapIns.popupSimplePressToGo("You just logged into a conflicting account, please use a different account to retry", false, () => {
|
||||||
|
window.clearLocalStorageAndBackToLoginScene(true);
|
||||||
|
});
|
||||||
|
break;
|
||||||
case constants.RET_CODE.PLAYER_NOT_ADDABLE_TO_ROOM:
|
case constants.RET_CODE.PLAYER_NOT_ADDABLE_TO_ROOM:
|
||||||
case constants.RET_CODE.PLAYER_NOT_READDABLE_TO_ROOM:
|
case constants.RET_CODE.PLAYER_NOT_READDABLE_TO_ROOM:
|
||||||
window.clearBoundRoomIdInBothVolatileAndPersistentStorage(); // To favor the player to join other rooms
|
mapIns.popupSimplePressToGo("Couldn't join any room at the moment, please retry", false, () => {
|
||||||
mapIns.onManualRejoinRequired("Couldn't join any room at the moment, please retry");
|
window.clearLocalStorageAndBackToLoginScene(true);
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
case constants.RET_CODE.ACTIVE_WATCHDOG:
|
case constants.RET_CODE.ACTIVE_WATCHDOG:
|
||||||
mapIns.onManualRejoinRequired("Disconnected due to long-time inactivity, please rejoin");
|
mapIns.popupSimplePressToGo("Couldn't join any room at the moment, please retry", false, () => {
|
||||||
|
window.clearLocalStorageAndBackToLoginScene(true);
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
case constants.RET_CODE.UNKNOWN_ERROR:
|
case constants.RET_CODE.UNKNOWN_ERROR:
|
||||||
case constants.RET_CODE.MYSQL_ERROR:
|
case constants.RET_CODE.MYSQL_ERROR:
|
||||||
@ -305,7 +313,9 @@ window.initPersistentSessionClient = function(onopenCb, expectedRoomId) {
|
|||||||
console.warn(`${mapIns._stringifyRdfIdToActuallyUsedInput()}
|
console.warn(`${mapIns._stringifyRdfIdToActuallyUsedInput()}
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
|
mapIns.popupSimplePressToGo("Disconnected unexpectedly, please retry", false, () => {
|
||||||
window.clearLocalStorageAndBackToLoginScene(true);
|
window.clearLocalStorageAndBackToLoginScene(true);
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user