mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-12-23 00:03:09 +02:00
fix: create guild settings to allow commands before configuration
This commit is contained in:
parent
f7d0519a8c
commit
00f16be790
@ -47,6 +47,7 @@ module.exports = class Client extends FrameworkClient {
|
|||||||
locales[name] = YAML.parse(data);
|
locales[name] = YAML.parse(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.keyv = new Keyv();
|
||||||
/** @type {I18n} */
|
/** @type {I18n} */
|
||||||
this.i18n = new I18n('en-GB', locales);
|
this.i18n = new I18n('en-GB', locales);
|
||||||
/** @type {TicketManager} */
|
/** @type {TicketManager} */
|
||||||
@ -54,6 +55,22 @@ module.exports = class Client extends FrameworkClient {
|
|||||||
this.config = config;
|
this.config = config;
|
||||||
this.log = log;
|
this.log = log;
|
||||||
this.supers = (process.env.SUPER ?? '').split(',');
|
this.supers = (process.env.SUPER ?? '').split(',');
|
||||||
|
/** @param {import('discord.js/typings').Interaction} interaction */
|
||||||
|
this.commands.interceptor = async interaction => {
|
||||||
|
if (!interaction.inGuild()) return;
|
||||||
|
const id = interaction.guildId;
|
||||||
|
const cacheKey = `cache/known/guild:${id}`;
|
||||||
|
if (await this.keyv.has(cacheKey)) return;
|
||||||
|
await this.prisma.guild.upsert({
|
||||||
|
create: {
|
||||||
|
id,
|
||||||
|
locale: this.i18n.locales.find(locale => locale === interaction.guild.preferredLocale), // undefined if not supported
|
||||||
|
},
|
||||||
|
update: {},
|
||||||
|
where: { id },
|
||||||
|
});
|
||||||
|
await this.keyv.set(cacheKey, true);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async login(token) {
|
async login(token) {
|
||||||
@ -91,7 +108,6 @@ module.exports = class Client extends FrameworkClient {
|
|||||||
}, ms('6h'));
|
}, ms('6h'));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.keyv = new Keyv();
|
|
||||||
return super.login(token);
|
return super.login(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,7 +365,9 @@ misc:
|
|||||||
this category.
|
this category.
|
||||||
title: ❌ Insufficient roles
|
title: ❌ Insufficient roles
|
||||||
no_categories:
|
no_categories:
|
||||||
description: No ticket categories have been configured.
|
description: |-
|
||||||
|
No ticket categories have been configured.
|
||||||
|
Configure your server at {url}.
|
||||||
title: ❌ There are no ticket categories
|
title: ❌ There are no ticket categories
|
||||||
not_ticket:
|
not_ticket:
|
||||||
description: You can only use this command in tickets.
|
description: You can only use this command in tickets.
|
||||||
|
@ -33,7 +33,7 @@ module.exports = {
|
|||||||
new EmbedBuilder()
|
new EmbedBuilder()
|
||||||
.setColor(settings.errorColour)
|
.setColor(settings.errorColour)
|
||||||
.setTitle(getMessage('misc.no_categories.title'))
|
.setTitle(getMessage('misc.no_categories.title'))
|
||||||
.setDescription(getMessage('misc.no_categories.description')),
|
.setDescription(getMessage('misc.no_categories.description', { url: `${process.env.HTTP_EXTERNAL}/settings/${interaction.guildId}` })),
|
||||||
],
|
],
|
||||||
ephemeral: true,
|
ephemeral: true,
|
||||||
});
|
});
|
||||||
|
@ -38,7 +38,7 @@ module.exports = class extends Listener {
|
|||||||
new EmbedBuilder()
|
new EmbedBuilder()
|
||||||
.setColor(settings.errorColour)
|
.setColor(settings.errorColour)
|
||||||
.setTitle(getMessage('misc.no_categories.title'))
|
.setTitle(getMessage('misc.no_categories.title'))
|
||||||
.setDescription(getMessage('misc.no_categories.description')),
|
.setDescription(getMessage('misc.no_categories.description', { url: `${process.env.HTTP_EXTERNAL}/settings/${interaction.guildId}` })),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
} else if (settings.categories.length === 1) {
|
} else if (settings.categories.length === 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user