java - PlayerLoggedInEvent 仅在单人游戏中运行? (MC锻造)

标签 java minecraft minecraft-forge

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

那是我用来注册它的总线。

@SubscribeEvent
public void onPlayerJoinServer(PlayerLoggedInEvent event) {
    event.player.addChatMessage(new ChatComponentText("test"));
    return;
}

那是我的 Activity 。当我加入单人游戏世界时,它会向我发送“测试”消息,但当我加入多人游戏服务器时,它不会向我发送“测试”消息。 (如 Mineplex)请告诉我为什么会发生这种情况,谢谢!

最佳答案

该事件在 logical server side 上触发

如果物理服务器上不存在您的 mod(即 Mineplex 尚未安装它),那么它不会触发。

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

但是,它不太可能通知您另一个玩家已连接到同一服务器(EntityJoinWorldEvent 可能有效,但您需要区分EntityPlayerMP)。

关于java - PlayerLoggedInEvent 仅在单人游戏中运行? (MC锻造),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45044084/

相关文章:

java - 两种不同的架构和 JAXB Marshaller

java - 为什么 Minecraft Forge 有这些奇怪的变量名?

java - 使用 ANT 编译 JavaFX 代码

Java 列表最佳实践

java - 我的世界 mod 1.12.2 玻璃虫

java - 如何正确使用Reflector Class.cast()?

java - Minecraft NPC 没有在服务器上生成并攻击我 : null pointer error

java - blockstate [state] 的 varian [block] 的异常加载模型 MissingVariantException

java - 我如何从该方法外部访问该变量?

java - 如何从 Mockito 类中为不返回值的 Save 方法调用/生成异常?