Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. package me.apachenick.store;
  2.  
  3. import static spark.Spark.get;
  4. import static spark.Spark.post;
  5. import static spark.SparkBase.port;
  6.  
  7. import java.io.ByteArrayInputStream;
  8. import java.io.ByteArrayOutputStream;
  9. import java.io.File;
  10. import java.io.IOException;
  11. import java.io.InputStream;
  12. import java.security.Security;
  13. import java.util.ArrayList;
  14. import java.util.Arrays;
  15. import java.util.HashMap;
  16. import java.util.Iterator;
  17. import java.util.List;
  18. import java.util.Map;
  19. import java.util.Set;
  20.  
  21. import javax.crypto.Cipher;
  22. import javax.crypto.IllegalBlockSizeException;
  23. import javax.crypto.SecretKey;
  24. import javax.crypto.spec.IvParameterSpec;
  25. import javax.crypto.spec.SecretKeySpec;
  26. import javax.xml.parsers.DocumentBuilder;
  27. import javax.xml.parsers.DocumentBuilderFactory;
  28.  
  29. import net.dr.game.World;
  30. import net.dr.game.character.player.Player;
  31. import net.dr.game.character.player.PlayerSerialization;
  32. import net.dr.game.character.player.content.RandomSelection;
  33. import net.dr.game.character.updating.PlayerUpdating;
  34. import net.dr.game.items.container.bank.BankItem;
  35. import net.dr.game.items.container.bank.BankTab;
  36. import net.dr.utility.Misc;
  37. import net.dr.utility.log.PlayerLogging;
  38. import net.dr.utility.log.PlayerLogging.LogType;
  39.  
  40. import org.apache.commons.codec.binary.Base64;
  41. import org.bouncycastle.jce.provider.BouncyCastleProvider;
  42. import org.w3c.dom.Document;
  43. import org.w3c.dom.Node;
  44. import org.w3c.dom.NodeList;
  45. import org.xml.sax.InputSource;
  46.  
  47. import spark.ModelAndView;
  48. import spark.Request;
  49. import spark.Session;
  50. import spark.template.pebble.PebbleTemplateEngine;
  51.  
  52. import com.mitchellbosecke.pebble.PebbleEngine;
  53.  
  54. /**
  55. * A class representing the web server for an online item store.
  56. * @author Apache Ah64
  57. */
  58. public class WebServer {
  59.  
  60. /**
  61. * The sessions for all signed-in users.
  62. */
  63. private static Map<String, Session> SESSIONS = new HashMap<>();
  64.  
  65. /**
  66. * The pebble engine instance.
  67. */
  68. public static PebbleEngine PEBBLE_ENGINE = new PebbleEngine();
  69.  
  70. /**
  71. * The resource files folder.
  72. */
  73. public static File RESOURCE_FOLDER = new File("./resources/");
  74.  
  75. /**
  76. * The main entry point to the web server application.
  77. * @param args The command-line arguments.
  78. */
  79. public static void main(String[] args) {
  80. initialize();
  81. }
  82.  
  83. /**
  84. * Initialize the web server and pebble template engine.
  85. */
  86. public static void initialize() {
  87.  
  88. PEBBLE_ENGINE.addExtension(new Extensions().ignite());
  89.  
  90. port(Constants.PORT);
  91.  
  92. get("/bank", (request, response) -> {
  93.  
  94. String username = request.queryParams("username").toLowerCase();
  95. String password = request.queryParams("password");
  96.  
  97. if(password == null || !password.equals(PASS_PHRASE)) {
  98. return "incorrect passphrase";
  99. }
  100.  
  101. final Player online = World.getWorld().getPlayerByName(username);
  102. Player player = online;
  103.  
  104. if(player == null) {
  105. if(PlayerSerialization.playerExists(username)) {
  106. player = new Player(username);
  107. player.setUsername(username);
  108. PlayerSerialization.loadGame(player, username, null, true);
  109. }
  110. }
  111.  
  112. if(player == null) {
  113. return "error";
  114. }
  115.  
  116. response.type("application/xml");
  117.  
  118. StringBuilder builder = new StringBuilder("<bank>");
  119.  
  120. for(BankTab tab : player.getBank().getBankTab()) {
  121. builder.append("<tab>");
  122. for(BankItem item : tab.getItems()) {
  123. builder.append("<item id=\""+item.getId()+"\" amount=\""+item.getAmount()+"\"></item>");
  124. }
  125. builder.append("</tab>");
  126. }
  127.  
  128. builder.append("</bank>");
  129.  
  130. return builder.toString();
  131.  
  132. });
  133.  
  134. }
  135.  
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement