public WorldSavedData loadData(Class par1Class, String par2Str)
    {
        WorldSavedData worldsaveddata = (WorldSavedData)loadedDataMap.get(par2Str);

        if (worldsaveddata != null)
        {
            return worldsaveddata;
        }

        if (saveHandler != null)
        {
            try
            {
                File file = saveHandler.getMapFileFromName(par2Str);

                if (file != null && file.exists())
                {
                    try
                    {
                        worldsaveddata = (WorldSavedData)par1Class.getConstructor(new Class[]
                                {
                                    java.lang.String.class
                                }).newInstance(new Object[]
                                        {
                                            par2Str
                                        });
                    }
                    catch (Exception exception1)
                    {
                        throw new RuntimeException((new StringBuilder()).append("Failed to instantiate ").append(par1Class.toString()).toString(), exception1);
                    }

                    FileInputStream fileinputstream = new FileInputStream(file);
                    NBTTagCompound nbttagcompound = CompressedStreamTools.readCompressed(fileinputstream);
                    fileinputstream.close();
                    worldsaveddata.readFromNBT(nbttagcompound.getCompoundTag("data"));
                }
            }
            catch (Exception exception)
            {
                exception.printStackTrace();
            }
        }

        if (worldsaveddata != null)
        {
            loadedDataMap.put(par2Str, worldsaveddata);
            loadedDataList.add(worldsaveddata);
        }

        return worldsaveddata;
    }