使用方法:
下载本插件压缩包
解压
把plugins文件夹内容全部复制替换
然后重启服务器即可按照本插件
打开服务器进程守护程序方法:
到服务器根目录/plugins/satest/satesttime.pyw
双击运行satesttime.pyw
默认情况下时间差超过30秒自动重启
你可以把satesttime.pyw第35行的的30改成你想要的秒数
请确保这个秒数大于服务器启动所用的时间!
Python:
import os
import re
from datetime import datetime
import tkinter as tk
import psutil
import subprocess
# 获取bedrock_server.exe的完整路径
bds_directory = os.path.join(os.path.dirname(os.path.dirname(os.getcwd())), "bedrock_server.exe")
# 获取上上上级目录
command_directory = os.path.dirname(os.path.dirname(os.path.dirname(os.getcwd())))
# 定义一个函数来更新时间、时间差和进程信息
def update_info():
# 检查time.txt文件时间
file_path = os.path.join(os.getcwd(), 'time.txt')
pattern = re.compile(r'^\d{1,5}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$')
try:
with open(file_path, 'r') as file:
content = file.read().strip()
if pattern.match(content):
file_time = datetime.strptime(content, '%Y-%m-%d %H:%M:%S')
current_time = datetime.now()
time_difference = (current_time - file_time).total_seconds()
# 更新标签显示信息
label_file_time.config(text=f"读取的时间: {file_time.strftime('%Y-%m-%d %H:%M:%S')}")
label_current_time.config(text=f"当前时间: {current_time.strftime('%Y-%m-%d %H:%M:%S')}")
label_difference.config(text=f"时间差: {time_difference:.0f} 秒")
# 检查时间差是否超过30秒
if time_difference > 30:###就是这里<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
reset_time_difference()
close_bedrock_server()
execute_command_in_new_process()
附带测试用指令
指令/satest
执行后将服务器进入假死状态(while True:pass)
本插件可以做到进程单独对应
适用于多个服务器同时开启的情况!