🌳
pt0/gamesapp/serverF/fetchRoomJdataAI.mts
1import { getGamesDb } from './getGamesDbF.mts'
3const defaultSettings = {
4 maxHumPlayers: 8,
5 aiDescriptEnabled: true,
6 aiDrawEnabled: true,
7 aiDrawingAfterFirstHumanDescript: false,
8 aiDrawerUsername: null,
9}
11export const getGameSettings = (pubEnv: Record<string, unknown> = {}) => ({
12 maxHumPlayers: pubEnv.maxHumPlayers ?? defaultSettings.maxHumPlayers,
13 aiDescriptEnabled: pubEnv.aiDescriptEnabled ?? defaultSettings.aiDescriptEnabled,
14 aiDrawEnabled: pubEnv.aiDrawEnabled ?? defaultSettings.aiDrawEnabled,
15 aiDrawingAfterFirstHumanDescript: pubEnv.aiDrawingAfterFirstHumanDescript ?? defaultSettings.aiDrawingAfterFirstHumanDescript,
16 aiDrawerUsername: pubEnv.aiDrawerUsername ?? defaultSettings.aiDrawerUsername,
17 disableTurnTimers: pubEnv.disableTurnTimers ?? false,
18})
20export const fetchRoomBlockedIps = async ({gameRoom}: {gameRoom: string}) => {
21 const db = getGamesDb()
23 const room = await db.selectFrom('gamerooms')
24 .where('room_label', '=', gameRoom)
25 .select('jdata')
26 .executeTakeFirst()
28 return room?.jdata?.blockedIps || []
31export const fetchRoomJdata = async ({gameRoom}: {gameRoom: string}) => {
32 const db = getGamesDb()
34 const room = await db.selectFrom('gamerooms')
35 .where('room_label', '=', gameRoom)
36 .select('jdata')
37 .executeTakeFirst()
39 return {
40 isPublicRoom: room?.jdata?.isPublicRoom ?? false,
41 blockedIps: room?.jdata?.blockedIps || [],
42 }