Gacha game centered around vore.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
vore-gacha/src/app.ts

41 lines
1.3 KiB

import dotenv from "dotenv";
import {GameServer} from "./GameServer.js";
import cryptoRandomString from "crypto-random-string";
import pino from "pino"
import {PrismaClient} from "./queries/Prisma.js";
import {ChannelManager} from "./queries/ChannelManager.js";
import {UserManager} from "./queries/UserManager.js";
const log = pino()
async function main(): Promise<void> {
const {parsed, error} = dotenv.config()
if (error || !parsed) {
throw error ?? Error("No parsed data.")
}
const clientSecret = parsed["DISCORD_CLIENT_SECRET"]
const appId = parsed["DISCORD_APP_ID"]
const botToken = parsed["DISCORD_BOT_TOKEN"]
const publicKey = parsed["DISCORD_PUBLIC_KEY"]
const listenPort = parseInt(parsed["HTTP_PORT"] ?? "5244")
const listenAddress = parsed["HTTP_ADDRESS"] ?? "127.0.0.1"
const cookieSecret = parsed["COOKIE_SECRET"] ?? cryptoRandomString({length: 32, type: "base64"})
const client = new PrismaClient()
await client.$connect()
const deps = {
appId,
listenAddress,
listenPort,
clientSecret,
cookieSecret,
channelManager: new ChannelManager(client),
userManager: new UserManager(client),
botToken,
publicKey,
}
await new GameServer(deps).initialize()
}
main().catch((err) => {
log.fatal(err, "Startup failed!")
})