Как заставить команду вызывать другую команду вместе с самой собой? - PullRequest
0 голосов
/ 25 января 2019

Я не знаю, как это сделать, и я искал ответ, но не могу его найти.

if message.content.startswith('^trivia autostart'):
 await client.send_message(message.channel, "Game is starting!\n" + 
str(player1) + "\n" + str(player2) + "\n" + str(player3) + "\n" + 
str(player4) + "\n" + str(player5) + "\n" + str(player6) )  

-

У меня есть этот код, и я 'Я пытаюсь сделать так, чтобы при запуске этого кода он вызывал мою команду ^ trivia play, не вводя ее в чат.Это возможно?

1 Ответ

0 голосов
/ 28 января 2019

Решением этой проблемы будет определение функций для каждой команды, которую ваш бот должен вызывать глобально. Возьмите следующий пример:

const Discord = require('discord.js');
const bot = new Discord.Client();

bot.on('error' => console.log);

bot.on('message', message => {
  let prefix = '!';
  let sender = message.author;
  let msg = message.content;
  let cont = msg.split(' ');
  let args = cont.slice(1);
  let cmd = msg.startsWith(prefix) ? cont[0].slice(prefix.length).toUpperCase() : undefined;

  // Ping function
  // can be: function pingCommand () {...}
  let pingCommand = () => {
    message.channel.send(`Pong!\nTime: ${bot.ping} ms`);
  }

  // Main command
  if (cmd === 'PING') {
    pingCommand();
  }

  // Calling command in another command
  if (cmd === 'TEST') {
    message.channel.send('Running a ping test on the bot');
    pingCommand();
  }
});

bot.login(token);

Надеюсь, вы понимаете, как это будет работать

...