Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 如何在1个discord服务器中切换命令,而不是在bot所在的所有discord服务器中切换命令?_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 如何在1个discord服务器中切换命令,而不是在bot所在的所有discord服务器中切换命令?

Javascript 如何在1个discord服务器中切换命令,而不是在bot所在的所有discord服务器中切换命令?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在编程一个discord机器人,它有几个命令,由我制作的命令处理程序处理。我将包括下面的代码。我的问题是,如果启用该命令,它将在bot所在的每台服务器上切换。那么,如何实现一个message.guild.id系统,该系统只在输入命令的服务器中切换命令? Christian.js-从处理程序读取的外部文件 const Discord=require('Discord.js') exports.run=(bot、message、args、christian)=>{ 如果(args[0]=“off

我正在编程一个discord机器人,它有几个命令,由我制作的命令处理程序处理。我将包括下面的代码。我的问题是,如果启用该命令,它将在bot所在的每台服务器上切换。那么,如何实现一个
message.guild.id
系统,该系统只在输入命令的服务器中切换命令? Christian.js-从处理程序读取的外部文件

const Discord=require('Discord.js')
exports.run=(bot、message、args、christian)=>{
如果(args[0]=“off”)christian=false
如果(args[0]='on')christian=true,则为else
message.channel.send(`Christian Mode${Christian[message.guild.id]?'Active':'Inactive'}`)
return christian[message.guild.id]
}
exports.help={
姓名:“克里斯蒂安”
}
  • 我曾试图增加公会,但失败惨重 (部分)index.js-主文件
bot.on('message',msg=>{
const{author,channel,content}=msg
if(author.bot)返回
试一试{
if(content.startsWith(前缀)){
const args=content.toLowerCase().substring(前缀.length).split(/\s+/g)
const命令=args.shift()
readdir(join('commands'))。然后(files=>{
file.map(file=>require(join(uu dirname,'commands',file))).forEach(cmd=>{
if(command==cmd.help.name){
const resultchristian=cmd.run(bot、msg、args、christian)
if(typeof resultchristian!=“未定义”)christian=resultchristian
}
})
})
返回
}
}捕获(错误){
console.log('命令加载错误已纠正')
}
if(christian[msg.guild.id]){
常量消息={
fdck:“弗里克”,
偏见:“讨厌的人”,
纳德:“尼巴”,
ndga:“臭人”,
帕德西:“孩子”,
普德:“孩子”,
casdnt:“对社会的威胁”,
bdrd:“对社会的威胁”,
dsk:“widly”
}
试一试{
const message=messages[content.toLowerCase()]
如果(message)msg.delete()&channel.send(message).then((m)=>m.delete(10000));
}捕获(错误){
console.log('发生错误-确保bot具有删除邮件权限')
}
}
})
由于某些原因,我无法让我的代码与公会一起工作

提前谢谢大家,


Joe(proto)

尝试如下更改:

 if (args[0] === 'off') christian[message.guild.id] = false
 else if (args[0] === 'on') christian[message.guild.id] = true


抱歉,我的意思是我希望bot只在输入命令的服务器中切换命令-不是bot所在的每台服务器。-我不介意特定的服务器。@Proto然后你必须创建一个文件,在那里你将存储服务器,在那里它被启用。我认为你搞乱了变量类型,你把christian设置为boolean,然后试着把它作为一个object来解析哦,天哪,这比我想象的要复杂得多。我需要将服务器的帮会ID存储在一个文件中,在这个文件中,我可以指示Christian是打开还是关闭-这可能需要一秒钟的时间。当我这样做时,无论我键入什么,它都会将Christian模式置于非活动状态。这在这么少的代码中是一个如此奇怪的错误-我需要根据参数确定Christian[message.guild.id]是否返回true或false:/Add me at my discord Tomas Gaming#7156
return christian