mirror of
https://github.com/hack-chat/main.git
synced 2024-03-22 13:20:33 +08:00
7ecb31c46c
Fleshing out the new channel ownership feature, along with a typo fix and small syntax updates. A claim can now be staked with /claimchannel, a channel owner may change a trip's level using /setlevel To do: unclaimchannel, setmotd, makeprivate, makepublic, renewclaim, garbage keeping, update mod commands to accept channelOwner and channelModerator, etc
52 lines
1.1 KiB
JavaScript
52 lines
1.1 KiB
JavaScript
import {
|
|
existsSync,
|
|
readFileSync,
|
|
} from 'node:fs';
|
|
import {
|
|
Low,
|
|
JSONFile,
|
|
} from 'lowdb';
|
|
import {
|
|
CoreApp,
|
|
} from 'hackchat-server';
|
|
|
|
// required file paths
|
|
const SessionLocation = './session.key';
|
|
const SaltLocation = './salt.key';
|
|
const AppConfigLocation = './config.json';
|
|
|
|
// verify required files exist
|
|
if (existsSync(SessionLocation) === false) {
|
|
throw Error('Missing session key, you may need to run: npm run config');
|
|
}
|
|
|
|
if (existsSync(SaltLocation) === false) {
|
|
throw Error('Missing salt key, you may need to run: npm run config');
|
|
}
|
|
|
|
if (existsSync(AppConfigLocation) === false) {
|
|
throw Error('Missing config, you may need to run: npm run config');
|
|
}
|
|
|
|
// build main hack chat server
|
|
const server = new CoreApp({
|
|
configPath: './.hcserver.json',
|
|
logErrDetailed: true,
|
|
lang: 'en',
|
|
});
|
|
|
|
// load sessoin key data
|
|
server.sessionKey = readFileSync(SessionLocation);
|
|
|
|
// load salt key data
|
|
server.saltKey = readFileSync(SaltLocation);
|
|
|
|
// load the configuration data
|
|
const adapter = new JSONFile(AppConfigLocation);
|
|
server.appConfig = new Low(adapter);
|
|
await server.appConfig.read();
|
|
|
|
server.init();
|
|
|
|
console.log('Websocket server ready');
|