added --h flag

This commit is contained in:
Neko-Life 2021-07-31 12:34:52 +07:00
parent 9631c25d20
commit d86a85441f

View file

@ -2,6 +2,13 @@
const commando = require("@iceprod/discord.js-commando"); const commando = require("@iceprod/discord.js-commando");
const { getChannel, trySend, defaultImageEmbed, parseDoubleDash, parseDash, parseComa } = require("../../resources/functions"); const { getChannel, trySend, defaultImageEmbed, parseDoubleDash, parseDash, parseComa } = require("../../resources/functions");
const ARGS_TEXT = `**Set configuration using**` +
`\`\`\`js\n<category> <channel_[mention|name|ID]>\`\`\`\`--rm\` to remove setting.\n\n**Categories:**\n` +
`\`--[e|d]\` Message [edit|delete],\n\` -i\` Ignore channel,\n\`--j\` Member Join,\n\`--l\` Member Leave,\n` +
`\`--p\` Member Profile Update,\n\`--mr\` Member Roles Update,\n\`--b\` Ban,\n\`--u\` Unban,\n` +
`\`--g\` Server Update,\n\`--r\` Role Update,\n` +
`\`--c\` Channel Update,\n\`--em\` Emote Update,\n\`--i\` Server Invites.\n` +
`\n**Examples:**\n\`\`\`\n--e #message-edited-log -i #admin, #staff --p #member-profile --b #ban-logs\`\`\` \`\`\`\n--rm --e --p --b\`\`\``;
module.exports = class eventlog extends commando.Command { module.exports = class eventlog extends commando.Command {
constructor(client) { constructor(client) {
@ -23,52 +30,52 @@ module.exports = class eventlog extends commando.Command {
let report = "", joinlog, leavelog, channellog, banlog, unbanlog, mesEdlog = { channel: undefined, ignore: [] }, invitelog, rolelog, let report = "", joinlog, leavelog, channellog, banlog, unbanlog, mesEdlog = { channel: undefined, ignore: [] }, invitelog, rolelog,
guildlog, membernicklog, emotelog, memberroleslog, remove = false, [setMesEdIgnore, setMesDelIgnore] = [false, false], mesDellog = { channel: undefined, ignore: [] }; guildlog, membernicklog, emotelog, memberroleslog, remove = false, [setMesEdIgnore, setMesDelIgnore] = [false, false], mesDellog = { channel: undefined, ignore: [] };
for (const args of set) { for (const args of set) {
if (!args.length) continue;
if (/^h\s?/.test(args)) {
const emb = defaultImageEmbed(msg, null, "Event Log Channels Configuration");
emb.setDescription(ARGS_TEXT);
return trySend(msg.client, msg, emb);
}
if (args.startsWith("rm ")) remove = true; if (args.startsWith("rm ")) remove = true;
if (args.startsWith("j ")) { if (args.startsWith("j" + (remove ? "" : " "))) {
if (remove) eventChannels.join = undefined; else { if (remove) eventChannels.join = undefined; else {
joinlog = getChannel(msg, args.slice("j ".length).trim(), ["category", "voice"])?.id; joinlog = getChannel(msg, args.slice("j ".length).trim(), ["category", "voice"])?.id;
if (!joinlog) report += "**[JOIN]** Unknown channel.\n"; if (!joinlog) report += "**[JOIN]** Unknown channel.\n";
} }
} }
if (args.startsWith("l ")) { if (args.startsWith("l" + (remove ? "" : " "))) {
if (remove) eventChannels.leave = undefined; else { if (remove) eventChannels.leave = undefined; else {
leavelog = getChannel(msg, args.slice("l ".length).trim(), ["category", "voice"])?.id; leavelog = getChannel(msg, args.slice("l ".length).trim(), ["category", "voice"])?.id;
if (!leavelog) report += "**[LEAVE]** Unknown channel.\n"; if (!leavelog) report += "**[LEAVE]** Unknown channel.\n";
} }
} }
if (args.startsWith("c ")) { if (args.startsWith("c" + (remove ? "" : " "))) {
if (remove) eventChannels.channel = undefined; else { if (remove) eventChannels.channel = undefined; else {
channellog = getChannel(msg, args.slice("c ".length).trim(), ["category", "voice"])?.id; channellog = getChannel(msg, args.slice("c ".length).trim(), ["category", "voice"])?.id;
if (!channellog) report += "**[CHANNEL]** Unknown channel.\n"; if (!channellog) report += "**[CHANNEL]** Unknown channel.\n";
} }
} }
if (args.startsWith("b ")) { if (args.startsWith("b" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.ban = undefined; else {
eventChannels.ban = undefined;
} else {
banlog = getChannel(msg, args.slice("b ".length).trim(), ["category", "voice"])?.id; banlog = getChannel(msg, args.slice("b ".length).trim(), ["category", "voice"])?.id;
if (!banlog) { if (!banlog) {
report += "**[BAN]** Unknown channel.\n"; report += "**[BAN]** Unknown channel.\n";
} }
} }
} }
if (args.startsWith("u ")) { if (args.startsWith("u" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.unban = undefined; else {
eventChannels.unban = undefined;
} else {
unbanlog = getChannel(msg, args.slice("u ".length).trim(), ["category", "voice"])?.id; unbanlog = getChannel(msg, args.slice("u ".length).trim(), ["category", "voice"])?.id;
if (!unbanlog) { if (!unbanlog) {
report += "**[UNBAN]** Unknown channel.\n"; report += "**[UNBAN]** Unknown channel.\n";
} }
} }
} }
if (args.startsWith("e ")) { if (args.startsWith("e" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.mesEd = {
eventChannels.mesEd = { channel: undefined,
channel: undefined, ignore: []
ignore: [] }; else {
}
} else {
const mesArgs = parseDash(args.slice("e ").trim()); const mesArgs = parseDash(args.slice("e ").trim());
if (mesArgs.length > 0 && /(?<!\\)-i /.test(args)) { if (mesArgs.length > 0 && /(?<!\\)-i /.test(args)) {
setMesEdIgnore = true; setMesEdIgnore = true;
@ -107,7 +114,7 @@ module.exports = class eventlog extends commando.Command {
} }
} }
} }
if (args.startsWith("d ")) { if (args.startsWith("d" + (remove ? "" : " "))) {
if (remove) { if (remove) {
eventChannels.mesDel = { eventChannels.mesDel = {
channel: undefined, channel: undefined,
@ -152,40 +159,32 @@ module.exports = class eventlog extends commando.Command {
} }
} }
} }
if (args.startsWith("i ")) { if (args.startsWith("i" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.invite = undefined; else {
eventChannels.invite = undefined;
} else {
invitelog = getChannel(msg, args.slice("i ".length).trim(), ["category", "voice"])?.id; invitelog = getChannel(msg, args.slice("i ".length).trim(), ["category", "voice"])?.id;
if (!invitelog) { if (!invitelog) {
report += "**[INVITE]** Unknown channel.\n"; report += "**[INVITE]** Unknown channel.\n";
} }
} }
} }
if (args.startsWith("r ")) { if (args.startsWith("r" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.role = undefined; else {
eventChannels.role = undefined;
} else {
rolelog = getChannel(msg, args.slice("r ".length).trim(), ["category", "voice"])?.id; rolelog = getChannel(msg, args.slice("r ".length).trim(), ["category", "voice"])?.id;
if (!rolelog) { if (!rolelog) {
report += "**[GUILD_ROLE]** Unknown channel.\n"; report += "**[GUILD_ROLE]** Unknown channel.\n";
} }
} }
} }
if (args.startsWith("g ")) { if (args.startsWith("g" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.guild = undefined; else {
eventChannels.guild = undefined;
} else {
guildlog = getChannel(msg, args.slice("g ".length).trim(), ["category", "voice"])?.id; guildlog = getChannel(msg, args.slice("g ".length).trim(), ["category", "voice"])?.id;
if (!guildlog) { if (!guildlog) {
report += "**[GUILD]** Unknown channel.\n"; report += "**[GUILD]** Unknown channel.\n";
} }
} }
} }
if (args.startsWith("p ")) { if (args.startsWith("p" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.member = undefined; else {
eventChannels.member = undefined;
} else {
console.log(args); console.log(args);
membernicklog = getChannel(msg, args.slice("p ".length).trim(), ["category", "voice"])?.id; membernicklog = getChannel(msg, args.slice("p ".length).trim(), ["category", "voice"])?.id;
if (!membernicklog) { if (!membernicklog) {
@ -193,20 +192,16 @@ module.exports = class eventlog extends commando.Command {
} }
} }
} }
if (args.startsWith("em ")) { if (args.startsWith("em" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.emote = undefined; else {
eventChannels.emote = undefined;
} else {
emotelog = getChannel(msg, args.slice("em ".length).trim(), ["category", "voice"])?.id; emotelog = getChannel(msg, args.slice("em ".length).trim(), ["category", "voice"])?.id;
if (!emotelog) { if (!emotelog) {
report += "**[EMOJI]** Unknown channel.\n"; report += "**[EMOJI]** Unknown channel.\n";
} }
} }
} }
if (args.startsWith("mr ")) { if (args.startsWith("mr" + (remove ? "" : " "))) {
if (remove) { if (remove) eventChannels.memberRole = undefined; else {
eventChannels.memberRole = undefined;
} else {
memberroleslog = getChannel(msg, args.slice("mr ".length).trim(), ["category", "voice"])?.id; memberroleslog = getChannel(msg, args.slice("mr ".length).trim(), ["category", "voice"])?.id;
if (!memberroleslog) { if (!memberroleslog) {
report += "**[MEMBER_ROLE]** Unknown channel.\n"; report += "**[MEMBER_ROLE]** Unknown channel.\n";
@ -214,26 +209,27 @@ module.exports = class eventlog extends commando.Command {
} }
} }
} }
eventChannels = { eventChannels = {
join: joinlog ?? eventChannels?.join, join: joinlog || eventChannels?.join,
leave: leavelog ?? eventChannels?.leave, leave: leavelog || eventChannels?.leave,
channel: channellog ?? eventChannels?.channel, channel: channellog || eventChannels?.channel,
unban: unbanlog ?? eventChannels?.unban, unban: unbanlog || eventChannels?.unban,
ban: banlog ?? eventChannels?.ban, ban: banlog || eventChannels?.ban,
mesEd: { mesEd: {
channel: mesEdlog.channel ?? eventChannels?.mesEd?.channel, channel: mesEdlog.channel || eventChannels?.mesEd?.channel,
ignore: setMesEdIgnore ? mesEdlog.ignore : eventChannels?.mesEd?.ignore ignore: setMesEdIgnore ? mesEdlog.ignore : eventChannels?.mesEd?.ignore
}, },
mesDel: { mesDel: {
channel: mesDellog.channel ?? eventChannels?.mesDel?.channel, channel: mesDellog.channel || eventChannels?.mesDel?.channel,
ignore: setMesDelIgnore ? mesDellog.ignore : eventChannels?.mesDel?.ignore ignore: setMesDelIgnore ? mesDellog.ignore : eventChannels?.mesDel?.ignore
}, },
invite: invitelog ?? eventChannels?.invite, invite: invitelog || eventChannels?.invite,
role: rolelog ?? eventChannels?.role, role: rolelog || eventChannels?.role,
guild: guildlog ?? eventChannels?.guild, guild: guildlog || eventChannels?.guild,
member: membernicklog ?? eventChannels?.member, member: membernicklog || eventChannels?.member,
emote: emotelog ?? eventChannels?.emote, emote: emotelog || eventChannels?.emote,
memberRole: memberroleslog ?? eventChannels?.memberRole memberRole: memberroleslog || eventChannels?.memberRole
} }
const r = await msg.guild.setEventChannels(eventChannels); const r = await msg.guild.setEventChannels(eventChannels);
if (r) { if (r) {
@ -245,7 +241,7 @@ module.exports = class eventlog extends commando.Command {
async function resultEmbed(the) { async function resultEmbed(the) {
const emb = defaultImageEmbed(msg, null, "Event Log Channels Configuration"); const emb = defaultImageEmbed(msg, null, "Event Log Channels Configuration");
emb emb
.setDescription(`Set configuration using \`\`\`js\n${msg.guild.commandPrefix + the.name} [--rm] --<Category> <Channel_[Mention | Name | ID]>\`\`\`**Categories:** \`\`\`js\n[MESSAGE[EDIT, DELETE]: --[e, d] IGNORE: -i [none], JOIN: --j, LEAVE: --l, MEMBER: --p, MEMBERROLE: --mr, BAN: --b, UNBAN: --u, GUILD: --g, ROLE: --r, CHANNEL: --c, EMOJI: --em, INVITE: --i]\`\`\``) .setDescription("`--h` for help")
.addField(`Message Edit`, eventChannels?.mesEd?.channel ? `<#${eventChannels?.mesEd.channel}>\n**Ignores:** ${eventChannels?.mesEd?.ignore?.length > 0 ? .addField(`Message Edit`, eventChannels?.mesEd?.channel ? `<#${eventChannels?.mesEd.channel}>\n**Ignores:** ${eventChannels?.mesEd?.ignore?.length > 0 ?
"<#" + eventChannels?.mesEd.ignore.join(">, <#") + ">" : "None"}` "<#" + eventChannels?.mesEd.ignore.join(">, <#") + ">" : "None"}`
: "Not set", true) : "Not set", true)