mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 00:38:21 +00:00
Add support for events with ruby-only handlers.
This commit is contained in:
@@ -5,10 +5,6 @@
|
||||
<handler>org.apollo.game.event.handler.impl.PrivacyOptionEventHandler</handler>
|
||||
</chain>
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.KeepAliveEvent</type>
|
||||
<chain />
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.PlayerDesignEvent</type>
|
||||
<chain>
|
||||
@@ -91,24 +87,4 @@
|
||||
<handler>org.apollo.game.event.handler.impl.ItemVerificationHandler</handler>
|
||||
</chain>
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.SpamPacketEvent</type>
|
||||
<chain />
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.MouseClickEvent</type>
|
||||
<chain />
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.ArrowKeyEvent</type>
|
||||
<chain />
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.FocusUpdateEvent</type>
|
||||
<chain />
|
||||
</event>
|
||||
<event>
|
||||
<type>org.apollo.game.event.impl.TakeTileItemEvent</type>
|
||||
<chain />
|
||||
</event>
|
||||
</events>
|
||||
@@ -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 <E extends Event> EventHandlerChain<E> getChain(Class<E> clazz) {
|
||||
return (EventHandlerChain<E>) chains.get(clazz);
|
||||
EventHandlerChain<E> chain = (EventHandlerChain<E>) chains.get(clazz);
|
||||
if (chain == null) {
|
||||
chains.put(clazz, chain = new EventHandlerChain<E>(new EventHandler[0]));
|
||||
}
|
||||
return chain;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -54,11 +54,9 @@ public final class PluginContext {
|
||||
*/
|
||||
public <T extends Event> void addEventDecoder(int releaseNo, int opcode, EventDecoder<T> 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 <T extends Event> void addEventEncoder(int releaseNo, Class<T> event, EventEncoder<T> encoder) {
|
||||
Release release = context.getRelease();
|
||||
if (release.getReleaseNumber() != releaseNo) {
|
||||
return;
|
||||
if (release.getReleaseNumber() == releaseNo) {
|
||||
release.register(event, encoder);
|
||||
}
|
||||
|
||||
release.register(event, encoder);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user