Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.tterrag.moonlightmobs;
- import net.minecraft.entity.EnumCreatureType;
- import net.minecraft.server.management.PlayerList;
- import net.minecraft.util.text.Style;
- import net.minecraft.util.text.TextComponentString;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraft.world.WorldServer;
- import net.minecraftforge.event.world.WorldEvent.PotentialSpawns;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
- import net.minecraftforge.fml.common.Mod.EventHandler;
- import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- @Mod(modid = "moonlightmobs", name = "Moonlight Mobs", version = "@VERSION@")
- @EventBusSubscriber
- public class MoonlightMobs {
- enum WarningState {
- NONE,
- STARTING_DAY,
- STARTING_NIGHT,
- ENDING
- }
- private static WarningState state = WarningState.NONE;
- @EventHandler
- public void onServerStarting(FMLServerStartingEvent event) {
- state = WarningState.NONE;
- }
- @SubscribeEvent
- public static void checkSpawn(PotentialSpawns event) {
- if (!event.getWorld().isRemote && event.getType() == EnumCreatureType.MONSTER) {
- PlayerList plist = ((WorldServer)event.getWorld()).getMinecraftServer().getPlayerList();
- if (event.getWorld().getCurrentMoonPhaseFactor() < 1 - 1e-6) {
- if (state != WarningState.ENDING) {
- if (state != WarningState.NONE) {
- plist.sendMessage(new TextComponentString("The curse of the full moon has lifted!").setStyle(new Style().setColor(TextFormatting.GREEN)));
- }
- state = WarningState.ENDING;
- }
- event.getList().clear();
- } else {
- long time = event.getWorld().getWorldTime() % 24000;
- if (state != WarningState.STARTING_DAY && state != WarningState.STARTING_NIGHT && time < 12500) {
- plist.sendMessage(new TextComponentString("Beware, the full moon is starting! Mobs will begin to spawn in dark places.").setStyle(new Style().setColor(TextFormatting.YELLOW)));
- state = WarningState.STARTING_DAY;
- } else if (time >= 12500) {
- if (state == WarningState.STARTING_DAY) {
- plist.sendMessage(new TextComponentString("The full moon is now at its peak. Mobs will spawn on the surface!").setStyle(new Style().setColor(TextFormatting.RED)));
- } else if (state != WarningState.STARTING_NIGHT) {
- plist.sendMessage(new TextComponentString("Beware, the full moon is starting! Mobs will begin to spawn.").setStyle(new Style().setColor(TextFormatting.RED)));
- }
- state = WarningState.STARTING_NIGHT;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment