0065285
Branches > main > 0065285 > files
Update Minecraft server code
Commit: 00652850b53592406ec202e7d27186f6a3bf5345
Parent: e8f7a9b
2 changed files:
src/net/bowmap/core.clj 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 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))))))