noftaly

Untitled

Jan 4th, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. import Command from '../../helpers/Command';
  2.  
  3. class Code extends Command {
  4. constructor() {
  5. super('Code');
  6. this.aliases = ['code', 'balise'];
  7. this.usage = 'code <votre code>';
  8. this.examples = ['code broadcast "Yeah!"'];
  9. this.cooldown = 5000;
  10. }
  11.  
  12. async execute(message, args) {
  13. message.delete();
  14. if (args.join('').length === 0) {
  15. message.channel.send(this.config.noCode);
  16. } else if (args.join(' ').length > 2000) {
  17. // En théorie on n'a pas besoin de tester, vu qu'il ne peut pas l'envoyer s'il fait plus de 2000 chars... Mais on ne sait jamais ^^ (vu que ca fait crash le bot)
  18. message.channel.send(this.config.tooLong);
  19. } else {
  20. const lines = args.join(' ').split('\n');
  21. let code = '';
  22.  
  23. for (const [i, line] of lines.entries()) {
  24. const space = lines.length.toString().length - (i + 1).toString().length;
  25. code += `\n${i + 1}${' '.repeat(space)} | ${line}`;
  26. }
  27.  
  28. const msgTitle = await message.channel.send(`**Code de ${message.author.username} :**`);
  29. const codeSplit = code.match(/(.|[\r\n]){1,1900}/g);
  30. const codeBlocks = [];
  31.  
  32. codeBlocks[0] = await message.channel.send(codeSplit[0], { code: 'applescript' });
  33. for (let i = 1; i < codeSplit.length; i++) codeBlocks.push(await message.channel.send(codeSplit[i], { code: 'applescript' }));
  34.  
  35. const lastMessage = codeBlocks[codeBlocks.length - 1];
  36. lastMessage.react('❌');
  37.  
  38. const collector = lastMessage
  39. .createReactionCollector((reaction, user) => user.id === message.author.id
  40. && !user.bot
  41. && reaction.emoji.name === '❌')
  42. .once('collect', () => {
  43. msgTitle.delete();
  44. for (const block of codeBlocks) block.delete();
  45. collector.stop();
  46. });
  47. }
  48. }
  49. }
  50.  
  51. export default Code;
Advertisement
Add Comment
Please, Sign In to add comment