48 lines
2.8 KiB
Diff
48 lines
2.8 KiB
Diff
--- a/net/minecraft/world/level/portal/DimensionTransition.java
|
|
+++ b/net/minecraft/world/level/portal/DimensionTransition.java
|
|
@@ -7,7 +7,19 @@
|
|
import net.minecraft.world.entity.Entity;
|
|
import net.minecraft.world.phys.Vec3D;
|
|
|
|
-public record DimensionTransition(WorldServer newLevel, Vec3D pos, Vec3D speed, float yRot, float xRot, boolean missingRespawnBlock, DimensionTransition.a postDimensionTransition) {
|
|
+// CraftBukkit start
|
|
+import org.bukkit.event.player.PlayerTeleportEvent;
|
|
+
|
|
+public record DimensionTransition(WorldServer newLevel, Vec3D pos, Vec3D speed, float yRot, float xRot, boolean missingRespawnBlock, DimensionTransition.a postDimensionTransition, PlayerTeleportEvent.TeleportCause cause) {
|
|
+
|
|
+ public DimensionTransition(WorldServer newLevel, Vec3D pos, Vec3D speed, float yRot, float xRot, boolean missingRespawnBlock, DimensionTransition.a postDimensionTransition) {
|
|
+ this(newLevel, pos, speed, yRot, xRot, missingRespawnBlock, postDimensionTransition, PlayerTeleportEvent.TeleportCause.UNKNOWN);
|
|
+ }
|
|
+
|
|
+ public DimensionTransition(PlayerTeleportEvent.TeleportCause cause) {
|
|
+ this(null, Vec3D.ZERO, Vec3D.ZERO, 0.0F, 0.0F, false, DO_NOTHING, cause);
|
|
+ }
|
|
+ // CraftBukkit end
|
|
|
|
public static final DimensionTransition.a DO_NOTHING = (entity) -> {
|
|
};
|
|
@@ -15,11 +27,21 @@
|
|
public static final DimensionTransition.a PLACE_PORTAL_TICKET = DimensionTransition::placePortalTicket;
|
|
|
|
public DimensionTransition(WorldServer worldserver, Vec3D vec3d, Vec3D vec3d1, float f, float f1, DimensionTransition.a dimensiontransition_a) {
|
|
- this(worldserver, vec3d, vec3d1, f, f1, false, dimensiontransition_a);
|
|
+ // CraftBukkit start
|
|
+ this(worldserver, vec3d, vec3d1, f, f1, dimensiontransition_a, PlayerTeleportEvent.TeleportCause.UNKNOWN);
|
|
+ }
|
|
+
|
|
+ public DimensionTransition(WorldServer worldserver, Vec3D vec3d, Vec3D vec3d1, float f, float f1, DimensionTransition.a dimensiontransition_a, PlayerTeleportEvent.TeleportCause cause) {
|
|
+ this(worldserver, vec3d, vec3d1, f, f1, false, dimensiontransition_a, cause);
|
|
}
|
|
|
|
public DimensionTransition(WorldServer worldserver, Entity entity, DimensionTransition.a dimensiontransition_a) {
|
|
- this(worldserver, findAdjustedSharedSpawnPos(worldserver, entity), Vec3D.ZERO, 0.0F, 0.0F, false, dimensiontransition_a);
|
|
+ this(worldserver, entity, dimensiontransition_a, PlayerTeleportEvent.TeleportCause.UNKNOWN);
|
|
+ }
|
|
+
|
|
+ public DimensionTransition(WorldServer worldserver, Entity entity, DimensionTransition.a dimensiontransition_a, PlayerTeleportEvent.TeleportCause cause) {
|
|
+ this(worldserver, findAdjustedSharedSpawnPos(worldserver, entity), Vec3D.ZERO, 0.0F, 0.0F, false, dimensiontransition_a, cause);
|
|
+ // CraftBukkit end
|
|
}
|
|
|
|
private static void playPortalSound(Entity entity) {
|