APRK01 commited on
Commit
1745ca3
Β·
1 Parent(s): b718533

fix: update co-owner role - add SendMessages, remove ManageRoles, block tickets

Browse files
Files changed (1) hide show
  1. src/commands/coOwnerRole.js +30 -17
src/commands/coOwnerRole.js CHANGED
@@ -60,7 +60,6 @@ module.exports = {
60
  // Server management
61
  PermissionFlagsBits.ManageGuild, // Server settings, emojis, stickers
62
  PermissionFlagsBits.ManageChannels, // Create/edit/delete channels
63
- PermissionFlagsBits.ManageRoles, // Manage roles below theirs
64
  PermissionFlagsBits.ManageEmojisAndStickers, // Custom emojis & stickers
65
  PermissionFlagsBits.ManageWebhooks, // Webhooks
66
 
@@ -74,8 +73,13 @@ module.exports = {
74
  PermissionFlagsBits.DeafenMembers, // Deafen in VC
75
  PermissionFlagsBits.MoveMembers, // Move between VCs
76
 
77
- // View stuff
78
- PermissionFlagsBits.ViewChannel, // See all channels
 
 
 
 
 
79
  PermissionFlagsBits.ViewAuditLog, // Audit log access
80
  PermissionFlagsBits.ReadMessageHistory, // Read history
81
 
@@ -83,7 +87,7 @@ module.exports = {
83
  PermissionFlagsBits.Connect, // Join VCs
84
  PermissionFlagsBits.Speak, // Speak in VCs
85
 
86
- // NOTE: No SendMessages, no BanMembers, no KickMembers, no Administrator
87
  ],
88
  reason: 'Co-Owner role created via coownerrole command'
89
  });
@@ -97,16 +101,24 @@ module.exports = {
97
  );
98
 
99
  let announcementNote = '';
100
- if (announcementChannel) {
101
- await announcementChannel.permissionOverwrites.edit(coOwnerRole, {
102
- SendMessages: true,
103
- EmbedLinks: true,
104
- AttachFiles: true,
105
- MentionEveryone: true, // Can @everyone/@here in announcements
106
- });
107
- announcementNote = `\nβœ… **Send Messages** enabled in ${announcementChannel}`;
108
- } else {
109
- announcementNote = '\n⚠️ No announcements channel found β€” you can manually add SendMessages override to the channel you want.';
 
 
 
 
 
 
 
 
110
  }
111
 
112
  await statusMsg.edit({
@@ -118,15 +130,16 @@ module.exports = {
118
  `**Color:** Red (#e74c3c)`,
119
  '',
120
  '**βœ… CAN:**',
121
- '> Manage server, channels, roles, emojis',
 
122
  '> Manage messages, nicknames, events',
123
  '> Mute/deafen/move in voice',
124
  '> View audit log',
125
- '> Send messages in announcements',
126
  '',
127
  '**❌ CANNOT:**',
128
- '> Send messages in other channels',
129
  '> Ban or kick members',
 
130
  '> Use Administrator',
131
  '> Override Owner permissions',
132
  '',
 
60
  // Server management
61
  PermissionFlagsBits.ManageGuild, // Server settings, emojis, stickers
62
  PermissionFlagsBits.ManageChannels, // Create/edit/delete channels
 
63
  PermissionFlagsBits.ManageEmojisAndStickers, // Custom emojis & stickers
64
  PermissionFlagsBits.ManageWebhooks, // Webhooks
65
 
 
73
  PermissionFlagsBits.DeafenMembers, // Deafen in VC
74
  PermissionFlagsBits.MoveMembers, // Move between VCs
75
 
76
+ // Chat & view
77
+ PermissionFlagsBits.ViewChannel, // See channels
78
+ PermissionFlagsBits.SendMessages, // Send messages everywhere
79
+ PermissionFlagsBits.EmbedLinks, // Embed links
80
+ PermissionFlagsBits.AttachFiles, // Attach files
81
+ PermissionFlagsBits.AddReactions, // Add reactions
82
+ PermissionFlagsBits.UseExternalEmojis, // External emojis
83
  PermissionFlagsBits.ViewAuditLog, // Audit log access
84
  PermissionFlagsBits.ReadMessageHistory, // Read history
85
 
 
87
  PermissionFlagsBits.Connect, // Join VCs
88
  PermissionFlagsBits.Speak, // Speak in VCs
89
 
90
+ // NOTE: No ManageRoles, no BanMembers, no KickMembers, no Administrator
91
  ],
92
  reason: 'Co-Owner role created via coownerrole command'
93
  });
 
101
  );
102
 
103
  let announcementNote = '';
104
+
105
+ // Block Co-Owner from ALL ticket channels/categories
106
+ const ticketChannels = guild.channels.cache.filter(
107
+ c => c.name.toLowerCase().includes('ticket') ||
108
+ c.name.toLowerCase().includes('🎫')
109
+ );
110
+
111
+ let ticketCount = 0;
112
+ for (const [, ch] of ticketChannels) {
113
+ await ch.permissionOverwrites.edit(coOwnerRole, {
114
+ ViewChannel: false,
115
+ SendMessages: false,
116
+ }).catch(() => { });
117
+ ticketCount++;
118
+ }
119
+
120
+ if (ticketCount > 0) {
121
+ announcementNote += `\nπŸ”’ **Blocked from ${ticketCount} ticket channel(s)**`;
122
  }
123
 
124
  await statusMsg.edit({
 
130
  `**Color:** Red (#e74c3c)`,
131
  '',
132
  '**βœ… CAN:**',
133
+ '> Send messages in all channels',
134
+ '> Manage server, channels, emojis',
135
  '> Manage messages, nicknames, events',
136
  '> Mute/deafen/move in voice',
137
  '> View audit log',
 
138
  '',
139
  '**❌ CANNOT:**',
140
+ '> Assign/manage roles',
141
  '> Ban or kick members',
142
+ '> Access ticket channels',
143
  '> Use Administrator',
144
  '> Override Owner permissions',
145
  '',