Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
135
rated 0 times [  142] [ 7]  / answers: 1 / hits: 20391  / 6 Years ago, wed, july 25, 2018, 12:00:00
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'
});
}
});


This is my code



When norb is said as the only word, or this place is said, it'll work. But if it's between words like hello norb hello it won't work. Everything else is working fine for now.



I'd like it to look for norb and say praise be to the overlord when it's said. Rather than just when it's the first word. I'm not really sure how to do that.



Thanks!


More From » discord

 Answers
54

Assuming you're trying to make the bot respond to a specific command. What you are looking for is the .includes() function



This function checks if a string includes the word you are looking for. For example:



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

[#53880] Monday, July 23, 2018, 6 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
myakylas

Total Points: 66
Total Questions: 85
Total Answers: 95

Location: Guadeloupe
Member since Sat, Aug 22, 2020
4 Years ago
myakylas questions
Thu, Apr 28, 22, 00:00, 2 Years ago
Thu, Apr 8, 21, 00:00, 3 Years ago
Sat, Sep 19, 20, 00:00, 4 Years ago
;