Skip to content

Commit 50dc738

Browse files
authored
Merge pull request #14 from wuyaiii/main
增加RCON中文支持和自定义公告
2 parents 6d6408f + 6f3dda6 commit 50dc738

File tree

3 files changed

+342
-74
lines changed

3 files changed

+342
-74
lines changed

Diff for: src/config.ini

+17
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ backup_dir = C:\Users\Administrator\Desktop\steamcmd\steamapps\common\PalServer
88
# 启动参数可以为空(自定义端口和玩家数量,例如: arguments = -port=21424 -players=32)
99
arguments =
1010

11+
# 填好游戏主目录 此项改为True 保存并启动 即可注入支持中文rcon
12+
# Tis: 试验性功能,并不保证所有人能用,且有部分机器启动会崩溃,且有性能损失。
13+
# 默认自动解压"UE4SS-PalServerInject.zip"文件到"~\PalServer\Pal\Binaries\Win64"目录下
14+
PalInject_enabled = False
15+
1116
# 自定义服务器备份间隔必须 ≥ 1分钟
1217
backup_interval_hours = 1
1318
backup_interval_minutes = 0
@@ -37,7 +42,19 @@ COMMAND = Broadcast
3742
# Tis: palserver服务器消息有限制非脚本问题,每段字符数上限大概50个字符左右
3843
# 而且会忽略空格后的内容且无法输入中文,无法连续发送消息
3944
shutdown_notices = 30:Service_restarts_for_30_seconds;20:Service_restarts_for_20_seconds;10:Service_restarts_for_10_seconds
45+
shutdown_notices_cn = 30:[公告]服务器将在 30 秒后重启!;20:[公告]服务器将在 20 秒后重启!;10:[公告]服务器将在 10 秒后重启!;5:[公告]服务器将在 5 秒后重启!
4046

47+
# 自动通过注入模式发送公告,可增加最多10个公告信息,按顺序填写,多余的公告删除即可
48+
# Tis: 该配置只有在PalInject_enabled = True时有效
49+
[Messages]
50+
announcement_enabled = False
51+
# 公告间隔时间尽量大于30秒,时间尽量不要太短,游戏内聊天框无法向下滚动。
52+
announcement_time = 300
53+
announcement_messages_1 = 公告1
54+
announcement_messages_2 = 公告2
55+
announcement_messages_3 = 公告3
56+
announcement_messages_4 = 公告4
57+
announcement_messages_5 = 公告5
4158

4259
[Memory]
4360
# 已使用内存百分比达到阈值进行重启

Diff for: src/read_conf.py

+20
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def read_config():
1515
main_directory = config.get('Settings', 'main_directory')
1616
backup_dir = config.get('Settings', 'backup_dir')
1717
arguments = config.get('Settings', 'arguments')
18+
palinject_enabled = config.getboolean('Settings', 'PalInject_enabled')
1819
use_multicore_options = config.getboolean('Settings', 'use_multicore_options')
1920
backup_interval_hours = config.getint('Settings', 'backup_interval_hours')
2021
backup_interval_minutes = config.getint('Settings', 'backup_interval_minutes')
@@ -26,12 +27,26 @@ def read_config():
2627
polling_interval_seconds = config.getint('Memory', 'polling_interval_seconds')
2728
memory_usage_threshold = config.getint('Memory', 'memory_usage_threshold')
2829
shutdown_notices = dict(item.split(':') for item in config.get('RCON', 'shutdown_notices').split(';'))
30+
shutdown_notices_cn = dict(item.split(':') for item in config.get('RCON', 'shutdown_notices_cn').split(';'))
2931
rcon_enabled = config.getboolean('RCON', 'rcon_enabled')
3032
rcon_host = config.get('RCON', 'HOST')
3133
rcon_port = config.getint('RCON', 'PORT')
3234
rcon_password = config.get('RCON', 'AdminPassword')
3335
rcon_command = config.get('RCON', 'COMMAND')
3436

37+
announcement_enabled = config.getboolean('Messages', 'announcement_enabled')
38+
announcement_time = config.getint('Messages', 'announcement_time')
39+
40+
# 获取公告消息
41+
announcement_messages = []
42+
for i in range(1, 11): # 10个公告消息
43+
key = f'announcement_messages_{i}'
44+
if config.has_option('Messages', key):
45+
message = config.get('Messages', key)
46+
announcement_messages.append(message)
47+
else:
48+
break
49+
3550
# 将小时和分钟转换为秒
3651
restart_interval = (restart_interval_hours * 60 + restart_interval_minutes) * 60
3752
backup_interval = (backup_interval_hours * 60 + backup_interval_minutes) * 60
@@ -40,6 +55,7 @@ def read_config():
4055
'main_directory': main_directory,
4156
'backup_dir': backup_dir,
4257
'arguments': arguments,
58+
'palinject_enabled': palinject_enabled,
4359
'use_multicore_options': use_multicore_options,
4460
'rcon_enabled': rcon_enabled,
4561
'rcon_host': rcon_host,
@@ -49,11 +65,15 @@ def read_config():
4965
'backup_interval': backup_interval,
5066
'restart_interval': restart_interval,
5167
'shutdown_notices': shutdown_notices,
68+
'shutdown_notices_cn': shutdown_notices_cn,
5269
'daemon_enabled': daemon_enabled,
5370
'daemon_time': daemon_time,
5471
'memory_monitor_enabled': memory_monitor_enabled,
5572
'polling_interval_seconds': polling_interval_seconds,
5673
'memory_usage_threshold': memory_usage_threshold,
74+
'announcement_enabled': announcement_enabled,
75+
'announcement_time': announcement_time,
76+
'announcement_messages': announcement_messages,
5777
}
5878

5979

0 commit comments

Comments
 (0)