diff --git a/data/messages.xml b/data/messages.xml
index ddf444dd..c80a0d30 100644
--- a/data/messages.xml
+++ b/data/messages.xml
@@ -96,6 +96,12 @@
org.apollo.game.message.handler.impl.NpcActionVerificationHandler
+
+ org.apollo.game.message.impl.PlayerActionMessage
+
+ org.apollo.game.message.handler.impl.PlayerActionVerificationHandler
+
+
org.apollo.game.message.impl.ObjectActionMessage
diff --git a/src/org/apollo/game/message/handler/impl/NpcActionVerificationHandler.java b/src/org/apollo/game/message/handler/impl/NpcActionVerificationHandler.java
index 565befc1..3b5287fa 100644
--- a/src/org/apollo/game/message/handler/impl/NpcActionVerificationHandler.java
+++ b/src/org/apollo/game/message/handler/impl/NpcActionVerificationHandler.java
@@ -4,6 +4,7 @@ import org.apollo.game.message.handler.MessageHandler;
import org.apollo.game.message.handler.MessageHandlerContext;
import org.apollo.game.message.impl.NpcActionMessage;
import org.apollo.game.model.World;
+import org.apollo.game.model.def.NpcDefinition;
import org.apollo.game.model.entity.Npc;
import org.apollo.game.model.entity.Player;
import org.apollo.util.MobRepository;
@@ -16,9 +17,13 @@ import org.apollo.util.MobRepository;
*/
public final class NpcActionVerificationHandler extends MessageHandler {
+ /**
+ * The world's npc repository.
+ */
+ private final MobRepository repository = World.getWorld().getNpcRepository();
+
@Override
public void handle(MessageHandlerContext ctx, Player player, NpcActionMessage message) {
- MobRepository repository = World.getWorld().getNpcRepository();
int index = message.getIndex();
if (index < 0 || index >= repository.capacity()) {
@@ -28,12 +33,14 @@ public final class NpcActionVerificationHandler extends MessageHandler= npc.getDefinition().getInteractions().length) {
+ NpcDefinition definition = npc.getDefinition();
+ if (message.getOption() >= definition.getInteractions().length) {
ctx.breakHandlerChain();
return;
}
diff --git a/src/org/apollo/game/message/handler/impl/ObjectActionVerificationHandler.java b/src/org/apollo/game/message/handler/impl/ObjectActionVerificationHandler.java
index 7809efa2..38846a5b 100644
--- a/src/org/apollo/game/message/handler/impl/ObjectActionVerificationHandler.java
+++ b/src/org/apollo/game/message/handler/impl/ObjectActionVerificationHandler.java
@@ -8,6 +8,7 @@ import org.apollo.game.message.impl.ObjectActionMessage;
import org.apollo.game.model.Position;
import org.apollo.game.model.World;
import org.apollo.game.model.area.Sector;
+import org.apollo.game.model.area.SectorRepository;
import org.apollo.game.model.def.ObjectDefinition;
import org.apollo.game.model.entity.Entity.EntityType;
import org.apollo.game.model.entity.GameObject;
@@ -20,6 +21,11 @@ import org.apollo.game.model.entity.Player;
*/
public final class ObjectActionVerificationHandler extends MessageHandler {
+ /**
+ * The world's sector repository.
+ */
+ private final SectorRepository repository = World.getWorld().getSectorRepository();
+
@Override
public void handle(MessageHandlerContext ctx, Player player, ObjectActionMessage message) {
int id = message.getId();
@@ -29,7 +35,7 @@ public final class ObjectActionVerificationHandler extends MessageHandler