minecraft forge fmlclientsetupevent在服务器上激发?

x33g5p2x  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(388)

如标题所述,我认为fmlclientsetupevent是在forge minecraft专用服务器上触发的。伪造版本应该是相同的。总之,这导致了错误
java.lang.runtimeexception:尝试为无效的dist专用\u服务器加载类net/minecraft/client/renderer/entity/entityrenderer
我发现这是因为customrender类是entityrenderer的一个子类。删除“renderingregistry.registerentityrend…”行时,我在其中注册customrender,服务器启动正常。
有什么想法吗?我真的没有得到它自己,因为我不能调试服务器应用程序。
fmlclientsetupevent的文档:https://mcforge.readthedocs.io/en/latest/conventions/loadstages/
我的代码:

  1. @Mod(Utils.MOD_ID)
  2. public class Main {
  3. public Main() {
  4. ModItems.ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
  5. ModSounds.SOUNDS.register(FMLJavaModLoadingContext.get().getModEventBus());
  6. ModEntityType.ENTITY_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus());
  7. FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup);
  8. FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientSetup);
  9. FMLJavaModLoadingContext.get().getModEventBus().addListener(this::serverSetup);
  10. }
  11. private void commonSetup(FMLCommonSetupEvent evt) {
  12. }
  13. private void clientSetup(FMLClientSetupEvent evt) {
  14. Phaser.arrow = ModEntityType.LASERSTRAHL_ENTITY.get();
  15. RenderingRegistry.registerEntityRenderingHandler(Phaser.arrow, renderManager -> new CustomRender(renderManager));
  16. }
  17. private void serverSetup(FMLDedicatedServerSetupEvent evt) {
  18. }
  19. }
qpgpyjmq

qpgpyjmq1#

我想出来了。事件没有被触发,但显然服务器不喜欢entityrenderer类被导入。因此,我为客户机设置东西创建了一个新类,并在fmlclientsetupevent之后调用它。

相关问题