Only add entity to entity cache if ID doesn't exist
@@ -58,13 +58,19 @@ public class EntityCache {
}
public void spawnEntity(Entity entity) {
- cacheEntity(entity);
+ if (cacheEntity(entity)) {
entity.spawnEntity(session);
}
+ }
- public void cacheEntity(Entity entity) {
+ public boolean cacheEntity(Entity entity) {
+ // Check to see if the entity exists, otherwise we can end up with duplicated mobs
+ if (!entityIdTranslations.containsKey(entity.getEntityId())) {
entityIdTranslations.put(entity.getEntityId(), entity.getGeyserId());
entities.put(entity.getGeyserId(), entity);
+ return true;
+ }
+ return false;
}
public boolean removeEntity(Entity entity, boolean force) {
