Commits
DerFrZocker authored and md_5 committed 507e2f65120
136 136 | - this.worldData.setModdedInfo(this.getServerModName(), this.getModdedStatus().shouldReportAsModified()); |
137 137 | - WorldLoadListener worldloadlistener = this.progressListenerFactory.create(11); |
138 138 | + loadWorld0(s); // CraftBukkit |
139 139 | |
140 140 | - this.createLevels(worldloadlistener); |
141 141 | - this.forceDifficulty(); |
142 142 | - this.prepareLevels(worldloadlistener); |
143 143 | if (profiledduration != null) { |
144 144 | profiledduration.finish(); |
145 145 | } |
146 - | |
146 + | |
147 147 | |
148 148 | } |
149 149 | |
150 150 | - protected void forceDifficulty() {} |
151 151 | + // CraftBukkit start |
152 152 | + private void loadWorld0(String s) { |
153 153 | + Convertable.ConversionSession worldSession = this.storageSource; |
154 154 | + IRegistryCustom.Dimension iregistrycustom_dimension = this.registryHolder; |
155 155 | + WorldDataServer overworldData = (WorldDataServer) worldSession.getDataTag(registryreadops, datapackconfiguration); |
156 156 | + if (overworldData == null) { |
362 362 | - this.readScoreboard(worldpersistentdata); |
363 363 | - this.commandStorage = new PersistentCommandStorage(worldpersistentdata); |
364 364 | + // CraftBukkit start |
365 365 | + public void initWorld(WorldServer worldserver, IWorldDataServer iworlddataserver, SaveData saveData, GeneratorSettings generatorsettings) { |
366 366 | + boolean flag = generatorsettings.isDebug(); |
367 367 | + // CraftBukkit start |
368 368 | + if (worldserver.generator != null) { |
369 369 | + worldserver.getWorld().getPopulators().addAll(worldserver.generator.getDefaultPopulators(worldserver.getWorld())); |
370 370 | + } |
371 371 | WorldBorder worldborder = worldserver.getWorldBorder(); |
372 + | + worldborder.applySettings(iworlddataserver.getWorldBorder()); // CraftBukkit - move up so that WorldBorder is set during WorldInitEvent |
373 + | + this.server.getPluginManager().callEvent(new org.bukkit.event.world.WorldInitEvent(worldserver.getWorld())); // CraftBukkit - SPIGOT-5569: Call WorldInitEvent before any chunks are generated |
372 374 | |
373 375 | if (!iworlddataserver.isInitialized()) { |
374 - | |
376 + | try { |
377 + | |
375 378 | iworlddataserver.setInitialized(true); |
376 379 | } |
377 380 | |
378 381 | - this.getPlayerList().addWorldborderListener(worldserver); |
379 382 | - if (this.worldData.getCustomBossEvents() != null) { |
380 383 | - this.getCustomBossEvents().load(this.worldData.getCustomBossEvents()); |
381 384 | - } |
382 385 | - |
383 386 | - Iterator iterator = registrymaterials.entrySet().iterator(); |
384 387 | - |
391 394 | - DimensionManager dimensionmanager1 = ((WorldDimension) entry.getValue()).type(); |
392 395 | - ChunkGenerator chunkgenerator = ((WorldDimension) entry.getValue()).generator(); |
393 396 | - SecondaryWorldData secondaryworlddata = new SecondaryWorldData(this.worldData, iworlddataserver); |
394 397 | - WorldServer worldserver1 = new WorldServer(this, this.executor, this.storageSource, secondaryworlddata, resourcekey1, dimensionmanager1, worldloadlistener, chunkgenerator, flag, j, ImmutableList.of(), false); |
395 398 | - |
396 399 | - worldborder.addListener(new IWorldBorderListener.a(worldserver1.getWorldBorder())); |
397 400 | - this.levels.put(resourcekey1, worldserver1); |
398 401 | - } |
399 402 | - } |
400 403 | - |
401 - | worldborder.applySettings(iworlddataserver.getWorldBorder()); |
402 - | + this.server.getPluginManager().callEvent(new org.bukkit.event.world.WorldInitEvent(worldserver.getWorld())); // CraftBukkit - SPIGOT-5569 |
404 + | - worldborder.applySettings(iworlddataserver.getWorldBorder()); |
403 405 | } |
404 406 | + // CraftBukkit end |
405 407 | |
406 408 | private static void setInitialSpawn(WorldServer worldserver, IWorldDataServer iworlddataserver, boolean flag, boolean flag1) { |
407 409 | if (flag1) { |
408 410 | |
409 411 | } else { |
410 412 | ChunkGenerator chunkgenerator = worldserver.getChunkSource().getGenerator(); |
411 413 | ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(chunkgenerator.climateSampler().findSpawnPosition()); |
412 414 | + // CraftBukkit start |