mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-12 20:29:20 +00:00
![snowleo](/assets/img/avatar_default.png)
git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@969 e251c2fe-e539-e718-e476-b85c1f46cddb
87 lines
2.4 KiB
Java
87 lines
2.4 KiB
Java
package com.earth2me.essentials;
|
|
|
|
import java.io.File;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.logging.Logger;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.Server;
|
|
import org.bukkit.World;
|
|
import org.bukkit.World.Environment;
|
|
|
|
public class Spawn implements IConf {
|
|
|
|
private static final Logger logger = Logger.getLogger("Minecraft");
|
|
private EssentialsConf config;
|
|
private Server server;
|
|
|
|
public Spawn(Server server, File dataFolder) {
|
|
File configFile = new File(dataFolder, "spawn.yml");
|
|
this.server = server;
|
|
config = new EssentialsConf(configFile);
|
|
config.load();
|
|
}
|
|
|
|
public void setSpawn(Location loc, String group) {
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
map.put("world", loc.getWorld().getName());
|
|
map.put("x", loc.getX());
|
|
map.put("y", loc.getY());
|
|
map.put("z", loc.getZ());
|
|
map.put("yaw", loc.getYaw());
|
|
map.put("pitch", loc.getPitch());
|
|
config.setProperty(group, map);
|
|
config.save();
|
|
|
|
if ("default".equals(group)) {
|
|
loc.getWorld().setSpawnLocation(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
|
}
|
|
}
|
|
|
|
public Location getSpawn(String group) {
|
|
if (config.getProperty(group) == null) {
|
|
group = "default";
|
|
}
|
|
if (config.getProperty(group) == null) {
|
|
for (World w : server.getWorlds()) {
|
|
if (w.getEnvironment() != Environment.NORMAL) {
|
|
continue;
|
|
}
|
|
return w.getSpawnLocation();
|
|
}
|
|
}
|
|
String worldId = config.getString(group + ".world", "");
|
|
World world = server.getWorlds().get(server.getWorlds().size() > 1 ? 1 : 0);
|
|
for (World w : server.getWorlds()) {
|
|
if (w.getEnvironment() != Environment.NORMAL) {
|
|
continue;
|
|
}
|
|
world = w;
|
|
break;
|
|
}
|
|
for (World w : server.getWorlds()) {
|
|
if (!w.getName().equals(worldId)) {
|
|
continue;
|
|
}
|
|
world = w;
|
|
break;
|
|
}
|
|
|
|
double x = config.getDouble(group + ".x", config.getDouble("default.x", 0));
|
|
double y = config.getDouble(group + ".y", config.getDouble("default.y", 0));
|
|
double z = config.getDouble(group + ".z", config.getDouble("default.z", 0));
|
|
float yaw = (float) config.getDouble(group + ".yaw", config.getDouble("default.yaw", 0));
|
|
float pitch = (float) config.getDouble(group + ".pitch", config.getDouble("default.pitch", 0));
|
|
Location retval = new Location(world, x, y, z, yaw, pitch);
|
|
|
|
if (y < 1) {
|
|
retval.setY(world.getHighestBlockYAt(retval));
|
|
}
|
|
|
|
return retval;
|
|
}
|
|
|
|
public void reloadConfig() {
|
|
config.load();
|
|
}
|
|
}
|