Remove Player cache and edit CraftPlayer.equals to account for EntityID. Fixes BUKKIT-1541 and Addresses BUKKIT-761
This commit is contained in:
@@ -1,28 +1,23 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import com.google.common.collect.MapMaker;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.minecraft.server.*;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.EntityEffect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.entity.Vehicle;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
||||
public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
private static final Map<String, CraftPlayer> players = new MapMaker().softValues().makeMap();
|
||||
protected final CraftServer server;
|
||||
protected Entity entity;
|
||||
private EntityDamageEvent lastDamageEvent;
|
||||
@@ -39,7 +34,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
if (entity instanceof EntityLiving) {
|
||||
// Players
|
||||
if (entity instanceof EntityHuman) {
|
||||
if (entity instanceof EntityPlayer) { return getPlayer((EntityPlayer) entity); }
|
||||
if (entity instanceof EntityPlayer) { return new CraftPlayer(server, (EntityPlayer) entity); }
|
||||
else { return new CraftHumanEntity(server, (EntityHuman) entity); }
|
||||
}
|
||||
else if (entity instanceof EntityCreature) {
|
||||
@@ -275,19 +270,6 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
return getHandle().uniqueId;
|
||||
}
|
||||
|
||||
private static CraftPlayer getPlayer(EntityPlayer entity) {
|
||||
CraftPlayer result = players.get(entity.name);
|
||||
|
||||
if (result == null) {
|
||||
result = new CraftPlayer((CraftServer) Bukkit.getServer(), entity);
|
||||
players.put(entity.name, result);
|
||||
} else {
|
||||
result.setHandle(entity);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int getTicksLived() {
|
||||
return getHandle().ticksLived;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user