Skip to content

Commit 4449fbe

Browse files
committed
Fixed Webserver, added a couple new webpages...
1 parent dea8cb0 commit 4449fbe

File tree

6 files changed

+163
-8
lines changed

6 files changed

+163
-8
lines changed

keystore.jks

64 Bytes
Binary file not shown.

src/main/java/org/mangorage/mangobot/MangoBotPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ public void finished() {
267267
.queue();
268268

269269
try {
270-
WebServer.startWebServer();
270+
WebServer.startWebServer((TrickCommand) getCommandRegistry().getCommand("trick"));
271271
} catch (Exception e) {
272272
LogHelper.error("Failed to start WebServer");
273273
LogHelper.trace(e.getMessage());

src/main/java/org/mangorage/mangobot/modules/tricks/TrickCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public class TrickCommand implements IBasicCommand {
5757
private final TrickScriptable SCRIPT_RUNNER;
5858

5959

60-
private Trick getTrick(String trickId, long guildId) {
60+
public Trick getTrick(String trickId, long guildId) {
6161
return TRICKS.get(new TrickKey(trickId, guildId));
6262
}
6363

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package org.mangorage.mangobot.website;
2+
import jakarta.servlet.Servlet;
3+
import jakarta.servlet.ServletException;
4+
import jakarta.servlet.ServletRequest;
5+
import jakarta.servlet.ServletResponse;
6+
import jakarta.servlet.annotation.WebServlet;
7+
import org.mangorage.mangobotapi.core.plugin.PluginContainer;
8+
import org.mangorage.mangobotapi.core.plugin.PluginManager;
9+
10+
import java.io.IOException;
11+
12+
13+
public class MyServlet implements Servlet {
14+
15+
@Override
16+
public void init(jakarta.servlet.ServletConfig servletConfig) throws ServletException {
17+
// Initialization logic, such as loading resources
18+
System.out.println("MyServlet initialized!");
19+
}
20+
21+
@Override
22+
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
23+
// This is where you handle the request and generate a response
24+
response.setContentType("text/html");
25+
response.getWriter().write("<html><body><h1>Installed Plugins:</h1></body></html>");
26+
27+
var str = "<html><body><h2>Id: %s Name: %s Version: %s Type: %s</h2></body></html>";
28+
for (PluginContainer container : PluginManager.getPluginContainers()) {
29+
var meta = container.getMetadata();
30+
response.getWriter().write(
31+
str.formatted(
32+
meta.id(),
33+
meta.name(),
34+
meta.version(),
35+
container.getType()
36+
)
37+
);
38+
}
39+
40+
}
41+
42+
@Override
43+
public void destroy() {
44+
// Cleanup logic, such as releasing resources
45+
System.out.println("MyServlet destroyed!");
46+
}
47+
48+
@Override
49+
public jakarta.servlet.ServletConfig getServletConfig() {
50+
return null; // Return any relevant config if needed
51+
}
52+
53+
@Override
54+
public String getServletInfo() {
55+
return "MyServlet"; // Optional servlet info
56+
}
57+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package org.mangorage.mangobot.website;
2+
3+
import dev.lavalink.youtube.clients.Web;
4+
import jakarta.servlet.Servlet;
5+
import jakarta.servlet.ServletException;
6+
import jakarta.servlet.ServletRequest;
7+
import jakarta.servlet.ServletResponse;
8+
import org.mangorage.mangobot.modules.tricks.Trick;
9+
import org.mangorage.mangobot.modules.tricks.TrickCommand;
10+
import org.mangorage.mangobotapi.core.plugin.PluginContainer;
11+
import org.mangorage.mangobotapi.core.plugin.PluginManager;
12+
13+
import java.io.IOException;
14+
15+
public class TricksServlet implements Servlet {
16+
17+
18+
@Override
19+
public void init(jakarta.servlet.ServletConfig servletConfig) throws ServletException {
20+
// Initialization logic, such as loading resources
21+
System.out.println("TricksServlet initialized!");
22+
}
23+
24+
@Override
25+
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
26+
// This is where you handle the request and generate a response
27+
var command = WebServer.getTrickCommand();
28+
response.setContentType("text/html");
29+
var guildId = request.getParameter("guildId");
30+
var trickId = request.getParameter("trickId");
31+
32+
33+
var str1 = "<html><body><h1>Id: %s Type: %s</h1></body></html>";
34+
var str2 = "<html><body><h2>Content:</h2></body></html>";
35+
var str3 = "<html><body><h2>%s</h2></body></html>";
36+
37+
if (guildId != null && trickId != null) {
38+
try {
39+
Trick trick = command.getTrick(trickId, Long.parseLong(guildId));
40+
if (trick != null) {
41+
42+
response.getWriter().write(
43+
str1.formatted(
44+
trick.getTrickID(),
45+
trick.getType()
46+
)
47+
);
48+
response.getWriter().write(str2);
49+
response.getWriter().write(
50+
str3.formatted(
51+
trick.getContent()
52+
)
53+
);
54+
} else {
55+
response.getWriter().write(
56+
str3.formatted("Invalid Trick %s Supplied for Guild %s".formatted(trickId, guildId))
57+
);
58+
}
59+
} catch (Exception ignored) {
60+
ignored.printStackTrace();
61+
}
62+
} else {
63+
response.getWriter().write(
64+
str3.formatted(
65+
"URL Format /trick?guildId=1234&trickId=example"
66+
)
67+
);
68+
}
69+
}
70+
71+
@Override
72+
public void destroy() {
73+
// Cleanup logic, such as releasing resources
74+
System.out.println("MyServlet destroyed!");
75+
}
76+
77+
@Override
78+
public jakarta.servlet.ServletConfig getServletConfig() {
79+
return null; // Return any relevant config if needed
80+
}
81+
82+
@Override
83+
public String getServletInfo() {
84+
return "TickServlet"; // Optional servlet info
85+
}
86+
}

src/main/java/org/mangorage/mangobot/website/WebServer.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,33 @@
1010
import org.eclipse.jetty.servlet.DefaultServlet;
1111

1212
import org.eclipse.jetty.servlet.ServletContextHandler;
13+
import org.eclipse.jetty.servlet.ServletHolder;
1314
import org.eclipse.jetty.util.ssl.SslContextFactory;
15+
import org.mangorage.mangobot.modules.tricks.TrickCommand;
1416

1517

1618
public final class WebServer {
17-
public static void startWebServer() throws Exception {
19+
private static TrickCommand trickCommand;
20+
21+
public static TrickCommand getTrickCommand() {
22+
return trickCommand;
23+
}
24+
25+
public static void startWebServer(TrickCommand trickCommand) throws Exception {
1826
// Create a Jetty server instance
27+
WebServer.trickCommand = trickCommand;
28+
1929
Server server = new Server();
2030

31+
2132
// Set up Servlet context
2233
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
2334
context.setContextPath("/");
2435
context.setResourceBase("webpage"); // Serve files from "webpage" directory
2536
context.addServlet(DefaultServlet.class, "/*"); // Serve all webpage files
37+
context.addServlet(new ServletHolder(new MyServlet()), "/info");
38+
context.addServlet(new ServletHolder(new TricksServlet()), "/trick");
39+
2640
server.setHandler(context);
2741

2842
// HTTP Configuration
@@ -31,6 +45,8 @@ public static void startWebServer() throws Exception {
3145

3246
SecureRequestCustomizer src = new SecureRequestCustomizer();
3347
src.setSniHostCheck(false); // Disable SNI host check
48+
src.setSniRequired(false);
49+
3450
httpConfig.addCustomizer(src);
3551

3652
// SSL Context Factory for HTTPS
@@ -56,11 +72,7 @@ public static void startWebServer() throws Exception {
5672

5773
// Start the server
5874
server.start();
59-
System.out.println("Server started with HTTPS on port 8443");
75+
System.out.println("Webserver Started");
6076
server.join();
6177
}
62-
63-
public static void main(String[] args) throws Exception {
64-
startWebServer();
65-
}
6678
}

0 commit comments

Comments
 (0)