Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord bot,答复特定用户编写的任何消息_Javascript_Discord_Bots - Fatal编程技术网

Javascript Discord bot,答复特定用户编写的任何消息

Javascript Discord bot,答复特定用户编写的任何消息,javascript,discord,bots,Javascript,Discord,Bots,我想做一个机器人,这是我的第一个,只是为了搞乱我的一个朋友。本质上,我希望它在他在聊天中任何时候都能回复一条随机消息 我已经看到了很多用于禁止的方法,并找到了一些可以起作用的方法,但我似乎不知道如何让它在任何时候都起作用,无论他们按enter键,无论其中的单词是什么 这似乎是我发现的最接近的: constuserid='4608164XXX93150209'; bot.on('message',函数(message){ 如果(!message.sender==userID){ 如果(messag

我想做一个机器人,这是我的第一个,只是为了搞乱我的一个朋友。本质上,我希望它在他在聊天中任何时候都能回复一条随机消息

我已经看到了很多用于禁止的方法,并找到了一些可以起作用的方法,但我似乎不知道如何让它在任何时候都起作用,无论他们按enter键,无论其中的单词是什么

这似乎是我发现的最接近的:

constuserid='4608164XXX93150209';
bot.on('message',函数(message){
如果(!message.sender==userID){
如果(message.content=='psst'){
message.channel.send('Hello here!');
}
}
});
任何帮助都将不胜感激


为了清楚起见,我希望他们在聊天中说任何话,不需要前缀,让机器人回复预定义列表中的随机信息,但只针对该用户。

以下是我用来从输入字符串生成随机消息的一些代码。它依赖于同一目录中的文本文件textcurpus.txt来工作。你可以用互联网上的短篇故事来填充这个文件

以run函数为例生成随机对话。因为这是typescript,您可能希望javascript删除所有部分,所以javascript linter对此不满意,应该可以工作

run();
异步函数run(){
log(`START CONVERSATION,LENGTH:${100}CHUNKS`);
假设会话长度=100;
函数切换伙伴(伙伴:字符串){
如果(partner=='Anton')返回'Bella';
如果(partner=='Bella')返回'Anton';
否则返回“安东”;
}
const sendMessage=console.log;
设i=0;
让lastMessage='';
让合伙人=‘安东’;
while(i{
sendMessage(`${partner}:${sen}`);
lastMessage=sen;
});
合作伙伴=切换合作伙伴(合作伙伴);
i++;
}
}
功能辊(zto:编号){
返回Math.random()s.trim());
pop();
shift();
如果(句子长度<1){
finalArray.push(肯定());
}否则{
//确定要返回的句子数:
设senNum=randomBetween(1,Math.min(句子长度,5));
for(设i=0;i1000){
//将句子拆分并添加为多个:
句子[i]
.split(“,”)
.map((p)=>p.trim())
.forEach((p)=>finalArray.push(p));
}否则{
推(句[i]);
}
}
/*
如果(滚动(0.1))最后一次推(确认());
*/
}
}
finalArray=finalArray.map((e,i)=>
e[e.length-1]!='?'&&i==finalArray.length-1
?添加符号(如trim())
:e
);
返回最终射线;
}
函数addEndSign(输入:字符串){
返回(
输入+
随机选择([
'!!',
'.',
'!',
'?',
'.',
'.',
'!?',
'??',
'...',
'.',
'.',
'.',
'.',
])
);
}
函数问题(输入:字符串){
如果(滚动(0.65)和输入长度>10){
让numberOfWordsForQuestion=random介于(1,5)之间;
返回(
输入
.split(/[.!?\s]/)
.filter((e,i)=>i
无论我从您的问题中理解了什么,下面的代码更具可读性:

const blocked_users=[4608164XXX93150209];//你可能还有一个像他一样的朋友
bot.on('message',函数(message){
if(阻塞的用户索引of(message.sender)=-1){
如果(message.content=='psst'){
message.channel.send('Hello here!');
}
}否则{
message.channel.send('远离此频道!');
}
});

假设您使用的是
discord.js
,看起来是这样,那么您需要使用
message.author
属性

const specificUsers=['ID Here','ID#2','ID#3','etc.];//要检测的ID列表
const messages=['Message 1'、'Message 2'、'Message 3'];//要从中随机选取的消息列表
//消息事件
bot.on('消息',(消息)=>{
//如果作者的id与黑名单上的id之一匹配
if(specificUsers.includes(message.author.id))
//发送随机消息