TotalFreedomMod/src/me/StevenLawson/TotalFreedomMod/World/TFM_Flatlands.java

102 lines
3.1 KiB
Java
Raw Normal View History

package me.StevenLawson.TotalFreedomMod.World;
2013-08-22 00:07:14 +00:00
import java.io.File;
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.apache.commons.io.FileUtils;
2013-08-22 00:07:14 +00:00
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.WorldType;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
public class TFM_Flatlands extends TFM_CustomWorld
{
2014-04-26 11:21:36 +00:00
private static final String GENERATION_PARAMETERS = TFM_ConfigEntry.FLATLANDS_GENERATE_PARAMS.getString();
2013-08-22 00:07:14 +00:00
private static final String WORLD_NAME = "flatlands";
private TFM_Flatlands()
{
}
@Override
protected World generateWorld()
{
2014-04-26 11:21:36 +00:00
if (!TFM_ConfigEntry.FLATLANDS_GENERATE.getBoolean())
2013-08-22 00:07:14 +00:00
{
return null;
}
wipeFlatlandsIfFlagged();
WorldCreator worldCreator = new WorldCreator(WORLD_NAME);
worldCreator.generateStructures(false);
worldCreator.type(WorldType.NORMAL);
worldCreator.environment(World.Environment.NORMAL);
worldCreator.generator(new CleanroomChunkGenerator(GENERATION_PARAMETERS));
World world = Bukkit.getServer().createWorld(worldCreator);
world.setSpawnFlags(false, false);
world.setSpawnLocation(0, 50, 0);
Block welcomeSignBlock = world.getBlockAt(0, 50, 0);
welcomeSignBlock.setType(Material.SIGN_POST);
org.bukkit.block.Sign welcomeSign = (org.bukkit.block.Sign) welcomeSignBlock.getState();
org.bukkit.material.Sign signData = (org.bukkit.material.Sign) welcomeSign.getData();
signData.setFacingDirection(BlockFace.NORTH);
welcomeSign.setLine(0, ChatColor.GREEN + "Flatlands");
welcomeSign.setLine(1, ChatColor.DARK_GRAY + "---");
welcomeSign.setLine(2, ChatColor.YELLOW + "Spawn Point");
welcomeSign.setLine(3, ChatColor.DARK_GRAY + "---");
welcomeSign.update();
TFM_GameRuleHandler.commitGameRules();
return world;
}
public static void wipeFlatlandsIfFlagged()
{
boolean doFlatlandsWipe = false;
try
{
doFlatlandsWipe = TFM_Util.getSavedFlag("do_wipe_flatlands");
}
catch (Exception ex)
{
}
if (doFlatlandsWipe)
{
if (Bukkit.getServer().getWorld("flatlands") == null)
{
TFM_Log.info("Wiping flatlands.");
TFM_Util.setSavedFlag("do_wipe_flatlands", false);
FileUtils.deleteQuietly(new File("./flatlands"));
}
else
{
TFM_Log.severe("Can't wipe flatlands, it is already loaded.");
}
}
}
public static TFM_Flatlands getInstance()
{
return TFM_FlatlandsHolder.INSTANCE;
}
private static class TFM_FlatlandsHolder
{
private static final TFM_Flatlands INSTANCE = new TFM_Flatlands();
}
}