diff --git a/src/org/apollo/game/model/entity/Mob.java b/src/org/apollo/game/model/entity/Mob.java index 8bdf5f6f..26d847fa 100644 --- a/src/org/apollo/game/model/entity/Mob.java +++ b/src/org/apollo/game/model/entity/Mob.java @@ -427,7 +427,7 @@ public abstract class Mob extends Entity { * * @param position The position. */ - public final void setPosition(Position position) { + public void setPosition(Position position) { Position old = this.position; SectorRepository repository = World.getWorld().getSectorRepository(); Sector current = repository.fromPosition(old); diff --git a/src/org/apollo/game/model/entity/Player.java b/src/org/apollo/game/model/entity/Player.java index 578dfecd..d12c182e 100644 --- a/src/org/apollo/game/model/entity/Player.java +++ b/src/org/apollo/game/model/entity/Player.java @@ -21,6 +21,7 @@ import org.apollo.game.model.World; import org.apollo.game.model.area.Sector; import org.apollo.game.model.event.impl.LoginEvent; import org.apollo.game.model.event.impl.LogoutEvent; +import org.apollo.game.model.event.impl.PlayerPositionUpdateEvent; import org.apollo.game.model.inter.InterfaceConstants; import org.apollo.game.model.inter.InterfaceListener; import org.apollo.game.model.inter.InterfaceSet; @@ -717,6 +718,12 @@ public final class Player extends Mob { sendMessage(message, false); } + @Override + public void setPosition(Position position) { + super.setPosition(position); + World.getWorld().submit(new PlayerPositionUpdateEvent(this)); + } + /** * Sends a message to the player. * diff --git a/src/org/apollo/game/model/event/impl/PlayerPositionUpdateEvent.java b/src/org/apollo/game/model/event/impl/PlayerPositionUpdateEvent.java new file mode 100644 index 00000000..2681b00f --- /dev/null +++ b/src/org/apollo/game/model/event/impl/PlayerPositionUpdateEvent.java @@ -0,0 +1,22 @@ +package org.apollo.game.model.event.impl; + +import org.apollo.game.model.entity.Player; +import org.apollo.game.model.event.PlayerEvent; + +/** + * A {@link PlayerEvent} created when a Player's Position is being updated. + * + * @author Major + */ +public final class PlayerPositionUpdateEvent extends PlayerEvent { + + /** + * Creates the PlayerPositionUpdateEvent. + * + * @param player The {@link Player} whose Position is being updated. + */ + public PlayerPositionUpdateEvent(Player player) { + super(player); + } + +} \ No newline at end of file