我愿意让 discord 机器人从我的 minecraft 机器人发送所有消息(加入、离开、杀戮、聊天)
I'm willing to make the discord bot send all the messages (join, leave, kill, chat) from my minecraft bot
消息事件无效,它不会将消息发送到指定的不和谐频道。
我一直在尝试让它工作我尝试聊天并且它工作但它没有发送 join/leave 也没有发送终止消息。
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)
您的 jsonMsg
必须是字符串,而不是对象。放入 send
的任何内容都必须是要发送到 Discord 的消息字符串,或者您可以在 Discord API 文档中阅读的嵌入对象。 https://discordapp.com/developers/docs/resources/channel#embed-object
编辑:检查 Mineflayer 的 API 后,播放 joined/left 事件不通过消息传递,而是通过 playerJoined
和 playerLeft
事件传递。参见 https://github.com/PrismarineJS/mineflayer/blob/master/docs/api.md#playerjoined-player
我设法修复了它,但不得不在代码中进行大量更改,我添加了以下内容:
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.")
});
});
消息事件无效,它不会将消息发送到指定的不和谐频道。
我一直在尝试让它工作我尝试聊天并且它工作但它没有发送 join/leave 也没有发送终止消息。
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)
您的 jsonMsg
必须是字符串,而不是对象。放入 send
的任何内容都必须是要发送到 Discord 的消息字符串,或者您可以在 Discord API 文档中阅读的嵌入对象。 https://discordapp.com/developers/docs/resources/channel#embed-object
编辑:检查 Mineflayer 的 API 后,播放 joined/left 事件不通过消息传递,而是通过 playerJoined
和 playerLeft
事件传递。参见 https://github.com/PrismarineJS/mineflayer/blob/master/docs/api.md#playerjoined-player
我设法修复了它,但不得不在代码中进行大量更改,我添加了以下内容:
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.")
});
});