diff --git a/pom.xml b/pom.xml index 0baef76be..ce9dc899b 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,13 @@ jar runtime + + commons-collections + commons-collections + 20040616 + jar + runtime + diff --git a/src/dao/com/l2jserver/db/dao/CharacterDAO.java b/src/dao/com/l2jserver/db/dao/CharacterDAO.java index 59791bbdb..a92ff68ef 100644 --- a/src/dao/com/l2jserver/db/dao/CharacterDAO.java +++ b/src/dao/com/l2jserver/db/dao/CharacterDAO.java @@ -2,6 +2,7 @@ package com.l2jserver.db.dao; import java.util.List; +import com.l2jserver.model.id.AccountID; import com.l2jserver.model.id.ID; import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.world.L2Character; @@ -36,11 +37,12 @@ public interface CharacterDAO extends DataAccessObject, Cacheable { /** * Select an character by its name. * - * @param name - * the character name - * @return the found character. Null if does not exists. + * @param account + * the account id + * @return the found characters. An empty list if this account has no + * characters. */ - List selectByAccount(String username); + List selectByAccount(AccountID account); /** * Loads an List of all {@link ID}s in the database diff --git a/src/dao/mysql5/com/l2jserver/db/dao/DAOModuleMySQL5.java b/src/dao/mysql5/com/l2jserver/db/dao/DAOModuleMySQL5.java index 2e8281b9f..289d164a6 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/DAOModuleMySQL5.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/DAOModuleMySQL5.java @@ -1,11 +1,17 @@ package com.l2jserver.db.dao; import com.google.inject.AbstractModule; +import com.google.inject.Module; import com.google.inject.Scopes; import com.l2jserver.db.dao.mysql5.MySQL5CharacterDAO; import com.l2jserver.db.dao.mysql5.MySQL5CharacterFriendDAO; import com.l2jserver.db.dao.mysql5.MySQL5ItemDAO; +/** + * Google Guice {@link Module} for MySQL5 DAOs + * + * @author Rogiel + */ public class DAOModuleMySQL5 extends AbstractModule { @Override protected void configure() { diff --git a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/AbstractMySQL5DAO.java b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/AbstractMySQL5DAO.java index a3cf638bc..5c87ff5d8 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/AbstractMySQL5DAO.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/AbstractMySQL5DAO.java @@ -5,7 +5,18 @@ import com.l2jserver.service.database.AbstractDAO; import com.l2jserver.service.database.DatabaseService; import com.l2jserver.service.database.MySQLDatabaseService; +/** + * {@link AbstractDAO} for MySQL DAO implementation + * + * @author Rogiel + * + * @param + * the object for the DAO + */ public class AbstractMySQL5DAO extends AbstractDAO { + /** + * The MySQL Database Service + */ protected final MySQLDatabaseService database; @Inject 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 76861c7f3..fd5f07bf8 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterDAO.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterDAO.java @@ -7,6 +7,8 @@ import java.util.List; import com.google.inject.Inject; import com.l2jserver.db.dao.CharacterDAO; +import com.l2jserver.model.id.AccountID; +import com.l2jserver.model.id.factory.AccountIDFactory; import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.id.object.factory.CharacterIDFactory; import com.l2jserver.model.id.template.CharacterTemplateID; @@ -27,10 +29,25 @@ import com.l2jserver.service.database.MySQLDatabaseService.SelectListQuery; import com.l2jserver.service.database.MySQLDatabaseService.SelectSingleQuery; import com.l2jserver.util.Coordinate; +/** + * {@link CharacterDAO} implementation for MySQL5 + * + * @author Rogiel + */ public class MySQL5CharacterDAO extends AbstractMySQL5DAO implements CharacterDAO { + /** + * The {@link CharacterID} factory + */ private final CharacterIDFactory idFactory; + /** + * The {@link CharacterTemplateID} factory + */ private final CharacterTemplateIDFactory templateIdFactory; + /** + * The {@link AccountID} factory + */ + private final AccountIDFactory accountIdFactory; /** * Character table name @@ -60,10 +77,12 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO @Inject public MySQL5CharacterDAO(DatabaseService database, final CharacterIDFactory idFactory, - CharacterTemplateIDFactory templateIdFactory) { + CharacterTemplateIDFactory templateIdFactory, + AccountIDFactory accountIdFactory) { super(database); this.idFactory = idFactory; this.templateIdFactory = templateIdFactory; + this.accountIdFactory = accountIdFactory; } /** @@ -88,6 +107,9 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO final L2Character character = new L2Character( template.getBaseAttributes()); character.setID(idFactory.createID(rs.getInt(CHAR_ID))); + character.setAccountID(accountIdFactory.createID(rs + .getString(ACCOUNT_ID))); + character.setName(rs.getString(NAME)); character.setRace(Race.valueOf(rs.getString(RACE))); @@ -158,7 +180,7 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO } @Override - public List selectByAccount(final String username) { + public List selectByAccount(final AccountID account) { return database.query(new SelectListQuery() { @Override protected String query() { @@ -168,7 +190,7 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO @Override protected void parametize(PreparedStatement st) throws SQLException { - st.setString(1, username); + st.setString(1, account.getID()); } @Override @@ -221,7 +243,7 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO int i = 1; st.setInt(i++, character.getID().getID()); - st.setString(i++, "rogiel"); // FIXME + st.setString(i++, character.getAccountID().getID()); // FIXME st.setString(i++, character.getName()); st.setString(i++, character.getRace().name()); diff --git a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterFriendDAO.java b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterFriendDAO.java index d03c43161..8cf79e2b3 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterFriendDAO.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5CharacterFriendDAO.java @@ -16,8 +16,16 @@ import com.l2jserver.service.database.MySQLDatabaseService.InsertUpdateQuery; import com.l2jserver.service.database.MySQLDatabaseService.Mapper; import com.l2jserver.service.database.MySQLDatabaseService.SelectListQuery; +/** + * {@link CharacterFriendDAO} implementation for MySQL5 + * + * @author Rogiel + */ public class MySQL5CharacterFriendDAO extends AbstractMySQL5DAO implements CharacterFriendDAO { + /** + * The {@link CharacterID} factory + */ private final CharacterIDFactory idFactory; /** 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 aa4eb015f..ceadd40c1 100644 --- a/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5ItemDAO.java +++ b/src/dao/mysql5/com/l2jserver/db/dao/mysql5/MySQL5ItemDAO.java @@ -7,6 +7,7 @@ import java.util.List; import com.google.inject.Inject; import com.l2jserver.db.dao.ItemDAO; +import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.id.object.ItemID; import com.l2jserver.model.id.object.factory.CharacterIDFactory; import com.l2jserver.model.id.object.factory.ItemIDFactory; @@ -21,9 +22,23 @@ import com.l2jserver.service.database.MySQLDatabaseService.Mapper; import com.l2jserver.service.database.MySQLDatabaseService.SelectListQuery; import com.l2jserver.service.database.MySQLDatabaseService.SelectSingleQuery; +/** + * {@link ItemDAO} implementation for MySQL5 + * + * @author Rogiel + */ public class MySQL5ItemDAO extends AbstractMySQL5DAO implements ItemDAO { + /** + * The {@link ItemID} factory + */ private final ItemIDFactory idFactory; + /** + * The {@link ItemTemplateID} factory + */ private final ItemTemplateIDFactory templateIdFactory; + /** + * The {@link CharacterID} factory + */ private final CharacterIDFactory charIdFactory; /** @@ -46,7 +61,17 @@ public class MySQL5ItemDAO extends AbstractMySQL5DAO implements ItemDAO { this.charIdFactory = charIdFactory; } - private final class CharacterMapper implements Mapper { + /** + * The {@link Mapper} instance + */ + private final ItemMapper mapper = new ItemMapper(); + + /** + * {@link Item} mapper class + * + * @author Rogiel + */ + private final class ItemMapper implements Mapper { @Override public Item map(ResultSet rs) throws SQLException { final ItemTemplateID templateId = templateIdFactory.createID(rs @@ -77,7 +102,7 @@ public class MySQL5ItemDAO extends AbstractMySQL5DAO implements ItemDAO { @Override protected Mapper mapper() { - return new CharacterMapper(); + return mapper; } }); } @@ -99,7 +124,7 @@ public class MySQL5ItemDAO extends AbstractMySQL5DAO implements ItemDAO { @Override protected Mapper mapper() { - return new CharacterMapper(); + return mapper; } }); inventory.load(items); diff --git a/src/main/java/com/l2jserver/game/net/Lineage2Session.java b/src/main/java/com/l2jserver/game/net/Lineage2Session.java index e5f6913c0..b3f1cb778 100644 --- a/src/main/java/com/l2jserver/game/net/Lineage2Session.java +++ b/src/main/java/com/l2jserver/game/net/Lineage2Session.java @@ -1,5 +1,7 @@ package com.l2jserver.game.net; +import com.l2jserver.model.id.AccountID; + /** * Lineage 2 session with the username and loginserver keys * @@ -7,9 +9,9 @@ package com.l2jserver.game.net; */ public class Lineage2Session { /** - * The username + * The account ID */ - private final String username; + private final AccountID accountID; /** * The play key, part 1 @@ -32,8 +34,8 @@ public class Lineage2Session { /** * Creates a new instance * - * @param username - * the username + * @param accountID + * the account ID * @param playOK1 * the play key, part 1 * @param playOK2 @@ -43,9 +45,9 @@ public class Lineage2Session { * @param loginOK2 * the login key, part 2 */ - public Lineage2Session(String username, int playOK1, int playOK2, + public Lineage2Session(AccountID accountID, int playOK1, int playOK2, int loginOK1, int loginOK2) { - this.username = username; + this.accountID = accountID; this.playKey1 = playOK1; this.playKey2 = playOK2; this.loginKey1 = loginOK1; @@ -53,10 +55,10 @@ public class Lineage2Session { } /** - * @return the username + * @return the account ID */ - public String getUsername() { - return username; + public AccountID getAccountID() { + return accountID; } /** 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 97a6f6f46..33a4e4e40 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 @@ -10,6 +10,8 @@ import com.l2jserver.game.net.Lineage2Connection; import com.l2jserver.game.net.Lineage2Session; import com.l2jserver.game.net.packet.AbstractClientPacket; import com.l2jserver.game.net.packet.server.CharacterEnterWorldPacket; +import com.l2jserver.model.id.AccountID; +import com.l2jserver.model.id.factory.AccountIDFactory; import com.l2jserver.model.world.L2Character; import com.l2jserver.util.BufferUtils; @@ -24,6 +26,7 @@ public class AuthLoginPacket extends AbstractClientPacket { public static final int OPCODE = 0x2b; private final CharacterDAO characterDao; + private final AccountIDFactory accountIdFactory; // packet private String loginName; @@ -33,8 +36,10 @@ public class AuthLoginPacket extends AbstractClientPacket { private int loginKey2; @Inject - public AuthLoginPacket(CharacterDAO characterDao) { + public AuthLoginPacket(CharacterDAO characterDao, + AccountIDFactory accountIdFactory) { this.characterDao = characterDao; + this.accountIdFactory = accountIdFactory; } @Override @@ -48,11 +53,11 @@ public class AuthLoginPacket extends AbstractClientPacket { @Override public void process(final Lineage2Connection conn) { - conn.setSession(new Lineage2Session(loginName, playKey1, playKey2, + final AccountID accountId = accountIdFactory.createID(loginName); + conn.setSession(new Lineage2Session(accountId, playKey1, playKey2, loginKey1, loginKey2)); - final List chars = characterDao.selectByAccount(conn - .getSession().getUsername()); + final List chars = characterDao.selectByAccount(accountId); // conn.write(CharacterSelectionListPacket.fromL2Session( // conn.getSession(), chars.toArray(new L2Character[0]))); conn.write(new CharacterEnterWorldPacket(chars.get(0), playKey1)); diff --git a/src/main/java/com/l2jserver/game/net/packet/client/RequestGotoLobby.java b/src/main/java/com/l2jserver/game/net/packet/client/RequestGotoLobby.java index 5a3bd07b7..fbdd92d77 100644 --- a/src/main/java/com/l2jserver/game/net/packet/client/RequestGotoLobby.java +++ b/src/main/java/com/l2jserver/game/net/packet/client/RequestGotoLobby.java @@ -35,7 +35,7 @@ public class RequestGotoLobby extends AbstractClientPacket { @Override public void process(final Lineage2Connection conn) { final List chars = characterDao.selectByAccount(conn - .getSession().getUsername()); + .getSession().getAccountID()); conn.write(CharacterSelectionListPacket.fromL2Session( conn.getSession(), chars.toArray(new L2Character[0]))); } 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 2e0a297f4..4ae8fb0c4 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 @@ -34,7 +34,7 @@ public class CharacterSelectionListPacket extends AbstractServerPacket { public static CharacterSelectionListPacket fromL2Session( Lineage2Session session, L2Character... characters) { - return new CharacterSelectionListPacket(session.getUsername(), + return new CharacterSelectionListPacket(session.getAccountID().getID(), session.getPlayKey2(), -1, characters); } diff --git a/src/main/java/com/l2jserver/model/id/AccountID.java b/src/main/java/com/l2jserver/model/id/AccountID.java new file mode 100644 index 000000000..7b5c8d0d2 --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/AccountID.java @@ -0,0 +1,21 @@ +package com.l2jserver.model.id; + +import com.google.inject.assistedinject.Assisted; + +/** + * Each account is identified by its {@link ID}. This {@link ID} is equal to the + * account username or login. + * + * @author Rogiel + */ +public class AccountID extends ID { + /** + * Creates a new instance + * + * @param login + * the login + */ + public AccountID(@Assisted String login) { + super(login); + } +} diff --git a/src/main/java/com/l2jserver/model/id/ID.java b/src/main/java/com/l2jserver/model/id/ID.java index 0d1b386ce..ba2821a3e 100644 --- a/src/main/java/com/l2jserver/model/id/ID.java +++ b/src/main/java/com/l2jserver/model/id/ID.java @@ -1,30 +1,27 @@ package com.l2jserver.model.id; import com.google.inject.Inject; -import com.l2jserver.model.template.Template; -import com.l2jserver.model.world.WorldObject; /** - * The ID interface. Each {@link WorldObject} or {@link Template} must be - * represented by an unique ID. + * The ID interface. Each object must be represented by an unique ID. * * @author Rogiel */ -public abstract class ID { +public abstract class ID { /** * The id itself */ - protected final int id; + protected final T id; @Inject - protected ID(int id) { + protected ID(T id) { this.id = id; } /** * @return the id */ - public int getID() { + public T getID() { return id; } @@ -37,7 +34,7 @@ public abstract class ID { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + id + this.getClass().hashCode(); + result = prime * result + id.hashCode() + this.getClass().hashCode(); return result; } @@ -49,9 +46,14 @@ public abstract class ID { return false; if (getClass() != obj.getClass()) return false; + @SuppressWarnings("rawtypes") ID other = (ID) obj; - if (id != other.id) + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) return false; return true; } + } diff --git a/src/main/java/com/l2jserver/model/id/ObjectID.java b/src/main/java/com/l2jserver/model/id/ObjectID.java index 42959bceb..84c6eb49b 100644 --- a/src/main/java/com/l2jserver/model/id/ObjectID.java +++ b/src/main/java/com/l2jserver/model/id/ObjectID.java @@ -14,7 +14,7 @@ import com.l2jserver.model.world.WorldObject; * @param * the {@link WorldObject} type */ -public abstract class ObjectID extends ID { +public abstract class ObjectID extends ID { /** * Creates a new instance * diff --git a/src/main/java/com/l2jserver/model/id/TemplateID.java b/src/main/java/com/l2jserver/model/id/TemplateID.java index be66578c5..eec10b002 100644 --- a/src/main/java/com/l2jserver/model/id/TemplateID.java +++ b/src/main/java/com/l2jserver/model/id/TemplateID.java @@ -8,7 +8,7 @@ import com.l2jserver.model.template.Template; * * @author Rogiel */ -public abstract class TemplateID> extends ID { +public abstract class TemplateID> extends ID { /** * Creates a new instance * diff --git a/src/main/java/com/l2jserver/model/id/factory/AccountIDFactory.java b/src/main/java/com/l2jserver/model/id/factory/AccountIDFactory.java new file mode 100644 index 000000000..3fa528236 --- /dev/null +++ b/src/main/java/com/l2jserver/model/id/factory/AccountIDFactory.java @@ -0,0 +1,11 @@ +package com.l2jserver.model.id.factory; + +import com.l2jserver.model.id.AccountID; + +/** + * Creates a new {@link AccountID} + * + * @author Rogiel + */ +public interface AccountIDFactory extends IDFactory { +} 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 ac91a1ab4..531c99114 100644 --- a/src/main/java/com/l2jserver/model/id/factory/IDFactory.java +++ b/src/main/java/com/l2jserver/model/id/factory/IDFactory.java @@ -8,12 +8,12 @@ import com.l2jserver.model.id.ID; * * @author Rogiel */ -public interface IDFactory { +public interface IDFactory> { /** * Creates the ID object for an EXISTING ID. * * @param id * @return */ - T createID(int id); + T createID(I 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 76445ccf4..ccaaa2fe1 100644 --- a/src/main/java/com/l2jserver/model/id/factory/IDFactoryModule.java +++ b/src/main/java/com/l2jserver/model/id/factory/IDFactoryModule.java @@ -25,6 +25,9 @@ public class IDFactoryModule extends AbstractModule { bind(IDAllocator.class).to(BitSetIDAllocator.class) .in(Scopes.SINGLETON); + // ACCOUNT ID + install(new FactoryModuleBuilder().build(AccountIDFactory.class)); + // OBJECT IDS bind(CharacterIDFactory.class).in(Scopes.SINGLETON); install(new FactoryModuleBuilder().build(CharacterIDGuiceFactory.class)); diff --git a/src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java index e52cc5291..2b03df46b 100644 --- a/src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/CharacterIDFactory.java @@ -35,7 +35,7 @@ public class CharacterIDFactory implements ObjectIDFactory { } @Override - public CharacterID createID(int id) { + public CharacterID createID(Integer id) { return factory.create(id); } diff --git a/src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java index 946372b01..58733fa55 100644 --- a/src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/ClanIDFactory.java @@ -34,7 +34,7 @@ public class ClanIDFactory implements ObjectIDFactory { } @Override - public ClanID createID(int id) { + public ClanID createID(Integer id) { return factory.create(id); } diff --git a/src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java index 911effa05..eec906e93 100644 --- a/src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/ItemIDFactory.java @@ -34,7 +34,7 @@ public class ItemIDFactory implements ObjectIDFactory { } @Override - public ItemID createID(int id) { + public ItemID createID(Integer id) { return factory.create(id); } 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 index c5c260dd0..6edadbfb8 100644 --- a/src/main/java/com/l2jserver/model/id/object/factory/ObjectIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/ObjectIDFactory.java @@ -3,7 +3,8 @@ 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 { +public interface ObjectIDFactory> extends + IDFactory { /** * Generates a new ID * diff --git a/src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java b/src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java index 19438be27..6a7d94b4f 100644 --- a/src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/object/factory/PetIDFactory.java @@ -34,7 +34,7 @@ public class PetIDFactory implements ObjectIDFactory { } @Override - public PetID createID(int id) { + public PetID createID(Integer id) { return factory.create(id); } 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 index d48cf3766..1dd7f36c1 100644 --- a/src/main/java/com/l2jserver/model/id/template/factory/TemplateIDFactory.java +++ b/src/main/java/com/l2jserver/model/id/template/factory/TemplateIDFactory.java @@ -12,5 +12,5 @@ import com.l2jserver.model.id.factory.IDFactory; * the subclass of {@link TemplateID} that will be createdF */ public interface TemplateIDFactory> extends - IDFactory { + IDFactory { } diff --git a/src/main/java/com/l2jserver/model/world/L2Character.java b/src/main/java/com/l2jserver/model/world/L2Character.java index 8062f929f..7bb108899 100644 --- a/src/main/java/com/l2jserver/model/world/L2Character.java +++ b/src/main/java/com/l2jserver/model/world/L2Character.java @@ -2,6 +2,7 @@ package com.l2jserver.model.world; import java.sql.Date; +import com.l2jserver.model.id.AccountID; import com.l2jserver.model.id.object.CharacterID; import com.l2jserver.model.id.object.ClanID; import com.l2jserver.model.id.object.PetID; @@ -19,6 +20,10 @@ import com.l2jserver.model.world.character.CharacterInventory; * @author Rogiel */ public class L2Character extends Player { + /** + * The account id + */ + private AccountID accountID; /** * The clan id */ @@ -76,9 +81,19 @@ public class L2Character extends Player { this.attributes = new CharacterCalculatedAttributes(this); } - @Override - public CharacterID getID() { - return (CharacterID) super.getID(); + /** + * @return the account ID + */ + public AccountID getAccountID() { + return accountID; + } + + /** + * @param accountID + * the account ID to set + */ + public void setAccountID(AccountID accountID) { + this.accountID = accountID; } /** @@ -223,4 +238,9 @@ public class L2Character extends Player { public CharacterFriendList getFriendList() { return friendList; } + + @Override + public CharacterID getID() { + return (CharacterID) super.getID(); + } } diff --git a/src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java b/src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java index 0f2e6ac72..38410adf5 100644 --- a/src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java +++ b/src/main/java/com/l2jserver/model/world/filter/impl/IDFilter.java @@ -1,6 +1,6 @@ package com.l2jserver.model.world.filter.impl; -import com.l2jserver.model.id.ID; +import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.world.capability.Positionable; import com.l2jserver.model.world.filter.WorldObjectFilter; @@ -13,7 +13,7 @@ public class IDFilter implements WorldObjectFilter { /** * The object id */ - private final ID id; + private final ObjectID id; /** * Creates a new instance @@ -21,7 +21,7 @@ public class IDFilter implements WorldObjectFilter { * @param id * the desired object ID */ - public IDFilter(final ID id) { + public IDFilter(final ObjectID id) { this.id = id; } 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 e3cf26d76..02c520754 100644 --- a/src/test/java/com/l2jserver/model/id/factory/IDFactoryTest.java +++ b/src/test/java/com/l2jserver/model/id/factory/IDFactoryTest.java @@ -26,8 +26,8 @@ public class IDFactoryTest { @Test public void testCreateID() { - final ID id1 = charIdFactory.createID(); - final ID id2 = charIdFactory.createID(); + final ID id1 = charIdFactory.createID(); + final ID id2 = charIdFactory.createID(); Assert.assertNotNull(id1); Assert.assertFalse(id1.equals(id2)); }