From 20c2ec8c0332ba1b19e061246a8091c7e874f50e Mon Sep 17 00:00:00 2001 From: jie65535 Date: Mon, 4 Mar 2024 23:28:20 +0800 Subject: [PATCH] first commit --- .gitignore | 1 + Debugger.py | 50 +++++++++++++++++++++++++++++++++ JCursor/Cursor.png | Bin 0 -> 2619 bytes JCursor/JCursor.lua | 67 ++++++++++++++++++++++++++++++++++++++++++++ JDumper.lua | 14 +++++++++ 5 files changed, 132 insertions(+) create mode 100644 .gitignore create mode 100644 Debugger.py create mode 100644 JCursor/Cursor.png create mode 100644 JCursor/JCursor.lua create mode 100644 JDumper.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2bf1ef8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +debug.log \ No newline at end of file diff --git a/Debugger.py b/Debugger.py new file mode 100644 index 0000000..af0725b --- /dev/null +++ b/Debugger.py @@ -0,0 +1,50 @@ +import socket +import signal +import sys + +# 监听的地址和端口 +HOST = '127.0.0.1' +PORT = 12345 + +# 定义信号处理函数 +def signal_handler(sig, frame): + print('\nExiting...') + sys.exit(0) + +# 设置信号处理程序 +signal.signal(signal.SIGINT, signal_handler) +signal.signal(signal.SIGTERM, signal_handler) + +# 创建TCP socket +with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket: + # 设置socket选项,允许地址重用 + server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + # 绑定地址和端口 + server_socket.bind((HOST, PORT)) + # 开始监听 + server_socket.listen(1) + print(f"Listening on {HOST}:{PORT}...") + + try: + while True: + # 接受连接 + conn, addr = server_socket.accept() + with conn: + print(f"Connected by {addr}") + + # 打开/创建debug.log文件 + with open("debug.log", "a") as log_file: + while True: + data = conn.recv(1024) + if not data: + print(f"Connection closed by {addr}") + break + # 将收到的消息写入到控制台和日志文件中 + msg = data.decode('utf-8') + print(msg) + log_file.write(msg) + log_file.flush() + + except KeyboardInterrupt: + print('\nKeyboardInterrupt: Exiting...') + sys.exit(0) \ No newline at end of file diff --git a/JCursor/Cursor.png b/JCursor/Cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..a2428d73eb94976c115a6f46237b99da8ae56e8f GIT binary patch literal 2619 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 SerDk7FLJPTwxL-=kpBSD10!Mp literal 0 HcmV?d00001 diff --git a/JCursor/JCursor.lua b/JCursor/JCursor.lua new file mode 100644 index 0000000..19eadd5 --- /dev/null +++ b/JCursor/JCursor.lua @@ -0,0 +1,67 @@ +--- STEAMODDED HEADER +--- MOD_NAME: J Cursor +--- MOD_ID: JCursor +--- MOD_AUTHOR: [Jie65535] +--- MOD_DESCRIPTION: Custom Cursor (./Mods/JCursor/Cursor.png) + +---------------------------------------------- +------------MOD CODE ------------------------- + +SMODS.registerUIElement("JCursor", { + { + n = G.UIT.R, + config = { + padding = 0.2, + align = "cm" + }, + nodes = { + UIBox_button({ + minw = 3.85, + button = "openModDirectory", + label = { + "Open directory" + } + }), + UIBox_button({ + minw = 3.85, + button = "refreshCursor", + label = { + "Refresh cursor" + } + }), + } + } +}) + +local function getModDirectory() + return "/Mods/JCursor" +end + +local function getCursorFile() + return getModDirectory() .. "/Cursor.png" +end + +local function setCursor(filename) + cursor = love.mouse.newCursor(filename, 0, 0) + love.mouse.setCursor(cursor) +end + +function G.FUNCS.openModDirectory(arg_736_0) + sendDebugMessage("openModDirectory") + love.system.openURL("file://" .. love.filesystem.getSaveDirectory() .. getModDirectory()) +end + +function G.FUNCS.refreshCursor(arg_736_0) + sendDebugMessage("refreshCursor") + setCursor(getCursorFile()) +end + +local defaultCursor = getCursorFile() +if love.filesystem.exists(defaultCursor) then + setCursor(defaultCursor) +end + +sendDebugMessage("JCursor loaded!") + +---------------------------------------------- +------------MOD CODE END---------------------- \ No newline at end of file diff --git a/JDumper.lua b/JDumper.lua new file mode 100644 index 0000000..4430e99 --- /dev/null +++ b/JDumper.lua @@ -0,0 +1,14 @@ +--- STEAMODDED HEADER +--- MOD_NAME: J Dumper +--- MOD_ID: JDumper +--- MOD_AUTHOR: [Jie65535] +--- MOD_DESCRIPTION: Dump all game information! + +---------------------------------------------- +------------MOD CODE ------------------------- + + +sendDebugMessage("J Dumper Activated!") + +---------------------------------------------- +------------MOD CODE END---------------------- \ No newline at end of file