clear any deleted roles still stored in allowedRoles during verification
This commit is contained in:
1 parent
13e66b29ad
commit
9d9a764b1d
1 file changed
+23
-1
@@ -218,7 +218,8 @@ class LinesPoliceCadBot extends Client {
|
|||||||
|
|
||||||
async checkRoleStatus(rolesCache, serverID, isList) {
|
async checkRoleStatus(rolesCache, serverID, isList) {
|
||||||
let hasRole = false;
|
let hasRole = false;
|
||||||
let guild = await this.dbo.collection("prefixes").findOne({"server.serverID":serverID}).then(guild => guild);
|
let guild = await this.dbo.collection("prefixes").findOne({"server.serverID": serverID}).then(guild => guild);
|
||||||
|
|
||||||
// If user has one of any in the list of allowed roles, hasRole is true
|
// If user has one of any in the list of allowed roles, hasRole is true
|
||||||
for (let i = 0; i < guild.server.allowedRoles.length; i++) {
|
for (let i = 0; i < guild.server.allowedRoles.length; i++) {
|
||||||
if (!isList) {
|
if (!isList) {
|
||||||
@@ -269,6 +270,27 @@ class LinesPoliceCadBot extends Client {
|
|||||||
let { customRoleStatus } = await this.GetGuild(serverID)
|
let { customRoleStatus } = await this.GetGuild(serverID)
|
||||||
if (!customRoleStatus) return false; // There is no role limits
|
if (!customRoleStatus) return false; // There is no role limits
|
||||||
|
|
||||||
|
// Clear any deleted roles
|
||||||
|
const guild = await this.guilds.cache.get(serverID);
|
||||||
|
let filteredRoles = [];
|
||||||
|
let update = false;
|
||||||
|
for (let i = 0; i < guild.server.allowedRoles.length; i++) {
|
||||||
|
const role = guild.roles.cache.find(role => role.id == guild.server.allowedRoles[i])
|
||||||
|
if (role) filteredRoles.push(role);
|
||||||
|
if (!role) update = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (update) {
|
||||||
|
let newHasCustomRoles = filteredRoles > 0;
|
||||||
|
|
||||||
|
await this.dbo.collection("prefixes").updateOne({ 'server.serverID': serverID }, { $set: {
|
||||||
|
'server.allowedRoles': filteredRoles,
|
||||||
|
'server.hasCustomRoles': newHasCustomRoles,
|
||||||
|
}}, (err, res) => {
|
||||||
|
if (err) throw err;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let hasRole = await this.checkRoleStatus(rolesCache, serverID, isList);
|
let hasRole = await this.checkRoleStatus(rolesCache, serverID, isList);
|
||||||
if (!hasRole) return false; // User does not have role
|
if (!hasRole) return false; // User does not have role
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user