Skip to content

Commit 64eb8b0

Browse files
committed
Add other platforms
1 parent 0b07d29 commit 64eb8b0

File tree

6 files changed

+72
-0
lines changed

6 files changed

+72
-0
lines changed

worldedit-bukkit/adapters/adapter-1.19.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_19_R3/PaperweightAdapter.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.google.common.cache.CacheLoader;
2424
import com.google.common.cache.LoadingCache;
2525
import com.google.common.collect.ImmutableList;
26+
import com.google.common.collect.Iterables;
27+
import com.google.common.collect.Lists;
2628
import com.google.common.collect.Sets;
2729
import com.google.common.util.concurrent.Futures;
2830
import com.mojang.datafixers.util.Either;
@@ -969,6 +971,17 @@ public boolean generateStructure(StructureType type, World world, EditSession se
969971
}
970972
}
971973

974+
@Override
975+
public void sendBiomeUpdates(World world, Iterable<BlockVector2> chunks) {
976+
ServerLevel originalWorld = ((CraftWorld) world).getHandle();
977+
978+
List<ChunkAccess> nativeChunks = Lists.newArrayListWithCapacity(Iterables.size(chunks));
979+
for (BlockVector2 chunk : chunks) {
980+
nativeChunks.add(originalWorld.getChunk(chunk.getBlockX(), chunk.getBlockZ(), ChunkStatus.BIOMES, false));
981+
}
982+
originalWorld.getChunkSource().chunkMap.resendBiomesForChunks(nativeChunks);
983+
}
984+
972985
// ------------------------------------------------------------------------
973986
// Code that is less likely to break
974987
// ------------------------------------------------------------------------

worldedit-bukkit/adapters/adapter-1.20.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_20_R2/PaperweightAdapter.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.google.common.cache.CacheLoader;
2424
import com.google.common.cache.LoadingCache;
2525
import com.google.common.collect.ImmutableList;
26+
import com.google.common.collect.Iterables;
27+
import com.google.common.collect.Lists;
2628
import com.google.common.collect.Sets;
2729
import com.google.common.util.concurrent.Futures;
2830
import com.mojang.datafixers.util.Either;
@@ -970,6 +972,17 @@ public boolean generateStructure(StructureType type, World world, EditSession se
970972
}
971973
}
972974

975+
@Override
976+
public void sendBiomeUpdates(World world, Iterable<BlockVector2> chunks) {
977+
ServerLevel originalWorld = ((CraftWorld) world).getHandle();
978+
979+
List<ChunkAccess> nativeChunks = Lists.newArrayListWithCapacity(Iterables.size(chunks));
980+
for (BlockVector2 chunk : chunks) {
981+
nativeChunks.add(originalWorld.getChunk(chunk.getBlockX(), chunk.getBlockZ(), ChunkStatus.BIOMES, false));
982+
}
983+
originalWorld.getChunkSource().chunkMap.resendBiomesForChunks(nativeChunks);
984+
}
985+
973986
// ------------------------------------------------------------------------
974987
// Code that is less likely to break
975988
// ------------------------------------------------------------------------

worldedit-bukkit/adapters/adapter-1.20/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_20_R1/PaperweightAdapter.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.google.common.cache.CacheLoader;
2424
import com.google.common.cache.LoadingCache;
2525
import com.google.common.collect.ImmutableList;
26+
import com.google.common.collect.Iterables;
27+
import com.google.common.collect.Lists;
2628
import com.google.common.collect.Sets;
2729
import com.google.common.util.concurrent.Futures;
2830
import com.mojang.datafixers.util.Either;
@@ -970,6 +972,17 @@ public boolean generateStructure(StructureType type, World world, EditSession se
970972
}
971973
}
972974

975+
@Override
976+
public void sendBiomeUpdates(World world, Iterable<BlockVector2> chunks) {
977+
ServerLevel originalWorld = ((CraftWorld) world).getHandle();
978+
979+
List<ChunkAccess> nativeChunks = Lists.newArrayListWithCapacity(Iterables.size(chunks));
980+
for (BlockVector2 chunk : chunks) {
981+
nativeChunks.add(originalWorld.getChunk(chunk.getBlockX(), chunk.getBlockZ(), ChunkStatus.BIOMES, false));
982+
}
983+
originalWorld.getChunkSource().chunkMap.resendBiomesForChunks(nativeChunks);
984+
}
985+
973986
// ------------------------------------------------------------------------
974987
// Code that is less likely to break
975988
// ------------------------------------------------------------------------

worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,14 @@ public void fixAfterFastMode(Iterable<BlockVector2> chunks) {
329329
}
330330
}
331331

332+
@Override
333+
public void sendBiomeUpdates(Iterable<BlockVector2> chunks) {
334+
BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter();
335+
if (adapter != null) {
336+
adapter.sendBiomeUpdates(getWorld(), chunks);
337+
}
338+
}
339+
332340
@Override
333341
public boolean playEffect(Vector3 position, int type, int data) {
334342
World world = getWorld();

worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.sk89q.worldedit.entity.BaseEntity;
2626
import com.sk89q.worldedit.extent.Extent;
2727
import com.sk89q.worldedit.internal.wna.WorldNativeAccess;
28+
import com.sk89q.worldedit.math.BlockVector2;
2829
import com.sk89q.worldedit.math.BlockVector3;
2930
import com.sk89q.worldedit.regions.Region;
3031
import com.sk89q.worldedit.registry.state.Property;
@@ -314,4 +315,17 @@ default boolean generateStructure(StructureType feature, World world, EditSessio
314315
default void initializeRegistries() {
315316

316317
}
318+
319+
/**
320+
* Sends biome updates for the given chunks.
321+
*
322+
* <p>This doesn't modify biomes at all, it just sends the current state of the biomes
323+
* in the world to all of the nearby players, updating the visual representation of the
324+
* biomes on their clients.</p>
325+
*
326+
* @param world the world
327+
* @param chunks a list of chunk coordinates to send biome updates for
328+
*/
329+
default void sendBiomeUpdates(World world, Iterable<BlockVector2> chunks) {
330+
}
317331
}

worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.google.common.cache.CacheLoader;
2424
import com.google.common.cache.LoadingCache;
2525
import com.google.common.collect.ImmutableList;
26+
import com.google.common.collect.Iterables;
27+
import com.google.common.collect.Lists;
2628
import com.google.common.collect.Sets;
2729
import com.google.common.collect.Streams;
2830
import com.google.common.util.concurrent.Futures;
@@ -508,6 +510,15 @@ public void fixAfterFastMode(Iterable<BlockVector2> chunks) {
508510
fixLighting(chunks);
509511
}
510512

513+
@Override
514+
public void sendBiomeUpdates(Iterable<BlockVector2> chunks) {
515+
List<ChunkAccess> nativeChunks = Lists.newArrayListWithCapacity(Iterables.size(chunks));
516+
for (BlockVector2 chunk : chunks) {
517+
nativeChunks.add(getWorld().getChunk(chunk.getBlockX(), chunk.getBlockZ(), ChunkStatus.BIOMES, false));
518+
}
519+
((ServerLevel) getWorld()).getChunkSource().chunkMap.resendBiomesForChunks(nativeChunks);
520+
}
521+
511522
@Override
512523
public void fixLighting(Iterable<BlockVector2> chunks) {
513524
ServerLevel world = getWorld();

0 commit comments

Comments
 (0)