Update i18n (and fix commands)

This commit is contained in:
Isaac 2021-04-27 11:34:34 +01:00
parent 0991a48d3d
commit fba2b579fb
No known key found for this signature in database
GPG Key ID: F6812DBC6719B4E3
10 changed files with 31 additions and 21 deletions

View File

@ -28,7 +28,7 @@
"homepage": "https://discordtickets.app", "homepage": "https://discordtickets.app",
"funding": "https://github.com/discord-tickets/bot/?sponsor=1", "funding": "https://github.com/discord-tickets/bot/?sponsor=1",
"dependencies": { "dependencies": {
"@eartharoid/i18n": "^0.0.1", "@eartharoid/i18n": "^1.0.0",
"boxen": "^5.0.0", "boxen": "^5.0.0",
"cryptr": "^6.0.2", "cryptr": "^6.0.2",
"discord.js": "^12.5.1", "discord.js": "^12.5.1",

View File

@ -1,7 +1,7 @@
lockfileVersion: 5.3 lockfileVersion: 5.3
specifiers: specifiers:
'@eartharoid/i18n': ^0.0.1 '@eartharoid/i18n': ^1.0.0
boxen: ^5.0.0 boxen: ^5.0.0
cryptr: ^6.0.2 cryptr: ^6.0.2
discord.js: ^12.5.1 discord.js: ^12.5.1
@ -22,7 +22,7 @@ specifiers:
terminal-link: ^2.1.1 terminal-link: ^2.1.1
dependencies: dependencies:
'@eartharoid/i18n': 0.0.1 '@eartharoid/i18n': 1.0.0
boxen: 5.0.0 boxen: 5.0.0
cryptr: 6.0.2 cryptr: 6.0.2
discord.js: 12.5.1 discord.js: 12.5.1
@ -130,8 +130,8 @@ packages:
resolution: {integrity: sha512-e3mR8JY6Uuy1Zj89iYEZfvK6s81GlWEPP4gO8NzfItzF4xFGFTVTwRjZ6sCVBmbhj3ouX2pyvx8O9snx4r5Xrg==} resolution: {integrity: sha512-e3mR8JY6Uuy1Zj89iYEZfvK6s81GlWEPP4gO8NzfItzF4xFGFTVTwRjZ6sCVBmbhj3ouX2pyvx8O9snx4r5Xrg==}
dev: false dev: false
/@eartharoid/i18n/0.0.1: /@eartharoid/i18n/1.0.0:
resolution: {integrity: sha512-RXm2+aRBAa2cqp/UEPtlO1AkEJlv5/bANvuPNKA4MSp/UNRKgsJ2tRQt7YintINtgp1ZmaJMH8pxcaLUzwfKUw==} resolution: {integrity: sha512-jJlVTQxHdkuA6prAJ/7kkQhfiTTLioaRT0AQtOcSsOZZzZfzlkKvpcvUtz+qlyrL1oen+KylG0ivlCJNnRYtVA==}
dev: false dev: false
/@eslint/eslintrc/0.4.0: /@eslint/eslintrc/0.4.0:

View File

@ -3,7 +3,7 @@ const Command = require('../modules/commands/command');
module.exports = class BlacklistCommand extends Command { module.exports = class BlacklistCommand extends Command {
constructor(client) { constructor(client) {
const i18n = client.i18n.get(client.config.locale); const i18n = client.i18n.getLocale(client.config.locale);
super(client, { super(client, {
internal: true, internal: true,
name: i18n('commands.blacklist.name'), name: i18n('commands.blacklist.name'),
@ -27,7 +27,7 @@ module.exports = class BlacklistCommand extends Command {
async execute(message, args) { async execute(message, args) {
let settings = await message.guild.settings; let settings = await message.guild.settings;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
let member = message.mentions.members.first(); let member = message.mentions.members.first();

View File

@ -4,7 +4,7 @@ const { footer } = require('../utils/discord');
module.exports = class CloseCommand extends Command { module.exports = class CloseCommand extends Command {
constructor(client) { constructor(client) {
const i18n = client.i18n.get(client.config.locale); const i18n = client.i18n.getLocale(client.config.locale);
super(client, { super(client, {
internal: true, internal: true,
name: i18n('commands.close.name'), name: i18n('commands.close.name'),
@ -27,7 +27,7 @@ module.exports = class CloseCommand extends Command {
async execute(message, args) { async execute(message, args) {
let settings = await message.guild.settings; let settings = await message.guild.settings;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
} }
}; };

View File

@ -6,7 +6,7 @@ const { wait } = require('../utils');
module.exports = class NewCommand extends Command { module.exports = class NewCommand extends Command {
constructor(client) { constructor(client) {
const i18n = client.i18n.get(client.config.locale); const i18n = client.i18n.getLocale(client.config.locale);
super(client, { super(client, {
internal: true, internal: true,
name: i18n('commands.new.name'), name: i18n('commands.new.name'),
@ -30,7 +30,7 @@ module.exports = class NewCommand extends Command {
async execute(message, args) { async execute(message, args) {
let settings = await message.guild.settings; let settings = await message.guild.settings;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
const editOrSend = async (msg, content) => { const editOrSend = async (msg, content) => {
if (msg) return await msg.edit(content); if (msg) return await msg.edit(content);

View File

@ -4,7 +4,7 @@ const { MessageAttachment } = require('discord.js');
module.exports = class SettingsCommand extends Command { module.exports = class SettingsCommand extends Command {
constructor(client) { constructor(client) {
const i18n = client.i18n.get(client.config.locale); const i18n = client.i18n.getLocale(client.config.locale);
super(client, { super(client, {
internal: true, internal: true,
name: i18n('commands.settings.name'), name: i18n('commands.settings.name'),
@ -19,7 +19,7 @@ module.exports = class SettingsCommand extends Command {
async execute(message) { async execute(message) {
let settings = await message.guild.settings; let settings = await message.guild.settings;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
let attachments = [ ...message.attachments.values() ]; let attachments = [ ...message.attachments.values() ];

View File

@ -130,8 +130,19 @@ class Bot extends Client {
/** A [Cryptr](https://www.npmjs.com/package/cryptr) instance */ /** A [Cryptr](https://www.npmjs.com/package/cryptr) instance */
this.cryptr = new Cryptr(process.env.DB_ENCRYPTION_KEY); this.cryptr = new Cryptr(process.env.DB_ENCRYPTION_KEY);
let locales = {};
fs.readdirSync(path('./src/locales'))
.filter(file => file.endsWith('.json'))
.forEach(file => {
let data = fs.readFileSync(path(`./src/locales/${file}`), {
encoding: 'utf8'
});
let name = file.slice(0, file.length - 5);
locales[name] = JSON.parse(data);
});
/** An [@eartharoid/i18n](https://github.com/eartharoid/i18n) instance */ /** An [@eartharoid/i18n](https://github.com/eartharoid/i18n) instance */
this.i18n = new I18n(path('./src/locales'), 'en-GB'); this.i18n = new I18n('en-GB', locales);
/** A sequelize instance */ /** A sequelize instance */
this.db = await require('./database')(this), // this.db.models.Ticket... this.db = await require('./database')(this), // this.db.models.Ticket...

View File

@ -128,7 +128,7 @@ module.exports = class Command {
if (!cmd_name) cmd_name = this.name; if (!cmd_name) cmd_name = this.name;
const prefix = settings.command_prefix; const prefix = settings.command_prefix;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
const addArgs = (embed, arg) => { const addArgs = (embed, arg) => {
let required = arg.required ? '`❗` ' : ''; let required = arg.required ? '`❗` ' : '';

View File

@ -61,6 +61,9 @@ module.exports = class CommandManager {
* @param {Message} message - Command message * @param {Message} message - Command message
*/ */
async handle(message) { async handle(message) {
let settings = await message.guild.settings;
const i18n = this.client.i18n.getLocale(settings.locale);
let is_blacklisted = false; let is_blacklisted = false;
if (settings.blacklist.includes(message.author.id)) { if (settings.blacklist.includes(message.author.id)) {
is_blacklisted = true; is_blacklisted = true;
@ -82,10 +85,6 @@ module.exports = class CommandManager {
} }
} }
let settings = await message.guild.settings;
const i18n = this.client.i18n.get(settings.locale);
const prefix = settings.command_prefix; const prefix = settings.command_prefix;
const escaped_prefix = prefix.toLowerCase().replace(/(?=\W)/g, '\\'); // (lazy) escape every character so it can be used in a RexExp const escaped_prefix = prefix.toLowerCase().replace(/(?=\W)/g, '\\'); // (lazy) escape every character so it can be used in a RexExp
const client_mention = `<@!?${this.client.user.id}>`; const client_mention = `<@!?${this.client.user.id}>`;

View File

@ -30,7 +30,7 @@ module.exports = class TicketManager extends EventEmitter {
let guild = this.client.guilds.cache.get(cat_row.guild); let guild = this.client.guilds.cache.get(cat_row.guild);
let settings = await guild.settings; let settings = await guild.settings;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
let member = guild.members.cache.get(t_row.creator); let member = guild.members.cache.get(t_row.creator);
let t_channel = this.client.channels.cache.get(t_row.id); let t_channel = this.client.channels.cache.get(t_row.id);
@ -218,7 +218,7 @@ module.exports = class TicketManager extends EventEmitter {
let guild = this.client.guilds.cache.get(t_row.guild); let guild = this.client.guilds.cache.get(t_row.guild);
let settings = await guild.settings; let settings = await guild.settings;
const i18n = this.client.i18n.get(settings.locale); const i18n = this.client.i18n.getLocale(settings.locale);
let channel = await this.client.channels.fetch(t_row.channel); let channel = await this.client.channels.fetch(t_row.channel);
if (closer_id) { if (closer_id) {