67 lines
3.0 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|
|
}
|