Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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_Node.js_Discord.js - Fatal编程技术网

Javascript Discord bot为不同角色提供不同级别的发薪日奖励

Javascript Discord bot为不同角色提供不同级别的发薪日奖励,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我试图让机器人支付不同的金额给不同的角色 问题是无论我尝试做什么,它都表示角色未定义 我查了一下这意味着什么,并尝试了一些我发现的东西。我为每个角色添加了变量,尝试使用ID,尝试使用名称。我对JS非常陌生,一般来说,我对编码也比较陌生。我尝试过“角色.查找”等方法 我查看了discord.js网站,但没有提供任何帮助。这些函数的唯一代码块很小,而且效率也很低。下面我列出了关于payday命令的代码部分 if(msg==前缀+发薪日){ if(userData[sender.id+message.

我试图让机器人支付不同的金额给不同的角色

问题是无论我尝试做什么,它都表示角色未定义

我查了一下这意味着什么,并尝试了一些我发现的东西。我为每个角色添加了变量,尝试使用ID,尝试使用名称。我对JS非常陌生,一般来说,我对编码也比较陌生。我尝试过“角色.查找”等方法

我查看了discord.js网站,但没有提供任何帮助。这些函数的唯一代码块很小,而且效率也很低。下面我列出了关于payday命令的代码部分

if(msg==前缀+发薪日){
if(userData[sender.id+message.guild.id].lastPayday!=moment().format('w ww')){
userData[sender.id+message.guild.id].lastPayday=momente().format('w ww'))
如果([sender.id+message.guild.id].roles.has(Role=>Role.id==“741948113568137317”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“7419492497141565”)){
userData[sender.id+message.guild.id].money+=300;
}else if([sender.id+message.guild.id].roles.has(Role=>Role.id==“741948119104618537”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“741950264742903808”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“741950268677292042”)){
userData[sender.id+message.guild.id].money+=600;
}else if([sender.id+message.guild.id].roles.has(Role=>Role.id==“741948122627833937”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“741950731547836437”)){
userData[sender.id+message.guild.id].money+=900;
}else if([sender.id+message.guild.id].roles.has(Role=>Role.id==“74194813097995732”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“741949251793190927”)){
用户数据[sender.id+message.guild.id].money+=1200;
}else if([sender.id+message.guild.id].roles.has(Role=>Role.id===“741948127828901949”)| |[sender.id+message.guild.id].roles.has(Role=>Role.id==“741948125316644924”)){
userData[sender.id+message.guild.id].money+=1500;
}else if([sender.id+message.guild.id].roles.has(Role=>Role.id==“741948126004248657”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“741948124297298050”)){
userData[sender.id+message.guild.id].money+=2000;
}else if([sender.id+message.guild.id].roles.has(Role=>Role.id===“741949250287697942”)){
userData[sender.id+message.guild.id].money+=5000;
}否则{
message.channel.send({
“嵌入”:{
标题:“对不起”,
颜色:0x1E97C8,
字段:[{
姓名:“你没有工作!”,
价值观:“开始工作吧,你这个懒汉!”,
是的,
}, {
名字:“哈哈”,
值:“:P”,
内联:对
}]
}
})
用户数据[sender.id+message.guild.id].lastPayday=时刻(“1995-12-25”);
错误

if([sender.id+message.guild.id].roles.has(Role=>Role.id==“741948113568137317”)|[sender.id+message.guild.id].roles.has(Role=>Role.id==“7419492497141565”)){
TypeError:无法读取未定义的属性“has”
在客户端。(C:\Users\123\Desktop\SpaceBot\app.js:64:54)
在Client.emit(events.js:315:20)
在MessageCreateAction.handle(C:\Users\123\Desktop\SpaceBot\node\u modules\discord.js\src\client\actions\MessageCreate.js:31:14)
在Object.module.exports[作为消息\u CREATE](C:\Users\123\Desktop\SpaceBot\node\u modules\discord.js\src\client\websocket\handlers\MESSAGE\u CREATE.js:4:32)
在WebSocketManager.handlePacket(C:\Users\123\Desktop\SpaceBot\node\u modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
在WebSocketShard.onPacket(C:\Users\123\Desktop\SpaceBot\node\u modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
在WebSocketShard.onMessage(C:\Users\123\Desktop\SpaceBot\node\u modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
在WebSocket.onMessage(C:\Users\123\Desktop\SpaceBot\node\u modules\ws\lib\event target.js:125:16)
在WebSocket.emit(events.js:315:20)
在Receiver.receiverOnMessage(C:\Users\123\Desktop\SpaceBot\node\u modules\ws\lib\websocket.js:797:20)```

您忘记了缓存对象。请使用

if(
message.guild.member(发送者)//获取GuildMember对象
.roles.cache.has(roleID)){//Discord v12使用管理器,因此需要缓存对象
//某物
});

您好,谢谢您的及时回复!我想这是可行的,但现在帮会还没有定义。我试图自己修复它,但没有成功。这是我的最新尝试:
const guild=new Discord.guild();guild.cache.get(“735657160964440178”);
啊,对不起,这是我的错误。使用
message.guild.member(发件人)
if ([sender.id + message.guild.id].roles.has(Role => Role.id === "741948113568137317") || [sender.id + message.guild.id].roles.has(Role => Role.id === "741949249717141565" )) {
                                                     

TypeError: Cannot read property 'has' of undefined
    at Client.<anonymous> (C:\Users\123\Desktop\SpaceBot\app.js:64:54)
    at Client.emit (events.js:315:20)
    at MessageCreateAction.handle (C:\Users\123\Desktop\SpaceBot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\123\Desktop\SpaceBot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\123\Desktop\SpaceBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
    at WebSocketShard.onPacket (C:\Users\123\Desktop\SpaceBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
    at WebSocketShard.onMessage (C:\Users\123\Desktop\SpaceBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
    at WebSocket.onMessage (C:\Users\123\Desktop\SpaceBot\node_modules\ws\lib\event-target.js:125:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (C:\Users\123\Desktop\SpaceBot\node_modules\ws\lib\websocket.js:797:20) ```