diff --git a/src/main/java/com/ntlab/irisserver/entities/Member.java b/src/main/java/com/ntlab/irisserver/entities/Member.java index 1afa6df..68fc6ff 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Member.java +++ b/src/main/java/com/ntlab/irisserver/entities/Member.java @@ -23,7 +23,7 @@ } //----------------------------------------------------------------- - // setter + // setter0 public void setNickname(String nickname) {this.nickname = nickname;} public void setBelongs(String belongs) {this.belongs = belongs;} diff --git a/src/main/java/com/ntlab/irisserver/entities/Room.java b/src/main/java/com/ntlab/irisserver/entities/Room.java index d815e53..b0c6d02 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Room.java +++ b/src/main/java/com/ntlab/irisserver/entities/Room.java @@ -1,21 +1,49 @@ package com.ntlab.irisserver.entities; +import com.fasterxml.jackson.annotation.JsonProperty; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Room { - String rid = null; - int state; - String ownerName = null; - boolean drawingTimer; - int drawingTimerTimes; - boolean gameTimer; - int gameTimerTimes; - int gameTimerFirstThinkingTimes; + @JsonProperty("rid") + public String rid; + //String rid = null; + + @JsonProperty("state") + public int state; + //int state; + + @JsonProperty("ownerName") + public String ownerName; + //String ownerName = null; + + @JsonProperty("drawingTimer") + public boolean drawingTimer; + //boolean drawingTimer; + + @JsonProperty("drawingTimerTimes") + public int drawingTimerTimes; + //int drawingTimerTimes; + + @JsonProperty("gameTimer") + public boolean gameTimer; + //boolean gameTimer; + + @JsonProperty("gameTimerTimes") + public int gameTimerTimes; + //int gameTimerTimes; + + @JsonProperty("gameTimerFirstThinkingTimes") + public int gameTimerFirstThinkingTimes; + //int gameTimerFirstThinkingTimes; + + Map members= new HashMap<>(); + Map drawings = new HashMap<>(); public List getMembers() { @@ -25,6 +53,10 @@ } + public void changeTeamAndMaster(String nick, String belongs, boolean isMaster) { + + } + public Member getMember(String nick) { Member m = members.get(nick); return m; @@ -38,6 +70,66 @@ public int getStateRest(){ return 0; } - public Room(String rid, String owner) { + + public Room(){ + drawingTimer = false; + drawingTimerTimes = 0; + gameTimer = true; + gameTimerTimes = 30; + gameTimerFirstThinkingTimes = 10; } + + public Room(String rid, String owner) { + this.rid=rid; + ownerName=owner; + } + public Drawing getDrawing(int dno) { + return drawings.get(dno); + } + + public void putDrawing(int dno, Drawing d) { + drawings.put(dno, d); + } + + public void setDrawingTimer(boolean drawingTimer) { + this.drawingTimer = drawingTimer; + } + + public void setDrawingTimerTimes(int drawingTimerTimes) { + this.drawingTimerTimes = drawingTimerTimes; + } + + public void setGameTimer(boolean gameTimer) { + this.gameTimer = gameTimer; + } + + public void setGameTimerTimes(int gameTimerTimes) { + this.gameTimerTimes = gameTimerTimes; + } + + public void setGameTimerFirstThinkingTimes(int gameTimerFirstThinkingTimes) { + this.gameTimerFirstThinkingTimes = gameTimerFirstThinkingTimes; + } + + public boolean isDrawingTimer() { + return drawingTimer; + } + + public int getDrawingTimerTimes() { + return drawingTimerTimes; + } + + public boolean isGameTimer() { + return gameTimer; + } + + public int getGameTimerTimes() { + return gameTimerTimes; + } + + public int getGameTimerFirstThinkingTimes() { + return gameTimerFirstThinkingTimes; + } + + } diff --git a/src/main/java/com/ntlab/irisserver/models/RoomManager.java b/src/main/java/com/ntlab/irisserver/models/RoomManager.java index 090767d..0ad8cf7 100644 --- a/src/main/java/com/ntlab/irisserver/models/RoomManager.java +++ b/src/main/java/com/ntlab/irisserver/models/RoomManager.java @@ -8,12 +8,10 @@ import java.util.UUID; @Component -@Path("/rooms") public class RoomManager { private static RoomManager theInstance = null; private Map rooms = new HashMap(); - @GET public static RoomManager getInstance(){ if(theInstance == null){ theInstance = new RoomManager(); @@ -21,8 +19,7 @@ return theInstance; } - @PUT - public Room createRoom(@FormParam("nickname") String owner){ + public Room createRoom(String owner){ UUID uuid = UUID.randomUUID(); String rid = uuid.toString(); //uuid型からstring型に変換 Room r = new Room(rid, owner); @@ -30,14 +27,12 @@ return r; } - @GET - public Room getRoom(@FormParam("rid") String rid){ + public Room getRoom(String rid){ Room r = rooms.get(rid); return r; } - @DELETE - public void deleteRoom(@FormParam("rid") String rid){ + public void deleteRoom(String rid){ rooms.remove(rid); } diff --git a/src/main/java/com/ntlab/irisserver/resources/MemberRest.java b/src/main/java/com/ntlab/irisserver/resources/MemberRest.java new file mode 100644 index 0000000..94157dd --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/resources/MemberRest.java @@ -0,0 +1,53 @@ +package com.ntlab.irisserver.resources; + +import com.ntlab.irisserver.entities.Member; +import com.ntlab.irisserver.entities.Room; +import com.ntlab.irisserver.models.RoomManager; +import org.springframework.stereotype.Component; + +import javax.ws.rs.*; +import java.util.List; + +@Component +@Path("/rooms") +public class MemberRest { + //所属チーム(n:無所属, r:赤, b:青) + String belongs = "n"; + //スパイマスターかどうか + boolean is_master = false; + int i = 0; + + /* + @GET + @Path("/{rid}/members/{nickname}") + public String getMember(@FormParam("rid") int rid, @FormParam("nickname") int nickname) { + return "Hello World"; + } + */ + + // チーム変更・役職変更のメソッド + @Path("/{rid}/members/{nickname}") + @PUT + public String putMember(@PathParam("rid") String rid, @FormParam("nickname") String nickname) { + RoomManager rm = RoomManager.getInstance(); + Room room = rm.getRoom("rid"); + List m = room.getMembers(); + return "変更しました"; + } + + // プレイヤーを退出させるメソッド + @Path("/{rid}/members/{nickname}") + @DELETE + public String deleteMember(@PathParam("rid") String rid, @FormParam("nickname") String nickname) { + RoomManager rm = RoomManager.getInstance(); + Room room = rm.getRoom("rid"); + List m = room.getMembers(); + for( i = 0; i < 10; i++ ) { + Member name = m.get(i); + if ( nickname == name.getNickname() ) { + nickname = null; + } + } + return "退出しました"; + } +} \ No newline at end of file