Skip to content

Commit e66d77b

Browse files
committed
Add for 1.21.4
1 parent 1a02f2d commit e66d77b

File tree

3 files changed

+40
-43
lines changed

3 files changed

+40
-43
lines changed

worldedit-bukkit/adapters/adapter-1_21_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_21_4/PaperweightGetBlocks.java

Lines changed: 20 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fastasyncworldedit.bukkit.adapter.BukkitGetBlocks;
44
import com.fastasyncworldedit.bukkit.adapter.DelegateSemaphore;
5+
import com.fastasyncworldedit.bukkit.adapter.NativeEntityFunctionSet;
56
import com.fastasyncworldedit.core.Fawe;
67
import com.fastasyncworldedit.core.FaweCache;
78
import com.fastasyncworldedit.core.configuration.Settings;
@@ -17,6 +18,7 @@
1718
import com.fastasyncworldedit.core.util.NbtUtils;
1819
import com.fastasyncworldedit.core.util.collection.AdaptedMap;
1920
import com.sk89q.worldedit.bukkit.BukkitAdapter;
21+
import com.sk89q.worldedit.bukkit.BukkitEntity;
2022
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
2123
import com.sk89q.worldedit.internal.Constants;
2224
import com.sk89q.worldedit.internal.util.LogManagerCompat;
@@ -148,11 +150,13 @@ public PaperweightGetBlocks(ServerLevel serverLevel, int chunkX, int chunkZ) {
148150
this.chunkPos = new IntPair(chunkX, chunkZ);
149151
}
150152

151-
public int getChunkX() {
153+
@Override
154+
public int getX() {
152155
return chunkX;
153156
}
154157

155-
public int getChunkZ() {
158+
@Override
159+
public int getZ() {
156160
return chunkZ;
157161
}
158162

@@ -371,50 +375,24 @@ public int[] getHeightMap(HeightMapType type) {
371375

372376
@Override
373377
public Collection<FaweCompoundTag> entities() {
374-
ensureLoaded(serverLevel, chunkX, chunkZ);
375-
List<Entity> entities = PaperweightPlatformAdapter.getEntities(getChunk());
378+
List<Entity> entities = PaperweightPlatformAdapter.getEntities(ensureLoaded(serverLevel, chunkX, chunkZ));
376379
if (entities.isEmpty()) {
377380
return Collections.emptyList();
378381
}
379-
int size = entities.size();
380-
return new AbstractCollection<>() {
381-
@Override
382-
public int size() {
383-
return size;
384-
}
385-
386-
@Override
387-
public boolean isEmpty() {
388-
return false;
389-
}
390-
391-
@Override
392-
public boolean contains(Object get) {
393-
if (!(get instanceof FaweCompoundTag getTag)) {
394-
return false;
395-
}
396-
UUID getUUID = NbtUtils.uuid(getTag);
397-
for (Entity entity : entities) {
398-
UUID uuid = entity.getUUID();
399-
if (uuid.equals(getUUID)) {
400-
return true;
401-
}
402-
}
403-
return false;
404-
}
405-
406-
@Nonnull
407-
@Override
408-
public Iterator<FaweCompoundTag> iterator() {
409-
Iterable<FaweCompoundTag> result = entities.stream().map(input -> {
410-
CompoundTag tag = new CompoundTag();
411-
input.save(tag);
412-
return FaweCompoundTag.of((LinCompoundTag) adapter.toNativeLin(tag));
413-
})::iterator;
414-
return result.iterator();
415-
}
416-
};
382+
return new NativeEntityFunctionSet<>(entities, Entity::getUUID, e -> {
383+
net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag();
384+
e.save(tag);
385+
return FaweCompoundTag.of(() -> (LinCompoundTag) adapter.toNativeLin(tag));
386+
});
387+
}
417388

389+
@Override
390+
public Set<com.sk89q.worldedit.entity.Entity> getFullEntities() {
391+
List<Entity> entities = PaperweightPlatformAdapter.getEntities(ensureLoaded(serverLevel, chunkX, chunkZ));
392+
if (entities.isEmpty()) {
393+
return Collections.emptySet();
394+
}
395+
return new NativeEntityFunctionSet<>(entities, Entity::getUUID, e -> new BukkitEntity(e.getBukkitEntity()));
418396
}
419397

420398
private void removeEntity(Entity entity) {

worldedit-bukkit/adapters/adapter-1_21_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_21_4/PaperweightGetBlocks_Copy.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public class PaperweightGetBlocks_Copy implements IChunkGet {
4747
private final char[][] blocks;
4848
private final int minHeight;
4949
private final int maxHeight;
50+
private final int chunkX;
51+
private final int chunkZ;
5052
final ServerLevel serverLevel;
5153
final LevelChunk levelChunk;
5254
private Holder<Biome>[][] biomes = null;
@@ -57,6 +59,8 @@ protected PaperweightGetBlocks_Copy(LevelChunk levelChunk) {
5759
this.minHeight = serverLevel.getMinY();
5860
this.maxHeight = serverLevel.getMaxY() - 1; // Minecraft max limit is exclusive.
5961
this.blocks = new char[getSectionCount()][];
62+
this.chunkX = levelChunk.locX;
63+
this.chunkZ = levelChunk.locZ;
6064
}
6165

6266
protected void storeTile(BlockEntity blockEntity) {
@@ -87,6 +91,11 @@ public Collection<FaweCompoundTag> entities() {
8791
return this.entities;
8892
}
8993

94+
@Override
95+
public Set<com.sk89q.worldedit.entity.Entity> getFullEntities() {
96+
throw new UnsupportedOperationException("Cannot get full entities from GET copy.");
97+
}
98+
9099
@Override
91100
public @Nullable FaweCompoundTag entity(final UUID uuid) {
92101
for (FaweCompoundTag tag : entities) {
@@ -139,6 +148,16 @@ public int getMinSectionPosition() {
139148
return minHeight >> 4;
140149
}
141150

151+
@Override
152+
public int getX() {
153+
return chunkX;
154+
}
155+
156+
@Override
157+
public int getZ() {
158+
return chunkZ;
159+
}
160+
142161
@Override
143162
public BiomeType getBiomeType(int x, int y, int z) {
144163
Holder<Biome> biome = biomes[(y >> 4) - getMinSectionPosition()][(y & 12) << 2 | (z & 12) | (x & 12) >> 2];

worldedit-bukkit/adapters/adapter-1_21_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_21_4/PaperweightPostProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public Extent construct(final Extent child) {
112112

113113
@Override
114114
public ProcessorScope getScope() {
115-
return ProcessorScope.READING_SET_BLOCKS;
115+
return ProcessorScope.READING_BLOCKS;
116116
}
117117

118118
private boolean wasAdjacentToWater(char[] get, char[] set, int i, int x, int y, int z) {

0 commit comments

Comments
 (0)