【问题标题】:Cant detect when a player joins a world无法检测玩家何时加入世界
【发布时间】:2021-11-04 15:09:37
【问题描述】:

所以我试图让这个 mod 给你 2 个苹果(用于测试目的),但我似乎无法让它工作:/(没有错误,mod 没有输出任何东西)这是我的代码(1.8.9 Forge BTW ):

    @SubscribeEvent
public static void init(FMLInitializationEvent event)
{
    MinecraftForge.EVENT_BUS.register(EventHandler.class);
}
@SubscribeEvent
public void onPlayerJoin(PlayerLoggedInEvent event)
{
    event.player.inventory.addItemStackToInventory(new ItemStack(Items.apple, 2));
    event.player.addChatMessage(new ChatComponentText("test"));
    return;
}

【问题讨论】:

  • 你有日志吗?崩溃错误还是什么? “不起作用”是什么意思?
  • 当我加入一个单人游戏世界时,它什么都不做模组没有输出,没有错误什么都没有,它只是什么都不做

标签: java-8 minecraft minecraft-forge


【解决方案1】:

Minecraft 出于某种原因使用了两种不同的事件系统。 init 应该是 @EventHandler,而不是 @SubscribeEventonPlayerJoin 是正确的。 (如果您还没有,请添加import net.minecraftforge.fml.common.Mod.EventHandler;。)

另外,如果onPlayerJoin 在你的MainGuts 类中,那么你需要做MinecraftForge.EVENT_BUS.register(MainGuts.class);MinecraftForge.EVENT_BUS.register(this); (尝试两者;我忘记了在1.8.9 中哪个是正确的),而不是MinecraftForge.EVENT_BUS.register(EventHandler.class);.

【讨论】:

  • 嗯,我照你说的做了,但仍然没有:/这是所有代码:pastebin.com/eNUwSmcx
  • @CodingWiz 好的,我在那里看到了另一个错误,并将其修复添加到我的答案中。顺便说一句,您应该编辑您的问题以包含所有代码。
  • 摆脱了静电,“这个”起作用了。
猜你喜欢
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多