mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-29 23:17:59 +02:00
Optimize entity events adding/removing
This commit is contained in:
parent
cbf06e6963
commit
1a6df8e035
@ -531,7 +531,6 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer {
|
|||||||
Check.notNull(eventCallback, "Event callback cannot be null");
|
Check.notNull(eventCallback, "Event callback cannot be null");
|
||||||
List<EventCallback> callbacks = getEventCallbacks(eventClass);
|
List<EventCallback> callbacks = getEventCallbacks(eventClass);
|
||||||
callbacks.add(eventCallback);
|
callbacks.add(eventCallback);
|
||||||
this.eventCallbacks.put(eventClass, callbacks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -540,13 +539,12 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer {
|
|||||||
Check.notNull(eventCallback, "Event callback cannot be null");
|
Check.notNull(eventCallback, "Event callback cannot be null");
|
||||||
List<EventCallback> callbacks = getEventCallbacks(eventClass);
|
List<EventCallback> callbacks = getEventCallbacks(eventClass);
|
||||||
callbacks.remove(eventCallback);
|
callbacks.remove(eventCallback);
|
||||||
this.eventCallbacks.put(eventClass, callbacks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> List<EventCallback> getEventCallbacks(Class<E> eventClass) {
|
public <E extends Event> List<EventCallback> getEventCallbacks(Class<E> eventClass) {
|
||||||
Check.notNull(eventClass, "Event class cannot be null");
|
Check.notNull(eventClass, "Event class cannot be null");
|
||||||
return eventCallbacks.getOrDefault(eventClass, new CopyOnWriteArrayList<>());
|
return eventCallbacks.computeIfAbsent(eventClass, clazz -> new CopyOnWriteArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -539,7 +539,9 @@ public abstract class Instance implements BlockModifier, EventHandler, DataConta
|
|||||||
* @param chunkZ the chunk Z
|
* @param chunkZ the chunk Z
|
||||||
*/
|
*/
|
||||||
public void unloadChunk(int chunkX, int chunkZ) {
|
public void unloadChunk(int chunkX, int chunkZ) {
|
||||||
unloadChunk(getChunk(chunkX, chunkZ));
|
final Chunk chunk = getChunk(chunkX, chunkZ);
|
||||||
|
Check.notNull(chunk, "The chunk at " + chunkX + ":" + chunkZ + " is already unloaded");
|
||||||
|
unloadChunk(chunk);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user