begin live inventory

This commit is contained in:
2026-05-18 01:55:23 -04:00
parent d74b07f00e
commit d440199d4e
8 changed files with 985 additions and 28 deletions
@@ -9,9 +9,13 @@ import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.regex.Pattern;
public class AssetsEndpoint extends AbstractServlet
{
private static final Pattern TEXTURE_PATH = Pattern.compile("(item|block)/[a-z0-9_]+\\.png");
@GetMapping(endpoint = "/assets/dashboard.js")
@MappingHeaders(headers = {"content-type;application/javascript; charset=utf-8", "cache-control;public, max-age=300"})
public String dashboardJs(HttpServletRequest request, HttpServletResponse response)
@@ -41,6 +45,27 @@ public class AssetsEndpoint extends AbstractServlet
return null;
}
@GetMapping(endpoint = "/assets/textures/")
@MappingHeaders(headers = {"content-type;image/png", "cache-control;public, max-age=86400"})
public String texture(HttpServletRequest request, HttpServletResponse response)
{
String uri = request.getRequestURI();
String prefix = "/assets/textures/";
if (!uri.startsWith(prefix))
{
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return null;
}
String resourcePath = uri.substring(prefix.length());
if (!TEXTURE_PATH.matcher(resourcePath).matches())
{
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return null;
}
serveResource("/httpd/assets/textures/" + resourcePath, response);
return null;
}
private static void serveResource(String classpathPath, HttpServletResponse response)
{
try (InputStream in = AssetsEndpoint.class.getResourceAsStream(classpathPath);