mirror of
https://github.com/danbulant/Shasha
synced 2026-07-06 11:30:48 +00:00
hm
This commit is contained in:
parent
c7745c17fd
commit
bf43f30da9
19 changed files with 69 additions and 64 deletions
|
|
@ -10,12 +10,12 @@ module.exports = class baka extends commando.Command {
|
||||||
name: "baka",
|
name: "baka",
|
||||||
memberName: "baka",
|
memberName: "baka",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Say \"baka\" :/"
|
description: "Say \"baka\""
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is getting dere-dere~ =>`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is getting dere-dere~`;
|
||||||
const image = await fetchNeko("baka");
|
const image = await fetchNeko("baka");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@ module.exports = class cry extends commando.Command {
|
||||||
name: "cry",
|
name: "cry",
|
||||||
memberName: "cry",
|
memberName: "cry",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Are you sad? :("
|
description: "Are you sad?"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is crying :<`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is crying`;
|
||||||
const image = await fetchNeko("cry");
|
const image = await fetchNeko("cry");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@ module.exports = class dance extends commando.Command {
|
||||||
name: "dance",
|
name: "dance",
|
||||||
memberName: "dance",
|
memberName: "dance",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Let's dance =]"
|
description: "Let's dance"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is dancin :>`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is dancin`;
|
||||||
const image = await fetchNeko("dance");
|
const image = await fetchNeko("dance");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@ module.exports = class feed extends commando.Command {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg, arg) {
|
async run(msg, arg) {
|
||||||
return trySend(this.client, msg, await interactEmbed(msg, arg, "feed", "^^"));
|
return trySend(this.client, msg, await interactEmbed(msg, arg, "feed", ""));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -10,12 +10,12 @@ module.exports = class laugh extends commando.Command {
|
||||||
name: "laugh",
|
name: "laugh",
|
||||||
memberName: "laugh",
|
memberName: "laugh",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Show your laugh :D"
|
description: "Show your laugh"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is laughin XD`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is laughin`;
|
||||||
const image = await fetchNeko("laugh");
|
const image = await fetchNeko("laugh");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@ module.exports = class neko extends commando.Command {
|
||||||
name: "neko",
|
name: "neko",
|
||||||
memberName: "neko",
|
memberName: "neko",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Neko."
|
description: "Neko"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} ~Nyann~ (UwU) <3`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} ~Nyann~`;
|
||||||
const image = await fetchNeko("nekos");
|
const image = await fetchNeko("nekos");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@ module.exports = class poke extends commando.Command {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg, arg) {
|
async run(msg, arg) {
|
||||||
return trySend(this.client, msg, await interactEmbed(msg, arg, "poke", ":>"));
|
return trySend(this.client, msg, await interactEmbed(msg, arg, "poke", ""));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -78,7 +78,7 @@ module.exports = async (msg, arg, name, endsaT = "") => {
|
||||||
target[d.i] += " twice";
|
target[d.i] += " twice";
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
target[d.i] += " thrice XD";
|
target[d.i] += " thrice!";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
target[d.i] += ` ${d.l} times ❤️`;
|
target[d.i] += ` ${d.l} times ❤️`;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@ module.exports = class slap extends commando.Command {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg, arg) {
|
async run(msg, arg) {
|
||||||
return trySend(this.client, msg, await interactEmbed(msg, arg, "slap", ":["));
|
return trySend(this.client, msg, await interactEmbed(msg, arg, "slap", ""));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -10,12 +10,12 @@ module.exports = class smile extends commando.Command {
|
||||||
name: "smile",
|
name: "smile",
|
||||||
memberName: "smile",
|
memberName: "smile",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Show your smile <3"
|
description: "Show your smile"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is smilin :D`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is smilin`;
|
||||||
const image = await fetchNeko("smile");
|
const image = await fetchNeko("smile");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@ module.exports = class smug extends commando.Command {
|
||||||
name: "smug",
|
name: "smug",
|
||||||
memberName: "smug",
|
memberName: "smug",
|
||||||
group: "image",
|
group: "image",
|
||||||
description: "Show your smug :]"
|
description: "Show your smug"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} got a smug face >:]`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} got a smug face`;
|
||||||
const image = await fetchNeko("smug");
|
const image = await fetchNeko("smug");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@ module.exports = class tickle extends commando.Command {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg, arg) {
|
async run(msg, arg) {
|
||||||
return trySend(this.client, msg, await interactEmbed(msg, arg, "tickle", "XD"));
|
return trySend(this.client, msg, await interactEmbed(msg, arg, "tickle", ""));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -15,7 +15,7 @@ module.exports = class wave extends commando.Command {
|
||||||
}
|
}
|
||||||
async run(msg) {
|
async run(msg) {
|
||||||
msg.channel.startTyping();
|
msg.channel.startTyping();
|
||||||
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is waving :)`;
|
const title = `${msg.guild ? msg.member.displayName : msg.author.username} is waving`;
|
||||||
const image = await fetchNeko("wave");
|
const image = await fetchNeko("wave");
|
||||||
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
const emb = defaultImageEmbed(msg, image); emb.setAuthor(title, msg.author.displayAvatarURL({ size: 128, format: "png", dynamic: true }));
|
||||||
return trySend(this.client, msg, emb);
|
return trySend(this.client, msg, emb);
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
const commando = require("@iceprod/discord.js-commando");
|
const commando = require("@iceprod/discord.js-commando");
|
||||||
const { MessageEmbed, User, Message } = require("discord.js");
|
const { MessageEmbed, User, Message } = require("discord.js");
|
||||||
|
const { DateTime } = require("luxon");
|
||||||
const { errLog, trySend, getUser, defaultImageEmbed, splitOnLength } = require("../../resources/functions");
|
const { errLog, trySend, getUser, defaultImageEmbed, splitOnLength } = require("../../resources/functions");
|
||||||
const getColor = require("../../resources/getColor");
|
const getColor = require("../../resources/getColor");
|
||||||
|
const { DT_PRINT_FORMAT } = require("../moderation/src/duration");
|
||||||
|
|
||||||
module.exports = class profile extends commando.Command {
|
module.exports = class profile extends commando.Command {
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
|
|
@ -29,13 +31,13 @@ module.exports = class profile extends commando.Command {
|
||||||
emb = defaultImageEmbed(msg, null, `\`${TM.tag}\`'s Profile`);
|
emb = defaultImageEmbed(msg, null, `\`${TM.tag}\`'s Profile`);
|
||||||
emb
|
emb
|
||||||
.setThumbnail(TM.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
.setThumbnail(TM.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
||||||
.addField("Registered", TM.createdAt.toUTCString().slice(0, -4), true)
|
.addField("Registered", DateTime.fromJSDate(TM.createdAt).toFormat(DT_PRINT_FORMAT), true)
|
||||||
.addField("ID", TM.id, true);
|
.addField("ID", TM.id, true);
|
||||||
if (TM.description) emb.setDescription(TM.description);
|
if (TM.description) emb.setDescription(TM.description);
|
||||||
if (MEM) {
|
if (MEM) {
|
||||||
const RI = MEM.roles.cache.sort((a, b) => b.position - a.position).map(r => r.id).slice(0, -1),
|
const RI = MEM.roles.cache.sort((a, b) => b.position - a.position).map(r => r.id).slice(0, -1),
|
||||||
RFS = splitOnLength(RI, 1010, ">, <@&");
|
RFS = splitOnLength(RI, 1010, ">, <@&");
|
||||||
emb.addField("Joined", MEM.joinedAt.toUTCString().slice(0, -4))
|
emb.addField("Joined", DateTime.fromJSDate(MEM.joinedAt).toFormat(DT_PRINT_FORMAT))
|
||||||
.addField("Nick", `\`${MEM.displayName}\``);
|
.addField("Nick", `\`${MEM.displayName}\``);
|
||||||
if (RFS[0]?.length > 0) {
|
if (RFS[0]?.length > 0) {
|
||||||
for (const p of RFS) {
|
for (const p of RFS) {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const commando = require("@iceprod/discord.js-commando");
|
const commando = require("@iceprod/discord.js-commando"),
|
||||||
const { trySend, ranLog, parseDoubleDash } = require("../../resources/functions");
|
{ trySend, ranLog, parseDoubleDash, getChannel, reValidURL } = require("../../resources/functions"),
|
||||||
const { database } = require("../../database/mongo");
|
ARGS_TEXT = `Provide argument: \`--c channel_[mention|ID], --t text_[footer_text], --i [footer_icon_URL]\``;
|
||||||
const col = database.collection("Guild");
|
|
||||||
|
|
||||||
module.exports = class quoteotd extends commando.Command {
|
module.exports = class quoteotd extends commando.Command {
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
|
|
@ -12,52 +11,52 @@ module.exports = class quoteotd extends commando.Command {
|
||||||
memberName: "quoteotd",
|
memberName: "quoteotd",
|
||||||
group: "utility",
|
group: "utility",
|
||||||
description: "Set Quote of the day channel and settings.",
|
description: "Set Quote of the day channel and settings.",
|
||||||
details:"```\n--channel\n--text\n--icon```",
|
details: "```\n--channel\n--text\n--icon```",
|
||||||
guildOnly: true,
|
guildOnly: true,
|
||||||
userPermissions:["ADMINISTRATOR"]
|
userPermissions: ["ADMINISTRATOR"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async run(msg, arg) {
|
async run(msg, arg) {
|
||||||
|
if (!msg.guild.DB) await msg.guild.DB.dbLoad();
|
||||||
const args = parseDoubleDash(arg);
|
const args = parseDoubleDash(arg);
|
||||||
if (args.length < 2) {
|
if (!args || args.length < 2) {
|
||||||
return trySend(this.client, msg, `Provide argument: \`--channel [mention, ID], --text [footer text], --icon [url footer icon]\``);
|
return trySend(this.client, msg, ARGS_TEXT);
|
||||||
}
|
}
|
||||||
let result = '';
|
let result = '';
|
||||||
for(const arr of args) {
|
for (const arr of args) {
|
||||||
const startW = arr.toLowerCase();
|
const startW = arr.toLowerCase();
|
||||||
let data;
|
let data;
|
||||||
if (startW.startsWith('channel')) {
|
if (startW.startsWith('c ')) {
|
||||||
data = arr.slice('channel'.length).trim();
|
data = arr.slice('c '.length).trim();
|
||||||
if (data.startsWith('<')) {
|
const CHAN = getChannel(msg, data, ["category", "voice"]);
|
||||||
data = data.slice(2,-1);
|
msg.guild.DB.settings.quoteOTD.channel = CHAN.id;
|
||||||
}
|
result += `Channel set: **${CHAN.name}**\n`;
|
||||||
if (!this.client.channels.cache.get(data)) {
|
continue;
|
||||||
return trySend(this.client, msg, 'Invalid/unknown channel provided! Try mentioning a channel or use `ChannelID`');
|
|
||||||
} else {
|
|
||||||
col.updateOne({document: msg.guild.id}, {$set: {"settings.quoteOTD.channel": data}, $setOnInsert: { document: msg.guild.id }}, { upsert: true });
|
|
||||||
result = result+`Channel set to \`${this.client.channels.cache.get(data).name}\`\n`;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (startW.startsWith('text')) {
|
if (startW.startsWith('t ')) {
|
||||||
data = arr.slice('text'.length).trim();
|
data = arr.slice('t '.length).trim();
|
||||||
col.updateOne({document: msg.guild.id}, {$set: {"settings.quoteOTD.footerText": data}, $setOnInsert: { document: msg.guild.id }}, { upsert: true });
|
msg.guild.DB.settings.quoteOTD.footerText = data;
|
||||||
result = result+`Footer text set to \`${data}\`\n`;
|
result += `Footer text set: \`${data}\`\n`;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
if (startW.startsWith('icon')) {
|
if (startW.startsWith('icon')) {
|
||||||
data = arr.slice('icon'.length).trim();
|
data = arr.slice('icon'.length).trim();
|
||||||
if (!/^http/.test(data)) {
|
if (!reValidURL.test(data)) {
|
||||||
return trySend(this.client, msg, 'Invalid icon url provided!');
|
result += 'Invalid icon URL provided!\n';
|
||||||
|
continue;
|
||||||
} else {
|
} else {
|
||||||
col.updateOne({document: msg.guild.id}, {$set: {"settings.quoteOTD.footerIcon": data}, $setOnInsert: { document: msg.guild.id }}, { upsert: true });
|
msg.guild.DB.settings.quoteOTD.footerIcon = data;
|
||||||
result = result+`Footer icon set!\n`;
|
result += `Footer icon set!\n`;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result.length > 0) {
|
if (result.length > 0) {
|
||||||
|
if (result !== 'Invalid icon URL provided!\n') msg.guild.DB.setDb(msg.guild.DB);
|
||||||
ranLog(msg, result);
|
ranLog(msg, result);
|
||||||
return trySend(this.client, msg, result);
|
return trySend(this.client, msg, result);
|
||||||
} else {
|
} else {
|
||||||
return trySend(this.client, msg, `Provide argument: \`--channel [mention, ID], --text [footer text], --icon [url footer icon]\``);
|
return trySend(this.client, msg, ARGS_TEXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -20,7 +20,7 @@ module.exports = (member) => {
|
||||||
.setTitle("`" + member.user.tag + "` joined")
|
.setTitle("`" + member.user.tag + "` joined")
|
||||||
.setThumbnail(member.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
.setThumbnail(member.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
||||||
.setColor(getColor("cyan"))
|
.setColor(getColor("cyan"))
|
||||||
.addField("Registered", "**" + DateTime.fromJSDate(member.user.createdAt).toFormat(DT_PRINT_FORMAT) + "**", true)
|
.addField("Registered", DateTime.fromJSDate(member.user.createdAt).toFormat(DT_PRINT_FORMAT), true)
|
||||||
.setDescription(`<@!${member.id}> (${member.id}) just joined.\nWe have ${member.guild.memberCount} total members now.`);
|
.setDescription(`<@!${member.id}> (${member.id}) just joined.\nWe have ${member.guild.memberCount} total members now.`);
|
||||||
return trySend(member.client, log, emb);
|
return trySend(member.client, log, emb);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,16 +15,18 @@ module.exports = (member) => {
|
||||||
if (member.guild.DB.settings.eventChannels?.leave) {
|
if (member.guild.DB.settings.eventChannels?.leave) {
|
||||||
const log = getChannel(member, member.guild.DB.settings.eventChannels.leave);
|
const log = getChannel(member, member.guild.DB.settings.eventChannels.leave);
|
||||||
if (!log) return;
|
if (!log) return;
|
||||||
const days = intervalToDuration(Interval.fromDateTimes(DateTime.fromJSDate(member.joinedAt), DateTime.now())).strings.join(" "),
|
const emb = defaultEventLogEmbed(member.guild),
|
||||||
emb = defaultEventLogEmbed(member.guild),
|
|
||||||
RO = member.roles.cache.sort((a, b) => b.position - a.position).map(r => r.id).slice(0, -1),
|
RO = member.roles.cache.sort((a, b) => b.position - a.position).map(r => r.id).slice(0, -1),
|
||||||
RU = splitOnLength(RO, 1010, ">, <@&");
|
RU = splitOnLength(RO, 1010, ">, <@&"),
|
||||||
|
JO = DateTime.fromJSDate(member.user.createdAt),
|
||||||
|
LE = DateTime.fromJSDate(member.joinedAt),
|
||||||
|
INT = Interval.fromDateTimes(LE, DateTime.now());
|
||||||
emb
|
emb
|
||||||
.setTitle("`" + member.user.tag + "` left")
|
.setTitle("`" + member.user.tag + "` left")
|
||||||
.setThumbnail(member.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
.setThumbnail(member.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
||||||
.setColor(getColor("yellow"))
|
.setColor(getColor("yellow"))
|
||||||
.addField("Registered", "**" + DateTime.fromJSDate(member.user.createdAt).toFormat(DT_PRINT_FORMAT) + "**", true)
|
.addField("Registered", JO.toFormat(DT_PRINT_FORMAT), true)
|
||||||
.addField("Joined", "**" + DateTime.fromJSDate(member.joinedAt).toFormat(DT_PRINT_FORMAT) + "**" + `\n(${days > 0 ? `${days} day${days > 1 ? "s" : ""} ago` : "Today"})`, true)
|
.addField("Joined", LE.toFormat(DT_PRINT_FORMAT) + `\n(${intervalToDuration(INT).strings.join(" ")} ago)`, true)
|
||||||
.addField("Nick", "`" + member.displayName + "`")
|
.addField("Nick", "`" + member.displayName + "`")
|
||||||
.setDescription(`<@!${member.id}> (${member.id}) just left.\nWe have ${member.guild.memberCount} total members now.`);
|
.setDescription(`<@!${member.id}> (${member.id}) just left.\nWe have ${member.guild.memberCount} total members now.`);
|
||||||
for (const U of RU) {
|
for (const U of RU) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ const { defaultEventLogEmbed, getChannel, trySend } = require("../functions");
|
||||||
const getColor = require("../getColor");
|
const getColor = require("../getColor");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @param {GuildMember} memberold
|
* @param {GuildMember} memberold
|
||||||
* @param {GuildMember} membernew
|
* @param {GuildMember} membernew
|
||||||
* @returns
|
* @returns
|
||||||
|
|
@ -19,9 +18,10 @@ module.exports = (memberold, membernew) => {
|
||||||
}
|
}
|
||||||
let log, thumbMes = "";
|
let log, thumbMes = "";
|
||||||
const emb = defaultEventLogEmbed(membernew.guild), oldT = memberold.toJSON().displayAvatarURL;
|
const emb = defaultEventLogEmbed(membernew.guild), oldT = memberold.toJSON().displayAvatarURL;
|
||||||
|
const oldAV = membernew.user.DB.cachedAvatarURL || oldT;
|
||||||
emb.setTitle("Profile `" + memberold.user.tag + "` updated")
|
emb.setTitle("Profile `" + memberold.user.tag + "` updated")
|
||||||
.setColor(getColor("blue"));
|
.setColor(getColor("blue"));
|
||||||
if (membernew.user.DB.cachedAvatarURL || oldT) thumbMes += "This embed's thumbnail is the user's old avatar.\n";
|
if (oldAV) thumbMes += "This embed's thumbnail is the user's old avatar.\n";
|
||||||
if (membernew.guild.DB.settings.eventChannels?.memberRole) {
|
if (membernew.guild.DB.settings.eventChannels?.memberRole) {
|
||||||
log = getChannel(membernew, membernew.guild.DB.settings.eventChannels.memberRole);
|
log = getChannel(membernew, membernew.guild.DB.settings.eventChannels.memberRole);
|
||||||
if (membernew.roles.cache.size > memberold.roles.cache.size) {
|
if (membernew.roles.cache.size > memberold.roles.cache.size) {
|
||||||
|
|
@ -35,16 +35,18 @@ module.exports = (memberold, membernew) => {
|
||||||
}
|
}
|
||||||
if (membernew.guild.DB.settings.eventChannels?.member && membernew.roles.cache.size === memberold.roles.cache.size) {
|
if (membernew.guild.DB.settings.eventChannels?.member && membernew.roles.cache.size === memberold.roles.cache.size) {
|
||||||
log = getChannel(membernew, membernew.guild.DB.settings.eventChannels.member);
|
log = getChannel(membernew, membernew.guild.DB.settings.eventChannels.member);
|
||||||
if (membernew.displayName != memberold.displayName) {
|
if (membernew.displayName !== memberold.displayName) {
|
||||||
emb.addField("Nickname", "Changed from `" + memberold.displayName + "` to `" + membernew.displayName + "`");
|
emb.addField("Nickname", "Changed from `" + memberold.displayName + "` to `" + membernew.displayName + "`");
|
||||||
}
|
}
|
||||||
if (membernew.user.DB.cachedAvatarURL != membernew.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true })) {
|
if (membernew.user.DB.cachedAvatarURL !== membernew.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true })) {
|
||||||
emb
|
emb
|
||||||
.setImage(membernew.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
.setImage(membernew.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
|
||||||
.addField("Avatar", thumbMes + "The image below is the user's new avatar.");
|
.addField("Avatar", thumbMes + "The image below is the user's new avatar.");
|
||||||
|
if (oldAV) emb.setThumbnail(oldAV);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
membernew.user.refreshDb({ cachedAvatarURL: membernew.user.displayAvatarURL({ format: "png", size: "4096", dynamic: true }) });
|
membernew.user.DB.cachedAvatarURL = membernew.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true });
|
||||||
|
membernew.user.setDb(membernew.user.DB);
|
||||||
if (!emb.fields || emb.fields.length === 0) return;
|
if (!emb.fields || emb.fields.length === 0) return;
|
||||||
return trySend(membernew.client, log, emb);
|
return trySend(membernew.client, log, emb);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -288,7 +288,7 @@ function cleanMentionID(key) {
|
||||||
* Get channel object wit RegExp
|
* Get channel object wit RegExp
|
||||||
* @param {Message | GuildMember | Guild} msg Object of the guild being searched
|
* @param {Message | GuildMember | Guild} msg Object of the guild being searched
|
||||||
* @param {string} name Keyword
|
* @param {string} name Keyword
|
||||||
* @param {ChannelType[]} exclude Exclude channel type
|
* @param {["text"|"dm"|"voice"|"group"|"category"|"news"|"store"|"unknown"]} exclude Exclude channel type
|
||||||
* @returns {GuildChannel[]} Channels object found
|
* @returns {GuildChannel[]} Channels object found
|
||||||
*/
|
*/
|
||||||
function findChannelRegEx(msg, name, exclude) {
|
function findChannelRegEx(msg, name, exclude) {
|
||||||
|
|
@ -381,7 +381,7 @@ function multipleRolesFound(msg, arr, key, max = 4, withID) {
|
||||||
* Standard
|
* Standard
|
||||||
* @param {Message | Guild} msg - Message object
|
* @param {Message | Guild} msg - Message object
|
||||||
* @param {string} key - Channel ID | Mention | Name
|
* @param {string} key - Channel ID | Mention | Name
|
||||||
* @param {ChannelType[]} exclude - Exclude channel type
|
* @param {["text"|"voice"|"category"|"news"|"store"|"unknown"]} exclude - Exclude channel type
|
||||||
* @returns {GuildChannel | Channel} Channel object
|
* @returns {GuildChannel | Channel} Channel object
|
||||||
*/
|
*/
|
||||||
function getChannel(msg, key, exclude) {
|
function getChannel(msg, key, exclude) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue