Update to Minecraft 1.21

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2024-06-14 01:05:00 +10:00
parent 7c6204e1a9
commit eed041d629
255 changed files with 3585 additions and 3261 deletions

View File

@@ -0,0 +1,60 @@
--- a/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java
+++ b/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java
@@ -8,6 +8,12 @@
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.levelgen.feature.configurations.WorldGenFeatureEmptyConfiguration;
+// CraftBukkit start
+import java.util.List;
+import org.bukkit.block.BlockState;
+import org.bukkit.event.world.PortalCreateEvent;
+// CraftBukkit end
+
public class EndPlatformFeature extends WorldGenerator<WorldGenFeatureEmptyConfiguration> {
public EndPlatformFeature(Codec<WorldGenFeatureEmptyConfiguration> codec) {
@@ -21,6 +27,13 @@
}
public static void createEndPlatform(WorldAccess worldaccess, BlockPosition blockposition, boolean flag) {
+ createEndPlatform(worldaccess, blockposition, flag, null);
+ // CraftBukkit start
+ }
+
+ public static void createEndPlatform(WorldAccess worldaccess, BlockPosition blockposition, boolean flag, Entity entity) {
+ org.bukkit.craftbukkit.util.BlockStateListPopulator blockList = new org.bukkit.craftbukkit.util.BlockStateListPopulator(worldaccess);
+ // CraftBukkit end
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = blockposition.mutable();
for (int i = -2; i <= 2; ++i) {
@@ -29,16 +42,27 @@
BlockPosition.MutableBlockPosition blockposition_mutableblockposition1 = blockposition_mutableblockposition.set(blockposition).move(j, k, i);
Block block = k == -1 ? Blocks.OBSIDIAN : Blocks.AIR;
- if (!worldaccess.getBlockState(blockposition_mutableblockposition1).is(block)) {
+ // CraftBukkit start
+ if (!blockList.getBlockState(blockposition_mutableblockposition1).is(block)) {
if (flag) {
- worldaccess.destroyBlock(blockposition_mutableblockposition1, true, (Entity) null);
+ blockList.destroyBlock(blockposition_mutableblockposition1, true, (Entity) null);
}
- worldaccess.setBlock(blockposition_mutableblockposition1, block.defaultBlockState(), 3);
+ blockList.setBlock(blockposition_mutableblockposition1, block.defaultBlockState(), 3);
+ // CraftBukkit end
}
}
}
}
+ // CraftBukkit start
+ org.bukkit.World bworld = worldaccess.getLevel().getWorld();
+ PortalCreateEvent portalEvent = new PortalCreateEvent((List<BlockState>) (List) blockList.getList(), bworld, (entity == null) ? null : entity.getBukkitEntity(), org.bukkit.event.world.PortalCreateEvent.CreateReason.END_PLATFORM);
+
+ worldaccess.getLevel().getCraftServer().getPluginManager().callEvent(portalEvent);
+ if (!portalEvent.isCancelled()) {
+ blockList.updateList();
+ }
+ // CraftBukkit end
}
}