Update to Minecraft 1.21.2

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2024-10-23 02:15:00 +11:00
parent 2c4beb962b
commit d3a23f42c3
522 changed files with 8501 additions and 6477 deletions

View File

@@ -1,10 +1,11 @@
--- a/net/minecraft/server/commands/CommandTeleport.java
+++ b/net/minecraft/server/commands/CommandTeleport.java
@@ -33,6 +33,13 @@
@@ -31,6 +31,14 @@
import net.minecraft.world.phys.Vec2F;
import net.minecraft.world.phys.Vec3D;
+// CraftBukkit start
+import net.minecraft.server.level.EntityPlayer;
+import org.bukkit.Location;
+import org.bukkit.craftbukkit.CraftWorld;
+import org.bukkit.event.entity.EntityTeleportEvent;
@@ -14,35 +15,35 @@
public class CommandTeleport {
private static final SimpleCommandExceptionType INVALID_POSITION = new SimpleCommandExceptionType(IChatBaseComponent.translatable("commands.teleport.invalidPosition"));
@@ -155,7 +162,30 @@
float f2 = MathHelper.wrapDegrees(f);
float f3 = MathHelper.wrapDegrees(f1);
@@ -167,7 +175,30 @@
float f4 = MathHelper.wrapDegrees(f2);
float f5 = MathHelper.wrapDegrees(f3);
- if (entity.teleportTo(worldserver, d0, d1, d2, set, f2, f3)) {
- if (entity.teleportTo(worldserver, d3, d4, d5, set, f4, f5, true)) {
+ // CraftBukkit start - Teleport event
+ boolean result;
+ if (entity instanceof EntityPlayer player) {
+ result = player.teleportTo(worldserver, d0, d1, d2, set, f2, f3, PlayerTeleportEvent.TeleportCause.COMMAND);
+ result = player.teleportTo(worldserver, d3, d4, d5, set, f4, f5, true, PlayerTeleportEvent.TeleportCause.COMMAND);
+ } else {
+ Location to = new Location(worldserver.getWorld(), d0, d1, d2, f2, f3);
+ Location to = new Location(worldserver.getWorld(), d3, d4, d5, f4, f5);
+ EntityTeleportEvent event = new EntityTeleportEvent(entity.getBukkitEntity(), entity.getBukkitEntity().getLocation(), to);
+ worldserver.getCraftServer().getPluginManager().callEvent(event);
+ if (event.isCancelled()) {
+ return;
+ }
+
+ d0 = to.getX();
+ d1 = to.getY();
+ d2 = to.getZ();
+ f2 = to.getYaw();
+ f3 = to.getPitch();
+ d3 = to.getX();
+ d4 = to.getY();
+ d5 = to.getZ();
+ f4 = to.getYaw();
+ f5 = to.getPitch();
+ worldserver = ((CraftWorld) to.getWorld()).getHandle();
+
+ result = entity.teleportTo(worldserver, d0, d1, d2, set, f2, f3);
+ result = entity.teleportTo(worldserver, d3, d4, d5, set, f4, f5, true);
+ }
+
+ if (result) {
+ // CraftBukkit end
if (commandteleport_a != null) {
commandteleport_a.perform(commandlistenerwrapper, entity);
if (lookat != null) {
lookat.perform(commandlistenerwrapper, entity);
}