我不是程序员,我对任何有关代码的知识都一无所知。然而,我真的很想做这件事,所以我的手有点脏。
我正在尝试使用 discord.js、node.js 和子进程模块让 discord 机器人打开我的 minecraft 服务器。 它基本上告诉所有这些很棒的程序打开我的minecraft服务器文件夹中的start.bat。
这没有按预期工作,所以我对 JS 东西的原始代码做了一些调整。它的名称是 console-bot.js
这是我尝试使用的原始文件:https://github.com/Stonley890/mc-console-bot
这是我调整后修改后的文件:
https://drive.google.com/drive/folders/15-42jB9GNoHCHSpW761KqJKpEoBp4wNv?usp=sharing
里面还有.bat文件。
现在的问题是,当 .bat 文件打开时,它的行为有所不同。它要求我在 eula.txt 文件中输入“true”,这对于 minecraft 服务器 来说很常见。问题是,文件在那里并且设置为 true,所以我认为它没有找到它。当我自己打开 .bat 时不会发生这种情况。 此外,当我将其设置为绕过 eula.txt 文件时,它也不起作用。
让我展示一下我卡在哪里:
C:\Users\Administrador>node desktop\server\edited-console-bot.js
Bot online! Woohoo!
Attempting to start server.
Starting net.minecraft.server.Main
[11:36:44] [ServerMain/INFO]: Building unoptimized datafixer
[11:36:44] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
child process exited with code 0
C:\Users\Administrador\desktop\server\edited-console-bot.js:66
message.guild.channels.resolve(serverstatus).setName('SERVER: DOWN ❌');
^
ReferenceError: serverstatus is not defined
at ChildProcess.<anonymous> (C:\Users\Administrador\desktop\server\edited-console-bot.js:66:48)
at ChildProcess.emit (node:events:525:35)
at maybeClose (node:internal/child_process:1091:16)
at Socket.<anonymous> (node:internal/child_process:449:11)
at Socket.emit (node:events:513:28)
at Pipe.<anonymous> (node:net:322:12)
Node.js v18.14.2
当我自己打开 .bat 文件时,这不会发生。