From df36f9bb320735b0072f00de34cc4081b9819336 Mon Sep 17 00:00:00 2001 From: Rogiel Date: Mon, 16 May 2011 15:08:30 -0300 Subject: [PATCH] Refactored Filters Signed-off-by: Rogiel --- .../server/CharacterSelectionListPacket.java | 93 ++++++++++++------ .../java/com/l2jserver/model/world/Item.java | 32 ++++++- .../model/world/actor/ActorEvent.java | 2 +- .../model/world/actor/ActorListener.java | 2 +- .../model/world/capability/Listenable.java | 4 +- .../world/character/CharacterInventory.java | 23 ++++- .../world/character/event/CharacterEvent.java | 34 +++++++ .../character/event/CharacterListener.java | 40 ++++++++ .../event/CharacterLoggedInEvent.java | 96 +++++++++++++++++++ .../l2jserver/model/world/clan/ClanEvent.java | 2 +- .../model/world/clan/ClanListener.java | 2 +- .../model/world/event/SpawnEvent.java | 1 + .../model/world/item/ItemDropEvent.java | 2 +- .../l2jserver/model/world/item/ItemEvent.java | 2 +- .../model/world/item/ItemListener.java | 2 +- .../model/world/party/PartyEvent.java | 2 +- .../model/world/party/PartyListener.java | 2 +- .../world/player/{ => event}/PlayerEvent.java | 2 +- .../player/{ => event}/PlayerListener.java | 6 +- .../player/{ => event}/PlayerSpawnEvent.java | 2 +- .../{ => event}/PlayerTeleportEvent.java | 2 +- .../service/game/world/WorldService.java | 2 +- .../service/game/world/WorldServiceImpl.java | 6 +- .../game}/world/event/WorldEvent.java | 2 +- .../world/event/WorldEventDispatcher.java | 2 - .../world/event/WorldEventDispatcherImpl.java | 2 - .../game}/world/event/WorldListener.java | 2 +- .../game}/world/filter/AndFilter.java | 2 +- .../game/world/filter}/FilterIterator.java | 3 +- .../game}/world/filter/NotFilter.java | 2 +- .../game}/world/filter/OrFilter.java | 2 +- .../game}/world/filter/WorldFilters.java | 2 +- .../game}/world/filter/WorldObjectFilter.java | 2 +- .../game}/world/filter/impl/IDFilter.java | 4 +- .../world/filter/impl/InstanceFilter.java | 4 +- .../game}/world/filter/impl/RangeFilter.java | 4 +- .../world/WorldEventDispatcherImplTest.java | 6 +- .../service/world/WorldServiceImplTest.java | 2 +- 38 files changed, 322 insertions(+), 80 deletions(-) create mode 100644 src/main/java/com/l2jserver/model/world/character/event/CharacterEvent.java create mode 100644 src/main/java/com/l2jserver/model/world/character/event/CharacterListener.java create mode 100644 src/main/java/com/l2jserver/model/world/character/event/CharacterLoggedInEvent.java rename src/main/java/com/l2jserver/model/world/player/{ => event}/PlayerEvent.java (95%) rename src/main/java/com/l2jserver/model/world/player/{ => event}/PlayerListener.java (87%) rename src/main/java/com/l2jserver/model/world/player/{ => event}/PlayerSpawnEvent.java (97%) rename src/main/java/com/l2jserver/model/world/player/{ => event}/PlayerTeleportEvent.java (96%) rename src/main/java/com/l2jserver/{model => service/game}/world/event/WorldEvent.java (95%) rename src/main/java/com/l2jserver/{model => service/game}/world/event/WorldListener.java (96%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/AndFilter.java (96%) rename src/main/java/com/l2jserver/{model/world/iterator => service/game/world/filter}/FilterIterator.java (95%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/NotFilter.java (96%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/OrFilter.java (96%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/WorldFilters.java (97%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/WorldObjectFilter.java (95%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/impl/IDFilter.java (91%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/impl/InstanceFilter.java (91%) rename src/main/java/com/l2jserver/{model => service/game}/world/filter/impl/RangeFilter.java (94%) diff --git a/src/main/java/com/l2jserver/game/net/packet/server/CharacterSelectionListPacket.java b/src/main/java/com/l2jserver/game/net/packet/server/CharacterSelectionListPacket.java index 0eea5c647..39fa73624 100644 --- a/src/main/java/com/l2jserver/game/net/packet/server/CharacterSelectionListPacket.java +++ b/src/main/java/com/l2jserver/game/net/packet/server/CharacterSelectionListPacket.java @@ -16,14 +16,40 @@ */ package com.l2jserver.game.net.packet.server; +import static com.l2jserver.game.ProtocolVersion.FREYA; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.BELT; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.CHEST; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.CLOAK; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.DECORATION_1; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.DECORATION_2; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.DECORATION_3; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.DECORATION_4; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.DECORATION_5; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.FEET; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.GLOVES; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.HAIR1; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.HAIR2; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.HEAD; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.LEFT_BRACELET; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.LEFT_EAR; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.LEFT_FINGER; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.LEFT_HAND; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.LEGS; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.NECK; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.RIGHT_BRACELET; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.RIGHT_EAR; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.RIGHT_FINGER; +import static com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll.RIGHT_HAND; + import org.jboss.netty.buffer.ChannelBuffer; -import com.l2jserver.game.ProtocolVersion; import com.l2jserver.game.net.Lineage2Connection; import com.l2jserver.game.net.Lineage2Session; import com.l2jserver.game.net.packet.AbstractServerPacket; +import com.l2jserver.model.world.Item; import com.l2jserver.model.world.L2Character; import com.l2jserver.model.world.actor.ActorExperience; +import com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll; import com.l2jserver.util.BufferUtils; /** @@ -127,35 +153,31 @@ public class CharacterSelectionListPacket extends AbstractServerPacket { // buffer.writeInt(0x00); // unk 6 // buffer.writeInt(0x00); // unk 7 - for (int id = 0; id < 25; id++) { - buffer.writeInt(0x00); // paperdolls - } - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_REAR)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LEAR)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_NECK)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RFINGER)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LFINGER)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HEAD)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LHAND)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_CHEST)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LEGS)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_FEET)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_CLOAK)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO1)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO2)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO3)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO4)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO5)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO6)); - // buffer.writeInt(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_BELT)); + writePaperdollItemID(buffer, character, HAIR1); + writePaperdollItemID(buffer, character, RIGHT_EAR); + writePaperdollItemID(buffer, character, LEFT_EAR); + writePaperdollItemID(buffer, character, NECK); + writePaperdollItemID(buffer, character, RIGHT_FINGER); + writePaperdollItemID(buffer, character, LEFT_FINGER); + writePaperdollItemID(buffer, character, HEAD); + writePaperdollItemID(buffer, character, RIGHT_HAND); + writePaperdollItemID(buffer, character, LEFT_HAND); + writePaperdollItemID(buffer, character, GLOVES); + writePaperdollItemID(buffer, character, CHEST); + writePaperdollItemID(buffer, character, LEGS); + writePaperdollItemID(buffer, character, FEET); + writePaperdollItemID(buffer, character, CLOAK); + writePaperdollItemID(buffer, character, RIGHT_HAND); + writePaperdollItemID(buffer, character, HAIR1); + writePaperdollItemID(buffer, character, HAIR2); + writePaperdollItemID(buffer, character, RIGHT_BRACELET); + writePaperdollItemID(buffer, character, LEFT_BRACELET); + writePaperdollItemID(buffer, character, DECORATION_1); + writePaperdollItemID(buffer, character, DECORATION_2); + writePaperdollItemID(buffer, character, DECORATION_3); + writePaperdollItemID(buffer, character, DECORATION_4); + writePaperdollItemID(buffer, character, DECORATION_5); + writePaperdollItemID(buffer, character, BELT); // hair style // buffer.writeInt(character.getAppearance().getHairStyle().option); @@ -183,7 +205,7 @@ public class CharacterSelectionListPacket extends AbstractServerPacket { buffer.writeInt(0x00); // Freya by Vistall: - if (conn.supports(ProtocolVersion.FREYA)) { + if (conn.supports(FREYA)) { // npdid - 16024 Tame Tiny Baby Kookaburra buffer.writeInt(16024); // A9E89C buffer.writeInt(0); // level @@ -194,4 +216,13 @@ public class CharacterSelectionListPacket extends AbstractServerPacket { } } } + + private void writePaperdollItemID(ChannelBuffer buffer, + L2Character character, InventoryPaperdoll paperdoll) { + final Item item = character.getInventory().getItem(paperdoll); + int id = 0; + if (item != null) + id = item.getTemplateID().getID(); + buffer.writeInt(id); + } } diff --git a/src/main/java/com/l2jserver/model/world/Item.java b/src/main/java/com/l2jserver/model/world/Item.java index 065cf34c7..9c4542e7a 100644 --- a/src/main/java/com/l2jserver/model/world/Item.java +++ b/src/main/java/com/l2jserver/model/world/Item.java @@ -18,6 +18,7 @@ package com.l2jserver.model.world; import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.id.template.ItemTemplateID; +import com.l2jserver.model.template.ItemTemplate; import com.l2jserver.model.world.capability.Dropable; import com.l2jserver.model.world.capability.Listenable; import com.l2jserver.model.world.capability.Playable; @@ -50,7 +51,13 @@ import com.l2jserver.util.dimensional.Coordinate; */ public class Item extends AbstractObject implements Playable, Spawnable, Listenable, Dropable { + /** + * The {@link ItemTemplate} ID + */ private final ItemTemplateID templateID; + /** + * The {@link L2Character} ID owner of this object + */ private CharacterID ownerID; /** @@ -65,7 +72,10 @@ public class Item extends AbstractObject implements Playable, Spawnable, * Drop coordinate of this item */ private Coordinate coordinate; - + + /** + * Count of items + */ private int count = 1; public Item(ItemTemplateID templateID) { @@ -75,6 +85,8 @@ public class Item extends AbstractObject implements Playable, Spawnable, @Override public void drop(Coordinate position) { this.coordinate = position; + this.location = null; + this.paperdoll = null; } @Override @@ -84,8 +96,7 @@ public class Item extends AbstractObject implements Playable, Spawnable, @Override public boolean isSpawned() { - // TODO Auto-generated method stub - return false; + return (location != null); } @Override @@ -98,6 +109,21 @@ public class Item extends AbstractObject implements Playable, Spawnable, this.coordinate = coord; } + /** + * @return the count + */ + public int getCount() { + return count; + } + + /** + * @param count + * the count to set + */ + public void setCount(int count) { + this.count = count; + } + /** * @return the location */ diff --git a/src/main/java/com/l2jserver/model/world/actor/ActorEvent.java b/src/main/java/com/l2jserver/model/world/actor/ActorEvent.java index 4b7a2fad2..04f95e2c9 100644 --- a/src/main/java/com/l2jserver/model/world/actor/ActorEvent.java +++ b/src/main/java/com/l2jserver/model/world/actor/ActorEvent.java @@ -17,7 +17,7 @@ package com.l2jserver.model.world.actor; import com.l2jserver.model.world.capability.Actor; -import com.l2jserver.model.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldEvent; /** * Base event for {@link Actor} instances diff --git a/src/main/java/com/l2jserver/model/world/actor/ActorListener.java b/src/main/java/com/l2jserver/model/world/actor/ActorListener.java index 70c07abfb..dfa9355a2 100644 --- a/src/main/java/com/l2jserver/model/world/actor/ActorListener.java +++ b/src/main/java/com/l2jserver/model/world/actor/ActorListener.java @@ -17,7 +17,7 @@ package com.l2jserver.model.world.actor; import com.l2jserver.model.world.capability.Actor; -import com.l2jserver.model.world.event.WorldListener; +import com.l2jserver.service.game.world.event.WorldListener; /** * Base listener for {@link Actor} instances diff --git a/src/main/java/com/l2jserver/model/world/capability/Listenable.java b/src/main/java/com/l2jserver/model/world/capability/Listenable.java index abd18172b..f1e31e942 100644 --- a/src/main/java/com/l2jserver/model/world/capability/Listenable.java +++ b/src/main/java/com/l2jserver/model/world/capability/Listenable.java @@ -17,8 +17,8 @@ package com.l2jserver.model.world.capability; import com.l2jserver.model.world.AbstractObject; -import com.l2jserver.model.world.event.WorldEvent; -import com.l2jserver.model.world.event.WorldListener; +import com.l2jserver.service.game.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldListener; /** * Defines an {@link AbstractObject} that can attach {@link WorldListener} that diff --git a/src/main/java/com/l2jserver/model/world/character/CharacterInventory.java b/src/main/java/com/l2jserver/model/world/character/CharacterInventory.java index aa88a5975..7e46fc413 100644 --- a/src/main/java/com/l2jserver/model/world/character/CharacterInventory.java +++ b/src/main/java/com/l2jserver/model/world/character/CharacterInventory.java @@ -50,6 +50,21 @@ public class CharacterInventory implements Iterable { this.character = character; } + /** + * Get the item in the given paperdoll slot + * + * @param paperdoll + * the paperdoll slot + * @return the item in slot, null if emptys + */ + public Item getItem(InventoryPaperdoll paperdoll) { + for (final Item item : items) { + if (item.getPaperdoll() == paperdoll) + return item; + } + return null; + } + /** * This method will add new items to the inventory. This is normally called * from the DAO object. @@ -74,7 +89,7 @@ public class CharacterInventory implements Iterable { } /** - * Location of an item + * Location of an item in the player's inventory * * @author Rogiel */ @@ -99,7 +114,11 @@ public class CharacterInventory implements Iterable { * @author Rogiel */ public enum InventoryPaperdoll { - UNDERWEAR, HEAD, HAIR1, HAIR2, NECK, RIGHT_HAND, LEFT_HAND, RIGHT_EAR, LEFT_EAR, GLOVES, LEGS, LEFT_FEET, RIGHT_FEET, RIGHT_FINGER, LEFT_FINGER, LEFT_BRACELET, RIGHT_BRACELET, DECORATION_1, DECOREATION_2, DECORATION_3, DECORATION_4, DECORATION_5, DECORATION_6, CLOAK, BELT; + UNDERWEAR, HEAD, HAIR1, HAIR2, NECK, RIGHT_HAND, FEET, LEFT_HAND, RIGHT_EAR, LEFT_EAR, GLOVES, + + LEGS, LEFT_FEET, RIGHT_FEET, RIGHT_FINGER, LEFT_FINGER, CHEST, LEFT_BRACELET, RIGHT_BRACELET, + + DECORATION_1, DECORATION_2, DECORATION_3, DECORATION_4, DECORATION_5, DECORATION_6, CLOAK, BELT; } /** diff --git a/src/main/java/com/l2jserver/model/world/character/event/CharacterEvent.java b/src/main/java/com/l2jserver/model/world/character/event/CharacterEvent.java new file mode 100644 index 000000000..1accc75dd --- /dev/null +++ b/src/main/java/com/l2jserver/model/world/character/event/CharacterEvent.java @@ -0,0 +1,34 @@ +/* + * This file is part of l2jserver . + * + * l2jserver is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * l2jserver is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with l2jserver. If not, see . + */ +package com.l2jserver.model.world.character.event; + +import com.l2jserver.model.world.L2Character; +import com.l2jserver.model.world.player.event.PlayerEvent; + +/** + * Base event for character + * + * @author Rogiel + */ +public interface CharacterEvent extends PlayerEvent { + /** + * The character issue in this event + * + * @return the character + */ + L2Character getCharacter(); +} diff --git a/src/main/java/com/l2jserver/model/world/character/event/CharacterListener.java b/src/main/java/com/l2jserver/model/world/character/event/CharacterListener.java new file mode 100644 index 000000000..d7f8e6646 --- /dev/null +++ b/src/main/java/com/l2jserver/model/world/character/event/CharacterListener.java @@ -0,0 +1,40 @@ +/* + * This file is part of l2jserver . + * + * l2jserver is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * l2jserver is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with l2jserver. If not, see . + */ +package com.l2jserver.model.world.character.event; + +import com.l2jserver.model.world.player.event.PlayerEvent; +import com.l2jserver.model.world.player.event.PlayerListener; +import com.l2jserver.service.game.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldListener; + +/** + * @author Rogiel + * + */ +public abstract class CharacterListener extends PlayerListener { + @Override + protected boolean dispatch(PlayerEvent e) { + if (!(e instanceof CharacterEvent)) + return false; + return dispatch((CharacterEvent) e); + } + + /** + * @see WorldListener#dispatch(WorldEvent) + */ + protected abstract boolean dispatch(CharacterEvent e); +} diff --git a/src/main/java/com/l2jserver/model/world/character/event/CharacterLoggedInEvent.java b/src/main/java/com/l2jserver/model/world/character/event/CharacterLoggedInEvent.java new file mode 100644 index 000000000..7b1fe97a9 --- /dev/null +++ b/src/main/java/com/l2jserver/model/world/character/event/CharacterLoggedInEvent.java @@ -0,0 +1,96 @@ +/* + * This file is part of l2jserver . + * + * l2jserver is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * l2jserver is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with l2jserver. If not, see . + */ +package com.l2jserver.model.world.character.event; + +import java.util.Date; + +import com.l2jserver.model.world.L2Character; +import com.l2jserver.model.world.Player; +import com.l2jserver.model.world.WorldObject; +import com.l2jserver.model.world.capability.Actor; +import com.l2jserver.model.world.capability.Listenable; + +/** + * Event triggered once a character logs-in. + * + * @author Rogiel + */ +public class CharacterLoggedInEvent implements CharacterEvent { + /** + * The character that is logging in + */ + private final L2Character character; + /** + * The time that this character has logged in + */ + private final Date date; + + /** + * Creates a new instance + * + * @param character + * the character + * @param date + * the login date + */ + public CharacterLoggedInEvent(L2Character character, Date date) { + this.character = character; + this.date = date; + } + + /** + * Creates a new instance. Login date is set to now. + * + * @param character + * the character + */ + public CharacterLoggedInEvent(L2Character character) { + this(character, new Date()); + } + + /** + * @return the date + */ + public Date getDate() { + return date; + } + + @Override + public Player getPlayer() { + return character; + } + + @Override + public Actor getActor() { + return character; + } + + @Override + public WorldObject getObject() { + return character; + } + + @Override + public L2Character getCharacter() { + return character; + } + + @Override + public Listenable[] getDispatchableObjects() { + return new Listenable[] { character }; + } +} diff --git a/src/main/java/com/l2jserver/model/world/clan/ClanEvent.java b/src/main/java/com/l2jserver/model/world/clan/ClanEvent.java index eed301e34..0528e37d4 100644 --- a/src/main/java/com/l2jserver/model/world/clan/ClanEvent.java +++ b/src/main/java/com/l2jserver/model/world/clan/ClanEvent.java @@ -17,7 +17,7 @@ package com.l2jserver.model.world.clan; import com.l2jserver.model.world.Clan; -import com.l2jserver.model.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldEvent; /** * Base event for {@link Clan} objects diff --git a/src/main/java/com/l2jserver/model/world/clan/ClanListener.java b/src/main/java/com/l2jserver/model/world/clan/ClanListener.java index 328164b72..97bb02113 100644 --- a/src/main/java/com/l2jserver/model/world/clan/ClanListener.java +++ b/src/main/java/com/l2jserver/model/world/clan/ClanListener.java @@ -16,7 +16,7 @@ */ package com.l2jserver.model.world.clan; -import com.l2jserver.model.world.event.WorldListener; +import com.l2jserver.service.game.world.event.WorldListener; /** * Base listener for {@link ClanEvent} diff --git a/src/main/java/com/l2jserver/model/world/event/SpawnEvent.java b/src/main/java/com/l2jserver/model/world/event/SpawnEvent.java index 74a1511a5..82cd61177 100644 --- a/src/main/java/com/l2jserver/model/world/event/SpawnEvent.java +++ b/src/main/java/com/l2jserver/model/world/event/SpawnEvent.java @@ -17,6 +17,7 @@ package com.l2jserver.model.world.event; import com.l2jserver.model.world.capability.Spawnable; +import com.l2jserver.service.game.world.event.WorldEvent; import com.l2jserver.util.dimensional.Coordinate; /** diff --git a/src/main/java/com/l2jserver/model/world/item/ItemDropEvent.java b/src/main/java/com/l2jserver/model/world/item/ItemDropEvent.java index f2d6e7dfa..2f0a376d7 100644 --- a/src/main/java/com/l2jserver/model/world/item/ItemDropEvent.java +++ b/src/main/java/com/l2jserver/model/world/item/ItemDropEvent.java @@ -21,7 +21,7 @@ import com.l2jserver.model.world.Player; import com.l2jserver.model.world.WorldObject; import com.l2jserver.model.world.capability.Actor; import com.l2jserver.model.world.capability.Listenable; -import com.l2jserver.model.world.player.PlayerEvent; +import com.l2jserver.model.world.player.event.PlayerEvent; /** * Event dispatched once an {@link Item} has been dropped on the ground. diff --git a/src/main/java/com/l2jserver/model/world/item/ItemEvent.java b/src/main/java/com/l2jserver/model/world/item/ItemEvent.java index cd737891d..d290c2b70 100644 --- a/src/main/java/com/l2jserver/model/world/item/ItemEvent.java +++ b/src/main/java/com/l2jserver/model/world/item/ItemEvent.java @@ -17,7 +17,7 @@ package com.l2jserver.model.world.item; import com.l2jserver.model.world.Item; -import com.l2jserver.model.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldEvent; /** * Base event for items diff --git a/src/main/java/com/l2jserver/model/world/item/ItemListener.java b/src/main/java/com/l2jserver/model/world/item/ItemListener.java index 157d474ca..55311c064 100644 --- a/src/main/java/com/l2jserver/model/world/item/ItemListener.java +++ b/src/main/java/com/l2jserver/model/world/item/ItemListener.java @@ -16,7 +16,7 @@ */ package com.l2jserver.model.world.item; -import com.l2jserver.model.world.event.WorldListener; +import com.l2jserver.service.game.world.event.WorldListener; /** * Listener for {@link ItemEvent} diff --git a/src/main/java/com/l2jserver/model/world/party/PartyEvent.java b/src/main/java/com/l2jserver/model/world/party/PartyEvent.java index 302bd2112..20e1592d9 100644 --- a/src/main/java/com/l2jserver/model/world/party/PartyEvent.java +++ b/src/main/java/com/l2jserver/model/world/party/PartyEvent.java @@ -18,7 +18,7 @@ package com.l2jserver.model.world.party; import com.l2jserver.model.world.Clan; import com.l2jserver.model.world.Party; -import com.l2jserver.model.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldEvent; /** * Base event for {@link Party} objects diff --git a/src/main/java/com/l2jserver/model/world/party/PartyListener.java b/src/main/java/com/l2jserver/model/world/party/PartyListener.java index 86a4f24dc..d1268229c 100644 --- a/src/main/java/com/l2jserver/model/world/party/PartyListener.java +++ b/src/main/java/com/l2jserver/model/world/party/PartyListener.java @@ -16,7 +16,7 @@ */ package com.l2jserver.model.world.party; -import com.l2jserver.model.world.event.WorldListener; +import com.l2jserver.service.game.world.event.WorldListener; /** * Listener for {@link PartyEvent} diff --git a/src/main/java/com/l2jserver/model/world/player/PlayerEvent.java b/src/main/java/com/l2jserver/model/world/player/event/PlayerEvent.java similarity index 95% rename from src/main/java/com/l2jserver/model/world/player/PlayerEvent.java rename to src/main/java/com/l2jserver/model/world/player/event/PlayerEvent.java index 27972c61a..dc186056d 100644 --- a/src/main/java/com/l2jserver/model/world/player/PlayerEvent.java +++ b/src/main/java/com/l2jserver/model/world/player/event/PlayerEvent.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.player; +package com.l2jserver.model.world.player.event; import com.l2jserver.model.world.Player; import com.l2jserver.model.world.actor.ActorEvent; diff --git a/src/main/java/com/l2jserver/model/world/player/PlayerListener.java b/src/main/java/com/l2jserver/model/world/player/event/PlayerListener.java similarity index 87% rename from src/main/java/com/l2jserver/model/world/player/PlayerListener.java rename to src/main/java/com/l2jserver/model/world/player/event/PlayerListener.java index 0ea0d29d1..219941c67 100644 --- a/src/main/java/com/l2jserver/model/world/player/PlayerListener.java +++ b/src/main/java/com/l2jserver/model/world/player/event/PlayerListener.java @@ -14,12 +14,12 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.player; +package com.l2jserver.model.world.player.event; import com.l2jserver.model.world.actor.ActorEvent; import com.l2jserver.model.world.actor.ActorListener; -import com.l2jserver.model.world.event.WorldEvent; -import com.l2jserver.model.world.event.WorldListener; +import com.l2jserver.service.game.world.event.WorldEvent; +import com.l2jserver.service.game.world.event.WorldListener; /** * Listener for {@link PlayerEvent} diff --git a/src/main/java/com/l2jserver/model/world/player/PlayerSpawnEvent.java b/src/main/java/com/l2jserver/model/world/player/event/PlayerSpawnEvent.java similarity index 97% rename from src/main/java/com/l2jserver/model/world/player/PlayerSpawnEvent.java rename to src/main/java/com/l2jserver/model/world/player/event/PlayerSpawnEvent.java index aa3ec2f6b..fc56409f7 100644 --- a/src/main/java/com/l2jserver/model/world/player/PlayerSpawnEvent.java +++ b/src/main/java/com/l2jserver/model/world/player/event/PlayerSpawnEvent.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.player; +package com.l2jserver.model.world.player.event; import com.l2jserver.model.world.Player; import com.l2jserver.model.world.capability.Actor; diff --git a/src/main/java/com/l2jserver/model/world/player/PlayerTeleportEvent.java b/src/main/java/com/l2jserver/model/world/player/event/PlayerTeleportEvent.java similarity index 96% rename from src/main/java/com/l2jserver/model/world/player/PlayerTeleportEvent.java rename to src/main/java/com/l2jserver/model/world/player/event/PlayerTeleportEvent.java index cd8532fc3..b84e75807 100644 --- a/src/main/java/com/l2jserver/model/world/player/PlayerTeleportEvent.java +++ b/src/main/java/com/l2jserver/model/world/player/event/PlayerTeleportEvent.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.player; +package com.l2jserver.model.world.player.event; import com.l2jserver.model.world.Player; import com.l2jserver.util.dimensional.Coordinate; diff --git a/src/main/java/com/l2jserver/service/game/world/WorldService.java b/src/main/java/com/l2jserver/service/game/world/WorldService.java index b1c3fe197..e046ade11 100644 --- a/src/main/java/com/l2jserver/service/game/world/WorldService.java +++ b/src/main/java/com/l2jserver/service/game/world/WorldService.java @@ -20,9 +20,9 @@ import java.util.Iterator; import java.util.List; import com.l2jserver.model.world.WorldObject; -import com.l2jserver.model.world.filter.WorldObjectFilter; import com.l2jserver.service.Service; import com.l2jserver.service.game.world.event.WorldEventDispatcher; +import com.l2jserver.service.game.world.filter.WorldObjectFilter; /** * Service responsible for managing {@link WorldObject} and dispatch events. diff --git a/src/main/java/com/l2jserver/service/game/world/WorldServiceImpl.java b/src/main/java/com/l2jserver/service/game/world/WorldServiceImpl.java index 6b109588e..0d8c68d82 100644 --- a/src/main/java/com/l2jserver/service/game/world/WorldServiceImpl.java +++ b/src/main/java/com/l2jserver/service/game/world/WorldServiceImpl.java @@ -25,13 +25,13 @@ import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.l2jserver.model.world.WorldObject; -import com.l2jserver.model.world.filter.WorldObjectFilter; -import com.l2jserver.model.world.filter.impl.InstanceFilter; -import com.l2jserver.model.world.iterator.FilterIterator; import com.l2jserver.service.AbstractService; import com.l2jserver.service.ServiceStartException; import com.l2jserver.service.ServiceStopException; import com.l2jserver.service.game.world.event.WorldEventDispatcher; +import com.l2jserver.service.game.world.filter.FilterIterator; +import com.l2jserver.service.game.world.filter.WorldObjectFilter; +import com.l2jserver.service.game.world.filter.impl.InstanceFilter; import com.l2jserver.util.factory.CollectionFactory; /** diff --git a/src/main/java/com/l2jserver/model/world/event/WorldEvent.java b/src/main/java/com/l2jserver/service/game/world/event/WorldEvent.java similarity index 95% rename from src/main/java/com/l2jserver/model/world/event/WorldEvent.java rename to src/main/java/com/l2jserver/service/game/world/event/WorldEvent.java index b580e6dff..41bf1ca5d 100644 --- a/src/main/java/com/l2jserver/model/world/event/WorldEvent.java +++ b/src/main/java/com/l2jserver/service/game/world/event/WorldEvent.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.event; +package com.l2jserver.service.game.world.event; import com.l2jserver.model.world.WorldObject; import com.l2jserver.model.world.capability.Listenable; diff --git a/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcher.java b/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcher.java index fb9c299cb..beca5d041 100644 --- a/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcher.java +++ b/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcher.java @@ -18,8 +18,6 @@ package com.l2jserver.service.game.world.event; import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.capability.Listenable; -import com.l2jserver.model.world.event.WorldEvent; -import com.l2jserver.model.world.event.WorldListener; /** * This event dispatcher notify listeners that an certain event occured in their diff --git a/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcherImpl.java b/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcherImpl.java index 89439cc29..6042cbe2c 100644 --- a/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcherImpl.java +++ b/src/main/java/com/l2jserver/service/game/world/event/WorldEventDispatcherImpl.java @@ -25,8 +25,6 @@ import org.slf4j.LoggerFactory; import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.capability.Listenable; -import com.l2jserver.model.world.event.WorldEvent; -import com.l2jserver.model.world.event.WorldListener; import com.l2jserver.util.factory.CollectionFactory; /** diff --git a/src/main/java/com/l2jserver/model/world/event/WorldListener.java b/src/main/java/com/l2jserver/service/game/world/event/WorldListener.java similarity index 96% rename from src/main/java/com/l2jserver/model/world/event/WorldListener.java rename to src/main/java/com/l2jserver/service/game/world/event/WorldListener.java index 3c447c743..9760d06bf 100644 --- a/src/main/java/com/l2jserver/model/world/event/WorldListener.java +++ b/src/main/java/com/l2jserver/service/game/world/event/WorldListener.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.event; +package com.l2jserver.service.game.world.event; /** * This is the most abstract listener for the listening engine. diff --git a/src/main/java/com/l2jserver/model/world/filter/AndFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/AndFilter.java similarity index 96% rename from src/main/java/com/l2jserver/model/world/filter/AndFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/AndFilter.java index 7dba47ef2..10715b50c 100644 --- a/src/main/java/com/l2jserver/model/world/filter/AndFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/AndFilter.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter; +package com.l2jserver.service.game.world.filter; import com.l2jserver.model.world.WorldObject; diff --git a/src/main/java/com/l2jserver/model/world/iterator/FilterIterator.java b/src/main/java/com/l2jserver/service/game/world/filter/FilterIterator.java similarity index 95% rename from src/main/java/com/l2jserver/model/world/iterator/FilterIterator.java rename to src/main/java/com/l2jserver/service/game/world/filter/FilterIterator.java index 7541fc981..5cbc80d01 100644 --- a/src/main/java/com/l2jserver/model/world/iterator/FilterIterator.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/FilterIterator.java @@ -14,12 +14,11 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.iterator; +package com.l2jserver.service.game.world.filter; import java.util.Iterator; import com.l2jserver.model.world.WorldObject; -import com.l2jserver.model.world.filter.WorldObjectFilter; /** * The {@link FilterIterator} takes an {@link WorldObject} and a diff --git a/src/main/java/com/l2jserver/model/world/filter/NotFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/NotFilter.java similarity index 96% rename from src/main/java/com/l2jserver/model/world/filter/NotFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/NotFilter.java index d9f0186e5..c7abca756 100644 --- a/src/main/java/com/l2jserver/model/world/filter/NotFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/NotFilter.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter; +package com.l2jserver.service.game.world.filter; import com.l2jserver.model.world.WorldObject; diff --git a/src/main/java/com/l2jserver/model/world/filter/OrFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/OrFilter.java similarity index 96% rename from src/main/java/com/l2jserver/model/world/filter/OrFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/OrFilter.java index 1ee01478c..dbe2a6dd4 100644 --- a/src/main/java/com/l2jserver/model/world/filter/OrFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/OrFilter.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter; +package com.l2jserver.service.game.world.filter; import com.l2jserver.model.world.WorldObject; diff --git a/src/main/java/com/l2jserver/model/world/filter/WorldFilters.java b/src/main/java/com/l2jserver/service/game/world/filter/WorldFilters.java similarity index 97% rename from src/main/java/com/l2jserver/model/world/filter/WorldFilters.java rename to src/main/java/com/l2jserver/service/game/world/filter/WorldFilters.java index ed9f5e347..5ff12b804 100644 --- a/src/main/java/com/l2jserver/model/world/filter/WorldFilters.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/WorldFilters.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter; +package com.l2jserver.service.game.world.filter; import com.l2jserver.model.world.WorldObject; diff --git a/src/main/java/com/l2jserver/model/world/filter/WorldObjectFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/WorldObjectFilter.java similarity index 95% rename from src/main/java/com/l2jserver/model/world/filter/WorldObjectFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/WorldObjectFilter.java index 6a7421779..45bfe92ec 100644 --- a/src/main/java/com/l2jserver/model/world/filter/WorldObjectFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/WorldObjectFilter.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter; +package com.l2jserver.service.game.world.filter; import com.l2jserver.model.world.WorldObject; diff --git a/src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/impl/IDFilter.java similarity index 91% rename from src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/impl/IDFilter.java index f76ffa144..c5a805ff5 100644 --- a/src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/impl/IDFilter.java @@ -14,11 +14,11 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter.impl; +package com.l2jserver.service.game.world.filter.impl; import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.capability.Positionable; -import com.l2jserver.model.world.filter.WorldObjectFilter; +import com.l2jserver.service.game.world.filter.WorldObjectFilter; /** * Filter objects based on its ID. diff --git a/src/main/java/com/l2jserver/model/world/filter/impl/InstanceFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/impl/InstanceFilter.java similarity index 91% rename from src/main/java/com/l2jserver/model/world/filter/impl/InstanceFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/impl/InstanceFilter.java index 237e03214..6376601d2 100644 --- a/src/main/java/com/l2jserver/model/world/filter/impl/InstanceFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/impl/InstanceFilter.java @@ -14,10 +14,10 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter.impl; +package com.l2jserver.service.game.world.filter.impl; import com.l2jserver.model.world.WorldObject; -import com.l2jserver.model.world.filter.WorldObjectFilter; +import com.l2jserver.service.game.world.filter.WorldObjectFilter; /** * Filter object based on their types diff --git a/src/main/java/com/l2jserver/model/world/filter/impl/RangeFilter.java b/src/main/java/com/l2jserver/service/game/world/filter/impl/RangeFilter.java similarity index 94% rename from src/main/java/com/l2jserver/model/world/filter/impl/RangeFilter.java rename to src/main/java/com/l2jserver/service/game/world/filter/impl/RangeFilter.java index f79e42081..2d0353c28 100644 --- a/src/main/java/com/l2jserver/model/world/filter/impl/RangeFilter.java +++ b/src/main/java/com/l2jserver/service/game/world/filter/impl/RangeFilter.java @@ -14,10 +14,10 @@ * You should have received a copy of the GNU General Public License * along with l2jserver. If not, see . */ -package com.l2jserver.model.world.filter.impl; +package com.l2jserver.service.game.world.filter.impl; import com.l2jserver.model.world.capability.Positionable; -import com.l2jserver.model.world.filter.WorldObjectFilter; +import com.l2jserver.service.game.world.filter.WorldObjectFilter; import com.l2jserver.util.dimensional.Coordinate; /** diff --git a/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java b/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java index b94627be5..6f152828d 100644 --- a/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java +++ b/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java @@ -36,9 +36,9 @@ import com.l2jserver.model.world.L2Character; import com.l2jserver.model.world.item.ItemDropEvent; import com.l2jserver.model.world.item.ItemEvent; import com.l2jserver.model.world.item.ItemListener; -import com.l2jserver.model.world.player.PlayerEvent; -import com.l2jserver.model.world.player.PlayerListener; -import com.l2jserver.model.world.player.PlayerSpawnEvent; +import com.l2jserver.model.world.player.event.PlayerEvent; +import com.l2jserver.model.world.player.event.PlayerListener; +import com.l2jserver.model.world.player.event.PlayerSpawnEvent; import com.l2jserver.service.ServiceModule; import com.l2jserver.service.ServiceStartException; import com.l2jserver.service.game.world.WorldService; diff --git a/src/test/java/com/l2jserver/service/world/WorldServiceImplTest.java b/src/test/java/com/l2jserver/service/world/WorldServiceImplTest.java index fcbcb0203..471ea4969 100644 --- a/src/test/java/com/l2jserver/service/world/WorldServiceImplTest.java +++ b/src/test/java/com/l2jserver/service/world/WorldServiceImplTest.java @@ -28,12 +28,12 @@ import com.google.inject.Scopes; import com.l2jserver.model.world.Item; import com.l2jserver.model.world.L2Character; import com.l2jserver.model.world.WorldObject; -import com.l2jserver.model.world.filter.impl.InstanceFilter; import com.l2jserver.service.ServiceStartException; import com.l2jserver.service.game.world.WorldService; import com.l2jserver.service.game.world.WorldServiceImpl; import com.l2jserver.service.game.world.event.WorldEventDispatcher; import com.l2jserver.service.game.world.event.WorldEventDispatcherImpl; +import com.l2jserver.service.game.world.filter.impl.InstanceFilter; public class WorldServiceImplTest { private WorldService world;