On message事件不起作用,它不会将消息发送到指定的不一致通道。
我一直在尝试让它工作,我在聊天上试过,它工作了,但它既没有发送加入/离开,也没有发送终止消息。
const mineflayer = require("mineflayer");
const Discord = require("discord.js")
const client = new Discord.Client()
const connect = {
"host": "localhost",
"port": "25567",
"username": "MegaREEE"
}
const bot = mineflayer.createBot({
host: connect.host,
port: connect.port,
username: connect.username,
});
client.on('ready', () => {
console.log("succesfully connected to discord")
client.channels.get("593310885729271859").send("✔: Bot Connected!")
})
bot.on('messsage', function(jsonMsg) {
client.channels.get("593310885729271859").send(jsonMsg)
})
client.login(token)发布于 2019-06-26 18:58:54
您的jsonMsg必须是字符串,而不是对象。无论放到send中的是什么,都必须是要发送给Discord的消息字符串,或者是您可以在Discord文档中阅读到的嵌入对象。https://discordapp.com/developers/docs/resources/channel#embed-object
编辑:检查Mineflayer的API后,play joined/left事件不会通过消息传递,而是通过playerJoined和playerLeft事件传递。请参阅https://github.com/PrismarineJS/mineflayer/blob/master/docs/api.md#playerjoined-player
发布于 2019-06-26 23:29:23
我设法修复了它,但不得不在代码中做了很多修改,我添加了以下内容:
minecraftBot.on('message', (message) => {
let log = message.text;
if (message.extra){
log += message.extra.map(it => it.text).join("");
}
log = log.trim();
if (log.length === 0){ return; }
channel.send("", {
embed: new djs.RichEmbed()
.setAuthor(mflConf.host)
.setDescription(`**${log}**`)
.setColor("RANDOM")
.setTimestamp()
.setFooter(moment().format('h:mm:ss a')+ " © Syndicate Bot.")
});
});https://stackoverflow.com/questions/56770692
复制相似问题