Files
NavidromeMod/src/main/java/com/rardog/navidromeplayer/NavidromePlayerMod.java
T

67 lines
3.0 KiB
Java

package com.rardog.navidromeplayer;
import com.rardog.navidromeplayer.block.ModBlocks;
import com.rardog.navidromeplayer.block.ModItems;
import com.rardog.navidromeplayer.network.NetworkHandler;
import com.rardog.navidromeplayer.network.PacketBroadcastPlayback;
import com.rardog.navidromeplayer.tileentity.ModTileEntities;
import com.rardog.navidromeplayer.tileentity.NavidromePlayerTileEntity;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@Mod(NavidromePlayerMod.MOD_ID)
public class NavidromePlayerMod {
public static final String MOD_ID = "navidromeplayer";
public static final Logger LOGGER = LogManager.getLogger();
public NavidromePlayerMod() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
ModBlocks.BLOCKS.register(modEventBus);
ModItems.ITEMS.register(modEventBus);
ModTileEntities.TILE_ENTITIES.register(modEventBus);
modEventBus.addListener(this::commonSetup);
modEventBus.addListener(this::clientSetup);
MinecraftForge.EVENT_BUS.register(this);
}
private void commonSetup(final FMLCommonSetupEvent event) {
event.enqueueWork(() -> {
NavidromePlayerTileEntity.TYPE = ModTileEntities.NAVIDROME_PLAYER.get();
NetworkHandler.register();
LOGGER.info("[NavidromePlayer] Initialized common setup & network protocol.");
});
}
private void clientSetup(final net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent event) {
net.minecraftforge.fml.client.registry.ClientRegistry.bindTileEntityRenderer(
ModTileEntities.NAVIDROME_PLAYER.get(),
com.rardog.navidromeplayer.client.render.NavidromePlayerRenderer::new
);
MinecraftForge.EVENT_BUS.register(com.rardog.navidromeplayer.client.lyrics.LyricsHudOverlay.getInstance());
MinecraftForge.EVENT_BUS.register(new com.rardog.navidromeplayer.client.command.ClientMusicCommands());
LOGGER.info("[NavidromePlayer] Registered tile entity renderer, lyrics HUD overlay, and client music commands.");
}
@SubscribeEvent
public void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getPlayer() instanceof ServerPlayerEntity) {
ServerPlayerEntity serverPlayer = (ServerPlayerEntity) event.getPlayer();
PacketBroadcastPlayback active = NavidromePlayerTileEntity.getActiveBroadcast();
if (active != null) {
NetworkHandler.sendToPlayer(serverPlayer, active);
}
}
}
}