Commits

DerFrZocker authored and md_5 committed 507e2f65120
#1004: Call WorldInitEvent before any chunks are generated
No tags

nms-patches/net/minecraft/server/MinecraftServer.patch

Modified
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 -@@ -358,35 +417,203 @@
146 +@@ -358,36 +417,206 @@
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 -@@ -411,31 +638,10 @@
376 + try {
377 +@@ -411,31 +640,8 @@
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 @@ -443,6 +649,21 @@
409 411 } else {
410 412 ChunkGenerator chunkgenerator = worldserver.getChunkSource().getGenerator();
411 413 ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(chunkgenerator.climateSampler().findSpawnPosition());
412 414 + // CraftBukkit start

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut