我正在努力做到这一点,因此Minecraft聊天中发送的所有内容也会通过我的机器人发送到Discord频道。它会在游戏中获取消息,但不会发布到Discord频道。 (我是JavaScript新手)
const Discord = require('discord.js');
const mineflayer = require('mineflayer');
const client = new Discord.Client();
var bot = mineflayer.createBot({
host: "localhost",
port: 62146,
username: "email",
password: "password",
});
client.on('ready', () => {
console.log(`Connected!`)
console.log(`Username: ${client.user.tag}`);
});
bot.on('chat', function(username, message) {
if (username === bot.username) return;
bot.chat(message)
});
client.on("message", function(message) {
client.channels.get()("500693869684326430").send(message)
});
client.login('');
我希望它发送用户发送的消息,以便发送到已定义的Discord频道。
答案 0 :(得分:1)
我在这里看到一些可以改进的地方,但我知道如何解决(也许)的第一件事是:
在您的代码中,您有client.channels.get()("500693869684326430").send(message)
,当我非常确定它应该为client.channels.get("500693869684326430").send(message)
时,因为函数get()
是您要提供的通道ID的参数。需要明确的是,这会将message
发送到ID为500693869684326430
的Discord频道。
我还看到您说要从Minecraft聊天中获取消息以发送到Discord频道时,您似乎正在将Minecraft聊天消息发送回与bot.chat(message)
的聊天中?
我相信您的意思是在此处使用前面提到的client.channels.get("500693869684326430").send(message)
。
为了澄清我的意思,我将完整的代码放在下面。
const Discord = require('discord.js');
const mineflayer = require('mineflayer');
const client = new Discord.Client();
var bot = mineflayer.createBot({
host: "localhost",
port: 62146,
username: "email",
password: "password",
});
client.on('ready', () => {
console.log(`Connected!`)
console.log(`Username: ${client.user.tag}`);
});
bot.on('chat', function(username, message) {
if (username === bot.username) return;
client.channels.get("500693869684326430").send(message)
});
client.on("message", function(message) {
// you don't really need this but maybe that's what you want, i don't know
//client.channels.get()("500693869684326430").send(message)
});
client.login('');
说句公道话,我以前从未使用过mineflayer,但我认为我可能可以帮助解决问题。如果您需要我澄清任何事情,请发表评论。
答案 1 :(得分:0)
也许你可以这样做
mineflayer上有一个叫做“message”的事件
bot.on("message", message => {
let channel = client.channels.cache.get("CHID")
if (!channel) return;
channel.send(`From Server Chat >> ${message}`)
})