Fix Task #91: Server matrix node detection
WHAT WAS DONE: - discovery.js: Added node field to server objects - Maps Pterodactyl node ID 2 → NC1 - Maps Pterodactyl node ID 3 → TX1 - Also includes raw nodeId for debugging - servers.js: Simplified grouping logic - Removed fallback checks for 'Node 2', 'Node 3', name patterns - Now uses clean s.node === 'TX1' / 'NC1' checks THE BUG: getMinecraftServers() was only returning identifier and name, but the matrix filter was checking s.node which was undefined. Servers were being grouped by name pattern fallback only. Files changed: - services/arbiter-3.0/src/panel/discovery.js (+8 lines) - services/arbiter-3.0/src/routes/admin/servers.js (simplified) Signed-off-by: Claude (Chronicler #60) <claude@firefrostgaming.com>
This commit is contained in:
@@ -19,12 +19,20 @@ async function getMinecraftServers() {
|
||||
// Parse the allowed nest IDs from the environment variable
|
||||
const allowedNests = process.env.MINECRAFT_NEST_IDS.split(',').map(id => parseInt(id.trim(), 10));
|
||||
|
||||
// Node ID to friendly name mapping
|
||||
const nodeMap = {
|
||||
2: 'NC1',
|
||||
3: 'TX1'
|
||||
};
|
||||
|
||||
return data.data.filter(server => {
|
||||
// The API returns the nest ID directly as an integer when relationships aren't included
|
||||
return allowedNests.includes(server.attributes.nest);
|
||||
}).map(server => ({
|
||||
identifier: server.attributes.identifier,
|
||||
name: server.attributes.name
|
||||
name: server.attributes.name,
|
||||
nodeId: server.attributes.node,
|
||||
node: nodeMap[server.attributes.node] || `Node ${server.attributes.node}`
|
||||
}));
|
||||
} catch (error) {
|
||||
console.error("Discovery failed:", error);
|
||||
|
||||
@@ -44,8 +44,8 @@ router.get('/matrix', async (req, res) => {
|
||||
}));
|
||||
|
||||
// Group by Node Location
|
||||
const txServers = enrichedServers.filter(s => s.node === 'TX1' || s.node === 'Node 3' || s.name.includes('TX'));
|
||||
const ncServers = enrichedServers.filter(s => s.node === 'NC1' || s.node === 'Node 2' || s.name.includes('NC'));
|
||||
const txServers = enrichedServers.filter(s => s.node === 'TX1');
|
||||
const ncServers = enrichedServers.filter(s => s.node === 'NC1');
|
||||
|
||||
res.render('admin/servers/_matrix_body', { txServers, ncServers, layout: false });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user