voice.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import help_setup from '../functions/helpsetup.js';
  2. import db from '../util/database.js';
  3. /**
  4. * Processes the "voice" command.
  5. * @param {import('../util/i18n.js').default} lang - The user language.
  6. * @param {import('discord.js').Message} msg - The Discord message.
  7. * @param {String[]} args - The command arguments.
  8. * @param {String} line - The command as plain text.
  9. * @param {import('../util/wiki.js').default} wiki - The wiki for the message.
  10. */
  11. function cmd_voice(lang, msg, args, line, wiki) {
  12. if ( msg.isAdmin() ) {
  13. if ( !args.join('') ) {
  14. var text = lang.get('voice.text') + '\n`' + lang.get('voice.channel') + ' – <' + lang.get('voice.name') + '>`\n';
  15. text += lang.get('voice.' + ( voiceGuildsLang.has(msg.guildId) ? 'disable' : 'enable' ), ( patreonGuildsPrefix.get(msg.guildId) ?? process.env.prefix ) + 'voice toggle');
  16. return msg.replyMsg( text, true );
  17. }
  18. args[1] = args.slice(1).join(' ').trim()
  19. if ( args[0].toLowerCase() === 'toggle' && !args[1] ) {
  20. if ( msg.defaultSettings ) return help_setup(lang, msg);
  21. if ( process.env.READONLY ) return msg.replyMsg( lang.get('general.readonly') + '\n' + process.env.invite, true );
  22. var value = ( voiceGuildsLang.has(msg.guildId) ? null : 1 );
  23. return db.query( 'UPDATE discord SET voice = $1 WHERE guild = $2 AND channel IS NULL', [value, msg.guildId] ).then( () => {
  24. console.log( '- Voice settings successfully updated.' );
  25. if ( value ) {
  26. voiceGuildsLang.set(msg.guildId, lang.lang);
  27. db.query( 'SELECT lang FROM discord WHERE guild = $1 AND channel IS NULL', [msg.guildId] ).then( ({rows:[row]}) => {
  28. console.log( '- Voice language successfully updated.' );
  29. voiceGuildsLang.set(msg.guildId, row.lang);
  30. }, dberror => {
  31. console.log( '- Error while getting the voice language: ' + dberror );
  32. } );
  33. msg.replyMsg( lang.get('voice.enabled') + '\n`' + lang.get('voice.channel') + ' – <' + lang.get('voice.name') + '>`', true );
  34. }
  35. else {
  36. voiceGuildsLang.delete(msg.guildId);
  37. msg.replyMsg( lang.get('voice.disabled'), true );
  38. }
  39. }, dberror => {
  40. console.log( '- Error while editing the voice settings: ' + dberror );
  41. msg.replyMsg( lang.get('settings.save_failed'), true );
  42. } );
  43. }
  44. }
  45. if ( !msg.inGuild() || !pausedGuilds.has(msg.guildId) ) this.LINK(lang, msg, line, wiki);
  46. }
  47. export default {
  48. name: 'voice',
  49. everyone: true,
  50. pause: true,
  51. owner: false,
  52. run: cmd_voice
  53. };