Guest User

Untitled

a guest
Jul 21st, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.51 KB | None | 0 0
  1. package com.nagai.server;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import java.util.Vector;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9.  
  10. import com.nagai.client.GameServerService;
  11. import com.nagai.shared.Interpreter;
  12. import com.nagai.shared.ShoppingCart;
  13. import com.google.gwt.user.server.rpc.RemoteServiceServlet;
  14.  
  15. /**
  16. * The server side implementation of the RPC service.
  17. */
  18. public class GameServerServiceImpl extends RemoteServiceServlet implements
  19. GameServerService {
  20.  
  21. private Interpreter interpreter = new Interpreter();
  22.  
  23. private static final long serialVersionUID = 3185002270178659393L;
  24. private static final Logger log = Logger
  25. .getLogger(GameServerServiceImpl.class.getName());
  26. private Vector<String> chatLog = new Vector<String>();
  27.  
  28. public String testClientServerCommunication(String input) {
  29. return input;
  30. }
  31.  
  32. @Override
  33. public Integer getPlayerNo() {
  34. String playerColor = server.interop.addPlayer();
  35. log.log(Level.INFO,
  36. "***SERVER*** getPlayerId(): giving player number to client "
  37. + interpreter.colorToPlayerNumber(playerColor));
  38. return interpreter.colorToPlayerNumber(playerColor);
  39. }
  40.  
  41. // XXX old stuff
  42.  
  43. @Override
  44. public boolean isGameStarted() {
  45. log.log(Level.INFO,
  46. "***SERVER*** isGameStarted(): getting request from client");
  47. return server.interop.isGameStarted();
  48. }
  49.  
  50. @Override
  51. public int getPlayerCountFromServer() {
  52. log.log(Level.INFO,
  53. "***SERVER*** getPlayerCountFromServer(): getting a player count request from client");
  54. return server.interop.getPlayerCount();
  55. }
  56.  
  57. @Override
  58. public void startGame() {
  59. server.interop.startGame();
  60. log.log(Level.INFO,
  61. "***SERVER*** startGame(): starting game request from client");
  62. }
  63.  
  64. @Override
  65. public Map<Integer, Map<String, Object>> getStaticField() {
  66. // we have to deep copy the map because clojure returns clojure
  67. // datatypes
  68. @SuppressWarnings("unchecked")
  69. Map<Integer, Map<String, Object>> map = (java.util.Map<Integer, java.util.Map<String, Object>>) server.interop
  70. .getStaticField();
  71. // System.out.println("result size " + map.size());
  72. Map<Integer, Map<String, Object>> deepCopyMap = new HashMap<Integer, Map<String, Object>>();
  73. for (Map.Entry<Integer, Map<String, Object>> entry : map.entrySet()) {
  74. // System.out.println(entry.getKey() + " " + entry.getValue());
  75. Map<String, Object> deepInner = new HashMap<String, Object>();
  76. for (Map.Entry<String, Object> innerEntry : entry.getValue()
  77. .entrySet()) {
  78. // System.out.println(innerEntry.getKey() + " " +
  79. // innerEntry.getValue());
  80. deepInner.put(innerEntry.getKey(), innerEntry.getValue());
  81. }
  82. deepCopyMap.put(entry.getKey(), deepInner);
  83. }
  84. return deepCopyMap;
  85. }
  86.  
  87. /*
  88. * (non-Javadoc)
  89. *
  90. * @see com.nagai.client.GameServerService#getDynamicField()
  91. */
  92. @Override
  93. public Map<Set<Integer>, Map<String, String>> getDynamicField() {
  94. @SuppressWarnings("unchecked")
  95. Map<Set<Integer>, Map<String, String>> map = (java.util.Map<java.util.Set<Integer>, java.util.Map<String, String>>) server.interop
  96. .getStaticField();
  97. // System.out.println("result size " + map.size());
  98. Map<Set<Integer>, Map<String, String>> deepCopyMap = new HashMap<Set<Integer>, Map<String, String>>();
  99. for (Map.Entry<Set<Integer>, Map<String, String>> entry : map.entrySet()) {
  100. // System.out.println(entry.getKey() + " " + entry.getValue());
  101. Map<String, String> deepInner = new HashMap<String, String>();
  102. for (Map.Entry<String, String> innerEntry : entry.getValue()
  103. .entrySet()) {
  104. // System.out.println(innerEntry.getKey() + " " +
  105. // innerEntry.getValue());
  106. deepInner.put(innerEntry.getKey(), innerEntry.getValue());
  107. }
  108. deepCopyMap.put(entry.getKey(), deepInner);
  109. }
  110. return deepCopyMap;
  111. }
  112.  
  113. @Override
  114. public Map<String, Integer> getMyResources(int playerNo) {
  115. log.log(Level.INFO,
  116. "***SERVER*** getMyResources(int playerNumber): giving resource count to client "
  117. + playerNo);
  118. @SuppressWarnings("unchecked")
  119. Map<String, Integer> map = (java.util.Map<String, Integer>) server.interop
  120. .getStaticField();
  121. // System.out.println("result size " + map.size());
  122. Map<String, Integer> deepCopyMap = new HashMap<String, Integer>();
  123. for (Map.Entry<String, Integer> entry : map.entrySet()) {
  124. // System.out.println(entry.getKey() + " " + entry.getValue());
  125. deepCopyMap.put(entry.getKey(), entry.getValue());
  126. }
  127. return deepCopyMap;
  128. }
  129.  
  130. @Override
  131. public int getRobber() {
  132. log.log(Level.INFO,
  133. "***SERVER*** getRobber(): giving robber position to client");
  134. return server.interop.getRobber();
  135. }
  136.  
  137. @Override
  138. public boolean isMyTurn(int playerNo) {
  139. log.log(Level.INFO,
  140. "***SERVER*** isMyTurn(int playerNo): giving turn info to client "
  141. + playerNo);
  142. return server.interop.isMyTurn(interpreter
  143. .numberToPlayerColor(playerNo));
  144. }
  145.  
  146. @Override
  147. public int getVictoryPoints(int playerNo) {
  148. log.log(Level.INFO,
  149. "***SERVER*** getVictoryPoints(int playerNo): giving "
  150. + server.interop.getVictoryPoints(interpreter
  151. .numberToPlayerColor(playerNo))
  152. + " victory points to client " + playerNo);
  153. return server.interop.getVictoryPoints(interpreter
  154. .numberToPlayerColor(playerNo));
  155. }
  156.  
  157. @Override
  158. public Integer[] getDiceNo() {
  159. log.log(Level.INFO,
  160. "***SERVER*** getDiceNo(): giving dice count to client");
  161. return server.interop.getDiceNo();
  162. }
  163.  
  164. @Override
  165. public void turnFinished(int playerNo) {
  166. log.log(Level.INFO,
  167. "***SERVER*** turnFinished(int playerNo): getting turn finished flag from client "
  168. + playerNo);
  169. server.interop.finishTurn(interpreter
  170. .numberToPlayerColor(playerNo));
  171. }
  172.  
  173. @Override
  174. public boolean setRobber(int fieldNo, int playerNo) {
  175. log.log(Level.INFO,
  176. "***SERVER*** setRobber(int FieldNo, int playerNo): getting new robber position "
  177. + fieldNo + " from client " + playerNo);
  178. return server.interop.setRobber(fieldNo,
  179. interpreter.numberToPlayerColor(playerNo));
  180. }
  181.  
  182. @Override
  183. public boolean build(int knot1, int knot2, int playerNo) {
  184. log.log(Level.INFO,
  185. "***SERVER*** build(int knot1, int knot2, int playerNo): getting new build road request from client "
  186. + playerNo);
  187. return server.interop.build(knot1, knot2,
  188. interpreter.numberToPlayerColor(playerNo));
  189. }
  190.  
  191. @Override
  192. public boolean build(int knot, int playerNo) {
  193. log.log(Level.INFO,
  194. "***SERVER*** build(int knot, int playerNo): getting new build settlement / city request from client "
  195. + playerNo);
  196. return server.interop.build(knot,
  197. interpreter.numberToPlayerColor(playerNo));
  198. }
  199.  
  200. /*
  201. * (non-Javadoc)
  202. *
  203. * @see com.nagai.client.GameServerService#getLongestRoadGreatestPower()
  204. */
  205. @Override
  206. public Map<String, Boolean> getLongestRoadGreatestPower() {
  207. // TODO Auto-generated method stub
  208. return null;
  209. }
  210.  
  211. /*
  212. * (non-Javadoc)
  213. *
  214. * @see com.nagai.client.GameServerService#doTradeStatic(com.nagai.shared.
  215. * ShoppingCart)
  216. */
  217. @Override
  218. public boolean doTradeStatic(ShoppingCart shoppingCart) {
  219. // TODO Auto-generated method stub
  220. return false;
  221. }
  222.  
  223. /*
  224. * (non-Javadoc)
  225. *
  226. * @see
  227. * com.nagai.client.GameServerService#doTradeWithPlayer(com.nagai.shared
  228. * .ShoppingCart)
  229. */
  230. @Override
  231. public boolean doTradeWithPlayer(ShoppingCart shoppingCart) {
  232. // TODO Auto-generated method stub
  233. return false;
  234. }
  235.  
  236. /*
  237. * (non-Javadoc)
  238. *
  239. * @see com.nagai.client.GameServerService#getTradingRequest()
  240. */
  241. @Override
  242. public ShoppingCart getTradingRequest() {
  243. // TODO Auto-generated method stub
  244. return null;
  245. }
  246.  
  247. @Override
  248. public void sendChatMsg(String msg, int playerNo) {
  249. log.log(Level.INFO,
  250. "***SERVER*** sendChatMsg(String msg, int playerNo): getting msg from client "
  251. + playerNo);
  252. StringBuilder stringBuffer = new StringBuilder("");
  253. stringBuffer.append("Player ").append(String.valueOf(playerNo))
  254. .append(" : ").append(msg);
  255. chatLog.add(stringBuffer.toString());
  256. }
  257.  
  258. @Override
  259. public String getChatMsg() {
  260. log.log(Level.INFO,
  261. "***SERVER*** getChatMsg(String msg): sending msg to client ");
  262. return chatLog.lastElement();
  263. }
  264.  
  265. /*
  266. * (non-Javadoc)
  267. *
  268. * @see com.nagai.client.GameServerService#getDevelopmentCards(int)
  269. */
  270. @Override
  271. public Map<String, Integer> getDevelopmentCards(int playerNo) {
  272. // TODO Auto-generated method stub
  273. return null;
  274. }
  275.  
  276. /* (non-Javadoc)
  277. * @see com.nagai.client.GameServerService#setTestWorld()
  278. */
  279. @Override
  280. public void setTestWorld() {
  281. server.interop.setTestWorld();
  282. }
  283.  
  284.  
  285.  
  286. }
Add Comment
Please, Sign In to add comment