Volver al índice

src/main/java/ar/com/companeros/Companeros.java

package ar.com.companeros;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

@Mod(Companeros.ID)
public final class Companeros {
    public static final String ID = "companeros";
    private static final DeferredRegister<EntityType<?>> ENTITIES =
        DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, ID);
    public static final RegistryObject<EntityType<Companion>> COMPANION = ENTITIES.register("companero",
        () -> EntityType.Builder.of(Companion::new, MobCategory.CREATURE)
            .sized(0.6F, 1.8F).clientTrackingRange(10).build(ID + ":companero"));

    // Registro del mod: el cerebro y las modificaciones del mundo viven en el servidor.
    public Companeros() {
        IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
        ENTITIES.register(bus);
        ar.com.companeros.flags.BannerLootModifier.register(bus);
        ar.com.companeros.horror.HorrorModule.register(bus);
        bus.addListener(this::attributes);
        bus.addListener(this::loaded);
        MinecraftForge.EVENT_BUS.addListener(Commands::register);
        MinecraftForge.EVENT_BUS.addListener(WorkArea::recordPlacement);
        ar.com.companeros.body.PlayerSessions.install();
        ar.com.companeros.identity.SkinProfiles.install();
        ar.com.companeros.horror.HorrorModule.install();
        ar.com.companeros.horror.HorrorSpeech.install();
        ar.com.companeros.runtime.AgentRuntime.install();
        ar.com.companeros.social.AgentCommunication.install();
        MinecraftForge.EVENT_BUS.addListener(ar.com.companeros.social.AdminChannel::register);
        MinecraftForge.EVENT_BUS.addListener(net.minecraftforge.eventbus.api.EventPriority.HIGHEST,
            ar.com.companeros.social.AdminChannel::chat);
    }

    private void attributes(EntityAttributeCreationEvent event) {
        event.put(COMPANION.get(), Companion.attributes().build());
    }

    private void loaded(net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent event) {
        com.mojang.logging.LogUtils.getLogger().info("Raps cargado.");
    }
}