Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Mod("trajanstanks")
- public class TankMod {
- public static final SimpleChannel NETWORK_INSTANCE = NetworkRegistry.newSimpleChannel(
- new ResourceLocation("trajanstanks", "main"),
- () -> "1",
- "1"::equals,
- "1"::equals
- );
- public static final String MOD_ID = "trajanstanks";
- // Directly reference a log4j logger.
- private static final Logger LOGGER = LogManager.getLogger();
- public TankMod() {
- ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, TankModConfig.SPEC, "trajanstanks-config.toml");
- NETWORK_INSTANCE.registerMessage(0, TankInputMessage.class,
- TankInputMessage::writePacketData,
- TankInputMessage::new,
- (packet, ctx) -> {
- ctx.get().setPacketHandled(true);
- packet.handle(packet, null);
- }
- );
- NETWORK_INSTANCE.registerMessage(1, ArtilleryInputMessage.class,
- ArtilleryInputMessage::writePacketData,
- ArtilleryInputMessage::new,
- (packet, ctx) -> {
- ctx.get().setPacketHandled(true);
- packet.handle(packet, null);
- }
- );
- NETWORK_INSTANCE.registerMessage(2, HeavyInputMessage.class,
- HeavyInputMessage::writePacketData,
- HeavyInputMessage::new,
- (packet, ctx) -> {
- ctx.get().setPacketHandled(true);
- packet.handle(packet, null);
- }
- );
- GeckoLib.initialize();
- // Register the setup method for modloading
- IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus();
- eventBus.addListener(this::setup);
- // Register the enqueueIMC method for modloading
- eventBus.addListener(this::enqueueIMC);
- // Register the processIMC method for modloading
- eventBus.addListener(this::processIMC);
- eventBus.addListener(this::commonSetup);
- // Register the doClientStuff method for modloading
- TankModItems.register(eventBus);
- TankModEntityTypes.register(eventBus);
- // Register ourselves for server and other game events we are interested in
- MinecraftForge.EVENT_BUS.register(this);
- TankNetwork.init();
- }
- public void commonSetup(final FMLCommonSetupEvent event) {
- TankNetwork.init();
- }
- private void setup(final FMLCommonSetupEvent event) {
- // some preinit code
- LOGGER.info("HELLO FROM PREINIT");
- LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
- }
- private void enqueueIMC(final InterModEnqueueEvent event) {
- // some example code to dispatch IMC to another mod
- InterModComms.sendTo("examplemod", "helloworld", () -> {
- LOGGER.info("Hello world from the MDK");
- return "Hello world";
- });
- }
- private void processIMC(final InterModProcessEvent event) {
- // some example code to receive and process InterModComms from other mods
- LOGGER.info("Got IMC {}", event.getIMCStream().
- map(m -> m.getMessageSupplier().get()).
- collect(Collectors.toList()));
- }
- // You can use SubscribeEvent and let the Event Bus discover methods to call
- @SubscribeEvent
- public void onServerStarting(ServerStartingEvent event) {
- // do something when the server starts
- LOGGER.info("HELLO from server starting");
- }
- // You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
- // Event bus for receiving Registry Events)
- @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
- public static class RegistryEvents {
- @SubscribeEvent
- public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
- // register a new block here
- LOGGER.info("HELLO from Register Block");
- }
- @OnlyIn(Dist.CLIENT)
- @SubscribeEvent
- public static void registerRenderers(final FMLClientSetupEvent event) {
- Minecraft minecraftClient = Minecraft.getInstance();
- EntityRenderers.register(TankModEntityTypes.ARTILLERY_ENTITY_TYPE.get(), ArtilleryEntityRenderer::new);
- EntityRenderers.register(TankModEntityTypes.TANK_ENTITY_TYPE.get(), TankEntityRenderer::new);
- EntityRenderers.register(TankModEntityTypes.SHELL.get(), ThrownItemRenderer<ShellEntity>::new);
- EntityRenderers.register(TankModEntityTypes.ARTILLERY_SHELL.get(), ThrownItemRenderer<ArtilleryShell>::new);
- EntityRenderers.register(TankModEntityTypes.HEAVY_TANK_ENTITY_TYPE.get(), HeavyTankRenderer::new);
- // event.registerEntityRenderer(TankModEntityTypes.SHELL.get(), ThrownItemRenderer::new<>(entityRendererManager, minecraftClient.getItemRenderer()));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment