Merge pull request #72 from cassoule/milo-260129

blackjack chat box
This commit is contained in:
Milo Gourvest
2026-01-29 17:00:43 +01:00
committed by GitHub
2 changed files with 12 additions and 2 deletions

View File

@@ -17,8 +17,8 @@ import {
// Optional: hook into your DB & Discord systems if available // Optional: hook into your DB & Discord systems if available
import { getUser, insertLog, updateUserCoins } from "../../database/index.js"; import { getUser, insertLog, updateUserCoins } from "../../database/index.js";
import { client } from "../../bot/client.js"; import { client } from "../../bot/client.js";
import { emitToast, emitUpdate } from "../socket.js"; import { emitToast, emitUpdate, emitPlayerUpdate } from "../socket.js";
import { EmbedBuilder } from "discord.js"; import { EmbedBuilder, time } from "discord.js";
export function blackjackRoutes(io) { export function blackjackRoutes(io) {
const router = express.Router(); const router = express.Router();
@@ -182,6 +182,7 @@ export function blackjackRoutes(io) {
} }
emitUpdate("player-joined", snapshot(room)); emitUpdate("player-joined", snapshot(room));
emitPlayerUpdate({ id: userId, msg: `${user?.globalName || user?.username} a rejoint la table de Blackjack.`, timestamp: Date.now() });
return res.status(200).json({ message: "joined" }); return res.status(200).json({ message: "joined" });
}); });
@@ -222,6 +223,8 @@ export function blackjackRoutes(io) {
} else { } else {
delete room.players[userId]; delete room.players[userId];
emitUpdate("player-left", snapshot(room)); emitUpdate("player-left", snapshot(room));
const user = await client.users.fetch(userId);
emitPlayerUpdate({ id: userId, msg: `${user?.globalName || user?.username} a quitté la table de Blackjack.`, timestamp: Date.now() });
return res.status(200).json({ message: "left" }); return res.status(200).json({ message: "left" });
} }
}); });
@@ -356,6 +359,8 @@ export function blackjackRoutes(io) {
// Remove leavers // Remove leavers
for (const userId of Object.keys(room.leavingAfterRound)) { for (const userId of Object.keys(room.leavingAfterRound)) {
delete room.players[userId]; delete room.players[userId];
const user = await client.users.fetch(userId);
emitPlayerUpdate({ id: userId, msg: `${user?.globalName || user?.username} a quitté la table de Blackjack.`, timestamp: Date.now() });
} }
// Prepare next round // Prepare next round
startBetting(room, now); startBetting(room, now);

View File

@@ -35,6 +35,10 @@ export function initializeSocket(server, client) {
registerConnect4Events(socket, client); registerConnect4Events(socket, client);
registerSnakeEvents(socket, client); registerSnakeEvents(socket, client);
socket.on("blackjack:chat", (data) => {
io.emit("blackjack:chat", data);
});
socket.on("tictactoe:queue:leave", async ({ discordId }) => await refreshQueuesForUser(discordId, client)); socket.on("tictactoe:queue:leave", async ({ discordId }) => await refreshQueuesForUser(discordId, client));
socket.on("connect4:queue:leave", async ({ discordId }) => await refreshQueuesForUser(discordId, client)); socket.on("connect4:queue:leave", async ({ discordId }) => await refreshQueuesForUser(discordId, client));
socket.on("snake:queue:leave", async ({ discordId }) => await refreshQueuesForUser(discordId, client)); socket.on("snake:queue:leave", async ({ discordId }) => await refreshQueuesForUser(discordId, client));
@@ -600,6 +604,7 @@ export async function emitPokerToast(data) {
} }
export const emitUpdate = (type, room) => io.emit("blackjack:update", { type, room }); export const emitUpdate = (type, room) => io.emit("blackjack:update", { type, room });
export const emitPlayerUpdate = (data) => io.emit("blackjack:chat", data);
export const emitToast = (payload) => io.emit("blackjack:toast", payload); export const emitToast = (payload) => io.emit("blackjack:toast", payload);
export const emitSolitaireUpdate = (userId, moves) => io.emit("solitaire:update", { userId, moves }); export const emitSolitaireUpdate = (userId, moves) => io.emit("solitaire:update", { userId, moves });