player manager, console update
This commit is contained in:
parent
b242d7a095
commit
57a7accdd7
@ -6,7 +6,7 @@ class SessionManager {
|
||||
addPlayer(socketId, playerRaw) {
|
||||
this.sessions.set(socketId, {
|
||||
id: playerRaw.id,
|
||||
nickname: playerRaw.username,
|
||||
username: playerRaw.username,
|
||||
level: playerRaw.level,
|
||||
energy: playerRaw.energy,
|
||||
maxEnergy: playerRaw.maxEnergy,
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
const { Op } = require("sequelize");
|
||||
const Player = require("../../models/Player");
|
||||
const sessionManager = require("../../game/SessionManager");
|
||||
const economyService = require("../../game/EconomyService.js");
|
||||
@ -8,7 +9,6 @@ module.exports = async (io, socket) => {
|
||||
const sid = socket.id.substring(0, 5);
|
||||
|
||||
if (!userId) {
|
||||
console.log(`⚠️ [${sid}] Anonymous connection rejected`);
|
||||
return socket.disconnect();
|
||||
}
|
||||
|
||||
@ -21,7 +21,6 @@ module.exports = async (io, socket) => {
|
||||
id: userId,
|
||||
username: username,
|
||||
});
|
||||
console.log(`🆕 [${sid}] New player registered: ${username}`);
|
||||
} catch (createErr) {
|
||||
player = await Player.findByPk(userId);
|
||||
}
|
||||
@ -35,6 +34,20 @@ module.exports = async (io, socket) => {
|
||||
|
||||
const playerRaw = player.get({ plain: true });
|
||||
sessionManager.addPlayer(socket.id, playerRaw);
|
||||
const onlinePlayersData = sessionManager.getAllOnline();
|
||||
const onlineUsernames = onlinePlayersData.map((p) => p.username);
|
||||
|
||||
const onlineIds = onlinePlayersData.map((p) => p.id);
|
||||
|
||||
const offlinePlayersModels = await Player.findAll({
|
||||
where: {
|
||||
id: { [Op.notIn]: onlineIds },
|
||||
},
|
||||
attributes: ["username"],
|
||||
raw: true,
|
||||
});
|
||||
|
||||
const offlineUsernames = offlinePlayersModels.map((p) => p.username);
|
||||
|
||||
socket.emit("session:ready", {
|
||||
player: {
|
||||
@ -45,10 +58,12 @@ module.exports = async (io, socket) => {
|
||||
experience: playerRaw.experience,
|
||||
},
|
||||
offlineEarned: offlineCredits,
|
||||
onlineCount: sessionManager.getAllOnline().length,
|
||||
onlinePlayers: onlineUsernames,
|
||||
offlinePlayers: offlineUsernames,
|
||||
});
|
||||
|
||||
socket.broadcast.emit("player:joined", { username: playerRaw.username });
|
||||
|
||||
socket.on("player:get_dashboard", async () => {
|
||||
try {
|
||||
const p = await Player.findByPk(userId);
|
||||
@ -57,6 +72,7 @@ module.exports = async (io, socket) => {
|
||||
console.error(`❌ [${sid}] Dashboard error:`, err.message);
|
||||
}
|
||||
});
|
||||
|
||||
socket.on("disconnect", async () => {
|
||||
try {
|
||||
await Player.update(
|
||||
@ -67,7 +83,7 @@ module.exports = async (io, socket) => {
|
||||
|
||||
economyService.removePlayer(userId);
|
||||
sessionManager.removePlayer(socket.id);
|
||||
console.log(`🔌 [${sid}] Player disconnected: ${userId}`);
|
||||
socket.broadcast.emit("player:left", { username: playerRaw.username });
|
||||
});
|
||||
} catch (err) {
|
||||
console.error(`❌ [${sid}] Connection Error:`, err.message);
|
||||
|
||||
Reference in New Issue
Block a user