Skip to content

Commit 5face17

Browse files
committed
Add for 1.21.3
1 parent c5636af commit 5face17

File tree

10 files changed

+441
-279
lines changed

10 files changed

+441
-279
lines changed

worldedit-bukkit/adapters/adapter-1_20_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_20_R2/PaperweightAdapter.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.google.common.util.concurrent.Futures;
2929
import com.mojang.datafixers.util.Either;
3030
import com.mojang.serialization.Lifecycle;
31-
import com.sk89q.jnbt.NBTConstants;
3231
import com.sk89q.worldedit.EditSession;
3332
import com.sk89q.worldedit.WorldEditException;
3433
import com.sk89q.worldedit.blocks.BaseItem;
@@ -528,22 +527,6 @@ public org.bukkit.entity.Entity createEntity(Location location, BaseEntity state
528527
}
529528
}
530529

531-
// This removes all unwanted tags from the main entity and all its passengers
532-
private void removeUnwantedEntityTagsRecursively(net.minecraft.nbt.CompoundTag tag) {
533-
for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) {
534-
tag.remove(name);
535-
}
536-
537-
// Adapted from net.minecraft.world.entity.EntityType#loadEntityRecursive
538-
if (tag.contains("Passengers", NBTConstants.TYPE_LIST)) {
539-
net.minecraft.nbt.ListTag nbttaglist = tag.getList("Passengers", NBTConstants.TYPE_COMPOUND);
540-
541-
for (int i = 0; i < nbttaglist.size(); ++i) {
542-
removeUnwantedEntityTagsRecursively(nbttaglist.getCompound(i));
543-
}
544-
}
545-
}
546-
547530
@Override
548531
public Component getRichBlockName(BlockType blockType) {
549532
return TranslatableComponent.of(getBlockFromType(blockType).getDescriptionId());

worldedit-bukkit/adapters/adapter-1_20_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_20_R3/PaperweightAdapter.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.google.common.util.concurrent.Futures;
2929
import com.mojang.datafixers.util.Either;
3030
import com.mojang.serialization.Lifecycle;
31-
import com.sk89q.jnbt.NBTConstants;
3231
import com.sk89q.worldedit.EditSession;
3332
import com.sk89q.worldedit.WorldEditException;
3433
import com.sk89q.worldedit.blocks.BaseItem;
@@ -527,22 +526,6 @@ public org.bukkit.entity.Entity createEntity(Location location, BaseEntity state
527526
}
528527
}
529528

530-
// This removes all unwanted tags from the main entity and all its passengers
531-
private void removeUnwantedEntityTagsRecursively(net.minecraft.nbt.CompoundTag tag) {
532-
for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) {
533-
tag.remove(name);
534-
}
535-
536-
// Adapted from net.minecraft.world.entity.EntityType#loadEntityRecursive
537-
if (tag.contains("Passengers", NBTConstants.TYPE_LIST)) {
538-
net.minecraft.nbt.ListTag nbttaglist = tag.getList("Passengers", NBTConstants.TYPE_COMPOUND);
539-
540-
for (int i = 0; i < nbttaglist.size(); ++i) {
541-
removeUnwantedEntityTagsRecursively(nbttaglist.getCompound(i));
542-
}
543-
}
544-
}
545-
546529
@Override
547530
public Component getRichBlockName(BlockType blockType) {
548531
return TranslatableComponent.of(getBlockFromType(blockType).getDescriptionId());

worldedit-bukkit/adapters/adapter-1_20_5/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext.fawe/v1_20_R4/PaperweightAdapter.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.google.common.util.concurrent.Futures;
2929
import com.mojang.serialization.Codec;
3030
import com.mojang.serialization.Lifecycle;
31-
import com.sk89q.jnbt.NBTConstants;
3231
import com.sk89q.worldedit.EditSession;
3332
import com.sk89q.worldedit.WorldEditException;
3433
import com.sk89q.worldedit.blocks.BaseItem;
@@ -535,22 +534,6 @@ public org.bukkit.entity.Entity createEntity(Location location, BaseEntity state
535534
}
536535
}
537536

538-
// This removes all unwanted tags from the main entity and all its passengers
539-
private void removeUnwantedEntityTagsRecursively(net.minecraft.nbt.CompoundTag tag) {
540-
for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) {
541-
tag.remove(name);
542-
}
543-
544-
// Adapted from net.minecraft.world.entity.EntityType#loadEntityRecursive
545-
if (tag.contains("Passengers", NBTConstants.TYPE_LIST)) {
546-
net.minecraft.nbt.ListTag nbttaglist = tag.getList("Passengers", NBTConstants.TYPE_COMPOUND);
547-
548-
for (int i = 0; i < nbttaglist.size(); ++i) {
549-
removeUnwantedEntityTagsRecursively(nbttaglist.getCompound(i));
550-
}
551-
}
552-
}
553-
554537
@Override
555538
public Component getRichBlockName(BlockType blockType) {
556539
return TranslatableComponent.of(getBlockFromType(blockType).getDescriptionId());

worldedit-bukkit/adapters/adapter-1_21/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_21_R1/PaperweightAdapter.java

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.sk89q.worldedit.blocks.BaseItemStack;
3535
import com.sk89q.worldedit.bukkit.BukkitAdapter;
3636
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
37-
import com.sk89q.worldedit.bukkit.adapter.Refraction;
3837
import com.sk89q.worldedit.entity.BaseEntity;
3938
import com.sk89q.worldedit.extension.platform.Watchdog;
4039
import com.sk89q.worldedit.extent.Extent;
@@ -513,29 +512,24 @@ public org.bukkit.entity.Entity createEntity(Location location, BaseEntity state
513512
Entity createdEntity = createEntityFromId(state.getType().id(), craftWorld.getHandle());
514513

515514
if (createdEntity != null) {
516-
worldServer.addFreshEntityWithPassengers(createdEntity, SpawnReason.CUSTOM);
515+
LinCompoundTag nativeTag = state.getNbt();
516+
if (nativeTag != null) {
517+
net.minecraft.nbt.CompoundTag tag = (net.minecraft.nbt.CompoundTag) fromNativeLin(nativeTag);
518+
for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) {
519+
tag.remove(name);
520+
}
521+
readTagIntoEntity(tag, createdEntity);
522+
}
523+
524+
createdEntity.absMoveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
525+
526+
worldServer.addFreshEntity(createdEntity, SpawnReason.CUSTOM);
517527
return createdEntity.getBukkitEntity();
518528
} else {
519529
return null;
520530
}
521531
}
522532

523-
// This removes all unwanted tags from the main entity and all its passengers
524-
private void removeUnwantedEntityTagsRecursively(net.minecraft.nbt.CompoundTag tag) {
525-
for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) {
526-
tag.remove(name);
527-
}
528-
529-
// Adapted from net.minecraft.world.entity.EntityType#loadEntityRecursive
530-
if (tag.contains("Passengers", LinTagId.LIST.id())) {
531-
net.minecraft.nbt.ListTag nbttaglist = tag.getList("Passengers", LinTagId.COMPOUND.id());
532-
533-
for (int i = 0; i < nbttaglist.size(); ++i) {
534-
removeUnwantedEntityTagsRecursively(nbttaglist.getCompound(i));
535-
}
536-
}
537-
}
538-
539533
@Override
540534
public Component getRichBlockName(BlockType blockType) {
541535
return TranslatableComponent.of(getBlockFromType(blockType).getDescriptionId());
@@ -1161,9 +1155,7 @@ private static class MojangWatchdog implements Watchdog {
11611155

11621156
MojangWatchdog(DedicatedServer server) throws NoSuchFieldException {
11631157
this.server = server;
1164-
Field tickField = MinecraftServer.class.getDeclaredField(
1165-
Refraction.pickName("nextTickTime", "ag")
1166-
);
1158+
Field tickField = MinecraftServer.class.getDeclaredField(StaticRefraction.NEXT_TICK_TIME);
11671159
if (tickField.getType() != long.class) {
11681160
throw new IllegalStateException("nextTickTime is not a long field, mapping is likely incorrect");
11691161
}

worldedit-bukkit/adapters/adapter-1_21/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_21_R1/PaperweightFaweAdapter.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import net.minecraft.core.registries.Registries;
6565
import net.minecraft.nbt.NbtOps;
6666
import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
67+
import net.minecraft.resources.ResourceKey;
6768
import net.minecraft.resources.ResourceLocation;
6869
import net.minecraft.server.MinecraftServer;
6970
import net.minecraft.server.dedicated.DedicatedServer;
@@ -518,11 +519,10 @@ public boolean canPlaceAt(World world, BlockVector3 blockVector3, BlockState blo
518519
public org.bukkit.inventory.ItemStack adapt(BaseItemStack baseItemStack) {
519520
final RegistryAccess.Frozen registryAccess = DedicatedServer.getServer().registryAccess();
520521
ItemStack stack = new ItemStack(
521-
DedicatedServer.getServer().registryAccess().registryOrThrow(Registries.ITEM)
522-
.get(ResourceLocation.tryParse(baseItemStack.getType().id())),
522+
registryAccess.registryOrThrow(Registries.ITEM).get(ResourceLocation.tryParse(baseItemStack.getType().id())),
523523
baseItemStack.getAmount()
524524
);
525-
final net.minecraft.nbt.CompoundTag nbt = (net.minecraft.nbt.CompoundTag) fromNative(baseItemStack.getNbtData());
525+
final net.minecraft.nbt.CompoundTag nbt = (net.minecraft.nbt.CompoundTag) fromNativeLin(baseItemStack.getNbt());
526526
if (nbt != null) {
527527
final DataComponentPatch patch = COMPONENTS_CODEC
528528
.parse(registryAccess.createSerializationContext(NbtOps.INSTANCE), nbt)
@@ -557,7 +557,6 @@ protected ServerLevel getServerLevel(final World world) {
557557

558558
@Override
559559
public boolean generateFeature(ConfiguredFeatureType feature, World world, EditSession editSession, BlockVector3 pt) {
560-
//FAWE start
561560
ServerLevel serverLevel = ((CraftWorld) world).getHandle();
562561
ChunkGenerator generator = serverLevel.getMinecraftWorld().getChunkSource().getGenerator();
563562

@@ -593,7 +592,6 @@ public boolean generateFeature(ConfiguredFeatureType feature, World world, EditS
593592
});
594593

595594
return placeFeatureIntoSession(editSession, populator, placed);
596-
//FAWE end
597595
}
598596

599597
@Override
@@ -611,7 +609,6 @@ public boolean generateStructure(StructureType type, World world, EditSession ed
611609

612610
ChunkPos chunkPos = new ChunkPos(new BlockPos(pt.x(), pt.y(), pt.z()));
613611

614-
//FAWE start
615612
FaweBlockStateListPopulator populator = new FaweBlockStateListPopulator(serverLevel);
616613
Map<BlockPos, CraftBlockState> placed = TaskManager.taskManager().sync(() -> {
617614
serverLevel.captureTreeGeneration = true;
@@ -671,7 +668,6 @@ public boolean generateStructure(StructureType type, World world, EditSession ed
671668
});
672669

673670
return placeFeatureIntoSession(editSession, populator, placed);
674-
//FAWE end
675671
}
676672

677673
private boolean placeFeatureIntoSession(

worldedit-bukkit/adapters/adapter-1_21/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_21_R1/PaperweightPlatformAdapter.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import net.minecraft.world.level.block.Block;
4444
import net.minecraft.world.level.block.Blocks;
4545
import net.minecraft.world.level.block.entity.BlockEntity;
46-
import net.minecraft.world.level.block.state.StateHolder;
4746
import net.minecraft.world.level.chunk.ChunkAccess;
4847
import net.minecraft.world.level.chunk.GlobalPalette;
4948
import net.minecraft.world.level.chunk.HashMapPalette;
@@ -98,8 +97,6 @@ public final class PaperweightPlatformAdapter extends NMSAdapter {
9897
private static final Field fieldTickingBlockCount;
9998
private static final Field fieldBiomes;
10099

101-
private static final Field fieldPropertiesCodec;
102-
103100
private static final MethodHandle methodGetVisibleChunk;
104101

105102
private static final Field fieldThreadingDetector;
@@ -152,9 +149,6 @@ public final class PaperweightPlatformAdapter extends NMSAdapter {
152149
fieldBiomes = tmpFieldBiomes;
153150
fieldBiomes.setAccessible(true);
154151

155-
fieldPropertiesCodec = StateHolder.class.getDeclaredField(Refraction.pickName("propertiesCodec", "f"));
156-
fieldPropertiesCodec.setAccessible(true);
157-
158152
Method getVisibleChunkIfPresent = ChunkMap.class.getDeclaredMethod(Refraction.pickName(
159153
"getVisibleChunkIfPresent",
160154
"b"

0 commit comments

Comments
 (0)