不和谐重复机器人

时间:2020-10-17 20:44:15

标签: javascript node.js discord bots

我想制作一个可以重复某人所说的内容并立即删除其原始味精的机器人。 我不想为此使用前缀。

例如,有人输入一个随机消息:“这是一条消息”,然后机器人返回:“ @ user这是一条消息”,然后删除原始消息。

我也希望它位于特定的频道中,因为如果没有,它将使整个服务器混乱。 我不确定如何制作此机器人,因此我为模板制作了一个乒乓机器人:

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

client.on('message', message => {
  if (message.content.startsWith('!ping')) {
    message.reply('pong!');
  }
});

client.on('ready', () => {
   console.log('I am ready!'); 
});

client.login('token');

2 个答案:

答案 0 :(得分:0)

我不确定删除邮件并回复时会发生什么,但是您可以尝试执行以下操作:

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


// set your chanel id here!
const channel = "my-channel";


client.on('message', message => {
    if (client.user.id !== message.author.id && message.channel.id == channel) {

        // echo reply
        message.guild.channels.cache.get(channel).send(`@${message.author.username} ${message.content}`);

        // delete message
        message.delete();

    }
});

client.on('ready', () => {
    console.log('I am ready!');
});

client.login('token');

@Mootje指出:

如果您使用discord.js v12,请使用:

message.guild.channels.cache.get(channel).send(`@${message.author.username} ${message.content}`);

代替

message.guild.channels.get(channel).send(`@${message.author.username} ${message.content}`);

答案 1 :(得分:0)

如果我正确理解了您的问题,则您希望用户每次说话时都需要删除其原始消息,并且漫游器应发送包含原始消息内容的消息。

const client = new Discord.Client();

client.on('ready', () => {
    console.log('I am ready!'); 
 });

client.on('message', message => {
  if (message.content.startsWith('!ping')) {
    message.reply('pong!');
  } 

   message.reply(message.content);
   message.delete()
});


client.login('token');

如果您希望漫游器仅在一个特定的频道中发送消息,则可以使用此

const client = new Discord.Client();

client.on('ready', () => {
    console.log('I am ready!'); 
 });

client.on('message', message => {
  if (message.content.startsWith('!ping')) {
    message.reply('pong!');
  }

  let channelID = "your-specific-channel-id";
  message.guild.channels.get(channelID).send(message.content); 
  message.delete()
});

如果您使用Discord.js V12,则需要更改:

message.guild.channels.get(channelID).send(message.content);

message.guild.channels.cache.get(channelID).send(message.content);

更新 这是没有所有不必要代码的代码(注释中要求)

const client = new Discord.Client();

client.on('ready', () => {
    console.log('I am ready!'); 
 });

client.on('message', message => {
    if(message.author.bot) return;

    /* The channel the bot uses to "send" messages in */
    let sendChannelID = "channel-id";

    /* The channel the bot checks messages from */
    let activeChannelID = "channel-id"

    if(message.channel.id == activeChannelID){
        message.delete()
        message.guild.channels.cache.get(sendChannelID).send("<@" + message.author.id + ">: " + message.content); 
    }
});