From 81d2babedefa4fa32f1e33f9eb416fec420f15a3 Mon Sep 17 00:00:00 2001 From: rogiel Date: Wed, 4 May 2011 14:22:42 -0300 Subject: [PATCH] Change-Id: I0000000000000000000000000000000000000000 Change-Id: Idb54de2399013c159bda588be1ce065b8314af60 Change-Id: I8b913da4fe5139078b935b99e8e1aaa091480a75 --- .../armor/AbstractNoGradeArmorTemplate.java | 10 --------- .../template/item/AdenaItemTemplate.java | 22 ++++++++++++++----- .../template/item/TestPotionTemplate.java | 9 +++++--- .../armor/AbstractGradeAArmorTemplate.java | 6 ++--- .../armor/AbstractNoGradeArmorTemplate.java | 10 +++++++++ .../{ => item}/armor/Dummy2ArmorTemplate.java | 9 +++++--- .../{ => item}/armor/DummyArmorTemplate.java | 9 +++++--- .../{ => item}/weapon/TestWeaponTemplate.java | 2 +- .../template/skill/TestSkillTemplate.java | 9 +++++--- .../com/l2jserver/db/dao/CharacterDAO.java | 2 +- src/dao/com/l2jserver/db/dao/ClanDAO.java | 2 +- src/dao/com/l2jserver/db/dao/ItemDAO.java | 2 +- src/dao/com/l2jserver/db/dao/PetDAO.java | 2 +- .../db/dao/mysql5/MySQL5CharacterDAO.java | 4 ++-- .../db/dao/mysql5/MySQL5ItemDAO.java | 6 ++--- .../net/packet/client/AuthLoginPacket.java | 2 +- .../com/l2jserver/model/id/TemplateID.java | 7 +++++- .../l2jserver/model/id/factory/IDFactory.java | 17 +------------- .../model/id/factory/IDFactoryModule.java | 17 ++++++++++---- .../model/id/factory/ObjectIDFactory.java | 6 ----- .../model/id/{ => object}/CharacterID.java | 3 ++- .../model/id/{ => object}/ClanID.java | 3 ++- .../model/id/{ => object}/ItemID.java | 3 ++- .../model/id/{ => object}/PetID.java | 3 ++- .../allocator/BitSetIDAllocator.java | 2 +- .../{ => object}/allocator/IDAllocator.java | 2 +- .../allocator/IDAllocatorException.java | 2 +- .../factory/CharacterIDFactory.java | 7 +++--- .../{ => object}/factory/ClanIDFactory.java | 7 +++--- .../{ => object}/factory/ItemIDFactory.java | 7 +++--- .../id/object/factory/ObjectIDFactory.java | 21 ++++++++++++++++++ .../id/{ => object}/factory/PetIDFactory.java | 7 +++--- .../model/id/template/ItemTemplateID.java | 22 +++++++++++++++++++ .../model/id/template/SkillTemplateID.java | 22 +++++++++++++++++++ .../factory/ItemTemplateIDFactory.java | 7 ++++++ .../factory/SkillTemplateIDFactory.java | 7 ++++++ .../template/factory/TemplateIDFactory.java | 8 +++++++ .../model/template/AbstractTemplate.java | 6 ++--- .../model/template/ArmorTemplate.java | 4 ++-- .../model/template/ConsumableTemplate.java | 4 ++-- .../model/template/ItemTemplate.java | 9 ++++++-- .../model/template/PotionTemplate.java | 4 ++-- .../model/template/SkillTemplate.java | 9 ++++++-- .../l2jserver/model/template/Template.java | 2 +- .../model/template/WeaponTemplate.java | 4 ++-- .../model/template/capability/Castable.java | 2 +- .../model/template/capability/Stackable.java | 13 +++++++++++ .../java/com/l2jserver/model/world/Clan.java | 4 ++-- .../java/com/l2jserver/model/world/Item.java | 2 +- .../l2jserver/model/world/L2Character.java | 6 ++--- .../java/com/l2jserver/model/world/Party.java | 4 ++-- .../java/com/l2jserver/model/world/Pet.java | 2 +- .../world/character/CharacterFriendList.java | 2 +- .../model/world/clan/ClanMembers.java | 2 +- .../game/template/StaticTemplateService.java | 5 +++-- .../game/template/TemplateService.java | 6 +++-- .../id/allocator/BitSetIDAllocatorTest.java | 4 ++++ .../model/id/factory/IDFactoryTest.java | 3 ++- .../template/StaticTemplateServiceTest.java | 13 +++++++---- .../world/WorldEventDispatcherImplTest.java | 4 ++-- 60 files changed, 274 insertions(+), 126 deletions(-) delete mode 100644 data/script/template/script/template/armor/AbstractNoGradeArmorTemplate.java rename data/script/template/script/template/{ => item}/armor/AbstractGradeAArmorTemplate.java (85%) create mode 100644 data/script/template/script/template/item/armor/AbstractNoGradeArmorTemplate.java rename data/script/template/script/template/{ => item}/armor/Dummy2ArmorTemplate.java (79%) rename data/script/template/script/template/{ => item}/armor/DummyArmorTemplate.java (74%) rename data/script/template/script/template/{ => item}/weapon/TestWeaponTemplate.java (95%) delete mode 100644 src/main/java/com/l2jserver/model/id/factory/ObjectIDFactory.java rename src/main/java/com/l2jserver/model/id/{ => object}/CharacterID.java (87%) rename src/main/java/com/l2jserver/model/id/{ => object}/ClanID.java (83%) rename src/main/java/com/l2jserver/model/id/{ => object}/ItemID.java (85%) rename src/main/java/com/l2jserver/model/id/{ => object}/PetID.java (83%) rename src/main/java/com/l2jserver/model/id/{ => object}/allocator/BitSetIDAllocator.java (97%) rename src/main/java/com/l2jserver/model/id/{ => object}/allocator/IDAllocator.java (95%) rename src/main/java/com/l2jserver/model/id/{ => object}/allocator/IDAllocatorException.java (89%) rename src/main/java/com/l2jserver/model/id/{ => object}/factory/CharacterIDFactory.java (86%) rename src/main/java/com/l2jserver/model/id/{ => object}/factory/ClanIDFactory.java (85%) rename src/main/java/com/l2jserver/model/id/{ => object}/factory/ItemIDFactory.java (85%) create mode 100644 src/main/java/com/l2jserver/model/id/object/factory/ObjectIDFactory.java rename src/main/java/com/l2jserver/model/id/{ => object}/factory/PetIDFactory.java (85%) create mode 100644 src/main/java/com/l2jserver/model/id/template/ItemTemplateID.java create mode 100644 src/main/java/com/l2jserver/model/id/template/SkillTemplateID.java create mode 100644 src/main/java/com/l2jserver/model/id/template/factory/ItemTemplateIDFactory.java create mode 100644 src/main/java/com/l2jserver/model/id/template/factory/SkillTemplateIDFactory.java create mode 100644 src/main/java/com/l2jserver/model/id/template/factory/TemplateIDFactory.java create mode 100644 src/main/java/com/l2jserver/model/template/capability/Stackable.java diff --git a/data/script/template/script/template/armor/AbstractNoGradeArmorTemplate.java b/data/script/template/script/template/armor/AbstractNoGradeArmorTemplate.java deleted file mode 100644 index ac48fe752..000000000 --- a/data/script/template/script/template/armor/AbstractNoGradeArmorTemplate.java +++ /dev/null @@ -1,10 +0,0 @@ -package script.template.armor; - -import com.l2jserver.model.id.TemplateID; -import com.l2jserver.model.template.ArmorTemplate; - -public abstract class AbstractNoGradeArmorTemplate extends ArmorTemplate { - public AbstractNoGradeArmorTemplate(TemplateID id) { - super(id); - } -} diff --git a/data/script/template/script/template/item/AdenaItemTemplate.java b/data/script/template/script/template/item/AdenaItemTemplate.java index bf8307682..5b693da86 100644 --- a/data/script/template/script/template/item/AdenaItemTemplate.java +++ b/data/script/template/script/template/item/AdenaItemTemplate.java @@ -1,12 +1,24 @@ package script.template.item; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.factory.ItemTemplateIDFactory; import com.l2jserver.model.template.ItemTemplate; +import com.l2jserver.model.template.capability.Stackable; +import com.l2jserver.model.world.Item; -public class AdenaItemTemplate extends ItemTemplate { - public static final TemplateID ID = new TemplateID(57); +public class AdenaItemTemplate extends ItemTemplate implements Stackable { + public static final int ID = 57; - public AdenaItemTemplate() { - super(ID); + public AdenaItemTemplate(ItemTemplateIDFactory factory) { + super(factory.createID(ID)); + } + + @Override + public void stack(Item... object) { + final Item item1 = object[0]; + if (object.length >= 2) { + for (int i = 1; i < object.length; i++) { + // TODO set item amount + } + } } } diff --git a/data/script/template/script/template/item/TestPotionTemplate.java b/data/script/template/script/template/item/TestPotionTemplate.java index 37cf853c2..8730d2abc 100644 --- a/data/script/template/script/template/item/TestPotionTemplate.java +++ b/data/script/template/script/template/item/TestPotionTemplate.java @@ -1,16 +1,19 @@ package script.template.item; +import com.l2jserver.model.id.template.factory.ItemTemplateIDFactory; import com.l2jserver.model.template.PotionTemplate; import com.l2jserver.model.world.capability.Attackable; import com.l2jserver.model.world.capability.Attacker; public class TestPotionTemplate extends PotionTemplate { - public TestPotionTemplate() { - super(null); + public static final int ID = 15; + + public TestPotionTemplate(ItemTemplateIDFactory factory) { + super(factory.createID(ID)); } @Override public void consume(Attacker source, Attackable target) { - //TODO consume item + // TODO Auto-generated method stub } } diff --git a/data/script/template/script/template/armor/AbstractGradeAArmorTemplate.java b/data/script/template/script/template/item/armor/AbstractGradeAArmorTemplate.java similarity index 85% rename from data/script/template/script/template/armor/AbstractGradeAArmorTemplate.java rename to data/script/template/script/template/item/armor/AbstractGradeAArmorTemplate.java index e7c41c24d..2f1b8f111 100644 --- a/data/script/template/script/template/armor/AbstractGradeAArmorTemplate.java +++ b/data/script/template/script/template/item/armor/AbstractGradeAArmorTemplate.java @@ -1,6 +1,6 @@ -package script.template.armor; +package script.template.item.armor; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.ItemTemplateID; import com.l2jserver.model.template.ArmorTemplate; import com.l2jserver.model.template.capability.Enchantable; import com.l2jserver.model.template.capability.Penalty; @@ -10,7 +10,7 @@ import com.l2jserver.model.world.capability.Levelable; public abstract class AbstractGradeAArmorTemplate extends ArmorTemplate implements Enchantable, Penalty { - public AbstractGradeAArmorTemplate(TemplateID id) { + public AbstractGradeAArmorTemplate(ItemTemplateID id) { super(id); } diff --git a/data/script/template/script/template/item/armor/AbstractNoGradeArmorTemplate.java b/data/script/template/script/template/item/armor/AbstractNoGradeArmorTemplate.java new file mode 100644 index 000000000..a0039d55e --- /dev/null +++ b/data/script/template/script/template/item/armor/AbstractNoGradeArmorTemplate.java @@ -0,0 +1,10 @@ +package script.template.item.armor; + +import com.l2jserver.model.id.template.ItemTemplateID; +import com.l2jserver.model.template.ArmorTemplate; + +public abstract class AbstractNoGradeArmorTemplate extends ArmorTemplate { + public AbstractNoGradeArmorTemplate(ItemTemplateID id) { + super(id); + } +} diff --git a/data/script/template/script/template/armor/Dummy2ArmorTemplate.java b/data/script/template/script/template/item/armor/Dummy2ArmorTemplate.java similarity index 79% rename from data/script/template/script/template/armor/Dummy2ArmorTemplate.java rename to data/script/template/script/template/item/armor/Dummy2ArmorTemplate.java index 551cda815..b7e6e69ed 100644 --- a/data/script/template/script/template/armor/Dummy2ArmorTemplate.java +++ b/data/script/template/script/template/item/armor/Dummy2ArmorTemplate.java @@ -1,17 +1,20 @@ -package script.template.armor; +package script.template.item.armor; +import com.l2jserver.model.id.template.factory.ItemTemplateIDFactory; import com.l2jserver.model.world.capability.Attackable; import com.l2jserver.model.world.capability.Attacker; import com.l2jserver.model.world.capability.Damagable; import com.l2jserver.model.world.capability.Enchantable; public class Dummy2ArmorTemplate extends AbstractGradeAArmorTemplate { + public static final int ID = 10; + private static final int REDUCED_DAMAGE_PHYSICAL = 10; private static final int REDUCED_DAMAGE_MAGICAL = 10; private static final int MAX_ENCHANT = 10; - public Dummy2ArmorTemplate() { - super(null); + public Dummy2ArmorTemplate(ItemTemplateIDFactory factory) { + super(factory.createID(ID)); } @Override diff --git a/data/script/template/script/template/armor/DummyArmorTemplate.java b/data/script/template/script/template/item/armor/DummyArmorTemplate.java similarity index 74% rename from data/script/template/script/template/armor/DummyArmorTemplate.java rename to data/script/template/script/template/item/armor/DummyArmorTemplate.java index 54ccf22ab..6d450ab74 100644 --- a/data/script/template/script/template/armor/DummyArmorTemplate.java +++ b/data/script/template/script/template/item/armor/DummyArmorTemplate.java @@ -1,15 +1,18 @@ -package script.template.armor; +package script.template.item.armor; +import com.l2jserver.model.id.template.factory.ItemTemplateIDFactory; import com.l2jserver.model.world.capability.Attackable; import com.l2jserver.model.world.capability.Attacker; import com.l2jserver.model.world.capability.Damagable; public class DummyArmorTemplate extends AbstractNoGradeArmorTemplate { + public static final int ID = 20; + private static final int REDUCED_DAMAGE_PHYSICAL = 10; private static final int REDUCED_DAMAGE_MAGICAL = 10; - public DummyArmorTemplate() { - super(null); + public DummyArmorTemplate(ItemTemplateIDFactory factory) { + super(factory.createID(ID)); } @Override diff --git a/data/script/template/script/template/weapon/TestWeaponTemplate.java b/data/script/template/script/template/item/weapon/TestWeaponTemplate.java similarity index 95% rename from data/script/template/script/template/weapon/TestWeaponTemplate.java rename to data/script/template/script/template/item/weapon/TestWeaponTemplate.java index 00c1aea1f..a70979090 100644 --- a/data/script/template/script/template/weapon/TestWeaponTemplate.java +++ b/data/script/template/script/template/item/weapon/TestWeaponTemplate.java @@ -1,4 +1,4 @@ -package script.template.weapon; +package script.template.item.weapon; import com.l2jserver.model.template.WeaponTemplate; import com.l2jserver.model.world.capability.Attackable; diff --git a/data/script/template/script/template/skill/TestSkillTemplate.java b/data/script/template/script/template/skill/TestSkillTemplate.java index 09f4e6bc7..d4fdbe076 100644 --- a/data/script/template/script/template/skill/TestSkillTemplate.java +++ b/data/script/template/script/template/skill/TestSkillTemplate.java @@ -1,16 +1,19 @@ package script.template.skill; +import com.l2jserver.model.id.template.factory.SkillTemplateIDFactory; import com.l2jserver.model.template.SkillTemplate; import com.l2jserver.model.world.capability.Castable; import com.l2jserver.model.world.capability.Caster; public class TestSkillTemplate extends SkillTemplate { - public TestSkillTemplate() { - super(null); + public static final int ID = 10; + + public TestSkillTemplate(SkillTemplateIDFactory factory) { + super(factory.createID(ID)); } @Override - public void cast(Caster caster, Castable target) { + public void cast(Caster caster, Castable... targets) { // TODO do casting } } diff --git a/src/dao/com/l2jserver/db/dao/CharacterDAO.java b/src/dao/com/l2jserver/db/dao/CharacterDAO.java index 8c35ec0a7..eb95e5e5d 100644 --- a/src/dao/com/l2jserver/db/dao/CharacterDAO.java +++ b/src/dao/com/l2jserver/db/dao/CharacterDAO.java @@ -2,8 +2,8 @@ package com.l2jserver.db.dao; import java.util.List; -import com.l2jserver.model.id.CharacterID; import com.l2jserver.model.id.ID; +import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.world.L2Character; import com.l2jserver.service.cache.Cacheable; import com.l2jserver.service.cache.IgnoreCaching; diff --git a/src/dao/com/l2jserver/db/dao/ClanDAO.java b/src/dao/com/l2jserver/db/dao/ClanDAO.java index 90a40872b..67b9c8d11 100644 --- a/src/dao/com/l2jserver/db/dao/ClanDAO.java +++ b/src/dao/com/l2jserver/db/dao/ClanDAO.java @@ -2,8 +2,8 @@ package com.l2jserver.db.dao; import java.util.List; -import com.l2jserver.model.id.ClanID; import com.l2jserver.model.id.ID; +import com.l2jserver.model.id.object.ClanID; import com.l2jserver.model.world.Clan; import com.l2jserver.service.cache.Cacheable; import com.l2jserver.service.cache.IgnoreCaching; diff --git a/src/dao/com/l2jserver/db/dao/ItemDAO.java b/src/dao/com/l2jserver/db/dao/ItemDAO.java index da9b5bd0c..735931fbe 100644 --- a/src/dao/com/l2jserver/db/dao/ItemDAO.java +++ b/src/dao/com/l2jserver/db/dao/ItemDAO.java @@ -3,7 +3,7 @@ package com.l2jserver.db.dao; import java.util.List; import com.l2jserver.model.id.ID; -import com.l2jserver.model.id.ItemID; +import com.l2jserver.model.id.object.ItemID; import com.l2jserver.model.world.Item; import com.l2jserver.model.world.L2Character; import com.l2jserver.service.cache.Cacheable; diff --git a/src/dao/com/l2jserver/db/dao/PetDAO.java b/src/dao/com/l2jserver/db/dao/PetDAO.java index ab7f0c019..cf1a9f5b3 100644 --- a/src/dao/com/l2jserver/db/dao/PetDAO.java +++ b/src/dao/com/l2jserver/db/dao/PetDAO.java @@ -3,7 +3,7 @@ package com.l2jserver.db.dao; import java.util.List; import com.l2jserver.model.id.ID; -import com.l2jserver.model.id.PetID; +import com.l2jserver.model.id.object.PetID; import com.l2jserver.model.world.Pet; import com.l2jserver.service.cache.Cacheable; import com.l2jserver.service.cache.IgnoreCaching; diff --git a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterDAO.java b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterDAO.java index dc123a810..1d741e858 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterDAO.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterDAO.java @@ -7,8 +7,8 @@ import java.util.List; import com.google.inject.Inject; import com.l2jserver.db.dao.CharacterDAO; -import com.l2jserver.model.id.CharacterID; -import com.l2jserver.model.id.factory.CharacterIDFactory; +import com.l2jserver.model.id.object.CharacterID; +import com.l2jserver.model.id.object.factory.CharacterIDFactory; import com.l2jserver.model.world.L2Character; import com.l2jserver.service.database.DatabaseService; import com.l2jserver.service.database.MySQLDatabaseService.Mapper; diff --git a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5ItemDAO.java b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5ItemDAO.java index ddc1aed1f..3dc8a1b2a 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5ItemDAO.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5ItemDAO.java @@ -7,9 +7,9 @@ import java.util.List; import com.google.inject.Inject; import com.l2jserver.db.dao.ItemDAO; -import com.l2jserver.model.id.ItemID; -import com.l2jserver.model.id.factory.CharacterIDFactory; -import com.l2jserver.model.id.factory.ItemIDFactory; +import com.l2jserver.model.id.object.ItemID; +import com.l2jserver.model.id.object.factory.CharacterIDFactory; +import com.l2jserver.model.id.object.factory.ItemIDFactory; import com.l2jserver.model.world.Item; import com.l2jserver.model.world.L2Character; import com.l2jserver.model.world.character.CharacterInventory; diff --git a/src/main/java/com/l2jserver/game/net/packet/client/AuthLoginPacket.java b/src/main/java/com/l2jserver/game/net/packet/client/AuthLoginPacket.java index 6d588ccc1..31d92257e 100644 --- a/src/main/java/com/l2jserver/game/net/packet/client/AuthLoginPacket.java +++ b/src/main/java/com/l2jserver/game/net/packet/client/AuthLoginPacket.java @@ -6,7 +6,7 @@ import com.google.inject.Inject; import com.l2jserver.game.net.Lineage2Connection; import com.l2jserver.game.net.packet.AbstractClientPacket; import com.l2jserver.game.net.packet.server.CharSelectionInfoPacket; -import com.l2jserver.model.id.factory.CharacterIDFactory; +import com.l2jserver.model.id.object.factory.CharacterIDFactory; import com.l2jserver.model.world.L2Character; import com.l2jserver.service.game.world.WorldService; import com.l2jserver.util.BufferUtil; diff --git a/src/main/java/com/l2jserver/model/id/TemplateID.java b/src/main/java/com/l2jserver/model/id/TemplateID.java index 01a878989..d8aa47d6b 100644 --- a/src/main/java/com/l2jserver/model/id/TemplateID.java +++ b/src/main/java/com/l2jserver/model/id/TemplateID.java @@ -1,5 +1,8 @@ package com.l2jserver.model.id; +import com.l2jserver.model.template.Template; + + /** * Templates IDs, different from {@link ObjectID}s, can be repeated and are * defined in the template class. @@ -7,8 +10,10 @@ package com.l2jserver.model.id; * @author Rogiel * */ -public final class TemplateID extends ID { +public abstract class TemplateID extends ID { public TemplateID(int id) { super(id); } + + public abstract T getTemplate(); } diff --git a/src/main/java/com/l2jserver/model/id/factory/IDFactory.java b/src/main/java/com/l2jserver/model/id/factory/IDFactory.java index f39dc24de..108cfecca 100644 --- a/src/main/java/com/l2jserver/model/id/factory/IDFactory.java +++ b/src/main/java/com/l2jserver/model/id/factory/IDFactory.java @@ -9,26 +9,11 @@ import com.l2jserver.model.id.ID; * @author Rogiel */ public interface IDFactory { - /** - * Generated a new ID - * - * @return the new ID - */ - T createID(); - /** * Creates the ID object for an EXISTING ID. * * @param id * @return */ - T createID(int id); - - /** - * Destroy this ID. Releases this value to be used once again. - * - * @param id - * the id to be destroyed. - */ - void destroy(T id); + T createID(int id); } diff --git a/src/main/java/com/l2jserver/model/id/factory/IDFactoryModule.java b/src/main/java/com/l2jserver/model/id/factory/IDFactoryModule.java index 7cdb922dc..c37f2f241 100644 --- a/src/main/java/com/l2jserver/model/id/factory/IDFactoryModule.java +++ b/src/main/java/com/l2jserver/model/id/factory/IDFactoryModule.java @@ -3,10 +3,14 @@ package com.l2jserver.model.id.factory; import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.assistedinject.FactoryModuleBuilder; -import com.l2jserver.model.id.allocator.BitSetIDAllocator; -import com.l2jserver.model.id.allocator.IDAllocator; -import com.l2jserver.model.id.factory.CharacterIDFactory.CharacterIDGuiceFactory; -import com.l2jserver.model.id.factory.ItemIDFactory.ItemIDGuiceFactory; +import com.l2jserver.model.id.object.allocator.BitSetIDAllocator; +import com.l2jserver.model.id.object.allocator.IDAllocator; +import com.l2jserver.model.id.object.factory.CharacterIDFactory; +import com.l2jserver.model.id.object.factory.CharacterIDFactory.CharacterIDGuiceFactory; +import com.l2jserver.model.id.object.factory.ItemIDFactory; +import com.l2jserver.model.id.object.factory.ItemIDFactory.ItemIDGuiceFactory; +import com.l2jserver.model.id.template.factory.ItemTemplateIDFactory; +import com.l2jserver.model.id.template.factory.SkillTemplateIDFactory; public class IDFactoryModule extends AbstractModule { @Override @@ -14,6 +18,7 @@ public class IDFactoryModule extends AbstractModule { bind(IDAllocator.class).to(BitSetIDAllocator.class) .in(Scopes.SINGLETON); + // OBJECT IDS bind(CharacterIDFactory.class).in(Scopes.SINGLETON); install(new FactoryModuleBuilder().build(CharacterIDGuiceFactory.class)); @@ -25,5 +30,9 @@ public class IDFactoryModule extends AbstractModule { // // bind(PetIDFactory.class).in(Scopes.SINGLETON); // install(new FactoryModuleBuilder().build(PetIDGuiceFactory.class)); + + // TEMPLATE IDS + install(new FactoryModuleBuilder().build(ItemTemplateIDFactory.class)); + install(new FactoryModuleBuilder().build(SkillTemplateIDFactory.class)); } } diff --git a/src/main/java/com/l2jserver/model/id/factory/ObjectIDFactory.java b/src/main/java/com/l2jserver/model/id/factory/ObjectIDFactory.java deleted file mode 100644 index bcac1248e..000000000 --- a/src/main/java/com/l2jserver/model/id/factory/ObjectIDFactory.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.l2jserver.model.id.factory; - -import com.l2jserver.model.id.ObjectID; - -public interface ObjectIDFactory> extends IDFactory { -} diff --git a/src/main/java/com/l2jserver/model/id/CharacterID.java b/src/main/java/com/l2jserver/model/id/object/CharacterID.java similarity index 87% rename from src/main/java/com/l2jserver/model/id/CharacterID.java rename to src/main/java/com/l2jserver/model/id/object/CharacterID.java index 4264f2f8f..b75ed8981 100644 --- a/src/main/java/com/l2jserver/model/id/CharacterID.java +++ b/src/main/java/com/l2jserver/model/id/object/CharacterID.java @@ -1,8 +1,9 @@ -package com.l2jserver.model.id; +package com.l2jserver.model.id.object; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; import com.l2jserver.db.dao.CharacterDAO; +import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.L2Character; public final class CharacterID extends ObjectID { diff --git a/src/main/java/com/l2jserver/model/id/ClanID.java b/src/main/java/com/l2jserver/model/id/object/ClanID.java similarity index 83% rename from src/main/java/com/l2jserver/model/id/ClanID.java rename to src/main/java/com/l2jserver/model/id/object/ClanID.java index f164a179d..8b0ed28f9 100644 --- a/src/main/java/com/l2jserver/model/id/ClanID.java +++ b/src/main/java/com/l2jserver/model/id/object/ClanID.java @@ -1,7 +1,8 @@ -package com.l2jserver.model.id; +package com.l2jserver.model.id.object; import com.google.inject.Inject; import com.l2jserver.db.dao.ClanDAO; +import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.Clan; public final class ClanID extends ObjectID { diff --git a/src/main/java/com/l2jserver/model/id/ItemID.java b/src/main/java/com/l2jserver/model/id/object/ItemID.java similarity index 85% rename from src/main/java/com/l2jserver/model/id/ItemID.java rename to src/main/java/com/l2jserver/model/id/object/ItemID.java index cf31e579f..13ac353cd 100644 --- a/src/main/java/com/l2jserver/model/id/ItemID.java +++ b/src/main/java/com/l2jserver/model/id/object/ItemID.java @@ -1,8 +1,9 @@ -package com.l2jserver.model.id; +package com.l2jserver.model.id.object; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; import com.l2jserver.db.dao.ItemDAO; +import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.Item; public final class ItemID extends ObjectID { diff --git a/src/main/java/com/l2jserver/model/id/PetID.java b/src/main/java/com/l2jserver/model/id/object/PetID.java similarity index 83% rename from src/main/java/com/l2jserver/model/id/PetID.java rename to src/main/java/com/l2jserver/model/id/object/PetID.java index 0d04e3ba1..3a7bf5467 100644 --- a/src/main/java/com/l2jserver/model/id/PetID.java +++ b/src/main/java/com/l2jserver/model/id/object/PetID.java @@ -1,7 +1,8 @@ -package com.l2jserver.model.id; +package com.l2jserver.model.id.object; import com.google.inject.Inject; import com.l2jserver.db.dao.PetDAO; +import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.Pet; public final class PetID extends ObjectID { diff --git a/src/main/java/com/l2jserver/model/id/allocator/BitSetIDAllocator.java b/src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java similarity index 97% rename from src/main/java/com/l2jserver/model/id/allocator/BitSetIDAllocator.java rename to src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java index 3647f2d41..b30d9d1bb 100644 --- a/src/main/java/com/l2jserver/model/id/allocator/BitSetIDAllocator.java +++ b/src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java @@ -1,4 +1,4 @@ -package com.l2jserver.model.id.allocator; +package com.l2jserver.model.id.object.allocator; import java.util.BitSet; import java.util.concurrent.atomic.AtomicInteger; diff --git a/src/main/java/com/l2jserver/model/id/allocator/IDAllocator.java b/src/main/java/com/l2jserver/model/id/object/allocator/IDAllocator.java similarity index 95% rename from src/main/java/com/l2jserver/model/id/allocator/IDAllocator.java rename to src/main/java/com/l2jserver/model/id/object/allocator/IDAllocator.java index c6a056b7b..107e43318 100644 --- a/src/main/java/com/l2jserver/model/id/allocator/IDAllocator.java +++ b/src/main/java/com/l2jserver/model/id/object/allocator/IDAllocator.java @@ -1,4 +1,4 @@ -package com.l2jserver.model.id.allocator; +package com.l2jserver.model.id.object.allocator; /** * The ID allocator is used to alloc new ID and to release IDs that aren't used diff --git a/src/main/java/com/l2jserver/model/id/allocator/IDAllocatorException.java b/src/main/java/com/l2jserver/model/id/object/allocator/IDAllocatorException.java similarity index 89% rename from src/main/java/com/l2jserver/model/id/allocator/IDAllocatorException.java rename to src/main/java/com/l2jserver/model/id/object/allocator/IDAllocatorException.java index 7bf75b03e..2a97693b7 100644 --- a/src/main/java/com/l2jserver/model/id/allocator/IDAllocatorException.java +++ b/src/main/java/com/l2jserver/model/id/object/allocator/IDAllocatorException.java @@ -1,4 +1,4 @@ -package com.l2jserver.model.id.allocator; +package com.l2jserver.model.id.object.allocator; public class IDAllocatorException extends RuntimeException { private static final long serialVersionUID = 111195059766878062L; diff --git a/src/main/java/com/l2jserver/model/id/factory/CharacterIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java similarity index 86% rename from src/main/java/com/l2jserver/model/id/factory/CharacterIDFactory.java rename to src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java index c52253c7d..e52cc5291 100644 --- a/src/main/java/com/l2jserver/model/id/factory/CharacterIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java @@ -1,9 +1,10 @@ -package com.l2jserver.model.id.factory; +package com.l2jserver.model.id.object.factory; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import com.l2jserver.model.id.CharacterID; -import com.l2jserver.model.id.allocator.IDAllocator; +import com.l2jserver.model.id.factory.IDFactory; +import com.l2jserver.model.id.object.CharacterID; +import com.l2jserver.model.id.object.allocator.IDAllocator; /** * {@link IDFactory} for {@link CharacterID}. diff --git a/src/main/java/com/l2jserver/model/id/factory/ClanIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java similarity index 85% rename from src/main/java/com/l2jserver/model/id/factory/ClanIDFactory.java rename to src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java index d18676b0b..946372b01 100644 --- a/src/main/java/com/l2jserver/model/id/factory/ClanIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java @@ -1,9 +1,10 @@ -package com.l2jserver.model.id.factory; +package com.l2jserver.model.id.object.factory; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import com.l2jserver.model.id.ClanID; -import com.l2jserver.model.id.allocator.IDAllocator; +import com.l2jserver.model.id.factory.IDFactory; +import com.l2jserver.model.id.object.ClanID; +import com.l2jserver.model.id.object.allocator.IDAllocator; /** * {@link IDFactory} for {@link ClanID}. diff --git a/src/main/java/com/l2jserver/model/id/factory/ItemIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java similarity index 85% rename from src/main/java/com/l2jserver/model/id/factory/ItemIDFactory.java rename to src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java index 9b00413e8..911effa05 100644 --- a/src/main/java/com/l2jserver/model/id/factory/ItemIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java @@ -1,9 +1,10 @@ -package com.l2jserver.model.id.factory; +package com.l2jserver.model.id.object.factory; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import com.l2jserver.model.id.ItemID; -import com.l2jserver.model.id.allocator.IDAllocator; +import com.l2jserver.model.id.factory.IDFactory; +import com.l2jserver.model.id.object.ItemID; +import com.l2jserver.model.id.object.allocator.IDAllocator; /** * {@link IDFactory} for {@link ItemID}. diff --git a/src/main/java/com/l2jserver/model/id/object/factory/ObjectIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/ObjectIDFactory.java new file mode 100644 index 000000000..c5c260dd0 --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/object/factory/ObjectIDFactory.java @@ -0,0 +1,21 @@ +package com.l2jserver.model.id.object.factory; + +import com.l2jserver.model.id.ObjectID; +import com.l2jserver.model.id.factory.IDFactory; + +public interface ObjectIDFactory> extends IDFactory { + /** + * Generates a new ID + * + * @return the new ID + */ + T createID(); + + /** + * Destroy this ID. Releases this value to be used once again. + * + * @param id + * the id to be destroyed. + */ + void destroy(T id); +} diff --git a/src/main/java/com/l2jserver/model/id/factory/PetIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java similarity index 85% rename from src/main/java/com/l2jserver/model/id/factory/PetIDFactory.java rename to src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java index bcdbaa5f8..19438be27 100644 --- a/src/main/java/com/l2jserver/model/id/factory/PetIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java @@ -1,9 +1,10 @@ -package com.l2jserver.model.id.factory; +package com.l2jserver.model.id.object.factory; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import com.l2jserver.model.id.PetID; -import com.l2jserver.model.id.allocator.IDAllocator; +import com.l2jserver.model.id.factory.IDFactory; +import com.l2jserver.model.id.object.PetID; +import com.l2jserver.model.id.object.allocator.IDAllocator; /** * {@link IDFactory} for {@link PetID}. diff --git a/src/main/java/com/l2jserver/model/id/template/ItemTemplateID.java b/src/main/java/com/l2jserver/model/id/template/ItemTemplateID.java new file mode 100644 index 000000000..fd1baf6a3 --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/template/ItemTemplateID.java @@ -0,0 +1,22 @@ +package com.l2jserver.model.id.template; + +import com.google.inject.Inject; +import com.google.inject.assistedinject.Assisted; +import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.template.ItemTemplate; +import com.l2jserver.service.game.template.TemplateService; + +public class ItemTemplateID extends TemplateID { + private final TemplateService templateService; + + @Inject + protected ItemTemplateID(@Assisted int id, TemplateService templateService) { + super(id); + this.templateService = templateService; + } + + @Override + public ItemTemplate getTemplate() { + return (ItemTemplate) templateService.getTemplate(this); + } +} diff --git a/src/main/java/com/l2jserver/model/id/template/SkillTemplateID.java b/src/main/java/com/l2jserver/model/id/template/SkillTemplateID.java new file mode 100644 index 000000000..1c238b2cf --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/template/SkillTemplateID.java @@ -0,0 +1,22 @@ +package com.l2jserver.model.id.template; + +import com.google.inject.Inject; +import com.google.inject.assistedinject.Assisted; +import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.template.SkillTemplate; +import com.l2jserver.service.game.template.TemplateService; + +public class SkillTemplateID extends TemplateID { + private final TemplateService templateService; + + @Inject + public SkillTemplateID(@Assisted int id, TemplateService templateService) { + super(id); + this.templateService = templateService; + } + + @Override + public SkillTemplate getTemplate() { + return (SkillTemplate) templateService.getTemplate(this); + } +} diff --git a/src/main/java/com/l2jserver/model/id/template/factory/ItemTemplateIDFactory.java b/src/main/java/com/l2jserver/model/id/template/factory/ItemTemplateIDFactory.java new file mode 100644 index 000000000..17bdea7dd --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/template/factory/ItemTemplateIDFactory.java @@ -0,0 +1,7 @@ +package com.l2jserver.model.id.template.factory; + +import com.l2jserver.model.id.template.ItemTemplateID; + +public interface ItemTemplateIDFactory extends + TemplateIDFactory { +} diff --git a/src/main/java/com/l2jserver/model/id/template/factory/SkillTemplateIDFactory.java b/src/main/java/com/l2jserver/model/id/template/factory/SkillTemplateIDFactory.java new file mode 100644 index 000000000..902f0a8f3 --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/template/factory/SkillTemplateIDFactory.java @@ -0,0 +1,7 @@ +package com.l2jserver.model.id.template.factory; + +import com.l2jserver.model.id.template.SkillTemplateID; + +public interface SkillTemplateIDFactory extends + TemplateIDFactory { +} diff --git a/src/main/java/com/l2jserver/model/id/template/factory/TemplateIDFactory.java b/src/main/java/com/l2jserver/model/id/template/factory/TemplateIDFactory.java new file mode 100644 index 000000000..30d7f2c12 --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/template/factory/TemplateIDFactory.java @@ -0,0 +1,8 @@ +package com.l2jserver.model.id.template.factory; + +import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.factory.IDFactory; + +public interface TemplateIDFactory> extends + IDFactory { +} diff --git a/src/main/java/com/l2jserver/model/template/AbstractTemplate.java b/src/main/java/com/l2jserver/model/template/AbstractTemplate.java index 721bd0202..c68aedded 100644 --- a/src/main/java/com/l2jserver/model/template/AbstractTemplate.java +++ b/src/main/java/com/l2jserver/model/template/AbstractTemplate.java @@ -3,15 +3,15 @@ package com.l2jserver.model.template; import com.l2jserver.model.id.TemplateID; public class AbstractTemplate implements Template { - private final TemplateID id; + private final TemplateID id; - public AbstractTemplate(TemplateID id) { + public AbstractTemplate(TemplateID id) { super(); this.id = id; } @Override - public TemplateID getID() { + public TemplateID getID() { return id; } } diff --git a/src/main/java/com/l2jserver/model/template/ArmorTemplate.java b/src/main/java/com/l2jserver/model/template/ArmorTemplate.java index 3dae57155..5cbecfaa8 100644 --- a/src/main/java/com/l2jserver/model/template/ArmorTemplate.java +++ b/src/main/java/com/l2jserver/model/template/ArmorTemplate.java @@ -1,12 +1,12 @@ package com.l2jserver.model.template; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.ItemTemplateID; import com.l2jserver.model.template.capability.Defendable; import com.l2jserver.model.template.capability.IncomingDamageIntercept; public abstract class ArmorTemplate extends ItemTemplate implements Defendable, IncomingDamageIntercept { - public ArmorTemplate(TemplateID id) { + public ArmorTemplate(ItemTemplateID id) { super(id); } } diff --git a/src/main/java/com/l2jserver/model/template/ConsumableTemplate.java b/src/main/java/com/l2jserver/model/template/ConsumableTemplate.java index 0b3c9a6a9..2d1d752c5 100644 --- a/src/main/java/com/l2jserver/model/template/ConsumableTemplate.java +++ b/src/main/java/com/l2jserver/model/template/ConsumableTemplate.java @@ -1,11 +1,11 @@ package com.l2jserver.model.template; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.ItemTemplateID; import com.l2jserver.model.template.capability.Consumable; public abstract class ConsumableTemplate extends ItemTemplate implements Consumable { - public ConsumableTemplate(TemplateID id) { + public ConsumableTemplate(ItemTemplateID id) { super(id); } } diff --git a/src/main/java/com/l2jserver/model/template/ItemTemplate.java b/src/main/java/com/l2jserver/model/template/ItemTemplate.java index 6074cca37..aa6dbbdab 100644 --- a/src/main/java/com/l2jserver/model/template/ItemTemplate.java +++ b/src/main/java/com/l2jserver/model/template/ItemTemplate.java @@ -1,9 +1,14 @@ package com.l2jserver.model.template; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.ItemTemplateID; public abstract class ItemTemplate extends AbstractTemplate { - public ItemTemplate(TemplateID id) { + public ItemTemplate(ItemTemplateID id) { super(id); } + + @Override + public ItemTemplateID getID() { + return (ItemTemplateID) super.getID(); + } } diff --git a/src/main/java/com/l2jserver/model/template/PotionTemplate.java b/src/main/java/com/l2jserver/model/template/PotionTemplate.java index d3155425f..445ae46fc 100644 --- a/src/main/java/com/l2jserver/model/template/PotionTemplate.java +++ b/src/main/java/com/l2jserver/model/template/PotionTemplate.java @@ -1,9 +1,9 @@ package com.l2jserver.model.template; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.ItemTemplateID; public abstract class PotionTemplate extends ConsumableTemplate { - public PotionTemplate(TemplateID id) { + public PotionTemplate(ItemTemplateID id) { super(id); } } diff --git a/src/main/java/com/l2jserver/model/template/SkillTemplate.java b/src/main/java/com/l2jserver/model/template/SkillTemplate.java index a65926887..972c084ff 100644 --- a/src/main/java/com/l2jserver/model/template/SkillTemplate.java +++ b/src/main/java/com/l2jserver/model/template/SkillTemplate.java @@ -1,11 +1,16 @@ package com.l2jserver.model.template; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.SkillTemplateID; import com.l2jserver.model.template.capability.Castable; public abstract class SkillTemplate extends AbstractTemplate implements Castable { - public SkillTemplate(TemplateID id) { + public SkillTemplate(SkillTemplateID id) { super(id); } + + @Override + public SkillTemplateID getID() { + return (SkillTemplateID) super.getID(); + } } diff --git a/src/main/java/com/l2jserver/model/template/Template.java b/src/main/java/com/l2jserver/model/template/Template.java index 650b379c1..8361cafd2 100644 --- a/src/main/java/com/l2jserver/model/template/Template.java +++ b/src/main/java/com/l2jserver/model/template/Template.java @@ -3,5 +3,5 @@ package com.l2jserver.model.template; import com.l2jserver.model.id.TemplateID; public interface Template { - TemplateID getID(); + TemplateID getID(); } diff --git a/src/main/java/com/l2jserver/model/template/WeaponTemplate.java b/src/main/java/com/l2jserver/model/template/WeaponTemplate.java index da7e34a7d..b43e6148d 100644 --- a/src/main/java/com/l2jserver/model/template/WeaponTemplate.java +++ b/src/main/java/com/l2jserver/model/template/WeaponTemplate.java @@ -1,10 +1,10 @@ package com.l2jserver.model.template; -import com.l2jserver.model.id.TemplateID; +import com.l2jserver.model.id.template.ItemTemplateID; import com.l2jserver.model.template.capability.Attackable; public abstract class WeaponTemplate extends ItemTemplate implements Attackable { - public WeaponTemplate(TemplateID id) { + public WeaponTemplate(ItemTemplateID id) { super(id); } } diff --git a/src/main/java/com/l2jserver/model/template/capability/Castable.java b/src/main/java/com/l2jserver/model/template/capability/Castable.java index ec8bb1a2f..5d1990710 100644 --- a/src/main/java/com/l2jserver/model/template/capability/Castable.java +++ b/src/main/java/com/l2jserver/model/template/capability/Castable.java @@ -4,5 +4,5 @@ import com.l2jserver.model.world.capability.Caster; public interface Castable extends TemplateCapability { void cast(Caster caster, - com.l2jserver.model.world.capability.Castable target); + com.l2jserver.model.world.capability.Castable... targets); } diff --git a/src/main/java/com/l2jserver/model/template/capability/Stackable.java b/src/main/java/com/l2jserver/model/template/capability/Stackable.java new file mode 100644 index 000000000..f88ebfe78 --- /dev/null +++ b/src/main/java/com/l2jserver/model/template/capability/Stackable.java @@ -0,0 +1,13 @@ +package com.l2jserver.model.template.capability; + +import com.l2jserver.model.world.WorldObject; + +/** + * Defines an template that can be stacked (i.e. more then one item per slot in + * the inventory) + * + * @author Rogiel + */ +public interface Stackable extends TemplateCapability { + void stack(T... object); +} diff --git a/src/main/java/com/l2jserver/model/world/Clan.java b/src/main/java/com/l2jserver/model/world/Clan.java index 9b4865110..47cd93d66 100644 --- a/src/main/java/com/l2jserver/model/world/Clan.java +++ b/src/main/java/com/l2jserver/model/world/Clan.java @@ -2,8 +2,8 @@ package com.l2jserver.model.world; import java.util.List; -import com.l2jserver.model.id.CharacterID; -import com.l2jserver.model.id.ClanID; +import com.l2jserver.model.id.object.CharacterID; +import com.l2jserver.model.id.object.ClanID; import com.l2jserver.model.world.capability.Joinable; import com.l2jserver.model.world.capability.Listenable; import com.l2jserver.model.world.clan.ClanEvent; diff --git a/src/main/java/com/l2jserver/model/world/Item.java b/src/main/java/com/l2jserver/model/world/Item.java index cc2b03924..8fe780f38 100644 --- a/src/main/java/com/l2jserver/model/world/Item.java +++ b/src/main/java/com/l2jserver/model/world/Item.java @@ -2,7 +2,7 @@ package com.l2jserver.model.world; import java.util.List; -import com.l2jserver.model.id.CharacterID; +import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.world.capability.Listenable; import com.l2jserver.model.world.capability.Playable; import com.l2jserver.model.world.capability.Spawnable; diff --git a/src/main/java/com/l2jserver/model/world/L2Character.java b/src/main/java/com/l2jserver/model/world/L2Character.java index 31d726c52..591540509 100644 --- a/src/main/java/com/l2jserver/model/world/L2Character.java +++ b/src/main/java/com/l2jserver/model/world/L2Character.java @@ -2,9 +2,9 @@ package com.l2jserver.model.world; import java.sql.Date; -import com.l2jserver.model.id.CharacterID; -import com.l2jserver.model.id.ClanID; -import com.l2jserver.model.id.PetID; +import com.l2jserver.model.id.object.CharacterID; +import com.l2jserver.model.id.object.ClanID; +import com.l2jserver.model.id.object.PetID; import com.l2jserver.model.world.character.CharacterAppearance; import com.l2jserver.model.world.character.CharacterInventory; diff --git a/src/main/java/com/l2jserver/model/world/Party.java b/src/main/java/com/l2jserver/model/world/Party.java index 2f5195e80..81554e2fe 100644 --- a/src/main/java/com/l2jserver/model/world/Party.java +++ b/src/main/java/com/l2jserver/model/world/Party.java @@ -2,8 +2,8 @@ package com.l2jserver.model.world; import java.util.List; -import com.l2jserver.model.id.CharacterID; -import com.l2jserver.model.id.ClanID; +import com.l2jserver.model.id.object.CharacterID; +import com.l2jserver.model.id.object.ClanID; import com.l2jserver.model.world.capability.Joinable; import com.l2jserver.model.world.capability.Listenable; import com.l2jserver.model.world.party.PartyEvent; diff --git a/src/main/java/com/l2jserver/model/world/Pet.java b/src/main/java/com/l2jserver/model/world/Pet.java index 89593e98b..0c975be39 100644 --- a/src/main/java/com/l2jserver/model/world/Pet.java +++ b/src/main/java/com/l2jserver/model/world/Pet.java @@ -1,6 +1,6 @@ package com.l2jserver.model.world; -import com.l2jserver.model.id.CharacterID; +import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.world.capability.Summonable; import com.l2jserver.util.Coordinate; diff --git a/src/main/java/com/l2jserver/model/world/character/CharacterFriendList.java b/src/main/java/com/l2jserver/model/world/character/CharacterFriendList.java index f7e1f125a..f82065f4d 100644 --- a/src/main/java/com/l2jserver/model/world/character/CharacterFriendList.java +++ b/src/main/java/com/l2jserver/model/world/character/CharacterFriendList.java @@ -3,7 +3,7 @@ package com.l2jserver.model.world.character; import java.util.Iterator; import java.util.Set; -import com.l2jserver.model.id.CharacterID; +import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.world.L2Character; import com.l2jserver.util.factory.CollectionFactory; diff --git a/src/main/java/com/l2jserver/model/world/clan/ClanMembers.java b/src/main/java/com/l2jserver/model/world/clan/ClanMembers.java index 33b7e3b05..001089f89 100644 --- a/src/main/java/com/l2jserver/model/world/clan/ClanMembers.java +++ b/src/main/java/com/l2jserver/model/world/clan/ClanMembers.java @@ -4,7 +4,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import com.l2jserver.model.id.CharacterID; +import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.world.Clan; import com.l2jserver.model.world.L2Character; import com.l2jserver.util.factory.CollectionFactory; diff --git a/src/main/java/com/l2jserver/service/game/template/StaticTemplateService.java b/src/main/java/com/l2jserver/service/game/template/StaticTemplateService.java index 82b5cf2f7..3ef762697 100644 --- a/src/main/java/com/l2jserver/service/game/template/StaticTemplateService.java +++ b/src/main/java/com/l2jserver/service/game/template/StaticTemplateService.java @@ -51,8 +51,9 @@ public class StaticTemplateService extends AbstractService implements } @Override - public Template getTemplate(TemplateID id) { - return templates.get(id); + @SuppressWarnings("unchecked") + public T getTemplate(TemplateID id) { + return (T) templates.get(id); } public void addTemplate(Class t) { diff --git a/src/main/java/com/l2jserver/service/game/template/TemplateService.java b/src/main/java/com/l2jserver/service/game/template/TemplateService.java index 6d7fb8bdc..a7e6c21c5 100644 --- a/src/main/java/com/l2jserver/service/game/template/TemplateService.java +++ b/src/main/java/com/l2jserver/service/game/template/TemplateService.java @@ -8,11 +8,13 @@ public interface TemplateService extends Service { /** * Get the template assigned with id * + * @param + * the template type * @param id * the template id - * @return the template matching the id + * @return the template */ - Template getTemplate(TemplateID id); + T getTemplate(TemplateID id); /** * Reload the template list. diff --git a/src/test/java/com/l2jserver/model/id/allocator/BitSetIDAllocatorTest.java b/src/test/java/com/l2jserver/model/id/allocator/BitSetIDAllocatorTest.java index 0bb2f15d7..f99dfdf21 100644 --- a/src/test/java/com/l2jserver/model/id/allocator/BitSetIDAllocatorTest.java +++ b/src/test/java/com/l2jserver/model/id/allocator/BitSetIDAllocatorTest.java @@ -6,6 +6,10 @@ import static junit.framework.Assert.assertFalse; import org.junit.Before; import org.junit.Test; +import com.l2jserver.model.id.object.allocator.BitSetIDAllocator; +import com.l2jserver.model.id.object.allocator.IDAllocator; +import com.l2jserver.model.id.object.allocator.IDAllocatorException; + public class BitSetIDAllocatorTest { private final BitSetIDAllocator allocator = new BitSetIDAllocator(); diff --git a/src/test/java/com/l2jserver/model/id/factory/IDFactoryTest.java b/src/test/java/com/l2jserver/model/id/factory/IDFactoryTest.java index 6c817727b..0817d5ead 100644 --- a/src/test/java/com/l2jserver/model/id/factory/IDFactoryTest.java +++ b/src/test/java/com/l2jserver/model/id/factory/IDFactoryTest.java @@ -8,8 +8,9 @@ import org.junit.Test; import com.google.inject.Guice; import com.google.inject.Injector; import com.l2jserver.db.dao.DAOModuleMySQL5; -import com.l2jserver.model.id.CharacterID; import com.l2jserver.model.id.ID; +import com.l2jserver.model.id.object.CharacterID; +import com.l2jserver.model.id.object.factory.CharacterIDFactory; import com.l2jserver.model.world.L2Character; import com.l2jserver.service.BasicServiceModule; import com.l2jserver.service.ServiceStartException; diff --git a/src/test/java/com/l2jserver/service/game/template/StaticTemplateServiceTest.java b/src/test/java/com/l2jserver/service/game/template/StaticTemplateServiceTest.java index 0a9c31f66..d6beff17d 100644 --- a/src/test/java/com/l2jserver/service/game/template/StaticTemplateServiceTest.java +++ b/src/test/java/com/l2jserver/service/game/template/StaticTemplateServiceTest.java @@ -8,14 +8,17 @@ import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Scopes; +import com.l2jserver.db.dao.DAOModuleMySQL5; +import com.l2jserver.model.id.factory.IDFactoryModule; +import com.l2jserver.model.id.template.factory.ItemTemplateIDFactory; import com.l2jserver.service.BasicServiceModule; import com.l2jserver.service.ServiceStartException; import com.l2jserver.service.game.scripting.ScriptingService; import com.l2jserver.service.game.scripting.ScriptingServiceImpl; public class StaticTemplateServiceTest { - private final Injector injector = Guice - .createInjector(new BasicServiceModule(), new AbstractModule() { + private final Injector injector = Guice.createInjector( + new BasicServiceModule(), new IDFactoryModule(), new DAOModuleMySQL5(), new AbstractModule() { @Override protected void configure() { bind(ScriptingService.class).to(ScriptingServiceImpl.class) @@ -26,10 +29,12 @@ public class StaticTemplateServiceTest { }); private final TemplateService service = injector .getInstance(TemplateService.class); - + private final ItemTemplateIDFactory factory = injector + .getInstance(ItemTemplateIDFactory.class); + @Test public void testAdena() throws ServiceStartException { service.start(); - System.out.println(service.getTemplate(AdenaItemTemplate.ID)); + System.out.println(factory.createID(AdenaItemTemplate.ID).getTemplate()); } } diff --git a/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java b/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java index 84535d43e..a121cb931 100644 --- a/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java +++ b/src/test/java/com/l2jserver/service/world/WorldEventDispatcherImplTest.java @@ -13,9 +13,9 @@ import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Scopes; import com.l2jserver.db.dao.DAOModuleMySQL5; -import com.l2jserver.model.id.factory.CharacterIDFactory; import com.l2jserver.model.id.factory.IDFactoryModule; -import com.l2jserver.model.id.factory.ItemIDFactory; +import com.l2jserver.model.id.object.factory.CharacterIDFactory; +import com.l2jserver.model.id.object.factory.ItemIDFactory; import com.l2jserver.model.world.Item; import com.l2jserver.model.world.L2Character; import com.l2jserver.model.world.item.ItemDropEvent;