Помогите Кидает NPE, при телепортации в свой мир.

Статус
Закрыто для дальнейших ответов.

Lisenochek

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Lisenochek
Всем привет. Пытаюсь сгенерировать мир без сторонних плагинов (MultiWorld и все в таком духе).
У меня это почти получилось. Мир прогружен, висит в памяти, но зайти туда я не могу - он бросает мне NPE, мол мир не найден. Помогите мне разобраться с этой проблемой.

Код:
public static void asd() {

        WorldCreator creator = new WorldCreator("Realistic");
        creator.generateStructures(false);
        World world = Bukkit.createWorld(creator);
        Bukkit.getWorlds().add(world);

        File directory = world.getWorldFolder();

        BukkitRunnable runnable = new BukkitRunnable() {

            @Override
            public void run() {

                if (Bukkit.getWorld("Realistic") != null) {
                    Bukkit.unloadWorld(world, true);
                    Bukkit.getWorlds().remove(world);
                    Logger.warning("Мир отгружен.");
                    return;
                }

                try {
                    File level = new File(directory, "level.dat");
                    NbtCompound compound = NbtFactory.fromFile(level.getAbsolutePath());
                    NbtCompound dataCompount = compound.getCompound("Data");

                    if (dataCompount.getString("generatorName").equals("customized")) {
                        Bukkit.getWorlds().add(world);
                        cancel();
                        return;
                    }

                    dataCompount.put("generatorName", "customized");
                    dataCompount.put("generatorOptions", "{\"coordinateScale\":1.0,\"heightScale\":254.47887,\"lowerLimitScale\":512.0,\"upperLimitScale\":1127.5352,\"depthNoiseScaleX\":2000.0,\"depthNoiseScaleZ\":2000.0,\"depthNoiseScaleExponent\":7.611831,\"mainNoiseScaleX\":80.0,\"mainNoiseScaleY\":705.08453,\"mainNoiseScaleZ\":80.0,\"baseSize\":3.366197,\"stretchY\":24.652958,\"biomeDepthWeight\":1.0,\"biomeDepthOffset\":5.7746477,\"biomeScaleWeight\":1.0,\"biomeScaleOffset\":0.0,\"seaLevel\":1,\"useCaves\":false,\"useDungeons\":false,\"dungeonChance\":1,\"useStrongholds\":false,\"useVillages\":false,\"useMineShafts\":false,\"useTemples\":false,\"useMonuments\":false,\"useRavines\":false,\"useWaterLakes\":true,\"waterLakeChance\":5,\"useLavaLakes\":false,\"lavaLakeChance\":10,\"useLavaOceans\":false,\"fixedBiome\":-1,\"biomeSize\":3,\"riverSize\":5,\"dirtSize\":33,\"dirtCount\":10,\"dirtMinHeight\":0,\"dirtMaxHeight\":256,\"gravelSize\":33,\"gravelCount\":0,\"gravelMinHeight\":0,\"gravelMaxHeight\":256,\"graniteSize\":1,\"graniteCount\":0,\"graniteMinHeight\":0,\"graniteMaxHeight\":80,\"dioriteSize\":33,\"dioriteCount\":0,\"dioriteMinHeight\":0,\"dioriteMaxHeight\":80,\"andesiteSize\":33,\"andesiteCount\":0,\"andesiteMinHeight\":0,\"andesiteMaxHeight\":80,\"coalSize\":17,\"coalCount\":0,\"coalMinHeight\":0,\"coalMaxHeight\":128,\"ironSize\":9,\"ironCount\":0,\"ironMinHeight\":0,\"ironMaxHeight\":64,\"goldSize\":9,\"goldCount\":0,\"goldMinHeight\":0,\"goldMaxHeight\":32,\"redstoneSize\":8,\"redstoneCount\":0,\"redstoneMinHeight\":0,\"redstoneMaxHeight\":16,\"diamondSize\":8,\"diamondCount\":0,\"diamondMinHeight\":0,\"diamondMaxHeight\":16,\"lapisSize\":7,\"lapisCount\":0,\"lapisCenterHeight\":16,\"lapisSpread\":16}");
                    NbtFactory.toFile(compound, level.getAbsolutePath());
                    Logger.warning("Мир прогружается...");

                    File region = new File(directory, "region");

                    if (region.exists()) {
                        File[] files = region.listFiles();
                        if (files == null) return;
                        for (File f : files) if (!f.isDirectory()) f.delete();
                    }

                    Bukkit.getWorlds().add(world);
                    Logger.warning("Мир прогружен");
                    cancel();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        };
        runnable.runTaskTimer(Main.plugin, 1, 20);
    }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх