From 8b175ba9a62497b20d7086c4efb53c7e3d085b77 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Fri, 12 Sep 2014 21:04:31 +0200 Subject: [PATCH] This NMS is luxyry not really required. It also takes a lot of startup time. Feel sniped. :D --- .../massivecraft/massivecore/util/IdUtil.java | 118 ------------------ 1 file changed, 118 deletions(-) diff --git a/src/com/massivecraft/massivecore/util/IdUtil.java b/src/com/massivecraft/massivecore/util/IdUtil.java index 8133bbf0..40e418ec 100644 --- a/src/com/massivecraft/massivecore/util/IdUtil.java +++ b/src/com/massivecraft/massivecore/util/IdUtil.java @@ -1,8 +1,6 @@ package com.massivecraft.massivecore.util; import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collection; @@ -18,15 +16,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListSet; -import net.minecraft.server.v1_7_R4.DedicatedServer; -import net.minecraft.server.v1_7_R4.NBTCompressedStreamTools; -import net.minecraft.server.v1_7_R4.NBTTagCompound; - import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.craftbukkit.v1_7_R4.CraftServer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -797,12 +790,6 @@ public class IdUtil implements Listener, Runnable public static void loadDatas() { - MassiveCore.get().log(Txt.parse("Loading Playerdat datas...")); - for (IdData data : getPlayerdatDatas()) - { - update(data.getId(), data.getName(), data.getMillis(), false); - } - MassiveCore.get().log(Txt.parse("Loading Cachefile datas...")); for (IdData data : getCachefileDatas()) { @@ -872,111 +859,6 @@ public class IdUtil implements Listener, Runnable { saveCachefileDatas(); } - - // -------------------------------------------- // - // PLAYERDAT DATAS - // -------------------------------------------- // - // This data source is based on the player.dat files. - // It extracts relevant NBT contents. - // NOTE: The reason this section contains some NMS is because MassiveCore loads at startup. Some of the Bukkit API is broken then and I could not use it. - - public static File getBaseworldDirectory() - { - CraftServer cserver = (CraftServer)Bukkit.getServer(); - DedicatedServer dserver = (DedicatedServer)cserver.getServer(); - String levelName = dserver.propertyManager.getString("level-name", "world"); - return new File(Bukkit.getWorldContainer(), levelName); - } - - public static File getPlayerdatDirectory() - { - // after 1.7.8 - // a2cce16b-9494-45ff-b5ff-0362ca687d4e.dat (the uuid) - return new File(getBaseworldDirectory(), "playerdata"); - } - - public static Set getPlayerdatDatas() - { - Set ret = new LinkedHashSet(); - - // Get the directory - File directory = getPlayerdatDirectory(); - - // List the files in the directory - File[] files = directory.listFiles(); - - // The directory may not exist - if (files == null) return ret; - - // For each file - for (File file : files) - { - IdData data = getPlayerdatData(file); - if (data == null) continue; - ret.add(data); - } - - return ret; - } - - // For the data to be interesting it must contain the bukkit.laskKnownName NBT entry. - // It's especially nice if bukkit.lastPlayed also is present. - // If bukkit.lastPlayed isn't present we will set lastPlayed millis to 0 in the data. - // This will mean the data is considered quite uncertain since data entries are prioritized after their millis. - public static IdData getPlayerdatData(File file) - { - // Get filename - String filename = file.getName(); - - // Ensure filename ends with ".dat" - if (!filename.toLowerCase().endsWith(".dat")) return null; - - // Pick id through ".dat" removal - String id = filename.substring(0, filename.length()-4); - - // Ensure file name was of the correct format - UUID uuid = uuidFromString(id); - if (uuid == null) return null; - - // Load Compound - NBTTagCompound compound = loadTagCompound(file); - if (compound == null) return null; - - // Get Compound --> bukkit - if (!compound.hasKey("bukkit")) return null; - NBTTagCompound bukkit = compound.getCompound("bukkit"); - if (bukkit == null) return null; - - // Get Compound --> bukkit --> lastKnownName - if (!bukkit.hasKey("lastKnownName")) return null; - String name = bukkit.getString("lastKnownName"); - if (name == null) return null; - - // Last Played? - long lastPlayed = 0; - if (bukkit.hasKey("lastPlayed")) - { - lastPlayed = bukkit.getLong("lastPlayed"); - } - - // Add to ret - return new IdData(id, name, lastPlayed); - } - - public static NBTTagCompound loadTagCompound(File file) - { - if (!file.exists()) return null; - try - { - return NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file))); - } - catch (Exception e) - { - String message = Txt.parse("NBT file couldn't be loaded: %s. Error: %s.", file.toString(), e.getMessage()); - MassiveCore.get().log(message); - return null; - } - } // -------------------------------------------- // // ONLINEPLAYER DATAS