mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-06 16:51:37 +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>
|
<handler>org.apollo.game.event.handler.impl.PrivacyOptionEventHandler</handler>
|
||||||
</chain>
|
</chain>
|
||||||
</event>
|
</event>
|
||||||
<event>
|
|
||||||
<type>org.apollo.game.event.impl.KeepAliveEvent</type>
|
|
||||||
<chain />
|
|
||||||
</event>
|
|
||||||
<event>
|
<event>
|
||||||
<type>org.apollo.game.event.impl.PlayerDesignEvent</type>
|
<type>org.apollo.game.event.impl.PlayerDesignEvent</type>
|
||||||
<chain>
|
<chain>
|
||||||
@@ -91,24 +87,4 @@
|
|||||||
<handler>org.apollo.game.event.handler.impl.ItemVerificationHandler</handler>
|
<handler>org.apollo.game.event.handler.impl.ItemVerificationHandler</handler>
|
||||||
</chain>
|
</chain>
|
||||||
</event>
|
</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>
|
</events>
|
||||||
@@ -3,6 +3,7 @@ package org.apollo.game.event.handler.chain;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apollo.game.event.Event;
|
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.
|
* A group of {@link EventHandlerChain}s classified by the {@link Event} type.
|
||||||
@@ -34,7 +35,11 @@ public final class EventHandlerChainGroup {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <E extends Event> EventHandlerChain<E> getChain(Class<E> clazz) {
|
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) {
|
public <T extends Event> void addEventDecoder(int releaseNo, int opcode, EventDecoder<T> decoder) {
|
||||||
Release release = context.getRelease();
|
Release release = context.getRelease();
|
||||||
if (release.getReleaseNumber() != releaseNo) {
|
if (release.getReleaseNumber() == releaseNo) {
|
||||||
return;
|
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) {
|
public <T extends Event> void addEventEncoder(int releaseNo, Class<T> event, EventEncoder<T> encoder) {
|
||||||
Release release = context.getRelease();
|
Release release = context.getRelease();
|
||||||
if (release.getReleaseNumber() != releaseNo) {
|
if (release.getReleaseNumber() == releaseNo) {
|
||||||
return;
|
release.register(event, encoder);
|
||||||
}
|
}
|
||||||
|
|
||||||
release.register(event, encoder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user