Paper/src/main/java/net/minecraft/server/WorldData.java
2011-07-07 20:49:13 +01:00

218 lines
5.5 KiB
Java

package net.minecraft.server;
import java.util.List;
import org.bukkit.Bukkit;
public class WorldData {
private long a;
private int b;
private int c;
private int d;
private long e;
private long f;
private long g;
private NBTTagCompound h;
private int i;
public String name; // CraftBukkit - private -> public
private int k;
private boolean l;
private int m;
private boolean n;
private int o;
private long worldUID; // CraftBukkit
public WorldData(NBTTagCompound nbttagcompound) {
this.a = nbttagcompound.getLong("RandomSeed");
this.b = nbttagcompound.e("SpawnX");
this.c = nbttagcompound.e("SpawnY");
this.d = nbttagcompound.e("SpawnZ");
this.e = nbttagcompound.getLong("Time");
this.f = nbttagcompound.getLong("LastPlayed");
this.g = nbttagcompound.getLong("SizeOnDisk");
this.name = nbttagcompound.getString("LevelName");
this.k = nbttagcompound.e("version");
this.m = nbttagcompound.e("rainTime");
this.l = nbttagcompound.m("raining");
this.o = nbttagcompound.e("thunderTime");
this.n = nbttagcompound.m("thundering");
if (nbttagcompound.hasKey("Player")) {
this.h = nbttagcompound.k("Player");
this.i = this.h.e("Dimension");
}
// CraftBukkit start
if (nbttagcompound.hasKey("WorldUID")) {
this.worldUID = nbttagcompound.getLong("WorldUID");
} else {
this.worldUID = (System.nanoTime() << 20) + this.a;
nbttagcompound.setLong("WorldUID", this.worldUID);
}
if (Bukkit.getServer().getWorld(worldUID) != null) {
throw new IllegalStateException("World '" + name + "' contains a conflicting UID with existing world. Please edit its level.dat and remove WorldUID, or delete its level.dat (and lose its seed/etc).");
}
// CraftBukkit end
}
public WorldData(long i, String s) {
this.a = i;
this.name = s;
this.worldUID = (System.nanoTime() << 20) + this.a; // CraftBukkit
}
public WorldData(WorldData worlddata) {
this.a = worlddata.a;
this.b = worlddata.b;
this.c = worlddata.c;
this.d = worlddata.d;
this.e = worlddata.e;
this.f = worlddata.f;
this.g = worlddata.g;
this.h = worlddata.h;
this.i = worlddata.i;
this.name = worlddata.name;
this.k = worlddata.k;
this.m = worlddata.m;
this.l = worlddata.l;
this.o = worlddata.o;
this.n = worlddata.n;
}
public NBTTagCompound a() {
NBTTagCompound nbttagcompound = new NBTTagCompound();
this.a(nbttagcompound, this.h);
return nbttagcompound;
}
public NBTTagCompound a(List list) {
NBTTagCompound nbttagcompound = new NBTTagCompound();
EntityHuman entityhuman = null;
NBTTagCompound nbttagcompound1 = null;
if (list.size() > 0) {
entityhuman = (EntityHuman) list.get(0);
}
if (entityhuman != null) {
nbttagcompound1 = new NBTTagCompound();
entityhuman.d(nbttagcompound1);
}
this.a(nbttagcompound, nbttagcompound1);
return nbttagcompound;
}
private void a(NBTTagCompound nbttagcompound, NBTTagCompound nbttagcompound1) {
nbttagcompound.setLong("RandomSeed", this.a);
nbttagcompound.a("SpawnX", this.b);
nbttagcompound.a("SpawnY", this.c);
nbttagcompound.a("SpawnZ", this.d);
nbttagcompound.setLong("Time", this.e);
nbttagcompound.setLong("SizeOnDisk", this.g);
nbttagcompound.setLong("LastPlayed", System.currentTimeMillis());
nbttagcompound.setString("LevelName", this.name);
nbttagcompound.a("version", this.k);
nbttagcompound.a("rainTime", this.m);
nbttagcompound.a("raining", this.l);
nbttagcompound.a("thunderTime", this.o);
nbttagcompound.a("thundering", this.n);
if (nbttagcompound1 != null) {
nbttagcompound.a("Player", nbttagcompound1);
}
nbttagcompound.setLong("WorldUID", this.worldUID); // CraftBukkit
}
public long getSeed() {
return this.a;
}
public int c() {
return this.b;
}
public int d() {
return this.c;
}
public int e() {
return this.d;
}
public long f() {
return this.e;
}
public long g() {
return this.g;
}
public int h() {
return this.i;
}
public void a(long i) {
this.e = i;
}
public void b(long i) {
this.g = i;
}
public void setSpawn(int i, int j, int k) {
this.b = i;
this.c = j;
this.d = k;
}
public void a(String s) {
this.name = s;
}
public int i() {
return this.k;
}
public void a(int i) {
this.k = i;
}
public boolean isThundering() {
return this.n;
}
public void setThundering(boolean flag) {
this.n = flag;
}
public int getThunderDuration() {
return this.o;
}
public void setThunderDuration(int i) {
this.o = i;
}
public boolean hasStorm() {
return this.l;
}
public void setStorm(boolean flag) {
this.l = flag;
}
public int getWeatherDuration() {
return this.m;
}
public void setWeatherDuration(int i) {
this.m = i;
}
// CraftBukkit start
public long getWorldUID() {
return this.worldUID;
}
// CraftBukkit end
}