Fix: foooterQuote use right db path

This commit is contained in:
Neko-Life 2021-07-24 08:55:17 +07:00
parent e878fa5335
commit 2dd90d398a
4 changed files with 50 additions and 47 deletions

View file

@ -17,7 +17,7 @@ module.exports = class avatar extends commando.Command {
}
async run(msg, arg) {
const doc = msg.guild.DB.settings || msg.author.DB;
const footerQuote = doc.defaultEmbed?.footerQuote;
const footerQuote = doc.defaultEmbed?.footerQuote || "";
const option = "";// || arg.match(/(?<!\\)--s +\d+/)?.[0];
let user, avatar, member, show, notFound = "";
let [allEmb, multipleMemMes, dupliCheck] = [[], [], []];
@ -65,7 +65,7 @@ module.exports = class avatar extends commando.Command {
avatar = user.displayAvatarURL({ format: "png", size: 4096, dynamic: true });
let emb = new MessageEmbed()
.setImage(avatar)
.setFooter(footerQuote ?? "");
.setFooter(footerQuote);
member = msg.guild ? msg.guild.member(user) : undefined;
if (member) {
emb.setTitle(member.displayName);
@ -82,7 +82,7 @@ module.exports = class avatar extends commando.Command {
let emb = new MessageEmbed()
.setTitle(user.displayName ?? user.username)
.setImage(avatar)
.setFooter(footerQuote ?? "");
.setFooter(footerQuote);
if (user.displayColor) emb.setColor(user.displayColor);
if (!msg.guild) emb.setColor(randomColors[Math.floor(Math.random() * randomColors.length)]);
if (emb.color === 16777215) emb.setColor(16777214);

View file

@ -1,11 +1,10 @@
'use strict';
const commando = require("@iceprod/discord.js-commando");
const { MessageEmbed, User, Message } = require("discord.js");
const { Message } = require("discord.js");
const { DateTime, Interval } = require("luxon");
const { errLog, trySend, getUser, defaultImageEmbed, splitOnLength, defaultDateFormat } = require("../../resources/functions");
const getColor = require("../../resources/getColor");
const { DT_PRINT_FORMAT, intervalToDuration } = require("../moderation/src/duration");
const { trySend, getUser, defaultImageEmbed, splitOnLength, defaultDateFormat } = require("../../resources/functions");
const { intervalToDuration } = require("../moderation/src/duration");
module.exports = class profile extends commando.Command {
constructor(client) {
@ -24,21 +23,27 @@ module.exports = class profile extends commando.Command {
* @returns
*/
async run(msg, arg) {
let TM;
if (!arg) TM = msg.author; else TM = getUser(msg, arg, true);
let TM, title = "";
if (!arg) TM = msg.author; else TM = await getUser(msg, arg, true);
if (!TM) return trySend(msg.client, msg, "Bro stop lookin for yo imaginary gf");
if (TM.bot) title += "`[BOT]` ";
title += `\`${TM.tag}\`'s Profile`;
const MEM = msg.guild.member(TM),
emb = defaultImageEmbed(msg, null, `\`${TM.tag}\`'s Profile`);
emb
.setThumbnail(TM.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
emb = defaultImageEmbed(msg, null, title);
emb.setThumbnail(TM.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
.addField("ID", TM.id)
.addField("Registered", defaultDateFormat(TM.createdAt));
if (TM.description) emb.setDescription(TM.description);
if (MEM) {
const RI = MEM.roles.cache.sort((a, b) => b.position - a.position).map(r => r.id).slice(0, -1),
RFS = splitOnLength(RI, 1010, ">, <@&"), INT = Interval.fromDateTimes(DateTime.fromJSDate(MEM.joinedAt), DateTime.now());
emb.addField("Joined", defaultDateFormat(MEM.joinedAt) + `\n(${intervalToDuration(INT).strings.join(" ")} ago)`)
.addField("Nick", `\`${MEM.displayName}\``);
if (RFS[0]?.length > 0) {
for (const p of RFS) {
emb.addField(emb.fields.length === 4 ? "Roles" : "", "<@&" + p.join(">, <@&") + ">");

View file

@ -17,40 +17,35 @@ module.exports = class servav extends commando.Command {
});
}
run(msg, arg) {
if (!msg.author.DB) await msg.author.dbLoad();
if (msg.guild && !msg.guild.DB) await msg.guild.dbLoad();
const server_ID = arg.split(/ +/)[0];
const doc = msg.guild?.id ?? msg.author.id;
const col = database.collection(msg.guild ? "Guild" : "User");
col.findOne({ document: doc }, (err, res) => {
if (err) {
errLog(err, msg, this.client);
}
const footerQuote = res?.["settings"]?.defaultEmbed?.footerQuote;
let icon, target;
if (server_ID && this.client.owners.includes(msg.author)) {
if (!/\D/.test(server_ID)) {
target = this.client.guilds.cache.get(server_ID);
} else {
return trySend(this.client, msg, "Invalid `server_ID` provided!");
}
const footerQuote = (msg.guild?.DB.settings || msg.author.DB).defaultEmbed?.footerQuote || "";
let icon, target;
if (server_ID && this.client.owners.includes(msg.author)) {
if (!/\D/.test(server_ID)) {
target = this.client.guilds.cache.get(server_ID);
} else {
target = msg.guild;
return trySend(this.client, msg, "Invalid `server_ID` provided!");
}
if (target) {
icon = target.iconURL({ size: 4096, dynamic: true });
} else {
return trySend(this.client, msg, "I'm not in that server...");
} else {
target = msg.guild;
}
if (target) {
icon = target.iconURL({ size: 4096, dynamic: true });
} else {
return trySend(this.client, msg, "I'm not in that server...");
}
if (icon) {
let embed = new MessageEmbed()
.setImage(icon)
.setTitle(target.name)
.setFooter(footerQuote);
if (target.owner.displayColor) {
const color = getColor(target.owner.displayColor)
embed.setColor(color);
}
if (icon) {
let embed = new MessageEmbed()
.setImage(icon)
.setTitle(target.name)
.setFooter(footerQuote ?? "");
if (target.owner.displayColor) {
const color = getColor(target.owner.displayColor)
embed.setColor(color);
}
return trySend(this.client, msg, embed);
}
});
return trySend(this.client, msg, embed);
}
}
};

View file

@ -261,7 +261,7 @@ function adCheck(content) {
* @returns {MessageEmbed}
*/
function defaultImageEmbed(msg, image, title, footerQuote) {
if (!footerQuote) footerQuote = (msg.guild ?? msg.author).DB.defaultEmbed?.footerQuote || "";
if (!footerQuote) footerQuote = (msg.guild?.DB.settings || msg.author.DB).defaultEmbed?.footerQuote || "";
const emb = new MessageEmbed()
.setImage(image)
.setColor(msg.guild ? getColor((msg.member || msg).displayColor) : randomColors[Math.floor(Math.random() * randomColors.length)])
@ -501,14 +501,17 @@ const reValidURL = /^https?:\/\/[^\s\n]+\.[^\s\n][^\s\n]/;
* Get user
* @param {Message} msg
* @param {string} key
* @param {boolean} nonID
* @param {boolean} inGuild
* @returns {User}
*/
function getUser(msg, key, nonID) {
async function getUser(msg, key, inGuild = false) {
if (!(msg || key)) return;
const use = cleanMentionID(key);
if (!use || use.length === 0) return;
if (/^\d{17,19}$/.test(use)) return msg.client.users.cache.get(use); else if (nonID) return getMember(msg.guild, use)?.[0].user;
if (/^\d{17,19}$/.test(use)) {
const ret = msg.client.users.cache.get(use);
if (ret) return ret; else return msg.client.users.fetch(use);
} else if (inGuild) return getMember(msg.guild, use)?.[0].user;
}
function getRole(guild, key) {