diff --git a/src/org/rev317/min/api/events/MessageEvent.java b/src/org/rev317/min/api/events/MessageEvent.java new file mode 100644 index 0000000..4aebc5b --- /dev/null +++ b/src/org/rev317/min/api/events/MessageEvent.java @@ -0,0 +1,36 @@ +package org.rev317.min.api.events; + +/** + * + * @author Everel, Matt + * + */ +public final class MessageEvent { + private int type; + private String name; + private String message; + + public static final int TYPE_GENERIC = 0; + public static final int TYPE_PLAYER = 2; + public static final int TYPE_TRADE = 4; + public static final int TYPE_DUEL = 8; + + public MessageEvent(final int type, String name, String msg) { + this.type = type; + this.name = name; + this.message = msg; + } + + public final String getMessage() { + return message; + } + + public final int getType() { + return type; + } + + public final String getSender() { + return name; + } + +} \ No newline at end of file diff --git a/src/org/rev317/min/api/events/listeners/MessageListener.java b/src/org/rev317/min/api/events/listeners/MessageListener.java new file mode 100644 index 0000000..01c9be9 --- /dev/null +++ b/src/org/rev317/min/api/events/listeners/MessageListener.java @@ -0,0 +1,12 @@ +package org.rev317.min.api.events.listeners; + +import org.rev317.min.api.events.MessageEvent; + + +public interface MessageListener { + + public void messageReceived(MessageEvent event); + +} + + diff --git a/src/org/rev317/min/callback/MessageCallback.java b/src/org/rev317/min/callback/MessageCallback.java new file mode 100644 index 0000000..1da04d6 --- /dev/null +++ b/src/org/rev317/min/callback/MessageCallback.java @@ -0,0 +1,15 @@ +package org.rev317.min.callback; + +import org.rev317.min.api.events.MessageEvent; + +import org.rev317.min.script.ScriptEngine; + + +public class MessageCallback { + + public static final void messageListenerHook(int type, String name, String message) { + final MessageEvent messageEvent = new MessageEvent(type, name, message); + ScriptEngine.getInstance().dispatch(messageEvent); + } + +} diff --git a/src/org/rev317/min/script/ScriptEngine.java b/src/org/rev317/min/script/ScriptEngine.java index cfa5343..c6d2151 100644 --- a/src/org/rev317/min/script/ScriptEngine.java +++ b/src/org/rev317/min/script/ScriptEngine.java @@ -10,6 +10,8 @@ import java.util.HashMap; import org.parabot.core.Context; import org.parabot.environment.api.interfaces.Paintable; import org.parabot.environment.scripts.Script; +import org.rev317.min.api.events.MessageEvent; +import org.rev317.min.api.events.listeners.MessageListener; /** * @@ -20,14 +22,14 @@ public class ScriptEngine { private static HashMap instances = new HashMap(); private ArrayList mouseListeners; private ArrayList mouseMotionListeners; - //private ArrayList messageListeners; + private ArrayList messageListeners; private Script script = null; private ScriptEngine() { this.mouseListeners = new ArrayList(); this.mouseMotionListeners = new ArrayList(); - //this.messageListeners = new ArrayList(); + this.messageListeners = new ArrayList(); instances.put(Context.getInstance(), this); } @@ -63,7 +65,7 @@ public class ScriptEngine { mouseMotionListeners.clear(); } - /*public void addMessageListener(MessageListener messageListener) { + public void addMessageListener(MessageListener messageListener) { messageListeners.add(messageListener); } @@ -73,7 +75,7 @@ public class ScriptEngine { public void clearMessageListeners() { messageListeners.clear(); - }*/ + } public void setScript(final Script script) { this.script = script; @@ -99,9 +101,9 @@ public class ScriptEngine { if(script instanceof MouseMotionListener) { addMouseMotionListener((MouseMotionListener)script); } - /*if(script instanceof MessageListener) { + if(script instanceof MessageListener) { addMessageListener((MessageListener)script); - }*/ + } if(script instanceof Paintable) { Context.getInstance().addPaintable((Paintable)script); } @@ -145,11 +147,11 @@ public class ScriptEngine { } } - /*public void dispatch(MessageEvent event) { + public void dispatch(MessageEvent event) { for(final MessageListener messageListener : messageListeners) { messageListener.messageReceived(event); } - }*/ + } }