mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-05 08:40:08 +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.def.NpcDefinition;
|
||||||
import org.apollo.game.model.entity.attr.Attribute;
|
import org.apollo.game.model.entity.attr.Attribute;
|
||||||
import org.apollo.game.model.entity.attr.AttributeMap;
|
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;
|
||||||
import org.apollo.game.model.inv.Inventory.StackMode;
|
import org.apollo.game.model.inv.Inventory.StackMode;
|
||||||
import org.apollo.game.model.inv.InventoryConstants;
|
import org.apollo.game.model.inv.InventoryConstants;
|
||||||
@@ -402,7 +403,7 @@ public abstract class Mob extends Entity {
|
|||||||
this.index = index;
|
this.index = index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns this mobs interacting index.
|
* Returns this mobs interacting index.
|
||||||
*
|
*
|
||||||
@@ -427,7 +428,10 @@ public abstract class Mob extends Entity {
|
|||||||
*
|
*
|
||||||
* @param position The position.
|
* @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;
|
Position old = this.position;
|
||||||
SectorRepository repository = World.getWorld().getSectorRepository();
|
SectorRepository repository = World.getWorld().getSectorRepository();
|
||||||
Sector current = repository.fromPosition(old);
|
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.area.Sector;
|
||||||
import org.apollo.game.model.event.impl.LoginEvent;
|
import org.apollo.game.model.event.impl.LoginEvent;
|
||||||
import org.apollo.game.model.event.impl.LogoutEvent;
|
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.InterfaceConstants;
|
||||||
import org.apollo.game.model.inter.InterfaceListener;
|
import org.apollo.game.model.inter.InterfaceListener;
|
||||||
import org.apollo.game.model.inter.InterfaceSet;
|
import org.apollo.game.model.inter.InterfaceSet;
|
||||||
@@ -718,12 +717,6 @@ public final class Player extends Mob {
|
|||||||
sendMessage(message, false);
|
sendMessage(message, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setPosition(Position position) {
|
|
||||||
super.setPosition(position);
|
|
||||||
World.getWorld().submit(new PlayerPositionUpdateEvent(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a message to the player.
|
* 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