diff --git a/src/main/java/cactusServer/resources/CharactersRest.java b/src/main/java/cactusServer/resources/CharactersRest.java index cdc3a28..ec28c56 100644 --- a/src/main/java/cactusServer/resources/CharactersRest.java +++ b/src/main/java/cactusServer/resources/CharactersRest.java @@ -1,5 +1,7 @@ package cactusServer.resources; +import java.util.HashMap; + import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -14,9 +16,7 @@ import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; import cactusServer.entities.Character; -import cactusServer.entities.IDAddressedEntity; import cactusServer.entities.Instance; -import cactusServer.entities.URIAddressedEntity; import cactusServer.models.Instances; @Path("/instances/{instanceId}/characters") @@ -36,13 +36,18 @@ @POST @Produces(MediaType.APPLICATION_JSON) - public URIAddressedEntity createCharacter(@PathParam("instanceId") String instanceId, + public HashMap createCharacter(@PathParam("instanceId") String instanceId, @FormParam("accountURI") String accountURI, @FormParam("name") String name, @FormParam("position") Position3D position, @FormParam("angle") Quaternion3D angle, @FormParam("modelID") String modelID) { Instance instance = Instances.getInstance().getInstance(instanceId); - IDAddressedEntity ae = instance.createCharacter(instanceId, accountURI, name, position, angle, modelID); - return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceId + "/characters/" + ae.getId()), ae.getBody()); + HashMap idMap = instance.createCharacter(instanceId, accountURI, name, position, angle, modelID); + HashMap uriMap = new HashMap<>(); + for (String id : idMap.keySet()) { + String uri = (InstancesRest.INSTANCES_URI + "/" + instanceId + "/characters/") + id; + uriMap.put(uri, idMap.get(id)); + } + return uriMap; } @Path("/{characterId}") diff --git a/src/main/java/cactusServer/resources/ObjectsRest.java b/src/main/java/cactusServer/resources/ObjectsRest.java index f75e073..813a311 100644 --- a/src/main/java/cactusServer/resources/ObjectsRest.java +++ b/src/main/java/cactusServer/resources/ObjectsRest.java @@ -1,5 +1,7 @@ package cactusServer.resources; +import java.util.HashMap; + import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -15,9 +17,8 @@ import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; import cactusServer.entities.Angle; -import cactusServer.entities.IDAddressedEntity; import cactusServer.entities.Instance; -import cactusServer.entities.URIAddressedEntity; +import cactusServer.entities.Object; import cactusServer.entities.Object.Attribute; import cactusServer.models.Instances; @@ -39,30 +40,17 @@ // @Path("/{instanceId}/objects") @POST @Produces(MediaType.APPLICATION_JSON) - public URIAddressedEntity createObject(@PathParam("instanceId") String instanceId, + public HashMap createObject(@PathParam("instanceId") String instanceId, @FormParam("position") Position3D position, @FormParam("velocity") Velocity3D velocity, @FormParam("angularVelocity") AngularVelocity3D angularVelocity, @FormParam("angle") Quaternion3D angle, @FormParam("attribute") Attribute attribute, @FormParam("model") String model) { Instance instance = Instances.getInstance().getInstance(instanceId); - IDAddressedEntity ae = instance.createObject(position, velocity, angularVelocity, angle, attribute, model); - return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceId + "/objects/" + ae.getId()), - ae.getBody()); + HashMap idMap = instance.createObject(position, velocity, angularVelocity, angle, attribute, model); + HashMap uriMap = new HashMap<>(); + for (String id : idMap.keySet()) { + String uri = (InstancesRest.INSTANCES_URI + "/" + instanceId + "/objects/") + id; + uriMap.put(uri, idMap.get(id)); + } + return uriMap; } - ///////////////////////////////////////////// - //@Path("/{instanceId}/objects/{objectId}") -// @Path("/{objectId}") -// @PUT -// @Produces(MediaType.APPLICATION_JSON) -// public Object updateObject(@FormParam("position") Position3D position, -// @FormParam("velocity") Velocity3D velocity, -// @FormParam("angularVelocity") AngularVelocity3D angularVelocity, -// @FormParam("angle") Quaternion3D angle) { -// Instance instance = Instances.getInstance().getInstance(instanceId); -// if (instance != null) { -// return instance.getObject(objectId); -// } -// return null; -//} -// } - } diff --git a/src/main/java/cactusServer/resources/PlayersRest.java b/src/main/java/cactusServer/resources/PlayersRest.java index a8a0236..0cce697 100644 --- a/src/main/java/cactusServer/resources/PlayersRest.java +++ b/src/main/java/cactusServer/resources/PlayersRest.java @@ -1,5 +1,7 @@ package cactusServer.resources; +import java.util.HashMap; + import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -14,22 +16,24 @@ import cactusServer.entities.CameraState; import cactusServer.entities.EmoteState; -import cactusServer.entities.IDAddressedEntity; import cactusServer.entities.Player; -import cactusServer.entities.URIAddressedEntity; import cactusServer.models.Instances; @Path("/instances/players") public class PlayersRest { - @Path("/players") @POST @Produces(MediaType.APPLICATION_JSON) - public URIAddressedEntity createPlayer(@PathParam("instanceId") String instanceURI, + public HashMap createPlayer(@PathParam("instanceId") String instanceURI, @FormParam("characterURI") String characterURI, @FormParam("cameraState") CameraState cameraState, @FormParam("animationClassToStart") EmoteState.EmoteType animationClassToStart) { Instances instances = Instances.getInstance(); - IDAddressedEntity ae = instances.createPlayer(instanceURI, characterURI, cameraState, animationClassToStart); - return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceURI + "/players/" + ae.getId()), ae.getBody()); + HashMap idMap = instances.createPlayer(instanceURI, characterURI, cameraState, animationClassToStart); + HashMap uriMap = new HashMap<>(); + for (String id : idMap.keySet()) { + String uri = (InstancesRest.INSTANCES_URI + "/" + "/players/") + id; + uriMap.put(uri, idMap.get(id)); + } + return uriMap; } @Path("/{playerId}") @@ -43,7 +47,7 @@ return null; } - @Path("/players/{playerId}") + @Path("/{playerId}") @PUT @Produces(MediaType.APPLICATION_JSON) public Player updatePlayer(@PathParam("instanceId") String instanceId, @FormParam("playerId") String playerId,