Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PlayerLoggeDineEvent仅在单机版中运行?(MC锻造)_Java_Minecraft_Minecraft Forge - Fatal编程技术网

Java PlayerLoggeDineEvent仅在单机版中运行?(MC锻造)

Java PlayerLoggeDineEvent仅在单机版中运行?(MC锻造),java,minecraft,minecraft-forge,Java,Minecraft,Minecraft Forge,那是我用来登记的公共汽车 FMLCommonHandler.instance().bus().register(new PlayerJoin()); 这是我的事。当我加入单人世界时,它会向我发送“测试”消息,但当我加入多人服务器时不会。(像Mineplex)请让我知道为什么会发生这种情况,谢谢 该事件在服务器上触发 如果物理服务器上不存在您的mod(即Mineplex尚未安装),则不会启动 稍微挖掘一下(不是最新的,但可能足够了,因为像这样的事件从未被删除,几乎从未重命名),我发现FMLNet

那是我用来登记的公共汽车

FMLCommonHandler.instance().bus().register(new PlayerJoin());

这是我的事。当我加入单人世界时,它会向我发送“测试”消息,但当我加入多人服务器时不会。(像Mineplex)请让我知道为什么会发生这种情况,谢谢

该事件在服务器上触发

如果物理服务器上不存在您的mod(即Mineplex尚未安装),则不会启动

稍微挖掘一下(不是最新的,但可能足够了,因为像这样的事件从未被删除,几乎从未重命名),我发现
FMLNetworkEvent.ClientConnectedToServerEvent
,当客户端即将连接到任何服务器时,它会在客户端上触发


但是,不太可能通知您另一个播放机已连接到同一服务器(
EntityJoinWorldEvent
可能可以工作,不过您需要区分
EntityPlayerMP
)的实例。

对于ClientConnectedToServerEvent,似乎没有事件。getServer()。我需要一种方法来获取客户端连接到的世界/服务器中的playerEntities。至于EntityJoinWorldEvent,它会使客户端崩溃,因为PlayerJoin类所做的基本上是打开一个MySQL连接,检查服务器上是否有人在数据库中,如果有人在数据库中,则会执行一些操作。如果我要加入的服务器中有50个玩家,它会同时打开50个连接并崩溃,我无法找到一种方法,使它在玩家加入时只运行一次,而不是为每个加载的实体运行一次。@BilleBawb Use
ClientConnectedToServerEvent
,但您需要另一种方法来连接玩家列表(显然,您不能使用
getServer()
,因为连接到远程服务器的客户端无法访问服务器进程)。在你按Tab键时显示的UI中四处寻找,我已经忘记了它的名称,但它填充了玩家列表,并将显示如何访问所需信息。@BilleBawb现在我到家了,请查看
guiplayertOverrlay的
renderPlayerlist()
Minecraft.getMinecraft().ingamagui.getTabList()
?如果我这样做,就不会有.getPlayers()或.playerEntities。这就是你所说的吗?关于nethandlerplayclient.getPlayerInfoMap()
@SubscribeEvent
public void onPlayerJoinServer(PlayerLoggedInEvent event) {
    event.player.addChatMessage(new ChatComponentText("test"));
    return;
}