Browse Source

KC Official Fix (07698c433a)

master
Robotia 9 years ago
parent
commit
10822d4974
  1. 6
      patches/net/minecraft/server/management/ServerConfigurationManager.java.patch
  2. 13
      patches/org/bukkit/event/player/PlayerTeleportEvent.java.patch
  3. 4
      src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java

6
patches/net/minecraft/server/management/ServerConfigurationManager.java.patch

@ -443,10 +443,10 @@
+ // Cauldron start - refactor entire method for sanity. + // Cauldron start - refactor entire method for sanity.
+ public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3) + public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3)
+ { + {
+ return this.respawnPlayer(par1EntityPlayerMP, par2, par3, null); + return this.respawnPlayer(par1EntityPlayerMP, par2, par3, null, TeleportCause.DEATH);
+ } + }
+ +
+ public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int targetDimension, boolean returnFromEnd, Location location) + public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int targetDimension, boolean returnFromEnd, Location location, TeleportCause cause)
+ { + {
+ // Phase 1 - check if the player is allowed to respawn in same dimension + // Phase 1 - check if the player is allowed to respawn in same dimension
+ World world = mcServer.worldServerForDimension(targetDimension); + World world = mcServer.worldServerForDimension(targetDimension);
@ -504,7 +504,7 @@
+ par1EntityPlayerMP.dimension = targetDimension; + par1EntityPlayerMP.dimension = targetDimension;
+ // CraftBukkit start + // CraftBukkit start
+ EntityPlayerMP entityplayermp1 = par1EntityPlayerMP; + EntityPlayerMP entityplayermp1 = par1EntityPlayerMP;
+ entityplayermp1.clonePlayer(par1EntityPlayerMP, returnFromEnd); // KCauldron - clone player + entityplayermp1.clonePlayer(par1EntityPlayerMP, cause != TeleportCause.DEATH); // KCauldron - clone player
+ entityplayermp1.setWorld(this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension)); // make sure to update reference for bed spawn logic + entityplayermp1.setWorld(this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension)); // make sure to update reference for bed spawn logic
+ entityplayermp1.playerConqueredTheEnd = false; + entityplayermp1.playerConqueredTheEnd = false;
ChunkCoordinates chunkcoordinates1; ChunkCoordinates chunkcoordinates1;

13
patches/org/bukkit/event/player/PlayerTeleportEvent.java.patch

@ -1,17 +1,18 @@
--- ../src-base/minecraft/org/bukkit/event/player/PlayerTeleportEvent.java --- ../src-base/minecraft/org/bukkit/event/player/PlayerTeleportEvent.java
+++ ../src-work/minecraft/org/bukkit/event/player/PlayerTeleportEvent.java +++ ../src-work/minecraft/org/bukkit/event/player/PlayerTeleportEvent.java
@@ -55,11 +55,27 @@ @@ -55,11 +55,28 @@
* portal * portal
*/ */
END_PORTAL, END_PORTAL,
+ // Cauldron start - added cause for mods + // Cauldron start - added cause for mods
/** + /**
+ * Indicates the teleportation was caused by a player entering a + * Indicates the teleportation was caused by a player entering a
+ * Mod portal + * Mod portal
+ */ + */
+ MOD, + MOD,
+ // Cauldron end + // Cauldron end
+ /** + DEATH, // KCauldron
/**
* Indicates the teleportation was caused by an event not covered by * Indicates the teleportation was caused by an event not covered by
* this enum * this enum
*/ */
@ -28,3 +29,9 @@
} }
@Override @Override
@@ -70,4 +87,4 @@
public static HandlerList getHandlerList() {
return handlers;
}
-}
+}

4
src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java

@ -503,7 +503,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (fromWorld == toWorld) { if (fromWorld == toWorld) {
entity.playerNetServerHandler.teleport(to); entity.playerNetServerHandler.teleport(to);
} else { } else {
server.getHandle().respawnPlayer(entity, toWorld.dimension, false, to); // Cauldron server.getHandle().respawnPlayer(entity, toWorld.dimension, false, to, cause); // Cauldron
} }
return true; return true;
} }
@ -1340,4 +1340,4 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return spigot; return spigot;
} }
// Spigot end // Spigot end
} }

Loading…
Cancel
Save