diff --git a/src/main/java/net/minecraft/entity/Entity.java b/src/main/java/net/minecraft/entity/Entity.java index 1e45c8c..74d4ac3 100644 --- a/src/main/java/net/minecraft/entity/Entity.java +++ b/src/main/java/net/minecraft/entity/Entity.java @@ -135,7 +135,7 @@ public ArrayList capturedDrops = new ArrayList(); private UUID persistentID; - private HashMap extendedProperties; + protected HashMap extendedProperties; public int getEntityId() { diff --git a/src/main/java/net/minecraft/entity/player/EntityPlayer.java b/src/main/java/net/minecraft/entity/player/EntityPlayer.java index 13cceb6..7603de7 100644 --- a/src/main/java/net/minecraft/entity/player/EntityPlayer.java +++ b/src/main/java/net/minecraft/entity/player/EntityPlayer.java @@ -2009,6 +2009,10 @@ this.experience = par1EntityPlayer.experience; this.setScore(par1EntityPlayer.getScore()); this.teleportDirection = par1EntityPlayer.teleportDirection; + //Copy and re-init ExtendedProperties when switching dimensions. + this.extendedProperties = par1EntityPlayer.extendedProperties; + for (net.minecraftforge.common.IExtendedEntityProperties p : this.extendedProperties.values()) + p.init(this, this.worldObj); } else if (this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory")) { diff --git a/src/main/java/net/minecraftforge/common/IExtendedEntityProperties.java b/src/main/java/net/minecraftforge/common/IExtendedEntityProperties.java index 1b937a4..60030f1 100644 --- a/src/main/java/net/minecraftforge/common/IExtendedEntityProperties.java +++ b/src/main/java/net/minecraftforge/common/IExtendedEntityProperties.java @@ -30,6 +30,8 @@ * Used to initialize the extended properties with the entity that this is attached to, as well * as the world object. * Called automatically if you register with the EntityConstructing event. + * May be called multiple times if the extended properties is moved over to a new entity. + * Such as when a player switches dimension {Minecraft re-creates the player entity} * @param entity The entity that this extended properties is attached to * @param world The world in which the entity exists */ diff --git a/src/main/resources/fmlversion.properties b/src/main/resources/fmlversion.properties index 9912d88..d8b7442 100644 --- a/src/main/resources/fmlversion.properties +++ b/src/main/resources/fmlversion.properties @@ -1,6 +1,6 @@ fmlbuild.major.number=7 fmlbuild.minor.number=2 fmlbuild.revision.number=172 -fmlbuild.build.number=29 +fmlbuild.build.number=30 fmlbuild.mcversion=1.7.2 fmlbuild.mcpversion=9.03