help.js 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const help_server = require('../functions/helpserver.js');
  2. function cmd_help(lang, msg, args, line, wiki) {
  3. if ( msg.channel.type === 'text' && pause[msg.guild.id] && ( args.join('') || !msg.isAdmin() ) ) return;
  4. if ( msg.isAdmin() && msg.defaultSettings ) help_server(lang, msg);
  5. var cmds = lang.get('help.list');
  6. var isMinecraft = ( wiki === lang.get('minecraft.link') );
  7. var isPatreon = ( msg.channel.type === 'text' && msg.guild.id in patreons );
  8. var prefix = ( msg.channel.type === 'text' && patreons[msg.guild.id] || process.env.prefix );
  9. var cmdintro = '🔹 `' + prefix;
  10. if ( args.join('') ) {
  11. if ( args.join(' ').isMention(msg.guild) ) {
  12. if ( !( msg.isAdmin() && msg.defaultSettings ) ) help_server(lang, msg);
  13. }
  14. else if ( args[0].toLowerCase() === 'admin' ) {
  15. if ( msg.channel.type !== 'text' || msg.isAdmin() ) {
  16. var cmdlist = lang.get('help.admin') + '\n' + cmds.filter( cmd => cmd.admin && !cmd.hide && ( !cmd.patreon || isPatreon ) ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
  17. cmdlist = cmdlist.replaceSave( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : msg.client.user.username ) ).replaceSave( /@prefix/g, prefix );
  18. msg.sendChannel( cmdlist, {split:{char:'🔹',prepend:'🔹'}} );
  19. }
  20. else {
  21. msg.replyMsg( lang.get('help.noadmin') );
  22. }
  23. }
  24. else if ( args[0].toLowerCase() === 'minecraft' ) {
  25. var cmdlist = '<' + lang.get('minecraft.link') + '>\n' + cmds.filter( cmd => cmd.minecraft && !cmd.hide ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
  26. cmdlist = cmdlist.replaceSave( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : msg.client.user.username ) ).replaceSave( /@prefix/g, prefix );
  27. msg.sendChannel( cmdlist, {split:{char:'🔹',prepend:'🔹'}} );
  28. }
  29. else {
  30. var cmdlist = cmds.filter( cmd => cmd.cmd.split(' ')[0] === args[0].toLowerCase() && !cmd.unsearchable && ( msg.channel.type !== 'text' || !cmd.admin || msg.isAdmin() ) && ( !cmd.patreon || isPatreon ) && ( !cmd.minecraft || isMinecraft ) ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
  31. cmdlist = cmdlist.replaceSave( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : msg.client.user.username ) ).replaceSave( /@prefix/g, prefix );
  32. if ( cmdlist === '' ) msg.reactEmoji('❓');
  33. else msg.sendChannel( cmdlist, {split:{char:'🔹',prepend:'🔹'}} );
  34. }
  35. }
  36. else if ( msg.isAdmin() && pause[msg.guild.id] ) {
  37. var cmdlist = lang.get('help.pause') + '\n' + cmds.filter( cmd => cmd.pause && ( !cmd.patreon || isPatreon ) ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
  38. cmdlist = cmdlist.replaceSave( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : msg.client.user.username ) ).replaceSave( /@prefix/g, prefix );
  39. msg.sendChannel( cmdlist, {split:{char:'🔹',prepend:'🔹'}}, true );
  40. }
  41. else {
  42. var cmdlist = lang.get('help.all') + '\n' + cmds.filter( cmd => !cmd.hide && !cmd.admin && ( !cmd.patreon || isPatreon ) && ( !cmd.fandom || wiki.isFandom() ) && !( cmd.inline && msg.noInline ) && ( !cmd.minecraft || isMinecraft ) ).map( cmd => ( cmd.inline ? '🔹 `' : cmdintro ) + cmd.cmd + '`\n\t' + cmd.desc ).join('\n') + '\n\n🔸 ' + lang.get('help.footer');
  43. cmdlist = cmdlist.replaceSave( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : msg.client.user.username ) ).replaceSave( /@prefix/g, prefix );
  44. msg.sendChannel( cmdlist, {split:{char:'🔹',prepend:'🔹'}} );
  45. }
  46. }
  47. module.exports = {
  48. name: 'help',
  49. everyone: true,
  50. pause: true,
  51. owner: false,
  52. run: cmd_help
  53. };