hytopia 0.10.0-prerelease-10 → 0.10.0-prerelease-12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/scripts.js +7 -12
- package/package.json +1 -1
- package/server.mjs +1 -1
package/bin/scripts.js
CHANGED
@@ -97,18 +97,11 @@ function start() {
|
|
97
97
|
}
|
98
98
|
};
|
99
99
|
|
100
|
-
const
|
100
|
+
const restartNode = () => {
|
101
101
|
stopNode();
|
102
102
|
child = spawn(process.execPath, ['index.mjs'], { stdio: 'inherit', shell: false });
|
103
103
|
};
|
104
104
|
|
105
|
-
const scheduleRestart = () => {
|
106
|
-
if (restartTimer) clearTimeout(restartTimer);
|
107
|
-
logDivider();
|
108
|
-
console.log('Restarting HYTOPIA server...');
|
109
|
-
restartTimer = setTimeout(startNode, 100);
|
110
|
-
};
|
111
|
-
|
112
105
|
const ctx = await esbuild.context({
|
113
106
|
entryPoints: ['index.ts'],
|
114
107
|
outfile: './index.mjs',
|
@@ -118,17 +111,19 @@ function start() {
|
|
118
111
|
target: 'node24',
|
119
112
|
sourcemap: 'inline',
|
120
113
|
plugins: [{
|
121
|
-
name: 'restart-
|
114
|
+
name: 'restart-after-build',
|
122
115
|
setup(build) {
|
116
|
+
build.onStart(() => {
|
117
|
+
if (restartTimer) { clearTimeout(restartTimer); restartTimer = null; }
|
118
|
+
});
|
123
119
|
build.onEnd((result) => {
|
124
|
-
if (
|
120
|
+
if (result.errors?.length) return;
|
121
|
+
restartTimer = setTimeout(restartNode, 150);
|
125
122
|
});
|
126
123
|
}
|
127
124
|
}]
|
128
125
|
});
|
129
126
|
|
130
|
-
await ctx.rebuild();
|
131
|
-
startNode();
|
132
127
|
await ctx.watch();
|
133
128
|
|
134
129
|
const cleanup = async () => {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hytopia",
|
3
|
-
"version": "0.10.0-prerelease-
|
3
|
+
"version": "0.10.0-prerelease-12",
|
4
4
|
"description": "The HYTOPIA SDK makes it easy for developers to create massively multiplayer games using JavaScript or TypeScript.",
|
5
5
|
"type": "module",
|
6
6
|
"main": "./server.mjs",
|
package/server.mjs
CHANGED
@@ -442,7 +442,7 @@ qYGMwU/HBVHkLAn5XvT2a9xM0mzZ558d+ahbw8qAgRxg7BZ+2PW/bf7F2WRBUk1f
|
|
442
442
|
xauhAoGBALEspoxQozwohGQnP7EMF0/0JoKNpdNv0b0qCVvNiMo0+N297lI2mFQp
|
443
443
|
6xYlW/1l9afLokklF/J2IsyBrTCZoY7SaEk/lMMrQSyra+y0z71ogZ8A4ny9fxsj
|
444
444
|
0dDYJZGllL+3E/MQfd7k+KnOM/+A+cPoAnci76+L3vdkUb2P8SJk
|
445
|
-
-----END RSA PRIVATE KEY-----`;var IE=process.env.PORT??8080,fE="0.10.0-prerelease-
|
445
|
+
-----END RSA PRIVATE KEY-----`;var IE=process.env.PORT??8080,fE="0.10.0-prerelease-12",_E;((Y)=>{Y.READY="WEBSERVER.READY";Y.STOPPED="WEBSERVER.STOPPED";Y.ERROR="WEBSERVER.ERROR";Y.UPGRADE="WEBSERVER.UPGRADE"})(_E||={});class D3 extends L0{static instance=new D3;_webserver=k2.default();_internalHttpServer;constructor(){super();this._webserver.use((Z,J,X)=>{J.header("Access-Control-Allow-Origin","*"),X()}),this._webserver.get("/",(Z,J)=>{J.json({status:"OK",version:fE,runtime:"node"})}),this._webserver.use(k2.default.static("assets"));try{this._webserver.use(k2.default.static(tn1.dirname(p.resolve("/Users/arkdev/Desktop/HYTOPIA/hytopia/assets/release/index.js"))))}catch{}}start(){if(!this._internalHttpServer)this._internalHttpServer=process.env.NODE_ENV==="production"?on1.createServer(this._webserver):rn1.createServer({key:T2.existsSync("assets/certs/localhost.key")?T2.readFileSync("assets/certs/localhost.key"):cQ0,cert:T2.existsSync("assets/certs/localhost.crt")?T2.readFileSync("assets/certs/localhost.crt"):jQ0},this._webserver),this._internalHttpServer.on("upgrade",this._onUpgrade),this._internalHttpServer.on("error",this._onError),this._internalHttpServer.on("close",this._onStopped);else y.warning("WebServer.start(): server already started!");this._internalHttpServer.listen(IE,this._onStarted),console.info(`WebServer.start(): Server running on port ${IE}.`)}stop(){if(this._internalHttpServer)return new Promise((Z,J)=>{this._internalHttpServer.close((X)=>{if(X)J(X);else Z(!0)})});else return y.warning("WebServer.stop(): server not started."),Promise.resolve(!1)}_onStarted=()=>{this.emitWithGlobal("WEBSERVER.READY",{})};_onUpgrade=async(Z,J,X)=>{let $=en1.parse(Z.url??"",!0).query,Y=$.connectionId?.toString(),Q=$.sessionToken?.toString()??"";if(Y&&C7.instance.isValidConnectionId(Y))Z.connectionId=Y;else{let K=await x7.instance.getPlayerSession(Q);if(K?.error){let W=`${K.error.code}: ${K.error.message}`;J.write(`HTTP/1.1 401 Unauthorized\r
|
446
446
|
Content-Type: text/plain\r
|
447
447
|
Content-Length: ${W.length}\r
|
448
448
|
Connection: close\r
|