首页 > 解决方案 > discord.js message.content 用于发送消息的单词

问题描述

var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
var rolledNumber = 0;
var norb = 'norb';
var thisPlace = 'this place';
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
    colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
   token: auth.token,
   autorun: true
});
bot.on('ready', function (evt) {
    logger.info('Connected');
    logger.info('Logged in as: ');
    logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', function (user, userID, channelID, message, evt) {
    // Our bot needs to know if it will execute a command
    // It will listen for messages that will start with `!`
    if (message.substring(0, 1) == '!') {
        var args = message.substring(1).split(' ');
        var cmd = args[0];

        args = args.splice(1);
        switch(cmd) {
            // !ping
            case 'ping':
                bot.sendMessage({
                    to: channelID,
                    message: 'Pong!'
                });
            break;
            case 'commands':
                bot.sendMessage({
                    to: channelID,
                    message: 'nope!'
                });
            break;
            case 'sleepydave':
                bot.sendMessage({
                    to: channelID,
                    message: 'this is dave'
                });
            break;
            case 'roll':
                rolledNumber = Math.floor(Math.random() * 12) + 1;
                bot.sendMessage({
                    to: channelID,
                    message: 'You rolled two dice and get: ' + rolledNumber
                });
            break;
         }
     }
     if (message.content[0,2000] == norb) {
         bot.sendMessage({
             to: channelID,
             message: 'Praise be to the Overlord'
         });
     }
     if (message.substring(0,2000) == thisPlace) {
         bot.sendMessage({
             to: channelID,
             message: 'stop talking about here'
         });
     }
});

这是我的代码

当“norb”作为唯一的词说,或者说“这个地方”时,它会起作用。但如果它在“hello norb hello”之类的词之间,它就行不通了。目前其他一切都运行良好。

我希望它寻找“norb”并在它说时说“赞美主”。而不仅仅是当它是第一个词时。我不确定该怎么做。

谢谢!

标签: javascriptdiscorddiscord.js

解决方案


假设您试图让机器人响应特定命令。您正在寻找的是.includes()功能

此函数检查字符串是否包含您要查找的单词。例如:

const thisWord = "Something";
if(message.content.includes(thisWord))
{
    bot.sendMessage({
        to: channelID,
        message: "Your reply."
    })
}

推荐阅读