From 7ca85f433a6902a8b17451a28a07b92980a7b6a5 Mon Sep 17 00:00:00 2001
From: sirpiglr <49359077-sirpiglr@users.noreply.replit.com>
Date: Mon, 8 Dec 2025 03:38:13 +0000
Subject: [PATCH] Add persistent storage for federation mappings and tickets
Integrates Supabase for persistent storage of federation mappings and active tickets, along with adding new commands for announcements, audit logs, and polls.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: aed2e46d-25bb-4b73-81a1-bb9e8437c261
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 110a0afc-77c3-48ac-afca-8e969438dafc
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3bdfff67-975a-46ad-9845-fbb6b4a4c4b5/aed2e46d-25bb-4b73-81a1-bb9e8437c261/hHBt1No
Replit-Helium-Checkpoint-Created: true
---
.replit | 4 +
aethex-bot/bot.js | 148 +++++++++++++++++--
aethex-bot/commands/announce.js | 111 ++++++++++++++
aethex-bot/commands/auditlog.js | 105 ++++++++++++++
aethex-bot/commands/federation.js | 13 +-
aethex-bot/commands/poll.js | 91 ++++++++++++
aethex-bot/commands/stats.js | 10 +-
aethex-bot/commands/ticket.js | 13 +-
aethex-bot/public/dashboard.html | 183 ++++++++++++++++++++++++
attached_assets/image_1765164237221.png | Bin 0 -> 84151 bytes
10 files changed, 661 insertions(+), 17 deletions(-)
create mode 100644 aethex-bot/commands/announce.js
create mode 100644 aethex-bot/commands/auditlog.js
create mode 100644 aethex-bot/commands/poll.js
create mode 100644 aethex-bot/public/dashboard.html
create mode 100644 attached_assets/image_1765164237221.png
diff --git a/.replit b/.replit
index 5b6f647..f9aee22 100644
--- a/.replit
+++ b/.replit
@@ -22,6 +22,10 @@ externalPort = 80
localPort = 8080
externalPort = 8080
+[[ports]]
+localPort = 33701
+externalPort = 3000
+
[workflows]
runButton = "Project"
diff --git a/aethex-bot/bot.js b/aethex-bot/bot.js
index d8833f0..e18d28b 100644
--- a/aethex-bot/bot.js
+++ b/aethex-bot/bot.js
@@ -12,6 +12,9 @@ const { createClient } = require("@supabase/supabase-js");
const http = require("http");
const fs = require("fs");
const path = require("path");
+
+// Dashboard HTML path
+const dashboardPath = path.join(__dirname, "public", "dashboard.html");
require("dotenv").config();
// =============================================================================
@@ -107,6 +110,54 @@ client.HEAT_THRESHOLD = HEAT_THRESHOLD;
const federationMappings = new Map();
client.federationMappings = federationMappings;
+async function loadFederationMappings() {
+ if (!supabase) return;
+ try {
+ const { data, error } = await supabase
+ .from('federation_mappings')
+ .select('*');
+ if (error) throw error;
+ for (const mapping of data || []) {
+ federationMappings.set(mapping.role_id, {
+ name: mapping.role_name,
+ guildId: mapping.guild_id,
+ guildName: mapping.guild_name,
+ linkedAt: new Date(mapping.linked_at).getTime(),
+ });
+ }
+ console.log(`[Federation] Loaded ${federationMappings.size} mappings from database`);
+ } catch (e) {
+ console.warn('[Federation] Could not load mappings:', e.message);
+ }
+}
+
+async function saveFederationMapping(roleId, data) {
+ if (!supabase) return;
+ try {
+ await supabase.from('federation_mappings').upsert({
+ role_id: roleId,
+ role_name: data.name,
+ guild_id: data.guildId,
+ guild_name: data.guildName,
+ linked_at: new Date(data.linkedAt).toISOString(),
+ });
+ } catch (e) {
+ console.warn('[Federation] Could not save mapping:', e.message);
+ }
+}
+
+async function deleteFederationMapping(roleId) {
+ if (!supabase) return;
+ try {
+ await supabase.from('federation_mappings').delete().eq('role_id', roleId);
+ } catch (e) {
+ console.warn('[Federation] Could not delete mapping:', e.message);
+ }
+}
+
+client.saveFederationMapping = saveFederationMapping;
+client.deleteFederationMapping = deleteFederationMapping;
+
const REALM_GUILDS = {
hub: process.env.HUB_GUILD_ID,
labs: process.env.LABS_GUILD_ID,
@@ -153,6 +204,59 @@ client.on('guildCreate', async (guild) => {
const activeTickets = new Map();
client.activeTickets = activeTickets;
+async function loadActiveTickets() {
+ if (!supabase) return;
+ try {
+ const { data, error } = await supabase
+ .from('tickets')
+ .select('*')
+ .eq('status', 'open');
+ if (error) throw error;
+ for (const ticket of data || []) {
+ activeTickets.set(ticket.channel_id, {
+ odId: ticket.id,
+ userId: ticket.user_id,
+ guildId: ticket.guild_id,
+ reason: ticket.reason,
+ createdAt: new Date(ticket.created_at).getTime(),
+ });
+ }
+ console.log(`[Tickets] Loaded ${activeTickets.size} active tickets from database`);
+ } catch (e) {
+ console.warn('[Tickets] Could not load tickets:', e.message);
+ }
+}
+
+async function saveTicket(channelId, data) {
+ if (!supabase) return;
+ try {
+ await supabase.from('tickets').insert({
+ channel_id: channelId,
+ user_id: data.userId,
+ guild_id: data.guildId,
+ reason: data.reason,
+ status: 'open',
+ });
+ } catch (e) {
+ console.warn('[Tickets] Could not save ticket:', e.message);
+ }
+}
+
+async function closeTicket(channelId) {
+ if (!supabase) return;
+ try {
+ await supabase
+ .from('tickets')
+ .update({ status: 'closed', closed_at: new Date().toISOString() })
+ .eq('channel_id', channelId);
+ } catch (e) {
+ console.warn('[Tickets] Could not close ticket:', e.message);
+ }
+}
+
+client.saveTicket = saveTicket;
+client.closeTicket = closeTicket;
+
// =============================================================================
// SENTINEL: ALERT SYSTEM (New)
// =============================================================================
@@ -269,16 +373,21 @@ client.on("interactionCreate", async (interaction) => {
console.log(`[Command] Completed: ${interaction.commandName}`);
} catch (error) {
console.error(`Error executing ${interaction.commandName}:`, error);
- const errorEmbed = new EmbedBuilder()
- .setColor(0xff0000)
- .setTitle("Command Error")
- .setDescription("There was an error while executing this command.")
- .setFooter({ text: "Contact support if this persists" });
- if (interaction.replied || interaction.deferred) {
- await interaction.followUp({ embeds: [errorEmbed], ephemeral: true });
- } else {
- await interaction.reply({ embeds: [errorEmbed], ephemeral: true });
+ try {
+ const errorEmbed = new EmbedBuilder()
+ .setColor(0xff0000)
+ .setTitle("Command Error")
+ .setDescription("There was an error while executing this command.")
+ .setFooter({ text: "Contact support if this persists" });
+
+ if (interaction.replied || interaction.deferred) {
+ await interaction.followUp({ embeds: [errorEmbed], ephemeral: true }).catch(() => {});
+ } else {
+ await interaction.reply({ embeds: [errorEmbed], ephemeral: true }).catch(() => {});
+ }
+ } catch (replyError) {
+ console.error("Failed to send error response:", replyError.message);
}
}
}
@@ -293,6 +402,8 @@ client.on("interactionCreate", async (interaction) => {
const channel = interaction.channel;
if (channel && channel.type === ChannelType.GuildText) {
await interaction.reply({ content: 'Closing ticket...', ephemeral: true });
+ activeTickets.delete(channel.id);
+ await closeTicket(channel.id);
setTimeout(() => channel.delete().catch(console.error), 3000);
}
} catch (err) {
@@ -417,6 +528,19 @@ http
return;
}
+ if (req.url === "/" || req.url === "/dashboard") {
+ res.setHeader("Content-Type", "text/html");
+ try {
+ const html = fs.readFileSync(dashboardPath, "utf8");
+ res.writeHead(200);
+ res.end(html);
+ } catch (e) {
+ res.writeHead(404);
+ res.end("
Dashboard not found
");
+ }
+ return;
+ }
+
if (req.url === "/health") {
res.writeHead(200);
res.end(
@@ -886,13 +1010,17 @@ client.login(token).catch((error) => {
process.exit(1);
});
-client.once("ready", async () => {
+client.once("clientReady", async () => {
console.log(`Bot logged in as ${client.user.tag}`);
console.log(`Bot ID: ${client.user.id}`);
console.log(`CLIENT_ID from env: ${process.env.DISCORD_CLIENT_ID}`);
console.log(`IDs match: ${client.user.id === process.env.DISCORD_CLIENT_ID}`);
console.log(`Watching ${client.guilds.cache.size} server(s)`);
+ // Load persisted data from Supabase
+ await loadFederationMappings();
+ await loadActiveTickets();
+
// Auto-register commands on startup
console.log("Registering slash commands with Discord...");
const regResult = await registerDiscordCommands();
diff --git a/aethex-bot/commands/announce.js b/aethex-bot/commands/announce.js
new file mode 100644
index 0000000..9f8d8f9
--- /dev/null
+++ b/aethex-bot/commands/announce.js
@@ -0,0 +1,111 @@
+const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require('discord.js');
+
+module.exports = {
+ data: new SlashCommandBuilder()
+ .setName('announce')
+ .setDescription('Send an announcement to all realms')
+ .setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
+ .addStringOption(option =>
+ option.setName('title')
+ .setDescription('Announcement title')
+ .setRequired(true)
+ .setMaxLength(256)
+ )
+ .addStringOption(option =>
+ option.setName('message')
+ .setDescription('Announcement message')
+ .setRequired(true)
+ .setMaxLength(2000)
+ )
+ .addStringOption(option =>
+ option.setName('color')
+ .setDescription('Embed color')
+ .setRequired(false)
+ .addChoices(
+ { name: 'Purple (Default)', value: '7c3aed' },
+ { name: 'Green (Success)', value: '00ff00' },
+ { name: 'Red (Alert)', value: 'ff0000' },
+ { name: 'Blue (Info)', value: '3b82f6' },
+ { name: 'Yellow (Warning)', value: 'fbbf24' }
+ )
+ )
+ .addBooleanOption(option =>
+ option.setName('ping')
+ .setDescription('Ping @everyone with this announcement')
+ .setRequired(false)
+ ),
+
+ async execute(interaction, supabase, client) {
+ await interaction.deferReply({ ephemeral: true });
+
+ const title = interaction.options.getString('title');
+ const message = interaction.options.getString('message');
+ const color = parseInt(interaction.options.getString('color') || '7c3aed', 16);
+ const ping = interaction.options.getBoolean('ping') || false;
+
+ const embed = new EmbedBuilder()
+ .setColor(color)
+ .setTitle(title)
+ .setDescription(message)
+ .setFooter({ text: `Announced by ${interaction.user.tag}` })
+ .setTimestamp();
+
+ const results = [];
+ const REALM_GUILDS = client.REALM_GUILDS;
+
+ for (const [realm, guildId] of Object.entries(REALM_GUILDS)) {
+ if (!guildId) continue;
+
+ const guild = client.guilds.cache.get(guildId);
+ if (!guild) {
+ results.push({ realm, status: 'offline' });
+ continue;
+ }
+
+ try {
+ const announcementChannel = guild.channels.cache.find(
+ c => c.isTextBased() && !c.isThread() && !c.isVoiceBased() &&
+ (c.name.includes('announcement') || c.name.includes('general'))
+ );
+
+ if (announcementChannel && announcementChannel.isTextBased()) {
+ const content = ping ? '@everyone' : null;
+ await announcementChannel.send({ content, embeds: [embed] });
+ results.push({ realm, status: 'sent', channel: announcementChannel.name });
+ } else {
+ results.push({ realm, status: 'no_channel' });
+ }
+ } catch (error) {
+ console.error(`Announce error for ${realm}:`, error);
+ results.push({ realm, status: 'error', error: error.message });
+ }
+ }
+
+ if (supabase) {
+ try {
+ await supabase.from('audit_logs').insert({
+ action: 'announce',
+ user_id: interaction.user.id,
+ username: interaction.user.tag,
+ guild_id: interaction.guildId,
+ details: { title, message, results },
+ });
+ } catch (e) {
+ console.warn('Failed to log announcement:', e.message);
+ }
+ }
+
+ const resultText = results.map(r => {
+ const emoji = r.status === 'sent' ? '✅' : r.status === 'offline' ? '⚫' : '❌';
+ return `${emoji} **${r.realm}**: ${r.status}${r.channel ? ` (#${r.channel})` : ''}`;
+ }).join('\n');
+
+ const resultEmbed = new EmbedBuilder()
+ .setColor(0x7c3aed)
+ .setTitle('Announcement Results')
+ .setDescription(resultText || 'No realms configured')
+ .setTimestamp();
+
+ await interaction.editReply({ embeds: [resultEmbed] });
+ },
+};
diff --git a/aethex-bot/commands/auditlog.js b/aethex-bot/commands/auditlog.js
new file mode 100644
index 0000000..2285efb
--- /dev/null
+++ b/aethex-bot/commands/auditlog.js
@@ -0,0 +1,105 @@
+const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require('discord.js');
+
+module.exports = {
+ data: new SlashCommandBuilder()
+ .setName('auditlog')
+ .setDescription('View admin action audit logs')
+ .setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
+ .addSubcommand(subcommand =>
+ subcommand
+ .setName('view')
+ .setDescription('View recent audit logs')
+ .addIntegerOption(option =>
+ option.setName('limit')
+ .setDescription('Number of logs to show (default: 10)')
+ .setRequired(false)
+ .setMinValue(1)
+ .setMaxValue(50)
+ )
+ )
+ .addSubcommand(subcommand =>
+ subcommand
+ .setName('user')
+ .setDescription('View logs for a specific user')
+ .addUserOption(option =>
+ option.setName('target')
+ .setDescription('User to lookup')
+ .setRequired(true)
+ )
+ ),
+
+ async execute(interaction, supabase, client) {
+ if (!supabase) {
+ return interaction.reply({ content: 'Audit logging requires Supabase.', ephemeral: true });
+ }
+
+ await interaction.deferReply({ ephemeral: true });
+ const subcommand = interaction.options.getSubcommand();
+
+ try {
+ let logs = [];
+
+ if (subcommand === 'view') {
+ const limit = interaction.options.getInteger('limit') || 10;
+
+ const { data, error } = await supabase
+ .from('audit_logs')
+ .select('*')
+ .eq('guild_id', interaction.guildId)
+ .order('created_at', { ascending: false })
+ .limit(limit);
+
+ if (error) throw error;
+ logs = data || [];
+ }
+
+ if (subcommand === 'user') {
+ const target = interaction.options.getUser('target');
+
+ const { data, error } = await supabase
+ .from('audit_logs')
+ .select('*')
+ .eq('user_id', target.id)
+ .order('created_at', { ascending: false })
+ .limit(20);
+
+ if (error) throw error;
+ logs = data || [];
+ }
+
+ if (logs.length === 0) {
+ const embed = new EmbedBuilder()
+ .setColor(0x7c3aed)
+ .setTitle('Audit Logs')
+ .setDescription('No audit logs found.')
+ .setTimestamp();
+
+ return await interaction.editReply({ embeds: [embed] });
+ }
+
+ const logText = logs.map(log => {
+ const time = new Date(log.created_at);
+ const timeStr = ``;
+ return `**${log.action}** by ${log.username} ${timeStr}`;
+ }).join('\n');
+
+ const embed = new EmbedBuilder()
+ .setColor(0x7c3aed)
+ .setTitle('Audit Logs')
+ .setDescription(logText)
+ .setFooter({ text: `Showing ${logs.length} log(s)` })
+ .setTimestamp();
+
+ await interaction.editReply({ embeds: [embed] });
+ } catch (error) {
+ console.error('Auditlog command error:', error);
+ const embed = new EmbedBuilder()
+ .setColor(0xff0000)
+ .setTitle('Error')
+ .setDescription('Failed to fetch audit logs.')
+ .setTimestamp();
+
+ await interaction.editReply({ embeds: [embed] });
+ }
+ },
+};
diff --git a/aethex-bot/commands/federation.js b/aethex-bot/commands/federation.js
index 1d07978..0f2d544 100644
--- a/aethex-bot/commands/federation.js
+++ b/aethex-bot/commands/federation.js
@@ -37,12 +37,17 @@ module.exports = {
if (subcommand === 'link') {
const role = interaction.options.getRole('role');
- client.federationMappings.set(role.id, {
+ const mappingData = {
name: role.name,
guildId: interaction.guildId,
guildName: interaction.guild.name,
linkedAt: Date.now(),
- });
+ };
+ client.federationMappings.set(role.id, mappingData);
+
+ if (client.saveFederationMapping) {
+ await client.saveFederationMapping(role.id, mappingData);
+ }
const embed = new EmbedBuilder()
.setColor(0x00ff00)
@@ -63,6 +68,10 @@ module.exports = {
if (client.federationMappings.has(role.id)) {
client.federationMappings.delete(role.id);
+ if (client.deleteFederationMapping) {
+ await client.deleteFederationMapping(role.id);
+ }
+
const embed = new EmbedBuilder()
.setColor(0xff6600)
.setTitle('Role Unlinked')
diff --git a/aethex-bot/commands/poll.js b/aethex-bot/commands/poll.js
new file mode 100644
index 0000000..9045db1
--- /dev/null
+++ b/aethex-bot/commands/poll.js
@@ -0,0 +1,91 @@
+const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
+
+const POLL_EMOJIS = ['1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣', '9️⃣', '🔟'];
+
+module.exports = {
+ data: new SlashCommandBuilder()
+ .setName('poll')
+ .setDescription('Create a community poll')
+ .addStringOption(option =>
+ option.setName('question')
+ .setDescription('The poll question')
+ .setRequired(true)
+ .setMaxLength(256)
+ )
+ .addStringOption(option =>
+ option.setName('options')
+ .setDescription('Poll options separated by | (e.g., "Yes | No | Maybe")')
+ .setRequired(true)
+ .setMaxLength(1000)
+ )
+ .addIntegerOption(option =>
+ option.setName('duration')
+ .setDescription('Poll duration in hours (default: 24)')
+ .setRequired(false)
+ .setMinValue(1)
+ .setMaxValue(168)
+ ),
+
+ async execute(interaction, supabase, client) {
+ const question = interaction.options.getString('question');
+ const optionsRaw = interaction.options.getString('options');
+ const duration = interaction.options.getInteger('duration') || 24;
+
+ const options = optionsRaw.split('|').map(o => o.trim()).filter(o => o.length > 0);
+
+ if (options.length < 2) {
+ return interaction.reply({
+ content: 'Please provide at least 2 options separated by |',
+ ephemeral: true
+ });
+ }
+
+ if (options.length > 10) {
+ return interaction.reply({
+ content: 'Maximum 10 options allowed',
+ ephemeral: true
+ });
+ }
+
+ const endsAt = new Date(Date.now() + duration * 60 * 60 * 1000);
+ const optionsText = options.map((opt, i) => `${POLL_EMOJIS[i]} ${opt}`).join('\n');
+
+ const embed = new EmbedBuilder()
+ .setColor(0x7c3aed)
+ .setTitle(`📊 ${question}`)
+ .setDescription(optionsText)
+ .addFields(
+ { name: 'Created by', value: interaction.user.tag, inline: true },
+ { name: 'Ends', value: ``, inline: true },
+ { name: 'Options', value: `${options.length}`, inline: true }
+ )
+ .setFooter({ text: 'React to vote!' })
+ .setTimestamp();
+
+ const message = await interaction.reply({ embeds: [embed], fetchReply: true });
+
+ for (let i = 0; i < options.length; i++) {
+ try {
+ await message.react(POLL_EMOJIS[i]);
+ } catch (e) {
+ console.error('Failed to add reaction:', e.message);
+ }
+ }
+
+ if (supabase) {
+ try {
+ await supabase.from('polls').insert({
+ message_id: message.id,
+ channel_id: interaction.channelId,
+ guild_id: interaction.guildId,
+ question: question,
+ options: JSON.stringify(options),
+ created_by: interaction.user.id,
+ ends_at: endsAt.toISOString(),
+ });
+ } catch (e) {
+ console.warn('Failed to save poll:', e.message);
+ }
+ }
+ },
+};
diff --git a/aethex-bot/commands/stats.js b/aethex-bot/commands/stats.js
index eef0a18..b51b6b8 100644
--- a/aethex-bot/commands/stats.js
+++ b/aethex-bot/commands/stats.js
@@ -12,11 +12,15 @@ module.exports = {
await interaction.deferReply({ ephemeral: true });
try {
- const { data: link } = await supabase
+ const { data: link, error: linkError } = await supabase
.from("discord_links")
- .select("user_id, primary_arm, created_at")
+ .select("user_id, primary_arm, linked_at")
.eq("discord_id", interaction.user.id)
.single();
+
+ if (linkError) {
+ console.error("Stats link query error:", linkError);
+ }
if (!link) {
const embed = new EmbedBuilder()
@@ -64,7 +68,7 @@ module.exports = {
devlink: "💻",
};
- const linkedDate = new Date(link.created_at);
+ const linkedDate = new Date(link.linked_at);
const daysSinceLinked = Math.floor(
(Date.now() - linkedDate.getTime()) / (1000 * 60 * 60 * 24)
);
diff --git a/aethex-bot/commands/ticket.js b/aethex-bot/commands/ticket.js
index d0cf286..2bb70d4 100644
--- a/aethex-bot/commands/ticket.js
+++ b/aethex-bot/commands/ticket.js
@@ -57,12 +57,17 @@ module.exports = {
],
});
- client.activeTickets.set(ticketChannel.id, {
+ const ticketData = {
userId: interaction.user.id,
guildId: interaction.guildId,
reason: reason,
createdAt: Date.now(),
- });
+ };
+ client.activeTickets.set(ticketChannel.id, ticketData);
+
+ if (client.saveTicket) {
+ await client.saveTicket(ticketChannel.id, ticketData);
+ }
const closeButton = new ActionRowBuilder().addComponents(
new ButtonBuilder()
@@ -127,6 +132,10 @@ module.exports = {
client.activeTickets.delete(interaction.channelId);
+ if (client.closeTicket) {
+ await client.closeTicket(interaction.channelId);
+ }
+
setTimeout(async () => {
try {
await interaction.channel.delete();
diff --git a/aethex-bot/public/dashboard.html b/aethex-bot/public/dashboard.html
new file mode 100644
index 0000000..760d542
--- /dev/null
+++ b/aethex-bot/public/dashboard.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+ AeThex Bot Dashboard
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sentinel Status
+
+
+
+
+
Federation Mappings
+
0
+
+
+
+
+
+
+
+
diff --git a/attached_assets/image_1765164237221.png b/attached_assets/image_1765164237221.png
new file mode 100644
index 0000000000000000000000000000000000000000..57726a9086b6d3b5dca53982802d03a0f6a0a407
GIT binary patch
literal 84151
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
a2N%bC
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