extend the User object other than using a function

This commit is contained in:
Jonny_Bro (Nikita) 2023-07-03 14:25:25 +05:00
parent 76e8d16eb1
commit ec79480bcb
15 changed files with 34 additions and 38 deletions

View file

@ -64,7 +64,7 @@ class Money extends BaseCommand {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({ .setAuthor({
name: interaction.translate("economy/money:TITLE", { name: interaction.translate("economy/money:TITLE", {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
}), }),
iconURL: member.user.displayAvatarURL(), iconURL: member.user.displayAvatarURL(),
}) })

View file

@ -71,7 +71,7 @@ class Pay extends BaseCommand {
await memberData.save(); await memberData.save();
const info1 = { const info1 = {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
amount: amount, amount: amount,
date: Date.now(), date: Date.now(),
type: "send", type: "send",
@ -79,7 +79,7 @@ class Pay extends BaseCommand {
data.memberData.transactions.push(info1); data.memberData.transactions.push(info1);
const info2 = { const info2 = {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
amount: amount, amount: amount,
date: Date.now(), date: Date.now(),
type: "got", type: "got",

View file

@ -127,7 +127,7 @@ class Profile extends BaseCommand {
}, },
{ {
name: interaction.translate("economy/profile:LOVER"), name: interaction.translate("economy/profile:LOVER"),
value: (!userData.lover ? interaction.translate("common:NOT_DEFINED") : client.functions.getUsername(lover)), value: (!userData.lover ? interaction.translate("common:NOT_DEFINED") : lover.getUsername()),
inline: true, inline: true,
}, },
{ {

View file

@ -60,7 +60,7 @@ class Report extends BaseCommand {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({ .setAuthor({
name: interaction.translate("general/report:TITLE", { name: interaction.translate("general/report:TITLE", {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
}), }),
iconURL: interaction.user.displayAvatarURL({ iconURL: interaction.user.displayAvatarURL({
extension: "png", extension: "png",

View file

@ -50,7 +50,7 @@ class Suggest extends BaseCommand {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({ .setAuthor({
name: interaction.translate("general/suggest:TITLE", { name: interaction.translate("general/suggest:TITLE", {
user: client.functions.getUsername(interaction.user), user: interaction.user.getUsername(),
}), }),
iconURL: interaction.member.displayAvatarURL(), iconURL: interaction.member.displayAvatarURL(),
}) })

View file

@ -44,7 +44,7 @@ class Userinfo extends BaseCommand {
const member = interaction.options.getMember("user") || interaction.member; const member = interaction.options.getMember("user") || interaction.member;
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({ .setAuthor({
name: `${client.functions.getUsername(member.user)} (${member.id})`, name: `${member.user.getUsername()} (${member.id})`,
iconURL: member.displayAvatarURL(), iconURL: member.displayAvatarURL(),
}) })
.setThumbnail(member.displayAvatarURL({ .setThumbnail(member.displayAvatarURL({
@ -53,7 +53,7 @@ class Userinfo extends BaseCommand {
.addFields([ .addFields([
{ {
name: ":man: " + interaction.translate("common:USERNAME"), name: ":man: " + interaction.translate("common:USERNAME"),
value: client.functions.getUsername(member.user), value: member.user.getUsername(),
inline: true, inline: true,
}, },
{ {

View file

@ -137,7 +137,7 @@ class Clear extends BaseCommand {
if (member || user_id) { if (member || user_id) {
interaction.replyT("moderation/clear:CLEARED_MEMBER", { interaction.replyT("moderation/clear:CLEARED_MEMBER", {
amount: `**${option}** ${client.functions.getNoun(option, interaction.translate("misc:NOUNS:MESSAGES:1"), interaction.translate("misc:NOUNS:MESSAGES:2"), interaction.translate("misc:NOUNS:MESSAGES:5"))}`, amount: `**${option}** ${client.functions.getNoun(option, interaction.translate("misc:NOUNS:MESSAGES:1"), interaction.translate("misc:NOUNS:MESSAGES:2"), interaction.translate("misc:NOUNS:MESSAGES:5"))}`,
user: member && client.functions.getUsername(member.user) || user_id, user: member && member.user.getUsername() || user_id,
}, { edit: true }); }, { edit: true });
} else { } else {
interaction.replyT("moderation/clear:CLEARED", { interaction.replyT("moderation/clear:CLEARED", {

View file

@ -47,7 +47,7 @@ class Warn extends BaseCommand {
const modal = new ModalBuilder() const modal = new ModalBuilder()
.setCustomId("warn_modal") .setCustomId("warn_modal")
.setTitle(interaction.translate("moderation/warn:MODAL_TITLE", { nickname: client.functions.getUsername(member.user) }).normalize("NFKD")); .setTitle(interaction.translate("moderation/warn:MODAL_TITLE", { nickname: member.user.getUsername() }).normalize("NFKD"));
const reasonInput = new TextInputBuilder() const reasonInput = new TextInputBuilder()
.setCustomId("warn_reason") .setCustomId("warn_reason")
@ -89,11 +89,11 @@ class Warn extends BaseCommand {
.addFields([ .addFields([
{ {
name: interaction.translate("common:USER"), name: interaction.translate("common:USER"),
value: `\`${client.functions.getUsername(member.user)}\` (${member.user.toString()})`, value: `\`${member.user.getUsername()}\` (${member.user.toString()})`,
}, },
{ {
name: interaction.translate("common:MODERATOR"), name: interaction.translate("common:MODERATOR"),
value: `\`${client.functions.getUsername(interaction.user)}\` (${interaction.user.toString()})`, value: `\`${interaction.user.getUsername()}\` (${interaction.user.toString()})`,
}, },
{ {
name: interaction.translate("common:REASON"), name: interaction.translate("common:REASON"),
@ -107,7 +107,7 @@ class Warn extends BaseCommand {
member.send({ member.send({
content: interaction.translate("moderation/ban:BANNED_DM", { content: interaction.translate("moderation/ban:BANNED_DM", {
user: member.user, user: member.user,
moderator: client.functions.getUsername(interaction.user), moderator: interaction.user.getUsername(),
server: interaction.guild.name, server: interaction.guild.name,
reason, reason,
}), }),
@ -125,7 +125,7 @@ class Warn extends BaseCommand {
interaction.followUp({ interaction.followUp({
content: interaction.translate("moderation/setwarns:AUTO_BAN", { content: interaction.translate("moderation/setwarns:AUTO_BAN", {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
count: `${banCount} ${client.functions.getNoun(banCount, interaction.translate("misc:NOUNS:WARNS:1"), interaction.translate("misc:NOUNS:WARNS:2"), interaction.translate("misc:NOUNS:WARNS:5"))}`, count: `${banCount} ${client.functions.getNoun(banCount, interaction.translate("misc:NOUNS:WARNS:1"), interaction.translate("misc:NOUNS:WARNS:2"), interaction.translate("misc:NOUNS:WARNS:5"))}`,
}), }),
}); });
@ -137,7 +137,7 @@ class Warn extends BaseCommand {
member.send({ member.send({
content: interaction.translate("moderation/kick:KICKED_DM", { content: interaction.translate("moderation/kick:KICKED_DM", {
user: member.user, user: member.user,
moderator: client.functions.getUsername(interaction.user), moderator: interaction.user.getUsername(),
server: interaction.guild.name, server: interaction.guild.name,
reason, reason,
}), }),
@ -155,7 +155,7 @@ class Warn extends BaseCommand {
interaction.followUp({ interaction.followUp({
content: interaction.translate("moderation/setwarns:AUTO_KICK", { content: interaction.translate("moderation/setwarns:AUTO_KICK", {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
count: `${kickCount} ${client.functions.getNoun(kickCount, interaction.translate("misc:NOUNS:WARNS:1"), interaction.translate("misc:NOUNS:WARNS:2"), interaction.translate("misc:NOUNS:WARNS:5"))}`, count: `${kickCount} ${client.functions.getNoun(kickCount, interaction.translate("misc:NOUNS:WARNS:1"), interaction.translate("misc:NOUNS:WARNS:2"), interaction.translate("misc:NOUNS:WARNS:5"))}`,
}), }),
}); });
@ -164,9 +164,9 @@ class Warn extends BaseCommand {
*/ */
member.send({ member.send({
content: interaction.translate("moderation/warn:WARNED_DM", { content: interaction.translate("moderation/warn:WARNED_DM", {
user: client.functions.getUsername(member.user), user: member.user.getUsername(),
server: interaction.guild.name, server: interaction.guild.name,
moderator: client.functions.getUsername(interaction.user), moderator: interaction.user.getUsername(),
reason, reason,
}), }),
}); });

View file

@ -55,7 +55,7 @@ class CommandHandler extends BaseEvent {
interaction.user.send(args); interaction.user.send(args);
} }
client.logger.log(`User ${client.functions.getUsername(interaction.user)} used ${command.command.name} in ${interaction.guild ? interaction.guild.name : "DM"} with arguments: ${interaction.options.data.length > 0 ? interaction.options.data.map(arg => { return `${arg.name}: ${arg.value}`; }).join(", ") : "no args"}`, "cmd"); client.logger.log(`User ${interaction.user.getUsername()} used ${command.command.name} in ${interaction.guild ? interaction.guild.name : "DM"} with arguments: ${interaction.options.data.length > 0 ? interaction.options.data.map(arg => { return `${arg.name}: ${arg.value}`; }).join(", ") : "no args"}`, "cmd");
return command.execute(client, interaction, data); return command.execute(client, interaction, data);
} }

View file

@ -41,7 +41,7 @@ class GuildMemberRemove extends BaseEvent {
if (channel) { if (channel) {
const message = guildData.plugins.goodbye.message const message = guildData.plugins.goodbye.message
.replace(/{user}/g, client.functions.getUsername(member.user)) .replace(/{user}/g, member.user.getUsername())
.replace(/{server}/g, member.guild.name) .replace(/{server}/g, member.guild.name)
.replace(/{membercount}/g, member.guild.memberCount); .replace(/{membercount}/g, member.guild.memberCount);

View file

@ -49,7 +49,7 @@ class MessageCreate extends BaseEvent {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({ .setAuthor({
name: message.translate("misc:QUOTE_TITLE", { name: message.translate("misc:QUOTE_TITLE", {
user: client.functions.getUsername(msg.author), user: msg.author.getUsername(),
}), }),
iconURL: "https://wynem.com/assets/images/icons/quote.webp", iconURL: "https://wynem.com/assets/images/icons/quote.webp",
}) })
@ -64,7 +64,7 @@ class MessageCreate extends BaseEvent {
}, },
]) ])
.setFooter({ .setFooter({
text: message.translate("misc:QUOTE_FOOTER", { user: client.functions.getUsername(message.author) }), text: message.translate("misc:QUOTE_FOOTER", { user: message.author.getUsername() }),
}) })
.setColor(client.config.embed.color) .setColor(client.config.embed.color)
.setTimestamp(msg.createdTimestamp); .setTimestamp(msg.createdTimestamp);
@ -116,7 +116,7 @@ class MessageCreate extends BaseEvent {
id: u.id, id: u.id,
}); });
if (userData.afk) message.replyT("general/afk:IS_AFK", { user: client.functions.getUsername(u), reason: userData.afk }, { ephemeral: true }); if (userData.afk) message.replyT("general/afk:IS_AFK", { user: u.getUsername(), reason: userData.afk }, { ephemeral: true });
}); });
} }

View file

@ -32,7 +32,7 @@ class Ready extends BaseEvent {
if (client.config.dashboard.enabled) await client.dashboard.load(client); if (client.config.dashboard.enabled) await client.dashboard.load(client);
client.logger.log(`Loaded a total of ${commands.length} command(s).`, "ready"); client.logger.log(`Loaded a total of ${commands.length} command(s).`, "ready");
client.logger.log(`${client.functions.getUsername(client.user)}, ready to serve ${tUsers} members in ${tServers} servers.`, "ready"); client.logger.log(`${client.user.getUsername()}, ready to serve ${tUsers} members in ${tServers} servers.`, "ready");
client.logger.log(`Invite Link: ${client.generateInvite({ scopes: ["bot", "applications.commands"], permissions: [ PermissionsBitField.Flags.Administrator ] })}`, "ready"); client.logger.log(`Invite Link: ${client.generateInvite({ scopes: ["bot", "applications.commands"], permissions: [ PermissionsBitField.Flags.Administrator ] })}`, "ready");
console.timeEnd("botReady"); console.timeEnd("botReady");

View file

@ -1,4 +1,8 @@
const { Message, BaseInteraction } = require("discord.js"); const { Message, BaseInteraction, User } = require("discord.js");
User.prototype.getUsername = function () {
return this.discriminator === "0" ? this.username : this.tag;
};
BaseInteraction.prototype.translate = function (key, args) { BaseInteraction.prototype.translate = function (key, args) {
const language = this.client.translations.get(this.guild ? (this.guild.data ? this.guild.data.language : "ru-RU") : "ru-RU"); const language = this.client.translations.get(this.guild ? (this.guild.data ? this.guild.data.language : "ru-RU") : "ru-RU");

View file

@ -132,18 +132,10 @@ module.exports = {
n %= 100; n %= 100;
if (n >= 5 && n <= 20) return five; if (n >= 5 && n <= 20) return five;
n %= 10; n %= 10;
if (n === 1) return one; if (n === 1) return one;
if (n >= 2 && n <= 4) return two; if (n >= 2 && n <= 4) return two;
return five; return five;
}, },
/**
* Returns just a username if user has a new username, else returns user's tag
* @param {import("discord.js").User} user Number
* @returns
*/
getUsername(user) {
return user.discriminator === "0" ? user.username : user.tag;
},
}; };

View file

@ -69,10 +69,10 @@ async function tictactoe(interaction, options = {}) {
const acceptEmbed = new EmbedBuilder() const acceptEmbed = new EmbedBuilder()
.setTitle(interaction.translate("fun/tictactoe:REQUEST_WAIT", { .setTitle(interaction.translate("fun/tictactoe:REQUEST_WAIT", {
user: client.functions.getUsername(opponent), user: opponent.getUsername(),
})) }))
.setAuthor({ .setAuthor({
name: client.functions.getUsername(user), name: user.getUsername(),
iconURL: user.displayAvatarURL(), iconURL: user.displayAvatarURL(),
}) })
.setColor(options.embedColor || "#075FFF") .setColor(options.embedColor || "#075FFF")
@ -832,7 +832,7 @@ async function tictactoe(interaction, options = {}) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(interaction.translate("fun/tictactoe:NO_ANSWER_TITLE")) .setTitle(interaction.translate("fun/tictactoe:NO_ANSWER_TITLE"))
.setAuthor({ .setAuthor({
name: client.functions.getUsername(user), name: user.getUsername(),
iconURL: user.displayAvatarURL(), iconURL: user.displayAvatarURL(),
}) })
.setColor(options.timeoutEmbedColor || "#C90000") .setColor(options.timeoutEmbedColor || "#C90000")
@ -851,7 +851,7 @@ async function tictactoe(interaction, options = {}) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(interaction.translate("fun/tictactoe:CANCELED")) .setTitle(interaction.translate("fun/tictactoe:CANCELED"))
.setAuthor({ .setAuthor({
name: client.functions.getUsername(user), name: user.getUsername(),
iconURL: user.displayAvatarURL(), iconURL: user.displayAvatarURL(),
}) })
.setColor(options.timeoutEmbedColor || "#C90000") .setColor(options.timeoutEmbedColor || "#C90000")