Merge pull request #142 from cabaletta/direct-invocation
direct invocation
This commit is contained in:
		| @@ -49,7 +49,6 @@ import org.lwjgl.input.Keyboard; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.function.Consumer; | ||||
|  | ||||
| /** | ||||
|  * @author Brady | ||||
| @@ -61,12 +60,20 @@ public final class GameEventHandler implements IGameEventListener, Helper { | ||||
|  | ||||
|     @Override | ||||
|     public final void onTick(TickEvent event) { | ||||
|         dispatch(listener -> listener.onTick(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onTick(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public final void onPlayerUpdate(PlayerUpdateEvent event) { | ||||
|         dispatch(listener -> listener.onPlayerUpdate(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onPlayerUpdate(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -86,12 +93,20 @@ public final class GameEventHandler implements IGameEventListener, Helper { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         dispatch(IGameEventListener::onProcessKeyBinds); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onProcessKeyBinds(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public final void onSendChatMessage(ChatEvent event) { | ||||
|         dispatch(listener -> listener.onSendChatMessage(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onSendChatMessage(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -117,18 +132,20 @@ public final class GameEventHandler implements IGameEventListener, Helper { | ||||
|         } | ||||
|  | ||||
|  | ||||
|         dispatch(listener -> listener.onChunkEvent(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onChunkEvent(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public final void onRenderPass(RenderEvent event) { | ||||
|         /* | ||||
|         WorldProvider.INSTANCE.ifWorldLoaded(world -> world.forEachRegion(region -> region.forEachChunk(chunk -> { | ||||
|             drawChunkLine(region.getX() * 512 + chunk.getX() * 16, region.getZ() * 512 + chunk.getZ() * 16, event.getPartialTicks()); | ||||
|         }))); | ||||
|         */ | ||||
|  | ||||
|         dispatch(listener -> listener.onRenderPass(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onRenderPass(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -148,47 +165,71 @@ public final class GameEventHandler implements IGameEventListener, Helper { | ||||
|                 break; | ||||
|         } | ||||
|  | ||||
|         dispatch(listener -> listener.onWorldEvent(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onWorldEvent(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public final void onSendPacket(PacketEvent event) { | ||||
|         dispatch(listener -> listener.onSendPacket(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onSendPacket(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public final void onReceivePacket(PacketEvent event) { | ||||
|         dispatch(listener -> listener.onReceivePacket(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onReceivePacket(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onPlayerRelativeMove(RelativeMoveEvent event) { | ||||
|         dispatch(listener -> listener.onPlayerRelativeMove(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onPlayerRelativeMove(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onBlockInteract(BlockInteractEvent event) { | ||||
|         dispatch(listener -> listener.onBlockInteract(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onBlockInteract(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onPlayerDeath() { | ||||
|         dispatch(IGameEventListener::onPlayerDeath); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onPlayerDeath(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onPathEvent(PathEvent event) { | ||||
|         dispatch(listener -> listener.onPathEvent(event)); | ||||
|         for (IGameEventListener l : listeners) { | ||||
|             if (canDispatch(l)) { | ||||
|                 l.onPathEvent(event); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public final void registerEventListener(IGameEventListener listener) { | ||||
|         this.listeners.add(listener); | ||||
|     } | ||||
|  | ||||
|     private void dispatch(Consumer<IGameEventListener> dispatchFunction) { | ||||
|         this.listeners.stream().filter(this::canDispatch).forEach(dispatchFunction); | ||||
|     } | ||||
|  | ||||
|     private boolean canDispatch(IGameEventListener listener) { | ||||
|         return !(listener instanceof Toggleable) || ((Toggleable) listener).isEnabled(); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user