tterrag1098

Untitled

Apr 24th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. package com.tterrag.moonlightmobs;
  2.  
  3. import net.minecraft.entity.EnumCreatureType;
  4. import net.minecraft.server.management.PlayerList;
  5. import net.minecraft.util.text.Style;
  6. import net.minecraft.util.text.TextComponentString;
  7. import net.minecraft.util.text.TextFormatting;
  8. import net.minecraft.world.WorldServer;
  9. import net.minecraftforge.event.world.WorldEvent.PotentialSpawns;
  10. import net.minecraftforge.fml.common.Mod;
  11. import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
  12. import net.minecraftforge.fml.common.Mod.EventHandler;
  13. import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
  14. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  15.  
  16. @Mod(modid = "moonlightmobs", name = "Moonlight Mobs", version = "@VERSION@")
  17. @EventBusSubscriber
  18. public class MoonlightMobs {
  19.  
  20. enum WarningState {
  21. NONE,
  22. STARTING_DAY,
  23. STARTING_NIGHT,
  24. ENDING
  25. }
  26.  
  27. private static WarningState state = WarningState.NONE;
  28.  
  29. @EventHandler
  30. public void onServerStarting(FMLServerStartingEvent event) {
  31. state = WarningState.NONE;
  32. }
  33.  
  34. @SubscribeEvent
  35. public static void checkSpawn(PotentialSpawns event) {
  36. if (!event.getWorld().isRemote && event.getType() == EnumCreatureType.MONSTER) {
  37. PlayerList plist = ((WorldServer)event.getWorld()).getMinecraftServer().getPlayerList();
  38. if (event.getWorld().getCurrentMoonPhaseFactor() < 1 - 1e-6) {
  39. if (state != WarningState.ENDING) {
  40. if (state != WarningState.NONE) {
  41. plist.sendMessage(new TextComponentString("The curse of the full moon has lifted!").setStyle(new Style().setColor(TextFormatting.GREEN)));
  42. }
  43. state = WarningState.ENDING;
  44. }
  45. event.getList().clear();
  46. } else {
  47. long time = event.getWorld().getWorldTime() % 24000;
  48. if (state != WarningState.STARTING_DAY && state != WarningState.STARTING_NIGHT && time < 12500) {
  49. plist.sendMessage(new TextComponentString("Beware, the full moon is starting! Mobs will begin to spawn in dark places.").setStyle(new Style().setColor(TextFormatting.YELLOW)));
  50. state = WarningState.STARTING_DAY;
  51. } else if (time >= 12500) {
  52. if (state == WarningState.STARTING_DAY) {
  53. plist.sendMessage(new TextComponentString("The full moon is now at its peak. Mobs will spawn on the surface!").setStyle(new Style().setColor(TextFormatting.RED)));
  54. } else if (state != WarningState.STARTING_NIGHT) {
  55. plist.sendMessage(new TextComponentString("Beware, the full moon is starting! Mobs will begin to spawn.").setStyle(new Style().setColor(TextFormatting.RED)));
  56. }
  57. state = WarningState.STARTING_NIGHT;
  58. }
  59. }
  60. }
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment