Minecraft 服务器客户端通过 Discord Bot

Posted

技术标签:

【中文标题】Minecraft 服务器客户端通过 Discord Bot【英文标题】:Minecraft Server Client via Discord Bot 【发布时间】:2019-09-04 08:31:21 【问题描述】:

目前我正在尝试设置一个不和谐机器人,它将我登录到服务器,并将玩家发送的消息传送到不和谐频道。我不是管理员,服务器上也没有任何与员工相关的东西,所以我无法ftp 和使用rcon,我希望它让我的用户登录,并且只是来回传递消息。这可能吗?

所以,到目前为止,我已经通过npm packages 进行了尝试,但他们似乎都没有做我想做的事。 我正在尝试在运行 Windows 10 的家用计算机上托管 node.js discord.js 机器人。

我发现的npm packages 都没有我需要使用的东西。

【问题讨论】:

【参考方案1】:

由于您不是管理员,如果您担心使用机器人,正如 @slothiful 所建议的那样,您还可以研究更费力的实时读取日志文件并解析它的方法。

您客户的日志文件位于 %appdata%/.minecraft/logs/latest.log 中

Reading a file in real-time using Node.js

用于读取正在写入的文件。

【讨论】:

【参考方案2】:

mineflayer 在您的场景中应该很有用。下面是一些使用 Discord webhook 的示例代码...

const Discord = require('discord.js');
const webhook = new Discord.WebhookClient('ID HERE', 'TOKEN HERE');

const mineflayer = require('mineflayer');
const Minecraft = mineflayer.createBot(
  host: '',
  port: 25565,
  username: 'mail@example.com',
  password: '12345678'
);

Minecraft.on('chat', (username, message) => 
  let embed = new Discord.RichEmbed()
  .setColor('#0E9908')
  .setThumbnail(`https://minotar.net/avatar/$username/512`)
  .addField(username, message)
  .setTimestamp();
  webhook.send(embed);
);

如果您想改用机器人,同样的设置也可以使用;您只需在公会中找到您需要消息的频道,然后发送嵌入。

【讨论】:

以上是关于Minecraft 服务器客户端通过 Discord Bot的主要内容,如果未能解决你的问题,请参考以下文章

看懂 游戏《Minecraft》的崩溃报告 服务端/客户端

C# 使用 tcp/ip 从 Minecraft 服务器获取数据包

使用云服务器搭建我的世界(Minecraft)服务端

如何在Fedora 26上安装Minecraft 服务器

通过 os.system 推送

Minecraft开服Windows搭建我的世界MC服务器「公网远程联机」