summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/WorldNBTStorage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/WorldNBTStorage.java')
-rw-r--r--src/main/java/net/minecraft/server/WorldNBTStorage.java310
1 files changed, 0 insertions, 310 deletions
diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java
deleted file mode 100644
index 93ff8d3b..00000000
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
+++ /dev/null
@@ -1,310 +0,0 @@
-package net.minecraft.server;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-// CraftBukkit start
-import java.util.UUID;
-
-import org.bukkit.craftbukkit.entity.CraftPlayer;
-// CraftBukkit end
-
-public class WorldNBTStorage implements IDataManager, IPlayerFileData {
-
- private static final Logger a = LogManager.getLogger();
- private final File baseDir;
- private final File playerDir;
- private final File dataDir;
- private final long sessionId = MinecraftServer.ar();
- private final String f;
- private UUID uuid = null; // CraftBukkit
-
- public WorldNBTStorage(File file1, String s, boolean flag) {
- this.baseDir = new File(file1, s);
- this.baseDir.mkdirs();
- this.playerDir = new File(this.baseDir, "playerdata");
- this.dataDir = new File(this.baseDir, "data");
- this.dataDir.mkdirs();
- this.f = s;
- if (flag) {
- this.playerDir.mkdirs();
- }
-
- this.h();
- }
-
- private void h() {
- try {
- File file1 = new File(this.baseDir, "session.lock");
- DataOutputStream dataoutputstream = new DataOutputStream(new FileOutputStream(file1));
-
- try {
- dataoutputstream.writeLong(this.sessionId);
- } finally {
- dataoutputstream.close();
- }
- } catch (IOException ioexception) {
- ioexception.printStackTrace();
- throw new RuntimeException("Failed to check session lock, aborting");
- }
- }
-
- public File getDirectory() {
- return this.baseDir;
- }
-
- public void checkSession() throws ExceptionWorldConflict { // CraftBukkit - throws ExceptionWorldConflict
- try {
- File file1 = new File(this.baseDir, "session.lock");
- DataInputStream datainputstream = new DataInputStream(new FileInputStream(file1));
-
- try {
- if (datainputstream.readLong() != this.sessionId) {
- throw new ExceptionWorldConflict("The save is being accessed from another location, aborting");
- }
- } finally {
- datainputstream.close();
- }
- } catch (IOException ioexception) {
- throw new ExceptionWorldConflict("Failed to check session lock, aborting");
- }
- }
-
- public IChunkLoader createChunkLoader(WorldProvider worldprovider) {
- throw new RuntimeException("Old Chunk Storage is no longer supported.");
- }
-
- public WorldData getWorldData() {
- File file1 = new File(this.baseDir, "level.dat");
- NBTTagCompound nbttagcompound;
- NBTTagCompound nbttagcompound1;
-
- if (file1.exists()) {
- try {
- nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file1)));
- nbttagcompound1 = nbttagcompound.getCompound("Data");
- return new WorldData(nbttagcompound1);
- } catch (Exception exception) {
- exception.printStackTrace();
- }
- }
-
- file1 = new File(this.baseDir, "level.dat_old");
- if (file1.exists()) {
- try {
- nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file1)));
- nbttagcompound1 = nbttagcompound.getCompound("Data");
- return new WorldData(nbttagcompound1);
- } catch (Exception exception1) {
- exception1.printStackTrace();
- }
- }
-
- return null;
- }
-
- public void saveWorldData(WorldData worlddata, NBTTagCompound nbttagcompound) {
- NBTTagCompound nbttagcompound1 = worlddata.a(nbttagcompound);
- NBTTagCompound nbttagcompound2 = new NBTTagCompound();
-
- nbttagcompound2.set("Data", nbttagcompound1);
-
- try {
- File file1 = new File(this.baseDir, "level.dat_new");
- File file2 = new File(this.baseDir, "level.dat_old");
- File file3 = new File(this.baseDir, "level.dat");
-
- NBTCompressedStreamTools.a(nbttagcompound2, (OutputStream) (new FileOutputStream(file1)));
- if (file2.exists()) {
- file2.delete();
- }
-
- file3.renameTo(file2);
- if (file3.exists()) {
- file3.delete();
- }
-
- file1.renameTo(file3);
- if (file1.exists()) {
- file1.delete();
- }
- } catch (Exception exception) {
- exception.printStackTrace();
- }
- }
-
- public void saveWorldData(WorldData worlddata) {
- NBTTagCompound nbttagcompound = worlddata.a();
- NBTTagCompound nbttagcompound1 = new NBTTagCompound();
-
- nbttagcompound1.set("Data", nbttagcompound);
-
- try {
- File file1 = new File(this.baseDir, "level.dat_new");
- File file2 = new File(this.baseDir, "level.dat_old");
- File file3 = new File(this.baseDir, "level.dat");
-
- NBTCompressedStreamTools.a(nbttagcompound1, (OutputStream) (new FileOutputStream(file1)));
- if (file2.exists()) {
- file2.delete();
- }
-
- file3.renameTo(file2);
- if (file3.exists()) {
- file3.delete();
- }
-
- file1.renameTo(file3);
- if (file1.exists()) {
- file1.delete();
- }
- } catch (Exception exception) {
- exception.printStackTrace();
- }
- }
-
- public void save(EntityHuman entityhuman) {
- try {
- NBTTagCompound nbttagcompound = new NBTTagCompound();
-
- entityhuman.e(nbttagcompound);
- File file1 = new File(this.playerDir, entityhuman.getUniqueID().toString() + ".dat.tmp");
- File file2 = new File(this.playerDir, entityhuman.getUniqueID().toString() + ".dat");
-
- NBTCompressedStreamTools.a(nbttagcompound, (OutputStream) (new FileOutputStream(file1)));
- if (file2.exists()) {
- file2.delete();
- }
-
- file1.renameTo(file2);
- } catch (Exception exception) {
- a.warn("Failed to save player data for " + entityhuman.getName());
- }
- }
-
- public NBTTagCompound load(EntityHuman entityhuman) {
- NBTTagCompound nbttagcompound = null;
-
- try {
- File file1 = new File(this.playerDir, entityhuman.getUniqueID().toString() + ".dat");
-
- if (file1.exists() && file1.isFile()) {
- nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file1)));
- }
- } catch (Exception exception) {
- a.warn("Failed to load player data for " + entityhuman.getName());
- }
-
- if (nbttagcompound != null) {
- // CraftBukkit start
- if (entityhuman instanceof EntityPlayer) {
- CraftPlayer player = (CraftPlayer) entityhuman.bukkitEntity;
- // Only update first played if it is older than the one we have
- long modified = new File(this.playerDir, entityhuman.getUniqueID().toString() + ".dat").lastModified();
- if (modified < player.getFirstPlayed()) {
- player.setFirstPlayed(modified);
- }
- }
- // CraftBukkit end
-
- entityhuman.f(nbttagcompound);
- }
-
- return nbttagcompound;
- }
-
- public NBTTagCompound getPlayerData(String s) {
- try {
- File file1 = new File(this.playerDir, s + ".dat");
-
- if (file1.exists()) {
- return NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file1)));
- }
- } catch (Exception exception) {
- a.warn("Failed to load player data for " + s);
- }
-
- return null;
- }
-
- public IPlayerFileData getPlayerFileData() {
- return this;
- }
-
- public String[] getSeenPlayers() {
- String[] astring = this.playerDir.list();
-
- for (int i = 0; i < astring.length; ++i) {
- if (astring[i].endsWith(".dat")) {
- astring[i] = astring[i].substring(0, astring[i].length() - 4);
- }
- }
-
- return astring;
- }
-
- public void a() {}
-
- public File getDataFile(String s) {
- return new File(this.dataDir, s + ".dat");
- }
-
- public String g() {
- return this.f;
- }
-
- // CraftBukkit start
- public UUID getUUID() {
- if (uuid != null) return uuid;
- File file1 = new File(this.baseDir, "uid.dat");
- if (file1.exists()) {
- DataInputStream dis = null;
- try {
- dis = new DataInputStream(new FileInputStream(file1));
- return uuid = new UUID(dis.readLong(), dis.readLong());
- } catch (IOException ex) {
- a.warn("Failed to read " + file1 + ", generating new random UUID", ex);
- } finally {
- if (dis != null) {
- try {
- dis.close();
- } catch (IOException ex) {
- // NOOP
- }
- }
- }
- }
- uuid = UUID.randomUUID();
- DataOutputStream dos = null;
- try {
- dos = new DataOutputStream(new FileOutputStream(file1));
- dos.writeLong(uuid.getMostSignificantBits());
- dos.writeLong(uuid.getLeastSignificantBits());
- } catch (IOException ex) {
- a.warn("Failed to write " + file1, ex);
- } finally {
- if (dos != null) {
- try {
- dos.close();
- } catch (IOException ex) {
- // NOOP
- }
- }
- }
- return uuid;
- }
-
- public File getPlayerDir() {
- return playerDir;
- }
- // CraftBukkit end
-}