From 897372f0982cf028262bc84d01f24ad82defb876 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Tue, 27 Jun 2017 23:06:01 +0200 Subject: [PATCH] Probably should use TFTP actually --- .../website/ButtonWebsiteModule.java | 3 ++ .../website/page/AutoUpdatePage.java | 35 +++++++++++++++++++ src/buttondevteam/website/page/Page.java | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/buttondevteam/website/page/AutoUpdatePage.java diff --git a/src/buttondevteam/website/ButtonWebsiteModule.java b/src/buttondevteam/website/ButtonWebsiteModule.java index a219aab..6d3ce4f 100644 --- a/src/buttondevteam/website/ButtonWebsiteModule.java +++ b/src/buttondevteam/website/ButtonWebsiteModule.java @@ -111,6 +111,9 @@ public class ButtonWebsiteModule extends JavaPlugin { @Override public void onEnable() { addPage(new IndexPage()); + addPage(new AutoUpdatePage()); + addPage(new LoginPage()); + addPage(new ProfilePage()); TBMCCoreAPI.RegisterUserClass(WebUser.class); Bukkit.getScheduler().runTaskAsynchronously(this, () -> { this.getLogger().info("Starting webserver..."); diff --git a/src/buttondevteam/website/page/AutoUpdatePage.java b/src/buttondevteam/website/page/AutoUpdatePage.java new file mode 100644 index 0000000..d064d05 --- /dev/null +++ b/src/buttondevteam/website/page/AutoUpdatePage.java @@ -0,0 +1,35 @@ +package buttondevteam.website.page; + +import java.io.IOException; +import java.util.stream.Collectors; + +import com.sun.net.httpserver.HttpExchange; + +import buttondevteam.website.io.IOHelper; +import buttondevteam.website.io.Response; + +public class AutoUpdatePage extends Page { + + @Override + public String GetName() { + return "autoupdate"; + } + + @Override + public Response handlePage(HttpExchange exchange) { + if (exchange.getRequestHeaders().containsKey("Expect") + && exchange.getRequestHeaders().get("Expect").contains("100-continue")) + try { + exchange.sendResponseHeaders(100, -1); + exchange.getResponseBody().close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + return new Response(200, + "Headers:\n" + exchange.getRequestHeaders().entrySet().stream() + .map(e -> e.getKey() + ": " + e.getValue().stream().collect(Collectors.joining(" "))) + .collect(Collectors.joining("\n")) + "\nPOST: " + IOHelper.GetPOST(exchange), + exchange); + } + +} diff --git a/src/buttondevteam/website/page/Page.java b/src/buttondevteam/website/page/Page.java index 4128e8f..0df2d80 100644 --- a/src/buttondevteam/website/page/Page.java +++ b/src/buttondevteam/website/page/Page.java @@ -22,7 +22,7 @@ public abstract class Page implements HttpHandler { if (exchange.getRequestURI().getPath().equals("/" + GetName())) IOHelper.SendResponse(handlePage(exchange)); else { - IOHelper.SendResponse(404, "404 Not found", exchange); + IOHelper.SendResponse(404, "404 Not found: " + exchange.getRequestURI().getPath(), exchange); } } catch (Exception e) { TBMCCoreAPI.SendException("Internal Server Error in ButtonWebsiteModule!", e);