如何使用 python 制作用于启动 minecraft 服务器的 discord 机器人?
How can I make discord bot for strarting minecraft server with python?
这就是我的鳕鱼了:
import discord
import subprocess
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('!StartServer'):
await message.channel.send('Server is starting')
subprocess.call(['java', '-jar', 'D:\Tests\paper\paper-1.18.1-92.jar'])
client.run('token')
但是当我使用命令 '!StartServer' 控制台写这个(我已经同意 EULA):
**Starting org.bukkit.craftbukkit.Main
*** Warning, you've not updated in a while! ***
*** Please download a new build as per instructions from https://papermc.io/downloads ***
System Info: Java 17 (Java HotSpot(TM) 64-Bit Server VM 17.0.1+12-LTS-39) Host: Windows 10 10.0 (amd64)
Loading libraries, please wait...
2022-01-29 16:44:05,769 ServerMain WARN Advanced terminal features are not available in this environment
[16:44:09 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.**
我该如何解决?
存在多个问题:
您正在 运行创建一个旧的纸质版本。所以,如所问,去 here 然后下载更新的版本。
对于 eula,问题更具全球性。服务器没有在好的地方启动。让我解释一下。
你有这样的文件夹:
global/
--- server/
--- paper-1.18.1-92.jar <--- what you want to run
bot/
--- bot.py <--- the file you are running
您将确切的文件夹放入 python 脚本中,因此它将使用 bot/
文件夹中的 paper-1.18.1-92.jar
(在我的示例中)。
要解决这个问题,我建议您制作一个脚本,运行 来自 python 的脚本。
Windows
script.bat:
@echo off
title MC server
chcp 1252
cd global/server
java -jar paper-1.18.1-92.jar -o true --nogui
Linux
script.sh :
#!/bin/bash
cd global/server
java -jar paper-1.18.1-92.jar -o true --nogui
cd
命令在 good 文件夹中创建脚本,因此可以从任何地方启动,它会 运行 good 文件夹。
这就是我的鳕鱼了:
import discord
import subprocess
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('!StartServer'):
await message.channel.send('Server is starting')
subprocess.call(['java', '-jar', 'D:\Tests\paper\paper-1.18.1-92.jar'])
client.run('token')
但是当我使用命令 '!StartServer' 控制台写这个(我已经同意 EULA):
**Starting org.bukkit.craftbukkit.Main
*** Warning, you've not updated in a while! ***
*** Please download a new build as per instructions from https://papermc.io/downloads ***
System Info: Java 17 (Java HotSpot(TM) 64-Bit Server VM 17.0.1+12-LTS-39) Host: Windows 10 10.0 (amd64)
Loading libraries, please wait...
2022-01-29 16:44:05,769 ServerMain WARN Advanced terminal features are not available in this environment
[16:44:09 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.**
我该如何解决?
存在多个问题:
您正在 运行创建一个旧的纸质版本。所以,如所问,去 here 然后下载更新的版本。
对于 eula,问题更具全球性。服务器没有在好的地方启动。让我解释一下。
你有这样的文件夹:
global/
--- server/
--- paper-1.18.1-92.jar <--- what you want to run
bot/
--- bot.py <--- the file you are running
您将确切的文件夹放入 python 脚本中,因此它将使用 bot/
文件夹中的 paper-1.18.1-92.jar
(在我的示例中)。
要解决这个问题,我建议您制作一个脚本,运行 来自 python 的脚本。
Windows
script.bat:
@echo off
title MC server
chcp 1252
cd global/server
java -jar paper-1.18.1-92.jar -o true --nogui
Linux
script.sh :
#!/bin/bash
cd global/server
java -jar paper-1.18.1-92.jar -o true --nogui
cd
命令在 good 文件夹中创建脚本,因此可以从任何地方启动,它会 运行 good 文件夹。