mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 16:49:11 +00:00
Fix issue #142
Add unit test for MobRepository#remove(null) Add explicit null check Remove empty line, change useless exception message
This commit is contained in:
@@ -309,13 +309,12 @@ public final class World {
|
||||
* @param npc The npc.
|
||||
*/
|
||||
public void unregister(final Npc npc) {
|
||||
if (npcRepository.remove(npc)) {
|
||||
Region region = regions.fromPosition(npc.getPosition());
|
||||
Preconditions.checkNotNull(npc, "Npc may not be null.");
|
||||
|
||||
region.removeEntity(npc);
|
||||
} else {
|
||||
logger.warning("Could not find npc " + npc + " to unregister!");
|
||||
}
|
||||
Region region = regions.fromPosition(npc.getPosition());
|
||||
region.removeEntity(npc);
|
||||
|
||||
npcRepository.remove(npc);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -324,15 +323,14 @@ public final class World {
|
||||
* @param player The player.
|
||||
*/
|
||||
public void unregister(final Player player) {
|
||||
if (playerRepository.remove(player)) {
|
||||
players.remove(NameUtil.encodeBase37(player.getUsername()));
|
||||
logger.info("Unregistered player: " + player + " [count=" + playerRepository.size() + "]");
|
||||
Preconditions.checkNotNull(player, "Player may not be null.");
|
||||
players.remove(NameUtil.encodeBase37(player.getUsername()));
|
||||
|
||||
Region region = regions.fromPosition(player.getPosition());
|
||||
region.removeEntity(player);
|
||||
} else {
|
||||
logger.warning("Could not find player " + player + " to unregister!");
|
||||
}
|
||||
Region region = regions.fromPosition(player.getPosition());
|
||||
region.removeEntity(player);
|
||||
|
||||
playerRepository.remove(player);
|
||||
logger.info("Unregistered player: " + player + " [count=" + playerRepository.size() + "]");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.apollo.game.model.area.update.GroupableEntity;
|
||||
import org.apollo.game.model.area.update.UpdateOperation;
|
||||
import org.apollo.game.model.entity.Entity;
|
||||
import org.apollo.game.model.entity.EntityType;
|
||||
import org.apollo.game.model.entity.Mob;
|
||||
import org.apollo.game.model.entity.obj.DynamicGameObject;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
|
||||
@@ -175,30 +175,27 @@ public final class MobRepository<T extends Mob> implements Iterable<T> {
|
||||
* Removes a Mob from the repository.
|
||||
*
|
||||
* @param mob The Mob to remove.
|
||||
* @return {@code true} if the Mob was removed, {@code false} if not.
|
||||
*/
|
||||
public boolean remove(T mob) {
|
||||
Preconditions.checkNotNull(mob);
|
||||
return remove(mob.getIndex());
|
||||
public void remove(T mob) {
|
||||
Preconditions.checkNotNull(mob, "Mob may not be null.");
|
||||
remove(mob.getIndex());
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a Mob from the repository by the specified index.
|
||||
*
|
||||
* @param index The index of the Mob to remove.
|
||||
* @return {@code true} if the Mob at the specified index was removed otherwise {@code false}.
|
||||
*/
|
||||
public boolean remove(int index) {
|
||||
private void remove(int index) {
|
||||
Mob mob = get(index);
|
||||
|
||||
if (mob.getIndex() != index) {
|
||||
return false;
|
||||
throw new IllegalArgumentException("MobRepository index mismatch, cannot remove Mob.");
|
||||
}
|
||||
|
||||
mobs[index - 1] = null;
|
||||
mob.setIndex(-1);
|
||||
size--;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,6 +73,15 @@ public final class MobRepositoryTest {
|
||||
assertEquals(0, players.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests failing of {@link MobRepository#remove(Mob)}
|
||||
*/
|
||||
@Test(expected = NullPointerException.class)
|
||||
public void testRemoveNull() {
|
||||
MobRepository<Player> players = new MobRepository<>(CAPACITY);
|
||||
players.remove(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that a MobRepository maintains a fixed capacity.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user