Small optimization in EntityPlayer by caching the hashcode. Thanks to a very old PR by Belphemur. In addition, changed and slightly improved the hashcode formula for entities
Dieser Commit ist enthalten in:
Ursprung
77a12d4dce
Commit
52c526f313
@ -206,24 +206,6 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|||||||
return !entity.isAlive();
|
return !entity.isAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (obj == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (getClass() != obj.getClass()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
final CraftEntity other = (CraftEntity) obj;
|
|
||||||
if (this.server != other.server && (this.server == null || !this.server.equals(other.server))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (this.entity != other.entity && (this.entity == null || !this.entity.equals(other.entity))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server getServer() {
|
public Server getServer() {
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
@ -319,11 +301,22 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|||||||
return "CraftEntity{" + "id=" + getEntityId() + '}';
|
return "CraftEntity{" + "id=" + getEntityId() + '}';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (getClass() != obj.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final CraftEntity other = (CraftEntity) obj;
|
||||||
|
return (this.getEntityId() == other.getEntityId());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int hash = 7;
|
int hash = 7;
|
||||||
hash = 89 * hash + (this.server != null ? this.server.hashCode() : 0);
|
hash = 29 * hash + this.getEntityId();
|
||||||
hash = 89 * hash + (this.entity != null ? this.entity.hashCode() : 0);
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||||||
private long lastPlayed = 0;
|
private long lastPlayed = 0;
|
||||||
private boolean hasPlayedBefore = false;
|
private boolean hasPlayedBefore = false;
|
||||||
private Set<String> channels = new HashSet<String>();
|
private Set<String> channels = new HashSet<String>();
|
||||||
|
private int hash = 0;
|
||||||
|
|
||||||
public CraftPlayer(CraftServer server, EntityPlayer entity) {
|
public CraftPlayer(CraftServer server, EntityPlayer entity) {
|
||||||
super(server, entity);
|
super(server, entity);
|
||||||
@ -583,8 +584,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int hash = 5;
|
if (hash == 0 || hash == 485) {
|
||||||
hash = 97 * hash + (this.getName() != null ? this.getName().hashCode() : 0);
|
hash = 97 * 5 + (this.getName() != null ? this.getName().hashCode() : 0);
|
||||||
|
}
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren