2016-10-22 20:21:01 +00:00
|
|
|
package buttondevteam.website;
|
2016-10-22 19:20:28 +00:00
|
|
|
|
2016-10-22 20:21:01 +00:00
|
|
|
import java.net.InetAddress;
|
|
|
|
import java.net.InetSocketAddress;
|
2017-05-30 21:24:48 +00:00
|
|
|
|
|
|
|
import org.bukkit.Bukkit;
|
2016-10-22 20:21:01 +00:00
|
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
import com.sun.net.httpserver.HttpServer;
|
2016-10-22 19:20:28 +00:00
|
|
|
|
2017-05-30 21:24:48 +00:00
|
|
|
import buttondevteam.lib.TBMCCoreAPI;
|
2016-10-22 20:21:01 +00:00
|
|
|
import buttondevteam.website.page.*;
|
|
|
|
|
|
|
|
public class ButtonWebsiteModule extends JavaPlugin {
|
2017-06-01 19:19:11 +00:00
|
|
|
public static final int PORT = 8080;
|
2017-05-30 21:24:48 +00:00
|
|
|
private static HttpServer server;
|
|
|
|
|
2017-05-31 19:09:08 +00:00
|
|
|
public ButtonWebsiteModule() {
|
2016-10-22 20:21:01 +00:00
|
|
|
try {
|
2017-06-01 19:19:11 +00:00
|
|
|
server = HttpServer.create(new InetSocketAddress((InetAddress) null, PORT), 10);
|
2016-10-22 20:21:01 +00:00
|
|
|
} catch (Exception e) {
|
2017-05-30 21:24:48 +00:00
|
|
|
TBMCCoreAPI.SendException("An error occured while starting the webserver!", e);
|
2016-10-22 20:21:01 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-31 19:09:08 +00:00
|
|
|
@Override
|
|
|
|
public void onEnable() {
|
|
|
|
addPage(new IndexPage());
|
|
|
|
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
|
|
|
|
this.getLogger().info("Starting webserver...");
|
|
|
|
((Runnable) server::start).run(); // Totally normal way of calling a method
|
|
|
|
this.getLogger().info("Webserver started");
|
2017-06-01 19:19:11 +00:00
|
|
|
Thread t = new Thread(() -> AcmeClient.main("server.figytuna.com"));
|
|
|
|
t.setContextClassLoader(getClass().getClassLoader());
|
|
|
|
t.start();
|
2017-05-31 19:09:08 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-05-30 21:24:48 +00:00
|
|
|
/**
|
|
|
|
* Adds a new page/endpoint to the website. This method needs to be called before the server finishes loading (onEnable).
|
|
|
|
*/
|
|
|
|
public static void addPage(Page page) {
|
2016-10-22 20:21:01 +00:00
|
|
|
server.createContext("/" + page.GetName(), page);
|
|
|
|
}
|
2016-10-22 19:20:28 +00:00
|
|
|
}
|