Do not show end credits

Fixes end portalling not working correctly when the player has
not seen the end credits.
This commit is contained in:
Spottedleaf 2024-10-21 10:03:18 -07:00
parent 7b534ef0bd
commit 06d719d57d
2 changed files with 27 additions and 8 deletions

View File

@ -11893,7 +11893,7 @@ index f9abf63e12ea930275121b470e4e4906cff0fc12..f03f968d1526fbcff1ae87376370ba59
for (ServerPlayer player : ServerLevel.this.players) { for (ServerPlayer player : ServerLevel.this.players) {
player.getBukkitEntity().onEntityRemove(entity); player.getBukkitEntity().onEntityRemove(entity);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index c396580a9cfd86ff261bed439bb4662ae88010b5..2f55541136976a8a04a657d87a658b11a1e1db2f 100644 index c396580a9cfd86ff261bed439bb4662ae88010b5..00b3c3c60f67d129058a888b7bd5e7fb031063da 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -15,6 +15,7 @@ import java.util.Objects; @@ -15,6 +15,7 @@ import java.util.Objects;
@ -12067,7 +12067,7 @@ index c396580a9cfd86ff261bed439bb4662ae88010b5..2f55541136976a8a04a657d87a658b11
AABB axisalignedbb = this.getDimensions(Pose.STANDING).makeBoundingBox(Vec3.ZERO); AABB axisalignedbb = this.getDimensions(Pose.STANDING).makeBoundingBox(Vec3.ZERO);
BlockPos blockposition1 = basePos; BlockPos blockposition1 = basePos;
@@ -1320,6 +1466,332 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -1320,6 +1466,334 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
} }
@ -12380,7 +12380,9 @@ index c396580a9cfd86ff261bed439bb4662ae88010b5..2f55541136976a8a04a657d87a658b11
+ this.wonGame = true; + this.wonGame = true;
+ // TODO is there a better solution to this that DOESN'T skip the credits? + // TODO is there a better solution to this that DOESN'T skip the credits?
+ this.seenCredits = true; + this.seenCredits = true;
+ this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.WIN_GAME, this.seenCredits ? 0.0F : 1.0F)); + if (!this.seenCredits) {
+ this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.WIN_GAME, 0.0F));
+ }
+ this.exitEndCredits(); + this.exitEndCredits();
+ return true; + return true;
+ } else { + } else {
@ -12400,7 +12402,7 @@ index c396580a9cfd86ff261bed439bb4662ae88010b5..2f55541136976a8a04a657d87a658b11
@Nullable @Nullable
@Override @Override
public Entity changeDimension(DimensionTransition teleportTarget) { public Entity changeDimension(DimensionTransition teleportTarget) {
@@ -2369,6 +2841,12 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2369,6 +2843,12 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
public void setCamera(@Nullable Entity entity) { public void setCamera(@Nullable Entity entity) {
Entity entity1 = this.getCamera(); Entity entity1 = this.getCamera();
@ -12413,7 +12415,7 @@ index c396580a9cfd86ff261bed439bb4662ae88010b5..2f55541136976a8a04a657d87a658b11
this.camera = (Entity) (entity == null ? this : entity); this.camera = (Entity) (entity == null ? this : entity);
if (entity1 != this.camera) { if (entity1 != this.camera) {
// Paper start - Add PlayerStartSpectatingEntityEvent and PlayerStopSpectatingEntity // Paper start - Add PlayerStartSpectatingEntityEvent and PlayerStopSpectatingEntity
@@ -2922,7 +3400,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2922,7 +3402,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
this.experienceLevel = this.newLevel; this.experienceLevel = this.newLevel;
this.totalExperience = this.newTotalExp; this.totalExperience = this.newTotalExp;
this.experienceProgress = 0; this.experienceProgress = 0;
@ -17365,10 +17367,27 @@ index 3f5bb5c9ceb5b31fcc9ef0a7a6157e1e1cb2a09f..deb555743b15afcc22e694dcf1d8ceca
return entity instanceof ThrownEnderpearl ? new Vec3(0.0D, -1.0D, 0.0D) : entity.getDeltaMovement(); return entity instanceof ThrownEnderpearl ? new Vec3(0.0D, -1.0D, 0.0D) : entity.getDeltaMovement();
} }
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index a35a426cc7778a51523f26057b5d61b8a3e23d5d..406f5699ebe50dad2ede6da9f39b70f518fd49ba 100644 index a35a426cc7778a51523f26057b5d61b8a3e23d5d..e1c071e0b25c4678bf08313b6c60cf895a54aa02 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -126,6 +126,20 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { @@ -70,15 +70,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
world.getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) return; // Paper - make cancellable
// CraftBukkit end
- if (!world.isClientSide && world.dimension() == Level.END && entity instanceof ServerPlayer) {
- ServerPlayer entityplayer = (ServerPlayer) entity;
-
- if (world.paperConfig().misc.disableEndCredits) entityplayer.seenCredits = true; // Paper - Option to disable end credits
- if (!entityplayer.seenCredits) {
- entityplayer.showEndCredits();
- return;
- }
- }
+ // Folia - region threading - do not show credits
entity.setAsInsidePortal(this, pos);
}
@@ -126,6 +118,20 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
} }
} }

View File

@ -9,7 +9,7 @@ data deserialization and is racey even in Vanilla. But in Folia,
some accesses may throw and as such we need to fix this directly. some accesses may throw and as such we need to fix this directly.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 2f55541136976a8a04a657d87a658b11a1e1db2f..673d94f56882e86545e5e435ecb39caf8a8d43fe 100644 index 00b3c3c60f67d129058a888b7bd5e7fb031063da..e4a68f43c1a48fe8193623c646eb40bc5f664c76 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -709,7 +709,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -709,7 +709,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple