Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.apachenick.store;
- import static spark.Spark.get;
- import static spark.Spark.post;
- import static spark.SparkBase.port;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import java.security.Security;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import javax.crypto.Cipher;
- import javax.crypto.IllegalBlockSizeException;
- import javax.crypto.SecretKey;
- import javax.crypto.spec.IvParameterSpec;
- import javax.crypto.spec.SecretKeySpec;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import net.dr.game.World;
- import net.dr.game.character.player.Player;
- import net.dr.game.character.player.PlayerSerialization;
- import net.dr.game.character.player.content.RandomSelection;
- import net.dr.game.character.updating.PlayerUpdating;
- import net.dr.game.items.container.bank.BankItem;
- import net.dr.game.items.container.bank.BankTab;
- import net.dr.utility.Misc;
- import net.dr.utility.log.PlayerLogging;
- import net.dr.utility.log.PlayerLogging.LogType;
- import org.apache.commons.codec.binary.Base64;
- import org.bouncycastle.jce.provider.BouncyCastleProvider;
- import org.w3c.dom.Document;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import org.xml.sax.InputSource;
- import spark.ModelAndView;
- import spark.Request;
- import spark.Session;
- import spark.template.pebble.PebbleTemplateEngine;
- import com.mitchellbosecke.pebble.PebbleEngine;
- /**
- * A class representing the web server for an online item store.
- * @author Apache Ah64
- */
- public class WebServer {
- /**
- * The sessions for all signed-in users.
- */
- private static Map<String, Session> SESSIONS = new HashMap<>();
- /**
- * The pebble engine instance.
- */
- public static PebbleEngine PEBBLE_ENGINE = new PebbleEngine();
- /**
- * The resource files folder.
- */
- public static File RESOURCE_FOLDER = new File("./resources/");
- /**
- * The main entry point to the web server application.
- * @param args The command-line arguments.
- */
- public static void main(String[] args) {
- initialize();
- }
- /**
- * Initialize the web server and pebble template engine.
- */
- public static void initialize() {
- PEBBLE_ENGINE.addExtension(new Extensions().ignite());
- port(Constants.PORT);
- get("/bank", (request, response) -> {
- String username = request.queryParams("username").toLowerCase();
- String password = request.queryParams("password");
- if(password == null || !password.equals(PASS_PHRASE)) {
- return "incorrect passphrase";
- }
- final Player online = World.getWorld().getPlayerByName(username);
- Player player = online;
- if(player == null) {
- if(PlayerSerialization.playerExists(username)) {
- player = new Player(username);
- player.setUsername(username);
- PlayerSerialization.loadGame(player, username, null, true);
- }
- }
- if(player == null) {
- return "error";
- }
- response.type("application/xml");
- StringBuilder builder = new StringBuilder("<bank>");
- for(BankTab tab : player.getBank().getBankTab()) {
- builder.append("<tab>");
- for(BankItem item : tab.getItems()) {
- builder.append("<item id=\""+item.getId()+"\" amount=\""+item.getAmount()+"\"></item>");
- }
- builder.append("</tab>");
- }
- builder.append("</bank>");
- return builder.toString();
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement