auto restart system
parent
34f012e999
commit
7af4023663
|
@ -0,0 +1,21 @@
|
|||
package minecraft
|
||||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"krakatoa.net/backend/modules/configs/serverConfig"
|
||||
"krakatoa.net/backend/modules/kraProtocol"
|
||||
"krakatoa.net/backend/modules/logger"
|
||||
"krakatoa.net/backend/serverCommunication"
|
||||
)
|
||||
|
||||
func RestartServer(c *fiber.Ctx) error {
|
||||
if c.Params("accessKey") == serverConfig.Cfg.Servers.MinecraftServer.AccessKey {
|
||||
logger.Minecraft.Infoln("RestartServer msg", c.Params("serverName"), c.Hostname(), c.IP())
|
||||
|
||||
serverCommunication.SendMessageToMinecraftServer(kraProtocol.StatusSend, kraProtocol.DestProxy, "", 33329, c.Params("serverName"))
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
return c.SendStatus(fiber.StatusUnauthorized)
|
||||
}
|
|
@ -2,6 +2,7 @@ package router
|
|||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"krakatoa.net/backend/routers/api/v1/minecraft"
|
||||
"krakatoa.net/backend/routers/api/v1/mobile"
|
||||
"krakatoa.net/backend/routers/api/v1/voice"
|
||||
)
|
||||
|
@ -19,4 +20,7 @@ func SetupWebRoutes(app *fiber.App) {
|
|||
|
||||
mobileV1.Get("/:mobileWebCode", mobile.GetMobileWebToken)
|
||||
|
||||
minecraftV1 := apiV1.Group("/minecraft")
|
||||
|
||||
minecraftV1.Get("/:accessKey/:serverName", minecraft.RestartServer)
|
||||
}
|
||||
|
|
|
@ -22,9 +22,9 @@ func GetMinecraftClientByName(Name string) *structs.MinecraftClient {
|
|||
}
|
||||
|
||||
func getMinecraftServerNameByDest(dest int) string {
|
||||
if dest == DestProxy {
|
||||
if dest == kraProtocol.DestProxy {
|
||||
return "proxy-1"
|
||||
} else { // get players current server from db
|
||||
} else { // get players current server from db if dest is 11
|
||||
return "lobby-1"
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ func HandleMinecraftMessage(conn *websocket.Conn, status int, cmdID int, dest in
|
|||
var raw []byte
|
||||
var err error
|
||||
|
||||
if dest == DestBackend {
|
||||
if dest == kraProtocol.DestBackend {
|
||||
resArgs := minecraftCommandHandler(cmdNumber, playerUuid)
|
||||
|
||||
if status == kraProtocol.StatusGet {
|
||||
|
@ -45,7 +45,7 @@ func HandleMinecraftMessage(conn *websocket.Conn, status int, cmdID int, dest in
|
|||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
}
|
||||
} else if dest == DestVoice || dest == DestMobile { // forwarding messsage to voice or mobile
|
||||
} else if dest == kraProtocol.DestVoice || dest == kraProtocol.DestMobile { // forwarding messsage to voice or mobile
|
||||
destConn := getConnForDest(dest, playerUuid)
|
||||
|
||||
if destConn != nil {
|
||||
|
@ -65,6 +65,16 @@ func HandleMinecraftMessage(conn *websocket.Conn, status int, cmdID int, dest in
|
|||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
}
|
||||
} else if dest == kraProtocol.DestProxy {
|
||||
client := GetMinecraftClientByName("proxy-1")
|
||||
|
||||
raw := kraProtocol.SendMessageToJava(status, cmdID, dest, playerUuid, cmdNumber, args)
|
||||
|
||||
err = client.Connection.WriteMessage(websocket.BinaryMessage, raw)
|
||||
|
||||
if err != nil {
|
||||
logger.Minecraft.Warnln("write:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,6 +87,7 @@ func minecraftCommandHandler(cmdNumber int, playerUuid string) (args string) {
|
|||
}
|
||||
}
|
||||
|
||||
// Deprecated: only for testing, use SendMessageToMinecraftServer instead
|
||||
func SendMessageToServer(dest int, playerUuid string, args string) {
|
||||
mcClient := GetMinecraftClientByName(getMinecraftServerNameByDest(dest))
|
||||
|
||||
|
@ -84,3 +95,18 @@ func SendMessageToServer(dest int, playerUuid string, args string) {
|
|||
|
||||
mcClient.Connection.WriteMessage(websocket.BinaryMessage, raw)
|
||||
}
|
||||
|
||||
func SendMessageToMinecraftServer(status int, dest int, playerUuid string, cmdNumber int, args string) {
|
||||
cmdID := 0
|
||||
raw := kraProtocol.SendMessageToJava(status, cmdID, dest, playerUuid, cmdNumber, args)
|
||||
|
||||
serverName := getMinecraftServerNameByDest(dest)
|
||||
|
||||
mcClient := GetMinecraftClientByName(serverName)
|
||||
|
||||
err := mcClient.Connection.WriteMessage(websocket.BinaryMessage, raw)
|
||||
|
||||
if err != nil {
|
||||
logger.Minecraft.Warnln("err", err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue