36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
|
|
# <<*>> -^v- SNOWARE APPLICATION
|
||
|
|
# usage: MINESENTINEL mainloop.
|
||
|
|
# author: S.A.
|
||
|
|
# time: 2026-06-07
|
||
|
|
# license: All rights received.
|
||
|
|
|
||
|
|
require_relative 'server_status_detector'
|
||
|
|
require_relative 'method_executor' # 日志系统在此时初始化
|
||
|
|
|
||
|
|
MethodExecutor.record("info", "mainloop", "MineSentinel started, entering mainloop.")
|
||
|
|
|
||
|
|
# Functional mainloop.
|
||
|
|
def main
|
||
|
|
chkrslt = ServerStatusDetector::MinecraftServer.self_diag
|
||
|
|
if chkrslt[:type]
|
||
|
|
MethodExecutor.record("debug", "mainloop", "Server health check passed.")
|
||
|
|
else
|
||
|
|
MethodExecutor.record("warn", "mainloop", "Server health check FAILED: #{chkrslt[:message]}")
|
||
|
|
for operation in chkrslt[:operation]
|
||
|
|
if operation == "Record"
|
||
|
|
# 消息已在 self_diag 中生成,这里仅记录操作
|
||
|
|
MethodExecutor.record("warn", "mainloop", "Action: Record -> Server died!")
|
||
|
|
elsif operation == "ForceResetServerProcess"
|
||
|
|
MethodExecutor.record("info", "mainloop", "Action: ForceResetServerProcess triggered.")
|
||
|
|
MethodExecutor.reset_minecraft_server
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
|
||
|
|
while true
|
||
|
|
sleep 10
|
||
|
|
main
|
||
|
|
end
|