类net.minecraft.world.storage.SaveHandler源码实例Demo

下面列出了怎么用net.minecraft.world.storage.SaveHandler的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: Kettle   文件: CraftServer.java
@Override
public File getWorldContainer() {
    // Cauldron start - return the proper container
    if (DimensionManager.getWorld(0) != null) {
        return ((SaveHandler) DimensionManager.getWorld(0).getSaveHandler()).getWorldDirectory();
    }
    // Cauldron end
    if (this.getServer().anvilFile != null) {
        return this.getServer().anvilFile;
    }

    if (container == null) {
        container = new File(configuration.getString("settings.world-container", "."));
    }

    return container;
}
 
源代码2 项目: Kettle   文件: CraftServer.java
@Override
public OfflinePlayer[] getOfflinePlayers() {
    SaveHandler storage = (SaveHandler) console.worlds[0].getSaveHandler();
    String[] files = storage.getPlayerDir().list(new DatFileFilter());
    Set<OfflinePlayer> players = new HashSet<OfflinePlayer>();

    for (String file : files) {
        try {
            players.add(getOfflinePlayer(UUID.fromString(file.substring(0, file.length() - 4))));
        } catch (IllegalArgumentException ex) {
            // Who knows what is in this directory, just ignore invalid files
        }
    }

    players.addAll(getOnlinePlayers());

    return players.toArray(new OfflinePlayer[players.size()]);
}
 
源代码3 项目: Thermos   文件: CraftServer.java
@Override
public OfflinePlayer[] getOfflinePlayers() {
    net.minecraft.world.storage.SaveHandler storage = (net.minecraft.world.storage.SaveHandler) console.worlds.get(0).getSaveHandler();
    String[] files = storage.getPlayerDir().list(new DatFileFilter());
    Set<OfflinePlayer> players = new HashSet<OfflinePlayer>();

    for (String file : files) {
        try {
            players.add(getOfflinePlayer(UUID.fromString(file.substring(0, file.length() - 4))));
        } catch (IllegalArgumentException ex) {
            // Who knows what is in this directory, just ignore invalid files
    }
    }

    players.addAll(getOnlinePlayers());

    return players.toArray(new OfflinePlayer[players.size()]);
}
 
源代码4 项目: Gadomancy   文件: TileInfusionClaw.java
private void loadResearch(EntityPlayer fakePlayer) {
    boolean online = false;
    for(String username : MinecraftServer.getServer().getAllUsernames()) {
        if(username.equals(player)) {
            online = true;
            break;
        }
    }

    if(online) {
        this.research = ResearchManager.getResearchForPlayer(player);
    } else {
        if(research == null) {
            Thaumcraft.proxy.getCompletedResearch().put(fakePlayer.getCommandSenderName(), new ArrayList<String>());

            IPlayerFileData playerNBTManagerObj = MinecraftServer.getServer().worldServerForDimension(0).getSaveHandler().getSaveHandler();
            SaveHandler sh = (SaveHandler)playerNBTManagerObj;
            File dir = ObfuscationReflectionHelper.getPrivateValue(SaveHandler.class, sh, "playersDirectory", "field_75771_c");
            File file1 = new File(dir, player + ".thaum");
            File file2 = new File(dir, player + ".thaumbak");
            ResearchManager.loadPlayerData(fakePlayer, file1, file2, false);

            this.research = ResearchManager.getResearchForPlayerSafe(fakePlayer.getCommandSenderName());
        }
    }

    Thaumcraft.proxy.getCompletedResearch().put(fakePlayer.getCommandSenderName(), research == null ? new ArrayList<String>() : research);
}
 
void configure(SaveHandler saveHandler, File worldDirectory) {
    this.saveHandler = saveHandler;
    if (worldDirectory != null) {
        this.chunkSaveLocation = new File(dimensionId.getDimensionType().getDirectory(worldDirectory), "region");
        this.chunkLoader = new ChunkLoader(this.chunkSaveLocation);
    }
}
 
源代码6 项目: Kettle   文件: CraftOfflinePlayer.java
protected CraftOfflinePlayer(CraftServer server, GameProfile profile) {
    this.server = server;
    this.profile = profile;
    this.storage = (SaveHandler) (server.console.worldServerList.get(0).getSaveHandler());

}
 
NBTStructureLoader(DimensionId dimensionId, SaveHandler saveHandler, File worldDirectory) {
    this.dimensionId = dimensionId;
    this.configure(saveHandler, worldDirectory);
}
 
源代码8 项目: mocreaturesdev   文件: MoCTools.java
/**
 * Reduces the counter on the offline player
 * 
 * @param playername
 */
public static void reduceTamedByOfflinePlayer(String playername)
{
    NBTTagCompound compound = ((SaveHandler) ((WorldServer) MinecraftServer.getServer().worldServerForDimension(0)).getSaveHandler()).getPlayerData(playername);
    if (compound != null && compound.hasKey("ForgeData"))
    {
        NBTTagCompound nbtt = compound.getCompoundTag("ForgeData");
        int count = nbtt.getInteger("NumberTamed");
        //System.out.println("tamed entities for player " + playername + " =" + count);
        count--;
        if (count < 0)
        {
            count = 0;
        }
        nbtt.setInteger("NumberTamed", count);
        compound.setCompoundTag("ForgeData", nbtt);

        try
        {
            SaveHandler saveHandler = ((SaveHandler) ((WorldServer) MinecraftServer.getServer().worldServerForDimension(0)).getSaveHandler());
            // as long as we know the world folder name we can generate the path to players directory
            // still need to test how other worlds will work
            String playersDirectory = ".\\" + saveHandler.getWorldDirectoryName() + "\\players\\";
            File playerFile = new File(playersDirectory + playername + ".dat");
            File playerFileNew = new File(playersDirectory, playername + ".tmp");
            //System.out.println("playerFile = " + playerFile + ", playerFileNew = " + playerFileNew + ", playerFile parent = " + playerFile.getParent());

            CompressedStreamTools.writeCompressed(compound, new FileOutputStream(playerFileNew));

            if (playerFile.exists())
            {
                playerFile.delete();
            }

            playerFileNew.renameTo(playerFile);

            // test to see if changes took effect
            compound = ((SaveHandler) ((WorldServer) MinecraftServer.getServer().worldServerForDimension(0)).getSaveHandler()).getPlayerData(playername);
            if (compound.hasKey("ForgeData"))
            {
                NBTTagCompound nbttest = compound.getCompoundTag("ForgeData");
                //System.out.println("tamed entities for player " + playername + " is now " + nbttest.getInteger("NumberTamed"));
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
 
 类所在包
 类方法
 同包方法