misc fixes n tweaks

This commit is contained in:
Erik 2022-04-04 14:31:14 +03:00
parent e6bfafa4ac
commit 9646080b92
Signed by untrusted user: Navy.gif
GPG Key ID: 811EC0CD80E7E5FB
7 changed files with 23 additions and 11 deletions

1
.gitignore vendored
View File

@ -11,7 +11,6 @@ commandHash.json
# Logs, duh
logs
emojis.json
# API
src/middleware/api

View File

@ -12,7 +12,8 @@
"GUILD_MESSAGES",
"GUILD_VOICE_STATES",
"GUILD_WEBHOOKS",
"GUILD_BANS"
"GUILD_BANS",
"GUILD_PRESENCES"
]
},
"invite": "https://discord.gg/49u6cHu",

View File

@ -128,14 +128,14 @@ class GuildWrapper {
}
get locale() {
return this._settings?.locale || 'en_us';
return this._settings?.locale || 'en_gb';
}
format(index, parameters = {}, opts = {}) {
const {
code = false,
language = this.locale || 'en_us'
language = this.locale || 'en_gb'
} = opts;
return this.client.localeLoader.format(language, index, parameters, code);

View File

@ -133,7 +133,7 @@ class InteractionWrapper {
format(index, parameters = {}, opts = {}) {
const {
code = false,
language = this.user.locale || this.guild?.locale || 'en_us'
language = this.user.locale || this.guild?.locale || 'en_gb'
} = opts;
return this.client.localeLoader.format(language, index, parameters, code);
}

View File

@ -246,7 +246,8 @@ class CommandHandler extends Observer {
if(!member) return { error: true };
return { error: false, value: member };
},
USER: (user) => {
USER: async (user) => {
user = await this.client.users.fetch(user);
return { error: false, value: user };
},
TEXT_CHANNEL: async (channel) => {
@ -263,7 +264,8 @@ class CommandHandler extends Observer {
channel = await guild.resolveChannel(channel);
return { error: false, value: channel };
},
ROLE: (role) => {
ROLE: async (role) => {
role = await guild.roles.fetch(role);
return { error: false, value: role };
},
MENTIONABLE: (mentionable) => {

View File

@ -38,11 +38,17 @@ class SlashCommand extends Command {
if (opt instanceof CommandOption) this.options.push(opt);
else if (opt.name instanceof Array) {
// Allows easy templating of subcommands that share arguments
const { name: names, description, ...opts } = opt;
const { name: names, description, type, ...opts } = opt;
for (const name of names) {
let desc = description;
if(description instanceof Array) desc = description[names.indexOf(name)] || 'Missing description';
this.options.push(new CommandOption({ name, description: desc, ...opts }));
const index = names.indexOf(name);
let desc = description,
_type = type;
if (description instanceof Array) desc = description[index] || 'Missing description';
if (type instanceof Array) {
_type = type[index];
if(!_type) throw new Error(`Missing type for option ${name} in command ${this.name}`);
}
this.options.push(new CommandOption({ name, type: _type, description: desc, ...opts }));
}
} else this.options.push(new CommandOption(opt));
}

View File

@ -267,6 +267,10 @@ class Util {
return humaniser(seconds * 1000, { largest: 2 }) + (relative ? ' ago' : '');
}
static timeAgo(seconds) {
return Util.humanise(Date.now() / 1000 - seconds, true);
}
/**
* Convert seconds to a human readable string representation
* @param {int} seconds