diff --git a/src/main/java/cactusServer/entities/Character.java b/src/main/java/cactusServer/entities/Character.java index 2661bc2..d4328f7 100644 --- a/src/main/java/cactusServer/entities/Character.java +++ b/src/main/java/cactusServer/entities/Character.java @@ -77,7 +77,7 @@ } public Map createItem(String name, int amount) { - String id = createUniqueId(UNIQUE_ID_LENGTH, itemMap.keySet()); + String id = new RandomStringGenerator().createUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, itemMap.keySet()); Item item = new Item(name, amount); itemMap.put(id, item); return new HashMap() { @@ -92,24 +92,4 @@ public Item destroyItem(String itemId) { return itemMap.remove(itemId); } - - private String createUniqueId(int length, Set idSet) { - String id; - do { - id = createRandomId(length); - } while (checkId(id, idSet)); - return id; - } - - private boolean checkId(String id, Set idSet) { - return idSet.contains(id); - } - - private String createRandomId(int length) { - StringBuilder id = new StringBuilder(""); - do { - id.append(UUID.randomUUID().toString()); - } while (id.length() < length); - return id.substring(0, length); - } } diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index a1fb2c5..611dbd8 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -29,6 +29,7 @@ @JSONHint(ignore = true) private HashMap objMap = new HashMap<>(); @JSONHint(ignore = true) private HashMap characterMap = new HashMap<>(); @JSONHint(ignore = true) private static final int UNIQUE_ID_LENGTH = 12; + private static final String ALPHANUMERIC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; /** * (�����͌����_�ł̉��̂���) @@ -88,7 +89,7 @@ } public Map createArea(String areaId, String name, Plain[] regions, HashSet permissions) { - String id = createUniqueId(UNIQUE_ID_LENGTH, areaMap.keySet()); + String id = new RandomStringGenerator().createUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet()); Area area = new Area(name, regions, permissions); areaMap.put(id, area); return new HashMap() { @@ -97,7 +98,7 @@ } public Map createObject(String objId, Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Object.Attribute attribute) { - String id = createUniqueId(UNIQUE_ID_LENGTH, objMap.keySet()); + String id = new RandomStringGenerator().createUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); Object object = new Object(position, velocity, angularVelocity, attribute); objMap.put(id, object); return new HashMap() { @@ -106,7 +107,7 @@ } public Map createCharacter(URI accountURI, String name, Position3D position, String areaId, boolean isActive) { - String id = createUniqueId(UNIQUE_ID_LENGTH, characterMap.keySet()); + String id = new RandomStringGenerator().createUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, characterMap.keySet()); Character character = new Character(accountURI, name, position, areaId, isActive); characterMap.put(id, character); return new HashMap() { @@ -126,26 +127,6 @@ return objMap.remove(objId); } - private String createUniqueId(int length, Set idSet) { - String id; - do { - id = createRandomId(length); - } while (checkId(id, idSet)); - return id; - } - - private boolean checkId(String id, Set idSet) { - return idSet.contains(id); - } - - private String createRandomId(int length) { - StringBuilder id = new StringBuilder(""); - do { - id.append(UUID.randomUUID().toString()); - } while (id.length() < length); - return id.substring(0, length); - } - public static enum State { AVAILABLE, MAINTENANCE; } diff --git a/src/main/java/cactusServer/models/Instances.java b/src/main/java/cactusServer/models/Instances.java index 61cb588..f829b43 100644 --- a/src/main/java/cactusServer/models/Instances.java +++ b/src/main/java/cactusServer/models/Instances.java @@ -6,7 +6,10 @@ import java.util.Set; import java.util.UUID; +import org.apache.commons.lang3.RandomStringUtils; + import cactusServer.entities.Instance; +import cactusServer.entities.RandomStringGenerator; import net.arnx.jsonic.JSONHint; /** @@ -19,6 +22,7 @@ private static Instances theInstance = null; private HashMap instanceMap = new HashMap<>(); // instance��ID�Ǝ��̂��Ǘ� private static final int UNIQUE_ID_LENGTH = 12; + private static final String ALPHANUMERIC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; private Instances() { @@ -44,7 +48,7 @@ * @return �V�����쐬���ꂽID��Instance��Map */ public Map createInstance(String name) { - String id = createUniqueId(UNIQUE_ID_LENGTH, instanceMap.keySet()); + String id = new RandomStringGenerator().createUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, instanceMap.keySet()); Instance instance = new Instance(name, Instance.State.AVAILABLE); instanceMap.put(id, instance); return new HashMap() { @@ -86,25 +90,4 @@ public Instance destroyInstance(String instanceId) { return instanceMap.remove(instanceId); } - - private String createUniqueId(int length, Set idSet) { - String id; - do { - id = createRandomId(length); - } while (checkId(id, idSet)); - return id; - } - - private boolean checkId(String id, Set idSet) { - return idSet.contains(id); - } - - private String createRandomId(int length) { - StringBuilder id = new StringBuilder(""); - do { - id.append(UUID.randomUUID().toString()); - } while (id.length() < length); - return id.substring(0, length); - } - }