say.js 985 B

12345678910111213141516171819202122232425262728293031
  1. function cmd_say(lang, msg, args, line, wiki) {
  2. var text = args.join(' ');
  3. var imgs = [];
  4. if ( msg.uploadFiles() ) imgs = msg.attachments.map( function(img) {
  5. return {attachment:img.url,name:img.filename};
  6. } );
  7. if ( text.includes( '${' ) ) {
  8. try {
  9. text = eval( '`' + text + '`' );
  10. } catch ( error ) {
  11. log_error(error);
  12. }
  13. }
  14. if ( text.trim() || imgs.length ) {
  15. var allowedMentions = {parse:['users']};
  16. if ( msg.member.hasPermission(['MENTION_EVERYONE']) ) allowedMentions.parse = ['users','roles','everyone'];
  17. else allowedMentions.roles = msg.guild.roles.cache.filter( role => role.mentionable ).map( role => role.id ).slice(0,100)
  18. msg.channel.send( text, {allowedMentions,files:imgs} ).then( () => msg.deleteMsg(), error => {
  19. log_error(error);
  20. msg.reactEmoji('error', true);
  21. } );
  22. } else if ( !pause[msg.guild.id] ) this.LINK(lang, msg, line, wiki);
  23. }
  24. module.exports = {
  25. name: 'say',
  26. everyone: false,
  27. pause: false,
  28. owner: true,
  29. run: cmd_say
  30. };