结合 Mineflayer 和 discord.js
Combining Mineflayer and discord.js
我正在努力做到这一点,所以在 Minecraft 聊天中发送的任何内容也会通过我的机器人发送到 Discord 频道。它会在游戏中获取消息,但不会 post 到 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 频道。
我看到您可以在这里改进一些事情,但我知道如何解决(也许)的第一件事是:
在你的代码中你有 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,但我想我也许可以帮助整理事物的顺序。如果您需要我澄清任何事情,请发表评论。
也许你可以这样做
矿工上有一个名为“消息”的事件
bot.on("message", message => {
let channel = client.channels.cache.get("CHID")
if (!channel) return;
channel.send(`From Server Chat >> ${message}`)
})
我正在努力做到这一点,所以在 Minecraft 聊天中发送的任何内容也会通过我的机器人发送到 Discord 频道。它会在游戏中获取消息,但不会 post 到 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 频道。
我看到您可以在这里改进一些事情,但我知道如何解决(也许)的第一件事是:
在你的代码中你有 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,但我想我也许可以帮助整理事物的顺序。如果您需要我澄清任何事情,请发表评论。
也许你可以这样做
矿工上有一个名为“消息”的事件
bot.on("message", message => {
let channel = client.channels.cache.get("CHID")
if (!channel) return;
channel.send(`From Server Chat >> ${message}`)
})