This commit is contained in:
Neko-Life 2021-08-11 00:09:34 +07:00
parent f65e7443cf
commit 634a2ce4a5
2 changed files with 92 additions and 81 deletions

View file

@ -141,9 +141,11 @@ async function run(oldChannel, newChannel) {
emb.addField(`Removed override`, emb.addField(`Removed override`,
`**For ${removed.type}** ${removed.type === "member" ? `**For ${removed.type}** ${removed.type === "member" ?
`<@${removed.id}> (${removed.id})` : `<@${removed.id}> \`${newChannel.guild.member(removed.id)
.user.tag}\` (${removed.id})` :
removed.id === newChannel.guild.id ? removed.id === newChannel.guild.id ?
"@everyone" : `<@&${removed.id}> (${removed.id})` "@everyone" : `<@&${removed.id}> \`${newChannel.guild.roles.cache
.get(removed.id).name}\` (${removed.id})`
}\n` + }\n` +
"**Approved:**```js\n" + (all.join(", ") || "NONE") + "```" + "**Approved:**```js\n" + (all.join(", ") || "NONE") + "```" +
"**Denied:**```js\n" + (den.join(", ") || "NONE") + "```"); "**Denied:**```js\n" + (den.join(", ") || "NONE") + "```");
@ -166,9 +168,11 @@ async function run(oldChannel, newChannel) {
emb.addField(`Added override`, emb.addField(`Added override`,
`**For ${added.type}** ${added.type === "member" ? `**For ${added.type}** ${added.type === "member" ?
`<@${added.id}> (${added.id})` : `<@${added.id}> \`${newChannel.guild.member(added.id)
.user.tag}\` (${added.id})` :
added.id === newChannel.guild.id ? added.id === newChannel.guild.id ?
"@everyone" : `<@&${added.id}> (${added.id})` "@everyone" : `<@&${added.id}> \`${newChannel.guild.roles.cache
.get(added.id).name}\` (${added.id})`
}\n` + }\n` +
"**Approved:**```js\n" + (all.join(", ") || "NONE") + "```" + "**Approved:**```js\n" + (all.join(", ") || "NONE") + "```" +
"**Denied:**```js\n" + (den.join(", ") || "NONE") + "```"); "**Denied:**```js\n" + (den.join(", ") || "NONE") + "```");
@ -181,86 +185,93 @@ async function run(oldChannel, newChannel) {
audit = await getAudit(newChannel.guild, dateNow, newChannel.id, audit = await getAudit(newChannel.guild, dateNow, newChannel.id,
{ type: "CHANNEL_OVERWRITE_UPDATE" }); { type: "CHANNEL_OVERWRITE_UPDATE" });
if (audit.target.id === newChannel.id) { if (audit.target.id === newChannel.id) {
const val = permissionsOverwrites.entries().next().value[1];
const oldAllow = val.old.allow.serialize(), if (!oldChannel.permissionsLocked && newChannel.permissionsLocked) {
oldDeny = val.old.deny.serialize(), permissionsOverwrites.forEach((v, k) => addField(v));
newAllow = val.new.allow.serialize(), } else addField(permissionsOverwrites.entries().next().value[1]);
newDeny = val.new.deny.serialize(),
allowDiff = changed(oldAllow, newAllow),
denyDiff = changed(oldDeny, newDeny);
let allowBefore = [], allowAfter = [], denyBefore = [], denyAfter = [], neutral = []; function addField(val) {
for (const u in allowDiff.oldObj) { const oldAllow = val.old.allow.serialize(),
if (!allowDiff.oldObj[u]) continue; oldDeny = val.old.deny.serialize(),
allowBefore.push(u); newAllow = val.new.allow.serialize(),
}; newDeny = val.new.deny.serialize(),
for (const u in allowDiff.newObj) { allowDiff = changed(oldAllow, newAllow),
if (!allowDiff.newObj[u]) continue; denyDiff = changed(oldDeny, newDeny);
allowAfter.push(u);
};
for (const u in denyDiff.oldObj) {
if (!denyDiff.oldObj[u]) continue;
denyBefore.push(u);
};
for (const u in denyDiff.newObj) {
if (!denyDiff.newObj[u]) continue;
denyAfter.push(u);
};
for (const U in newAllow) { let allowBefore = [], allowAfter = [], denyBefore = [], denyAfter = [], neutral = [];
if ( for (const u in allowDiff.oldObj) {
!newAllow[U] && if (!allowDiff.oldObj[u]) continue;
oldAllow?.[U] !== newAllow[U] && allowBefore.push(u);
!newDeny[U] };
) neutral.push(U); for (const u in allowDiff.newObj) {
else continue; if (!allowDiff.newObj[u]) continue;
}; allowAfter.push(u);
for (const U in newDeny) { };
if ( for (const u in denyDiff.oldObj) {
!newDeny[U] && if (!denyDiff.oldObj[u]) continue;
oldDeny?.[U] !== newDeny[U] && denyBefore.push(u);
!newAllow[U] };
) neutral.push(U); for (const u in denyDiff.newObj) {
else continue; if (!denyDiff.newObj[u]) continue;
denyAfter.push(u);
};
for (const U in newAllow) {
if (
!newAllow[U] &&
oldAllow?.[U] !== newAllow[U] &&
!newDeny[U]
) neutral.push(U);
else continue;
};
for (const U in newDeny) {
if (
!newDeny[U] &&
oldDeny?.[U] !== newDeny[U] &&
!newAllow[U]
) neutral.push(U);
else continue;
}
emb.addField(`Changed override`,
`**For ${val.new.type}** ${val.new.type === "member" ?
`<@${val.new.id}> \`${newChannel.guild.member(val.new.id)
.user.tag}\` (${val.new.id})` :
val.new.id === newChannel.guild.id ?
"@everyone" : `<@&${val.new.id}> \`${newChannel.guild.roles.cache
.get(val.new.id).name}\` (${val.new.id})`
}\n` +
(
allowBefore.length ?
"**Approved before:**```js\n" +
allowBefore.join(", ") +
"```" : ""
) +
(
denyBefore.length ?
"** Denied before:** ```js\n" +
denyBefore.join(", ") +
"```" : ""
) +
(
neutral.length ?
"**Defaulted:**```js\n" + neutral.join(", ") +
"```" : ""
) +
(
allowAfter.length ?
"**Approved:**```js\n" +
allowAfter.join(", ") +
"```" : ""
) +
(
denyAfter.length ?
"**Denied:**```js\n" +
denyAfter.join(", ") +
"```" : ""
)
);
} }
emb.addField(`Changed override`,
`**For ${val.new.type}** ${val.new.type === "member" ?
`<@${val.new.id}> (${val.new.id})` :
val.new.id === newChannel.guild.id ?
"@everyone" : `<@&${val.new.id}> (${val.new.id})`
}\n` +
(
allowBefore.length ?
"**Approved before:**```js\n" +
allowBefore.join(", ") +
"```" : ""
) +
(
denyBefore.length ?
"** Denied before:** ```js\n" +
denyBefore.join(", ") +
"```" : ""
) +
(
neutral.length ?
"**Defaulted:**```js\n" + neutral.join(", ") +
"```" : ""
) +
(
allowAfter.length ?
"**Approved:**```js\n" +
allowAfter.join(", ") +
"```" : ""
) +
(
denyAfter.length ?
"**Denied:**```js\n" +
denyAfter.join(", ") +
"```" : ""
)
);
} }
}; };

View file

@ -30,7 +30,7 @@ module.exports = async (GUILD, USER) => {
.setColor(getColor("red")) .setColor(getColor("red"))
.setThumbnail(USER.displayAvatarURL({ size: 4096, format: "png", dynamic: true })) .setThumbnail(USER.displayAvatarURL({ size: 4096, format: "png", dynamic: true }))
.addField("User", `<@${USER.id}>\n(${USER.id})`); .addField("User", `<@${USER.id}>\n(${USER.id})`);
if (audit.executor) if (audit?.executor)
emb.setAuthor(emb.author.name, audit.executor.displayAvatarURL({ size: 128, format: "png", dynamic: true })); emb.setAuthor(emb.author.name, audit.executor.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
return trySend(GUILD.client, log, emb); return trySend(GUILD.client, log, emb);
} }