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));
}