mirror of
https://github.com/cassoule/flopobot_v2.git
synced 2026-01-18 16:37:40 +01:00
erynies first step
This commit is contained in:
1
index.js
1
index.js
@@ -43,7 +43,6 @@ server.listen(PORT, async () => {
|
||||
console.log('Initial Fetch Error');
|
||||
}
|
||||
|
||||
|
||||
// Setup scheduled tasks
|
||||
//setupCronJobs(client, io);
|
||||
console.log('[Cron Jobs Initialized]');
|
||||
|
||||
0
src/game/erynies.js
Normal file
0
src/game/erynies.js
Normal file
@@ -17,6 +17,9 @@ export let activeSolitaireGames = {};
|
||||
// Stores active Poker rooms, keyed by a unique room ID (uuidv4).
|
||||
export let pokerRooms = {};
|
||||
|
||||
// Stores active Erynies rooms, keyed by a unique room ID (uuidv4).
|
||||
export let eryniesRooms = {};
|
||||
|
||||
// --- User and Session State ---
|
||||
|
||||
// Stores active user inventories for paginated embeds, keyed by the interaction ID.
|
||||
|
||||
@@ -9,6 +9,7 @@ import { apiRoutes } from './routes/api.js';
|
||||
import { pokerRoutes } from './routes/poker.js';
|
||||
import { solitaireRoutes } from './routes/solitaire.js';
|
||||
import {getSocketIo} from "./socket.js";
|
||||
import {eryniesRoutes} from "./routes/erynies.js";
|
||||
|
||||
// --- EXPRESS APP INITIALIZATION ---
|
||||
const app = express();
|
||||
@@ -49,5 +50,8 @@ app.use('/api/poker', pokerRoutes(client, io));
|
||||
// Solitaire-specific routes
|
||||
app.use('/api/solitaire', solitaireRoutes(client, io));
|
||||
|
||||
// Erynies-specific routes
|
||||
app.use('/api/erynies', eryniesRoutes(client, io));
|
||||
|
||||
|
||||
export { app };
|
||||
60
src/server/routes/erynies.js
Normal file
60
src/server/routes/erynies.js
Normal file
@@ -0,0 +1,60 @@
|
||||
import express from "express";
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import {eryniesRooms} from "../../game/state.js";
|
||||
import {socketEmit} from "../socket.js";
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
/**
|
||||
* Factory function to create and configure the Erynies API routes.
|
||||
* @param {object} client - The Discord.js client instance.
|
||||
* @param {object} io - The Socket.IO server instance.
|
||||
* @returns {object} The configured Express router.
|
||||
*/
|
||||
export function eryniesRoutes(client, io) {
|
||||
|
||||
// --- Router Management Endpoints
|
||||
|
||||
router.get('/', (req, res) => {
|
||||
res.status(200).json({ rooms: eryniesRooms })
|
||||
})
|
||||
|
||||
router.get('/:id', (req, res) => {
|
||||
const room = eryniesRooms[req.params.id];
|
||||
if (room) {
|
||||
res.status(200).json({ room });
|
||||
} else {
|
||||
res.status(404).json({ message: 'Room not found.' });
|
||||
}
|
||||
})
|
||||
|
||||
router.post('/create', async (req, res) => {
|
||||
const { creatorId } = req.body;
|
||||
if (!creatorId) return res.status(404).json({ message: 'Creator ID is required.' });
|
||||
|
||||
if (Object.values(eryniesRooms).some(room => creatorId === room.host_id || room.players[creatorId])) {
|
||||
res.status(404).json({ message: 'You are already in a room.' });
|
||||
}
|
||||
|
||||
const creator = await client.users.fetch(creatorId);
|
||||
const id = uuidv4()
|
||||
|
||||
eryniesRooms[id] = {
|
||||
id,
|
||||
host_id: creatorId,
|
||||
host_name: creator.globalName,
|
||||
created_at: Date.now(),
|
||||
last_move_at: null,
|
||||
players: {},
|
||||
current_player: null,
|
||||
current_turn: null,
|
||||
playing: false,
|
||||
winners: [],
|
||||
};
|
||||
|
||||
await socketEmit('erynies-update', { room: eryniesRooms[id], type: 'room-created' });
|
||||
res.status(200).json({ room: id });
|
||||
})
|
||||
|
||||
return router;
|
||||
}
|
||||
@@ -17,7 +17,7 @@ const router = express.Router();
|
||||
/**
|
||||
* Factory function to create and configure the poker API routes.
|
||||
* @param {object} client - The Discord.js client instance.
|
||||
* @param {object} io - The Socket.IO server instance. // FIX: Pass io in as a parameter
|
||||
* @param {object} io - The Socket.IO server instance.
|
||||
* @returns {object} The configured Express router.
|
||||
*/
|
||||
export function pokerRoutes(client, io) {
|
||||
@@ -78,7 +78,6 @@ export function pokerRoutes(client, io) {
|
||||
res.status(200).json({ message: 'Successfully joined.' });
|
||||
});
|
||||
|
||||
// NEW: Endpoint to accept a player from the queue
|
||||
router.post('/accept', async (req, res) => {
|
||||
const { hostId, playerId, roomId } = req.body;
|
||||
const room = pokerRooms[roomId];
|
||||
|
||||
Reference in New Issue
Block a user