wsb-bot / src /config.js
APRK01
fix: make staff and manager roles unmentionable as well
283d024
const { PermissionFlagsBits } = require('discord.js');
// ── Theme Colors ──────────────────────────────────────────────
const Colors = {
PRIMARY: 0x9b59b6, // Purple
ACCENT: 0xe74c3c, // Red
DARK: 0x0d0d0d, // Near-black
SUCCESS: 0x2ecc71, // Green
WARNING: 0xf39c12, // Orange
INFO: 0x3498db, // Blue
MUTED: 0x2c2f33, // Dark grey
};
// ── Role Definitions (top → bottom hierarchy) ─────────────────
const Roles = [
{
name: '@@ Owner',
color: '#9b59b6',
permissions: [PermissionFlagsBits.Administrator],
hoist: true,
mentionable: true,
},
{
name: '@@ Co-Owner',
color: '#e74c3c',
permissions: [PermissionFlagsBits.Administrator],
hoist: true,
mentionable: false,
},
{
name: '@@ Server Manager',
color: '#e91e63',
permissions: [
PermissionFlagsBits.ManageGuild,
PermissionFlagsBits.ManageChannels,
PermissionFlagsBits.ManageRoles,
PermissionFlagsBits.KickMembers,
PermissionFlagsBits.BanMembers,
PermissionFlagsBits.ManageMessages,
PermissionFlagsBits.MuteMembers,
PermissionFlagsBits.DeafenMembers,
PermissionFlagsBits.MoveMembers,
PermissionFlagsBits.ManageNicknames,
PermissionFlagsBits.ViewChannel,
PermissionFlagsBits.SendMessages,
],
hoist: true,
mentionable: false,
},
{
name: '@@ Staff',
color: '#e67e22',
permissions: [
PermissionFlagsBits.KickMembers,
PermissionFlagsBits.BanMembers,
PermissionFlagsBits.ManageMessages,
PermissionFlagsBits.MuteMembers,
PermissionFlagsBits.DeafenMembers,
PermissionFlagsBits.MoveMembers,
PermissionFlagsBits.ManageNicknames,
PermissionFlagsBits.ViewChannel,
PermissionFlagsBits.SendMessages,
PermissionFlagsBits.ManageChannels,
],
hoist: true,
mentionable: false,
},
{
name: '@@ Moderator',
color: '#f1c40f',
permissions: [
PermissionFlagsBits.ManageMessages,
PermissionFlagsBits.ViewChannel,
PermissionFlagsBits.SendMessages,
],
hoist: true,
mentionable: false,
},
{
name: '@@ Helper',
color: '#1abc9c',
permissions: [],
hoist: true,
mentionable: false,
},
{
name: '@@ Known',
color: '#9b59b6',
permissions: [],
hoist: true,
mentionable: false,
},
{
name: '@@ Booster',
color: '#f47fff',
permissions: [],
hoist: true,
mentionable: false,
},
{
name: '@@ Verified',
color: '#2ecc71',
permissions: [],
hoist: false,
mentionable: false,
},
{
name: '@@ Buyer',
color: '#3498db',
permissions: [],
hoist: true,
mentionable: false,
},
];
// ── Channel / Category Layout ─────────────────────────────────
const Categories = [
{
name: '📌・INFORMATION',
channels: [
{ name: '📜・rules', type: 'text', readOnly: true, public: true },
{ name: '⚠️・disclaimer', type: 'text', readOnly: true, public: true },
{ name: '✅・verify', type: 'text', special: 'verify', public: true, hideFromVerified: true },
{ name: '📢・announcements', type: 'text', readOnly: true },
{ name: '⚡・updates', type: 'text' },
{ name: '📊・polls', type: 'text', ownerOnly: true },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Verified': { view: true, send: true },
'@@ Booster': { view: true, send: true },
'@@ Moderator': { view: true, send: true },
'@@ Staff': { view: true, send: true },
'@@ Server Manager': { view: true, send: true },
'@@ Owner': { view: true, send: true },
}),
},
{
name: '💬・COMMUNITY',
channels: [
{ name: '💬・general', type: 'text', noEmbeds: true },
{ name: '🎨・media', type: 'text' },
{ name: '🎧・voice-chat', type: 'voice' },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Verified': { view: true, send: true },
'@@ Booster': { view: true, send: true },
'@@ Moderator': { view: true, send: true },
'@@ Staff': { view: true, send: true },
'@@ Server Manager': { view: true, send: true },
'@@ Owner': { view: true, send: true },
}),
},
{
name: '🎫・SUPPORT & TICKETS',
channels: [
{ name: '🎫・open-ticket', type: 'text', special: 'ticket' },
{ name: '📂・ticket-logs', type: 'text', staffOnly: true },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Verified': { view: true, send: false },
'@@ Booster': { view: true, send: false },
'@@ Moderator': { view: true, send: false },
'@@ Staff': { view: true, send: true },
'@@ Server Manager': { view: true, send: true },
'@@ Owner': { view: true, send: true },
}),
},
{
name: '🤖・DEVELOPMENT',
channels: [
{ name: '🤖・offsets', type: 'text' },
{ name: '🤖・request-offsets', type: 'text' },
{ name: '🤖・offset-dumpers', type: 'text' },
{ name: '🧠・dev-chat', type: 'text' },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Verified': { view: true, send: false },
'@@ Booster': { view: true, send: false },
'@@ Staff': { view: true, send: true },
'@@ Server Manager': { view: true, send: true },
'@@ Owner': { view: true, send: true },
}),
},
{
name: '🌐・RESOURCES',
channels: [
{ name: '🌐・resources', type: 'text', ownerOnly: true },
{ name: '🌐・free-assets', type: 'text', ownerOnly: true },
{ name: '🌐・scripts', type: 'text', ownerOnly: true },
{ name: '🌐・drivers', type: 'text', ownerOnly: true },
{ name: '🌐・community-content', type: 'text', special: 'community-content' },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Verified': { view: true, send: false },
'@@ Booster': { view: true, send: false },
'@@ Staff': { view: true, send: false },
'@@ Server Manager': { view: true, send: false },
'@@ Owner': { view: true, send: true },
}),
},
{
name: '💜・BOOSTER ZONE',
channels: [
{ name: '💜・booster-chat', type: 'text' },
{ name: '💎・booster-rewards', type: 'text', ownerOnly: true },
{ name: '🚀・booster-updates', type: 'text' },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Booster': { view: true, send: true },
'@@ Staff': { view: true, send: true },
'@@ Server Manager': { view: true, send: true },
'@@ Owner': { view: true, send: true },
}),
},
{
name: '🛡️・STAFF ONLY',
channels: [
{ name: '👑・owner-chat', type: 'text', special: 'owner-chat' },
{ name: '🛡️・staff-chat', type: 'text' },
{ name: '📁・staff-logs', type: 'text', special: 'staff-logs' },
{ name: '⚙️・bot-control', type: 'text' },
],
permOverrides: () => ({
everyone: { view: false, send: false },
'@@ Staff': { view: true, send: true },
'@@ Server Manager': { view: true, send: true },
'@@ Owner': { view: true, send: true },
}),
},
];
module.exports = { Colors, Roles, Categories };