我使用mcpi:https://github.com/AdventuresInMinecraft/AdventuresInMinecraft-Linux启动本地服务器。之后,运行程序:
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
mc.postToChat("Hello Minecraft World")我遇到了下面的错误:
Traceback (most recent call last):
File "/home/home/AdventuresInMinecraft/MyAdventures/HelloMinecraftWorld.py", line 2, in mc = minecraft.Minecraft.create()
File "/home/home/.local/lib/python3.6/site-packages/mcpi/minecraft.py", line 376, in create return Minecraft(Connection(address, port))
File "/home/home/.local/lib/python3.6/site-packages/mcpi/connection.py", line 17, in init self.socket.connect((address, port))
ConnectionRefusedError: [Errno 111] Connection refused发布于 2020-05-05 13:24:06
ConnectionRefusedError意味着address + port组合对于这个特定的“我的世界”服务器是不安全的,因此引发了一个异常。这可能是因为某些其他应用程序已在使用感兴趣的端口,该端口因操作系统或少数其他网络配置故障而不可用。
但或许更好的一系列问题是问自己:
minecraft.Minecraft.create()尝试启动/侦听的默认地址和端口是什么?This post has already addressed the root issue of your question,我希望它能给你一个好的开始来理解你的问题的基础。
注意他们的问题是如何提到s.connect((host,port))的,你的堆栈跟踪的self.socket.connect((address, port))在我看来是一样的!
更多阅读:- localhost - check if port is in use
发布于 2020-09-26 15:41:04
我遇到了同样的问题。我查看了mcpi的代码,发现默认端口是4711。然而,Minecraft服务器的默认端口是25565。您所需要做的就是在create()函数上添加两个参数。代码(Python):
mc = minecraft.Minecraft.create(address="127.0.0.1", port=25565)btw将代码中的"address“更改为服务器的主机(仅当您修改了"server.properties”文件时)。
此外,ConnectionRefusedError并不意味着它不安全,我认为它意味着服务器没有在线,它不存在,或者服务器出于某种原因拒绝了它。
编辑:哦,对不起,我刚刚发现mcpi实际上连接到了托管在另一个IP和端口上的RaspberryJam插件。该插件在端口4711上运行。所以mcpi有正确的端口。因此,请检查是否安装了RaspberryJam插件。如果没有,请从以下地址下载
https://www.spigotmc.org/resources/raspberryjuice.22724/
并将.jar文件放在服务器目录下的插件文件夹中。
https://stackoverflow.com/questions/61605811
复制相似问题