Le temps

Mode code

Programmer une action plus tard, régulièrement ou à heure fixe.

Plus tard : ctx.later et module.task

JavaScript
module.command('rappel', async (ctx) => {
  await ctx.later('rappel', Number(ctx.args.minutes), { texte: ctx.args.texte });
  await ctx.reply('C’est noté !');
});

module.task('rappel', async (ctx) => {
  await ctx.dm(ctx.member, 'Rappel : ' + ctx.task.texte);
});

De 1 minute à 7 jours. La tâche survit aux redémarrages et garde le membre d’origine (ctx.member). ctx.task contient les données passées.

Régulièrement : module.every

ÉcritureFréquence
'15m'Toutes les 15 minutes (5 minimum)
'2h'Toutes les 2 heures
{ every: 'day', at: '20:00' }Chaque jour à 20 h (Paris)
{ every: 'week', day: 1, at: '09:00' }Chaque lundi à 9 h (0 = dimanche … 6 = samedi)
{ every: 'minutes', interval: 30 }Toutes les 30 minutes
{ every: 'hours', interval: 6 }Toutes les 6 heures

Aucun membre n’est concerné : ctx.member est vide. Travaille avec les réglages et les salons.

Attendre un peu : ctx.sleep

JavaScript
await ctx.reply('3…');
await ctx.sleep(1000);
await ctx.followUp('2…');

5 secondes au maximum par appel. Pour plus long, utilise ctx.later.

Dates

Date fonctionne normalement (heure UTC). Pour afficher l’heure de Paris :

JavaScript
const heure = new Date().toLocaleTimeString('fr-FR', { timeZone: 'Europe/Paris', hour: '2-digit', minute: '2-digit' });

Discord sait aussi afficher une date dans le fuseau de chaque lecteur : <t:${Math.floor(Date.now() / 1000)}:f>.

Le temps · Documentation Opale