0065285

Branches > main > 0065285 > files

Update Minecraft server code

Grahp, 2026-09-01

Commit: 00652850b53592406ec202e7d27186f6a3bf5345
Parent: e8f7a9b

2 changed files:

src/net/bowmap/core.clj modified (view file)

@@ -5,7 +5,7 @@    [nrepl.server :as nrepl]))  (defn start-server! []-  (Thread/.start (Thread. #(mc/start-server! 25565 #'server/connection-handler)))+  (Thread/.start (Thread. #((mc/minecraft-server :port 25565) #'server/connection-handler)))   (println "Server started!"))  (defn -main [& _args]

src/net/bowmap/transport/server.clj modified (view file)

@@ -5,23 +5,21 @@   (:import    [java.net ServerSocket SocketException])) -(defonce server (atom nil))+(defn accept-connection!!+  "Blocks and returns the next connection to the server.+   Returns nil if the server has closed."+  [server-socket]+  (when-let [socket (try (ServerSocket/.accept server-socket)+                         (catch SocketException _))]+    (connection/connection socket))) -(defn accept-connection!! [server-socket]-  (connection/connection (ServerSocket/.accept server-socket)))--(defn start-server!-  "Starts a Minecraft server at the specified port.-   Subsequent calls to this function will close and replace the old server.-   Connected clients will be passed to 'handler'."-  [port handler]-  (when-let [server @server]-    (ServerSocket/.close server))-  (let [server-socket (ServerSocket. port)]-    (reset! server server-socket)-    (try+(defn minecraft-server+  "Returns a function of a handler that will start a Minecraft server at the specified port.+   Connected clients will be passed asynchronously to the handler"+  [& {:keys [port]}]+  (fn [handler]+    (let [server-socket (ServerSocket. port)]       (loop []-        (let [connection (accept-connection!! server-socket)]-          (io-thread (handler connection)))-        (recur))-      (catch SocketException _))))+        (when-some [connection (accept-connection!! server-socket)]+          (io-thread (handler connection))+          (recur))))))