Guest User

Untitled

a guest
Mar 16th, 2022
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. @Mod("trajanstanks")
  2. public class TankMod {
  3. public static final SimpleChannel NETWORK_INSTANCE = NetworkRegistry.newSimpleChannel(
  4. new ResourceLocation("trajanstanks", "main"),
  5. () -> "1",
  6. "1"::equals,
  7. "1"::equals
  8. );
  9. public static final String MOD_ID = "trajanstanks";
  10. // Directly reference a log4j logger.
  11. private static final Logger LOGGER = LogManager.getLogger();
  12. public TankMod() {
  13. ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, TankModConfig.SPEC, "trajanstanks-config.toml");
  14. NETWORK_INSTANCE.registerMessage(0, TankInputMessage.class,
  15. TankInputMessage::writePacketData,
  16. TankInputMessage::new,
  17. (packet, ctx) -> {
  18. ctx.get().setPacketHandled(true);
  19. packet.handle(packet, null);
  20. }
  21. );
  22. NETWORK_INSTANCE.registerMessage(1, ArtilleryInputMessage.class,
  23. ArtilleryInputMessage::writePacketData,
  24. ArtilleryInputMessage::new,
  25. (packet, ctx) -> {
  26. ctx.get().setPacketHandled(true);
  27. packet.handle(packet, null);
  28. }
  29. );
  30. NETWORK_INSTANCE.registerMessage(2, HeavyInputMessage.class,
  31. HeavyInputMessage::writePacketData,
  32. HeavyInputMessage::new,
  33. (packet, ctx) -> {
  34. ctx.get().setPacketHandled(true);
  35. packet.handle(packet, null);
  36. }
  37. );
  38. GeckoLib.initialize();
  39. // Register the setup method for modloading
  40. IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus();
  41. eventBus.addListener(this::setup);
  42. // Register the enqueueIMC method for modloading
  43. eventBus.addListener(this::enqueueIMC);
  44. // Register the processIMC method for modloading
  45. eventBus.addListener(this::processIMC);
  46. eventBus.addListener(this::commonSetup);
  47. // Register the doClientStuff method for modloading
  48. TankModItems.register(eventBus);
  49. TankModEntityTypes.register(eventBus);
  50. // Register ourselves for server and other game events we are interested in
  51. MinecraftForge.EVENT_BUS.register(this);
  52. TankNetwork.init();
  53. }
  54.  
  55. public void commonSetup(final FMLCommonSetupEvent event) {
  56. TankNetwork.init();
  57. }
  58.  
  59. private void setup(final FMLCommonSetupEvent event) {
  60.  
  61. // some preinit code
  62. LOGGER.info("HELLO FROM PREINIT");
  63. LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
  64. }
  65.  
  66. private void enqueueIMC(final InterModEnqueueEvent event) {
  67. // some example code to dispatch IMC to another mod
  68. InterModComms.sendTo("examplemod", "helloworld", () -> {
  69. LOGGER.info("Hello world from the MDK");
  70. return "Hello world";
  71. });
  72. }
  73.  
  74. private void processIMC(final InterModProcessEvent event) {
  75. // some example code to receive and process InterModComms from other mods
  76. LOGGER.info("Got IMC {}", event.getIMCStream().
  77. map(m -> m.getMessageSupplier().get()).
  78. collect(Collectors.toList()));
  79. }
  80.  
  81. // You can use SubscribeEvent and let the Event Bus discover methods to call
  82. @SubscribeEvent
  83. public void onServerStarting(ServerStartingEvent event) {
  84. // do something when the server starts
  85. LOGGER.info("HELLO from server starting");
  86. }
  87.  
  88. // You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
  89. // Event bus for receiving Registry Events)
  90. @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
  91. public static class RegistryEvents {
  92. @SubscribeEvent
  93. public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
  94. // register a new block here
  95. LOGGER.info("HELLO from Register Block");
  96. }
  97.  
  98. @OnlyIn(Dist.CLIENT)
  99. @SubscribeEvent
  100. public static void registerRenderers(final FMLClientSetupEvent event) {
  101. Minecraft minecraftClient = Minecraft.getInstance();
  102. EntityRenderers.register(TankModEntityTypes.ARTILLERY_ENTITY_TYPE.get(), ArtilleryEntityRenderer::new);
  103. EntityRenderers.register(TankModEntityTypes.TANK_ENTITY_TYPE.get(), TankEntityRenderer::new);
  104. EntityRenderers.register(TankModEntityTypes.SHELL.get(), ThrownItemRenderer<ShellEntity>::new);
  105. EntityRenderers.register(TankModEntityTypes.ARTILLERY_SHELL.get(), ThrownItemRenderer<ArtilleryShell>::new);
  106. EntityRenderers.register(TankModEntityTypes.HEAVY_TANK_ENTITY_TYPE.get(), HeavyTankRenderer::new);
  107.  
  108. // event.registerEntityRenderer(TankModEntityTypes.SHELL.get(), ThrownItemRenderer::new<>(entityRendererManager, minecraftClient.getItemRenderer()));
  109.  
  110. }
  111. }
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment