mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 08:39:11 +00:00
Change PlayerPositionUpdateEvent to MobPositionUpdateEvent.
This commit is contained in:
@@ -16,6 +16,7 @@ import org.apollo.game.model.area.SectorRepository;
|
||||
import org.apollo.game.model.def.NpcDefinition;
|
||||
import org.apollo.game.model.entity.attr.Attribute;
|
||||
import org.apollo.game.model.entity.attr.AttributeMap;
|
||||
import org.apollo.game.model.event.impl.MobPositionUpdateEvent;
|
||||
import org.apollo.game.model.inv.Inventory;
|
||||
import org.apollo.game.model.inv.Inventory.StackMode;
|
||||
import org.apollo.game.model.inv.InventoryConstants;
|
||||
@@ -402,7 +403,7 @@ public abstract class Mob extends Entity {
|
||||
this.index = index;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns this mobs interacting index.
|
||||
*
|
||||
@@ -427,7 +428,10 @@ public abstract class Mob extends Entity {
|
||||
*
|
||||
* @param position The position.
|
||||
*/
|
||||
public void setPosition(Position position) {
|
||||
public final void setPosition(Position position) {
|
||||
World.getWorld().submit(new MobPositionUpdateEvent(this, position));
|
||||
// Intentionally ignore the Event result - accidentally terminating this method would break the entire server.
|
||||
|
||||
Position old = this.position;
|
||||
SectorRepository repository = World.getWorld().getSectorRepository();
|
||||
Sector current = repository.fromPosition(old);
|
||||
|
||||
@@ -21,7 +21,6 @@ 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;
|
||||
@@ -718,12 +717,6 @@ 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.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package org.apollo.game.model.event.impl;
|
||||
|
||||
import org.apollo.game.model.Position;
|
||||
import org.apollo.game.model.entity.Mob;
|
||||
import org.apollo.game.model.event.Event;
|
||||
|
||||
/**
|
||||
* An {@link Event} created when a Mob's Position is being updated.
|
||||
* <p>
|
||||
* This Event intentionally ignores the result of execution - it should not be possible for a plugin to prevent this
|
||||
* Event from happening, only to listen for it.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class MobPositionUpdateEvent extends Event {
|
||||
|
||||
/**
|
||||
* The Mob whose position is being updated.
|
||||
*/
|
||||
private final Mob mob;
|
||||
|
||||
/**
|
||||
* The next Position of the Mob.
|
||||
*/
|
||||
private final Position next;
|
||||
|
||||
/**
|
||||
* Creates the MobPositionUpdateEvent.
|
||||
*
|
||||
* @param mob The {@link Mob} whose Position is being updated.
|
||||
* @param next The next {@link Position} of the Mob.
|
||||
*/
|
||||
public MobPositionUpdateEvent(Mob mob, Position next) {
|
||||
this.mob = mob;
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link Mob} being moved.
|
||||
*
|
||||
* @return The Mob.
|
||||
*/
|
||||
public Mob getMob() {
|
||||
return mob;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link Position} this {@link Mob} is being moved to.
|
||||
*
|
||||
* @return The Position.
|
||||
*/
|
||||
public Position getNext() {
|
||||
return next;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user