import detector from "./detector.js"; import { cleanMessageContent } from "../utils/clean.js"; const suffixes = [ ", je crois", ...Array(10).fill('') ]; export default class SuffixPrefixDetector extends detector { async createSpecificReply(message) { const reference = await message.fetchReference().catch(() => null); const isSelfTarget = (reference && reference.author.id === message.client.user?.id) ?? false; const text = cleanMessageContent(message); // 1. Regex simple : On capture TOUT ce qu'il y a avant le mot "quoi" (Groupe 1) // (?:^|\s) assure qu'on ne coupe pas "pourquoi" const match = text.match(/^(.*)(?:^|\s)quoi(?:\W|$)/i); if (!match) { return null; } // match[1] contient tout le texte avant le "quoi" const prefixBrut = match[1]; return this.createResponse(prefixBrut, isSelfTarget); } createResponse(prefixBrut, isSelfTarget = false) { // 2. On applique ta logique de nettoyage (trimPrefix) pour gérer le "ça" let replyPrefix = trimPrefix(prefixBrut); // 3. Sécurité anti-spam (> 7 mots) // On vérifie qu'il reste quelque chose après le trim if (!replyPrefix || replyPrefix.split(' ').length > 7) { return null; } // 4. On renvoie : Préfixe nettoyé + Feur return (`${replyPrefix} feur ${suffixes[Math.floor(Math.random() * suffixes.length)]}`) .trim() .replaceAll(' ', ' ') .replace(' ,', ','); } } // Ta fonction (inchangée, elle sert à nettoyer le début) function trimPrefix(prefix) { return (prefix .split(/(?=(?:ç|c)a)/).at(-1) ?? '') .trim(); }