mirror of
https://github.com/WorldEditAxe/eaglerproxy.git
synced 2024-11-08 14:56:05 -08:00
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import metadata from "./metadata.json" assert { type: "json" }
|
|
import { config } from "./config.js"
|
|
import { createServer } from "minecraft-protocol"
|
|
import { ClientState, ConnectionState, ServerGlobals } from "./types.js"
|
|
import { handleConnect, setSG } from "./utils.js"
|
|
|
|
const PluginManager = PLUGIN_MANAGER
|
|
|
|
const Logger = PluginManager.Logger
|
|
const Enums = PluginManager.Enums
|
|
const Chat = PluginManager.Chat
|
|
const Constants = PluginManager.Constants
|
|
const Motd = PluginManager.Motd
|
|
const Player = PluginManager.Player
|
|
const MineProtocol = PluginManager.MineProtocol
|
|
const EaglerSkins = PluginManager.EaglerSkins
|
|
const Util = PluginManager.Util
|
|
|
|
const logger = new Logger("EaglerProxyAAS")
|
|
logger.info(`Starting ${metadata.name} v${metadata.version}...`)
|
|
logger.info(`(internal server port: ${config.bindInternalServerPort}, internal server IP: ${config.bindInternalServerPort})`)
|
|
|
|
logger.info("Starting internal server...")
|
|
let server = createServer({
|
|
host: config.bindInternalServerIp,
|
|
port: config.bindInternalServerPort,
|
|
motdMsg: `${Enums.ChatColor.GOLD}EaglerProxy as a Service`,
|
|
"online-mode": false,
|
|
version: '1.8.9'
|
|
}), sGlobals: ServerGlobals = {
|
|
server: server,
|
|
players: new Map()
|
|
}
|
|
setSG(sGlobals)
|
|
|
|
server.on('login', client => {
|
|
logger.info(`Client ${client.username} has connected to the authentication server.`)
|
|
client.on('end', () => {
|
|
sGlobals.players.delete(client.username)
|
|
logger.info(`Client ${client.username} has disconnected from the authentication server.`)
|
|
})
|
|
const cs: ClientState = {
|
|
state: ConnectionState.AUTH,
|
|
gameClient: client,
|
|
token: null,
|
|
lastStatusUpdate: null
|
|
}
|
|
sGlobals.players.set(client.username, cs)
|
|
handleConnect(cs)
|
|
})
|
|
|
|
|
|
logger.info("Redirecting backend server IP... (this is required for the plugin to function)")
|
|
CONFIG.adapter.server = {
|
|
host: config.bindInternalServerIp,
|
|
port: config.bindInternalServerPort
|
|
} |