From cda640e5aeb1cf86f66c076e8ce76f010a0ae04f Mon Sep 17 00:00:00 2001 From: Major- Date: Thu, 6 Feb 2014 21:42:12 +0000 Subject: [PATCH] Add support for events with ruby-only handlers. --- data/events.xml | 24 ------------------- .../handler/chain/EventHandlerChainGroup.java | 7 +++++- src/org/apollo/util/plugin/PluginContext.java | 12 ++++------ 3 files changed, 10 insertions(+), 33 deletions(-) diff --git a/data/events.xml b/data/events.xml index 742f42d4..bf4ccd8b 100644 --- a/data/events.xml +++ b/data/events.xml @@ -5,10 +5,6 @@ org.apollo.game.event.handler.impl.PrivacyOptionEventHandler - - org.apollo.game.event.impl.KeepAliveEvent - - org.apollo.game.event.impl.PlayerDesignEvent @@ -91,24 +87,4 @@ org.apollo.game.event.handler.impl.ItemVerificationHandler - - org.apollo.game.event.impl.SpamPacketEvent - - - - org.apollo.game.event.impl.MouseClickEvent - - - - org.apollo.game.event.impl.ArrowKeyEvent - - - - org.apollo.game.event.impl.FocusUpdateEvent - - - - org.apollo.game.event.impl.TakeTileItemEvent - - \ No newline at end of file diff --git a/src/org/apollo/game/event/handler/chain/EventHandlerChainGroup.java b/src/org/apollo/game/event/handler/chain/EventHandlerChainGroup.java index 90a734b7..5c5daa8a 100644 --- a/src/org/apollo/game/event/handler/chain/EventHandlerChainGroup.java +++ b/src/org/apollo/game/event/handler/chain/EventHandlerChainGroup.java @@ -3,6 +3,7 @@ package org.apollo.game.event.handler.chain; import java.util.Map; import org.apollo.game.event.Event; +import org.apollo.game.event.handler.EventHandler; /** * A group of {@link EventHandlerChain}s classified by the {@link Event} type. @@ -34,7 +35,11 @@ public final class EventHandlerChainGroup { */ @SuppressWarnings("unchecked") public EventHandlerChain getChain(Class clazz) { - return (EventHandlerChain) chains.get(clazz); + EventHandlerChain chain = (EventHandlerChain) chains.get(clazz); + if (chain == null) { + chains.put(clazz, chain = new EventHandlerChain(new EventHandler[0])); + } + return chain; } } \ No newline at end of file diff --git a/src/org/apollo/util/plugin/PluginContext.java b/src/org/apollo/util/plugin/PluginContext.java index 0ca0cc6a..aead3add 100644 --- a/src/org/apollo/util/plugin/PluginContext.java +++ b/src/org/apollo/util/plugin/PluginContext.java @@ -54,11 +54,9 @@ public final class PluginContext { */ public void addEventDecoder(int releaseNo, int opcode, EventDecoder decoder) { Release release = context.getRelease(); - if (release.getReleaseNumber() != releaseNo) { - return; + if (release.getReleaseNumber() == releaseNo) { + release.register(opcode, decoder); } - - release.register(opcode, decoder); } /** @@ -71,11 +69,9 @@ public final class PluginContext { */ public void addEventEncoder(int releaseNo, Class event, EventEncoder encoder) { Release release = context.getRelease(); - if (release.getReleaseNumber() != releaseNo) { - return; + if (release.getReleaseNumber() == releaseNo) { + release.register(event, encoder); } - - release.register(event, encoder); } /**