2022-07-11 08:22:41 +01:00
|
|
|
// Bayshore - a Wangan Midnight Maximum Tune 6 private server.
|
|
|
|
// Made with love by Luna, and part of Project Asakura.
|
|
|
|
|
2022-07-12 12:31:18 +01:00
|
|
|
import express, { Router } from 'express';
|
2022-07-11 08:22:41 +01:00
|
|
|
import {PrismaClient} from '@prisma/client';
|
2022-07-11 11:45:36 +01:00
|
|
|
import https, {globalAgent} from 'https';
|
2022-07-12 12:17:36 +01:00
|
|
|
import http from 'http';
|
2022-07-11 08:38:33 +01:00
|
|
|
import fs from 'fs';
|
2022-07-11 11:45:36 +01:00
|
|
|
import bodyParser from 'body-parser';
|
2022-07-12 11:42:38 +01:00
|
|
|
import AllnetModule from './allnet';
|
|
|
|
import MuchaModule from './mucha';
|
2022-07-11 11:45:36 +01:00
|
|
|
globalAgent.options.keepAlive = true;
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
require('http').globalAgent.options.keepAlive = true;
|
2022-07-11 08:38:33 +01:00
|
|
|
|
2022-07-12 12:31:18 +01:00
|
|
|
const appRouter = Router();
|
|
|
|
|
2022-07-12 11:42:38 +01:00
|
|
|
const PORT_ALLNET = 80;
|
|
|
|
const PORT_MUCHA = 10082;
|
|
|
|
const PORT_BNGI = 9002;
|
|
|
|
|
2022-07-11 08:38:33 +01:00
|
|
|
const app = express();
|
2022-07-11 11:45:36 +01:00
|
|
|
app.use(bodyParser.raw({
|
|
|
|
type: '*/*'
|
|
|
|
}));
|
2022-07-11 08:38:33 +01:00
|
|
|
|
2022-07-12 11:42:38 +01:00
|
|
|
const muchaApp = express();
|
|
|
|
const allnetApp = express();
|
|
|
|
|
2022-07-11 13:43:39 +01:00
|
|
|
app.use((req, res, next) => {
|
2022-07-12 11:42:38 +01:00
|
|
|
console.log(`[ MAIN] ${req.method} ${req.url}`);
|
|
|
|
next()
|
|
|
|
});
|
|
|
|
|
|
|
|
muchaApp.use((req, res, next) => {
|
|
|
|
console.log(`[ MUCHA] ${req.method} ${req.url}`);
|
|
|
|
next()
|
|
|
|
});
|
|
|
|
|
|
|
|
allnetApp.use((req, res, next) => {
|
|
|
|
console.log(`[ALLNET] ${req.method} ${req.url}`);
|
2022-07-11 13:43:39 +01:00
|
|
|
next()
|
|
|
|
});
|
|
|
|
|
2022-07-11 09:15:30 +01:00
|
|
|
let dirs = fs.readdirSync('dist/modules');
|
|
|
|
for (let i of dirs) {
|
|
|
|
if (i.endsWith('.js')) {
|
|
|
|
let mod = require(`./modules/${i.substring(0, i.length - 3)}`); // .js extension
|
|
|
|
let inst = new mod.default();
|
2022-07-12 12:31:18 +01:00
|
|
|
inst.register(appRouter);
|
2022-07-11 09:15:30 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-12 12:31:18 +01:00
|
|
|
app.use('/', appRouter);
|
|
|
|
app.use('/wmmt6/', appRouter);
|
|
|
|
|
2022-07-11 09:15:30 +01:00
|
|
|
app.all('*', (req, res) => {
|
2022-07-14 10:00:03 +01:00
|
|
|
console.log(`[ MAIN] ${req.method} ${req.url} is unhandled`);
|
2022-07-11 15:19:36 +01:00
|
|
|
res.status(200).end();
|
2022-07-11 09:15:30 +01:00
|
|
|
})
|
|
|
|
|
2022-07-12 11:42:38 +01:00
|
|
|
new AllnetModule().register(allnetApp);
|
|
|
|
new MuchaModule().register(muchaApp);
|
|
|
|
|
|
|
|
let key = fs.readFileSync('./server_wangan.key');
|
|
|
|
let cert = fs.readFileSync('./server_wangan.crt');
|
|
|
|
|
2022-07-12 12:17:36 +01:00
|
|
|
http.createServer(allnetApp).listen(PORT_ALLNET, '0.0.0.0', 511, () => {
|
2022-07-12 11:42:38 +01:00
|
|
|
console.log(`ALL.net server listening on port ${PORT_ALLNET}!`);
|
|
|
|
})
|
|
|
|
|
2022-07-12 12:17:36 +01:00
|
|
|
https.createServer({key, cert}, muchaApp).listen(PORT_MUCHA, '0.0.0.0', 511, () => {
|
2022-07-12 11:42:38 +01:00
|
|
|
console.log(`Mucha server listening on port ${PORT_MUCHA}!`);
|
|
|
|
})
|
|
|
|
|
2022-07-12 12:17:36 +01:00
|
|
|
https.createServer({key, cert}, app).listen(PORT_BNGI, '0.0.0.0', 511, () => {
|
2022-07-12 11:42:38 +01:00
|
|
|
console.log(`Game server listening on port ${PORT_BNGI}!`);
|
2022-07-11 13:43:39 +01:00
|
|
|
})
|