




它可以列出所有被警告、封禁、禁言的玩家列表
确切的来说应该叫记录,其中还包括了玩家有没有被解封的信息
关于它如何配置可以参考:https://gitlab.com/ruany/litebans-php/-/wikis/Installation
参考操作:
其实省事点可以用各种各样的面板来搞web的
这里拿宝塔面板举例:
将自己喜欢的域名(以下以ban.foxsland.top举例)解析到你的web服务器上
根据litebans的web要求
你的宝塔面板至少需要以下”物品“:
一个web核心如:Niginx
PHP 最好是8.1
一个数据库,MySQL或MariaDB(如果在搭建网站之前就已经配置成功过litebans的数据库者可以忽略这一点)
在宝塔面板添加一个网站填写好刚才你绑定的域名并选好php版本:
点击此处下载最新版本的web压缩包
将压缩包文件解压到web根目录里:
(像这样)
别忘了修改文件!!!
打开上述目录中的\inc\settings.php修改一定配置
修改默认语言(改为中文):
(支持英语、西班牙语、中文、俄语、德语、日语、荷兰语、意大利语)
#找到$this->lang
#改为:
;$this->lang = 'zh_CN.utf8';复制代码配置好数据库设置:
// Database information
$this->host = 'localhost';
$this->port = 3306;
$this->database = 'litebans';
$this->username = '';
$this->password = '';
复制代码修改时区:
(如果想找到更多可设置的时区可以参考:这里)
#找到 $this->timezone = "UTC";
#将其改为
$this->timezone = "Asia/Shanghai";复制代码此时再访问设置好的域名就可以访问这个网站了

# LiteBans config.yml generated by version 2.12.4复制代码
消息文件:(messages.yml全汉化)
# LiteBans messages.yml由版本2.12.4生成
#
# 下列变量可用于大多数涉及处罚的消息中:
#
# 处罚特定变量
# $id - 数据库中处罚的ID。
# $idRandom - 数据库中处罚的ID,转换为随机、不可预测但完全可逆的ID(例如:18535006 -> bdd405527)。此变量的密钥存储在config.yml中。
# $type - 处罚类型 - 封禁、禁言、警告、踢出。
# $reason - 处罚原因
# $executor - 主持人的名称,或者如果在配置中启用了此功能,则为其显示名称(/nick)。
# $executorUUID - 主持人的UUID
# $removalReason - 移除此处罚的原因(通过/unban),如果适用
# $permanent - 此处罚是否永久
# $ipban - 是否为IP封禁
# $silent - 此处罚是否以静默方式执行(-s)
# $active - 此处罚是否有效
#
# 受影响玩家特定变量
# $playerDisplayName - 玩家显示名称。如果在配置中未启用显示名称,或者在消息的上下文中无法获取玩家的显示名称,则将使用玩家的常规名称。
# $playerName - 玩家名称
# $playerUUID - 受影响玩家的UUID
# $playerIP - 受影响玩家的IP
# $playerServer - 受影响玩家所在的服务器 - 仅在他们在线时准确。
# $playerLoginDate - 受影响玩家的最后登录日期
# $playerBans - 此玩家收到的封禁次数
# $playerMutes - 此玩家收到的禁言次数
# $playerWarnings - 此玩家收到的警告次数
# $playerKicks - 此玩家收到的踢出次数
# $geoip - 受影响玩家的国家,需要在配置中启用GeoIP,无法与导入的封禁一起使用
#
# 服务器
# 这些变量代表一个服务器。
# 如果插件安装在Spigot上,则服务器由config.yml中的"server_name"选项表示。
# 如果插件安装在BungeeCord上,则服务器由代理的config.yml中的"servers"部分中的名称表示。
# $serverScope - 处罚的范围(将影响的服务器)
# $serverOrigin - 处罚的来源(放置处罚的服务器/子服务器)
#
# 日期
# 示例格式:"2017-02-03",取决于time_format
# $dateStart - 处罚放置日期
# $dateEnd - 处罚将过期的日期,如果永久则为"forever"
# $dateRemoved - 处罚被移除的日期,如果适用
#
# 持续时间
# 示例格式:"20天,5小时,2分钟"。如果永久,为"forever",如果已过期,为"expired"(两者都可配置)。
# $duration - 直到过期的时间
# $originalDuration - 处罚的完整持续时间。
# $timeSince - 放置后经过的时间
#
# 配置的消息变量
# 这些变量代表此配置中的消息(messages.yml)
# $base - banned_message_base
# $appealMessage - banned_message_appeal_message
#
# 全局变量
# $activeBans, $activeMutes, $activeWarnings - 全局有效处罚的总数
# $totalBans, $totalMutes, $totalWarnings, $totalKicks - 全局处罚的总数(包括不活动的处罚)
#
# 聊天变量
# $playerPrefix - 受影响玩家的聊天前缀
# $playerSuffix - 受影响玩家的聊天后缀
# $executorPrefix - 主持人的聊天前缀
# $executorSuffix - 主持人的聊天后缀
# 通过将消息设置为"",可以禁用任何消息。空消息将不会由插件发送。
# 可以使用"\n"将新行添加到任何消息中(例如:"第一行\n第二行")。
# 所有消息都支持十六进制颜色(#000000 - #FFFFFF)
#
# 悬停文本需要权限"litebans.json.hover_text"才能查看,没有权限的玩家将看到没有悬停文本的消息。
# JSON示例:
# muted: '&c你被禁言了!{hoverText: #FF9900原因:$reason \n&7剩余时间:$duration}'
#
# https://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html
# 带有小时和分钟的示例时间格式:
# time_format: 'dd/MM/yyyy HH:mm'
# 示例语言环境:[en, fr, de](默认使用系统语言环境)
locale: system
time_format: yyyy-MM-dd
default_ban_reason: 封禁原因未指定!
default_mute_reason: 刷屏
default_unban_reason: 封禁解除原因未指定!
default_unmute_reason: 解除禁言原因未指定!
default_unwarn_reason: 解除警告原因未指定!
banned_message_base: "&c你已被服务器封禁!\n&f封禁时间:$dateStart \n封禁操作者:$executor \n封禁原因:$reason&f\
\ \n"
banned_message: "$base \n封禁将于 $duration 后解除 \n$appealMessage "
banned_message_permanent: "$base \n你已被永久封禁! \n$appealMessage "
banned_message_appeal_message: ''
banned_message_geoip_blacklist: "&c你已被服务器封禁!&f\n你所在的位置被列入黑名单:\n$geoip "
bungee_switch_banned: "&c你在 $serverScope 上被封禁!\n原因: $reason "
muted: "&c你已被禁言!(剩余时间:$duration)\n &c禁言原因:&e$reason "
muted_permanent: "&c你已被永久禁言! \n&c禁言原因:&e$reason "
warned_join: '&c你有新的警告:'
warned_join_entry: '&4 - 警告操作者:&c$executor&4,原因:&c$reason &4(&c$timeSince 之前&4) '
notify:
banned_player_join: '&c$player&f 尝试加入服务器,但已被封禁(剩余时间:$duration)!'
banned_geoip_blacklist: '&c$player&f 尝试加入服务器,但所在位置被列入黑名单($geoip)!'
permission_error: '&c你没有权限!'
error_no_reason_provided: '&c你必须提供封禁原因!'
error_no_reason_removal: '&c你必须提供解除封禁的原因!'
error_no_sql_connection: '&cLiteBans未连接到数据库!'
error_no_uuid_found: '&c玩家不存在。'
error_no_duration: '&c未检测到有效的时间指定!'
error_console_only: '&c此命令只能从控制台使用。'
error_no_template_provided: '&c您必须为此处罚提供一个模板!'
duration_limit_error: '&c最长允许的时间为:$duration'
internal_error: '&c执行此命令时出现内部错误。'
command:
ban:
usage: '&c用法:$command [-s] [时间] [原因]'
example: '&c示例:$command 玩家 7d [原因]'
silent_prefix: '&f[&7静默&f] '
broadcast_ban: '&a$executor &f封禁了 &a$bannedPlayer &f,原因:''&a$reason&f'''
broadcast_tempban: '&a$executor &f临时封禁了 &a$bannedPlayer &f,时长:$tempDuration,原因:''&a$reason&f'''
broadcast_ip_ban: '&a$executor &f封禁了IP &a$bannedPlayer &f,原因:''&a$reason&f'''
broadcast_temp_ip_ban: '&a$executor &f临时封禁了IP &a$bannedIP &f,时长:$tempDuration,原因:''&a$reason&f'''
previous_ban_removed: '&a已移除 $bannedPlayer 的先前封禁记录。'
previous_ban_existing: '&c$bannedPlayer 已被封禁,你没有权限替换现有的封禁记录。'
unban_fail: '&c目标未被封禁!'
no_override: '&c玩家已被封禁!'
exempt: '&c你无法封禁 $player!'
cooldown: '&c你需要等待 $duration 才能再次使用此命令。'
response: ''
ip_hidden: '[IP地址]'
unban_usage: '&c用法:$command '
broadcast_unban: '&a$executor &f解除了对 &a$playerName &f的封禁,原因:''&a$removalReason&f'''
unban_queued: '&c目标未被封禁!&6如果他们尝试重新连接,将解除封禁。'
mute:
usage: '&c用法:$command [-s] [时间] [原因]'
example: '&c示例:$command 玩家 7d [原因]'
broadcast: '&a$executor &f禁言了 &a$mutedPlayer &f,原因:''&a$reason&f'''
broadcast_tempmute: '&a$executor &f临时禁言了 &a$playerName &f,时长:$tempDuration,原因:''&a$reason&f'''
broadcast_ip_mute: '&a$executor &f禁言了IP &a$playerName &f,原因:''&a$reason&f'''
broadcast_temp_ip_mute: '&a$executor &f临时禁言了IP &a$mutedIP &f,时长:$tempDuration,原因:''&a$reason&f'''
message: |-
&4你已被 $executor 禁言&4,
原因:&c'&4$reason&c'&4。 &4禁言将于 $duration 后解除.
message_permanent: "&4你已被 $executor 永久禁言&4,原因:&c'&4$reason&c'&4。 \n&4此禁言将不会解除。\
\ "
unmute_fail: '&c目标未被禁言!'
no_override: '&c玩家已被禁言!'
previous_mute_removed: '&a已移除 $mutedPlayer 的先前禁言记录。'
previous_mute_existing: '&c$mutedPlayer 已被禁言,你没有权限替换现有的禁言记录。'
exempt: '&c你无法禁言 $player!'
notification: '&c$mutedPlayer 尝试发言,但已被禁言。'
error_not_enabled: '&c禁言在配置中未启用!'
response: ''
unmute_usage: '&c用法:$command '
broadcast_unmute: '&a$executor &f解除了对 &a$mutedPlayer &f的禁言,原因:''&a$removalReason&f'''
warn:
usage: '&c用法:$command [-s] [原因]'
example: ''
broadcast: '&a$executor &f对 &a$warnedPlayer &f发出警告,原因:''&a$reason&f'''
message: "&4你已被 $executor 警告&4,原因:&c'&4$reason&c'&4。 \n&4此警告将于 $duration 后解除。 "
list_entry: '&f - 警告操作者:$executor,原因:''$reason&f'''
unwarn_response: '&a已移除 $player 的最后一个警告。'
unwarn_fail: '&c目标没有警告!'
exempt: '&c你无法对 $player 发出警告!'
response: ''
unwarn_usage: '&c用法:$command '
broadcast_unwarn: '&a$executor &f解除了对 &a$warnedPlayer &f的警告'
kick:
usage: '&c$command [原因]'
no_match: '&c错误:&4未找到玩家。'
kick_requested: '&6玩家 $player 在此服务器上不在线。已请求跨服务器踢出。'
message: 被 $executor 踢出:$reason
message_no_reason: 被 $executor 踢出。
response: '&6$player 已被踢出。'
broadcast: '&a$player&f 被 &a$executor&f 踢出,原因:“&a$reason&f”。'
broadcast_no_reason: '&a$player&f 被 &a$executor&f 踢出。'
exempt: '&c你无法踢出 $player!'
history:
usage: '&c$command [条目数=10]'
start: '&a$target 的历史记录(限制:$limit):'
ban_entry: |-
&a -- [&f$timeSince 之前&a] --&f
&f $name 被 $executor 封禁:'&a$reason&f'
mute_entry: |-
&a -- [&f$timeSince 之前&a] --&f
&f $name 被 $executor 禁言:'&a$reason&f'
warn_entry: |-
&a -- [&f$timeSince 之前&a] --&f
&f $name 被 $executor 警告:'&a$reason&f'
kick_entry: |-
&a -- [&f$timeSince 之前&a] --&f
&f $name 被 $executor 踢出:'&a$reason&f'
unban_entry: |2-
&f$name 被 $executor 解封:'&7$removalReason&f'
unmute_entry: |2-
&f$name 被 $executor 解除禁言:'&7$removalReason&f'
active_suffix: '&f [&c生效中&f]'
active_suffix_temp: |-
&f [&c生效中&f]
&f剩余时间:$duration。
expired_suffix: '&f [&8已过期&f]'
error_no_loginrecord: '&c用户尚未加入过服务器。'
error_no_user: '&c未找到用户。'
warnings:
usage: '&c$command '
start: '&a$target 的活跃警告:'
prunehistory:
usage: '&c$command [时长]'
message: '&a历史记录已清理。'
staffhistory:
usage: '&c$command [条目数=10]'
start: '&a$target 的员工历史记录(限制:$limit):'
staffrollback:
usage: '&c$command [时长]'
message: '&a回滚完成,总共移除了 $amount 条记录。'
banlist:
start: '&f=== &a第 $page 页,共 $total 页&f ==='
iphistory:
usage: '&c$command [条目数=10]'
start: '&a$target 的登录历史记录(限制:$limit):'
entry: '&a - [&f$date&a]&f $name&a:$ip'
error_no_history: '&c未找到历史记录。'
namehistory:
start: '&a$target 的名称历史记录(限制:$limit):'
usage: '&c$command [条目数=10]'
entry: '&a - [&f$playerLoginDate&a]&6 $playerName'
dupeip:
usage: '&c$command '
start: |-
&f正在扫描 &a$name&f 的IP:&a$ip&f。
&f[&a在线&f] [&7离线&f] [&c封禁&f] [&eIP封禁&f]
start_no_ip: |-
&f正在扫描 &7$name&f。
&f[&a在线&f] [&7离线&f] [&c封禁&f] [&eIP封禁&f]
end: ''
multiple_addresses: '[$num addresses]'
separator: '&f, '
online: '&a'
offline: '&7'
banned: '&c'
ip_banned: '&e'
muted: '&6'
ipreport:
start: '&f搜索&a$num&f 个在线玩家... [&a在线&f] [&7离线&f] [&c封禁&f]'
entry: '&f$player&a: $result'
checkban:
usage: '&c$command '
no_ban: '&c目标未被封禁!'
banned: |-
&a目标 &f[&a$target&f]&a 已被封禁:
&a封禁者:$executor
&a原因:$reason&a
&a封禁时间:$dateStart
&a解封时间:$dateEnd ($duration)
&a封禁服务器:&6&a$serverOrigin&a,服务器范围:&6$serverScope
&aIP封禁:$ipban,静默封禁:$silent,永久封禁:$permanent
checkmute:
usage: '&c$command '
no_mute: '&c目标未被禁言!'
muted: |-
&a目标 &f[&a$target&f]&a 已被禁言:
&a禁言者:$executor
&a原因:$reason&r
&a禁言时间:$dateStart
&a解禁时间:$dateEnd ($duration)
&a禁言服务器:&6$serverOrigin&a,服务器范围:&6$serverScope
&aIP禁言:$ipban,静默禁言:$silent,永久禁言:$permanent
lastuuid:
usage: '&c$command '
message: '&f玩家 &a$name&f 的最后UUID为:&a$uuid'
geoip:
usage: '&c$command '
message: '&a$target&f 来自:&a$result'
error_disabled: '&c配置中未启用GeoIP支持!'
error_unavailable: '&cGeoIP支持当前不可用,请确保已下载!'
error_not_found: '&c未找到 $target 的GeoIP信息。'
lockdown:
usage: '&c$command
message: '&c服务器已启动封锁(原因:" $reason&c")'
stopped: '&a封锁已解除。'
kick_message: |-
服务器已启动封锁,请稍后再试。
原因:$reason
kick_message_global: |-
网络已启动封锁,请稍后再试。
原因:$reason
error_not_active: '&c封锁未启动!'
togglechat:
toggle_off: '&a聊天已关闭。'
toggle_on: '&a聊天已开启。'
clearchat:
broadcast: '&a聊天已被 $executor 清空。'
mutechat:
response: '&c服务器聊天当前已禁用!'
broadcast_disabled: '&c服务器聊天已被 $executor 禁用。'
broadcast_enabled: '&a服务器聊天已被 $executor 启用。'
litebans:
reload_success: '&aLiteBans已成功重新加载。'
reload_fail: '&c重新加载失败。'
reload_fail_connect: '&aLiteBans已重新加载。&c无法连接到数据库。'
reload_fail_config: |-
&c[LiteBans] &4config.yml无效,无法加载,将使用默认配置。
&c请查看服务器控制台获取更多信息。
reload_fail_messages: |-
&c[LiteBans] &4messages.yml无效,无法加载,将使用默认消息。
&c请查看服务器控制台获取更多信息。
fix_history: '&a正在修复表 $table 的历史记录...'
fix_history_result: '&a已添加 $amount 条记录。'
fix_history_offline_uuids: '&c$amount个UUID未从Mojang获取,因为它们是离线模式UUID。'
import_usage: '&c$command import start'
import_start: '&a从 $db 导入中,这可能需要一些时间...'
import_finish: '&a导入成功。导入了 $bans 个封禁,$ipbans 个IP封禁。'
import_finish_litebans: '&a导入成功。已向数据库添加了 $amount 条记录。'
import_fail: '&c导入失败。请检查控制台。'
import_unsupported: '&c暂不支持从 ''$name'' 导入!'
allow_usage: '&c用法:/litebans allow '
allow_added: '&e已允许玩家 &6$playerName&e 加入服务器。'
allow_removed: '&e已移除玩家 &6$playerName&e 的加入权限。'
allow_check_true: '&a玩家 &6$playerName&a 允许加入服务器。'
allow_check_false: '&c玩家 &6$playerName&c 不允许加入服务器。'
allow_error_add: '&c错误:$playerName 已被允许加入服务器。'
allow_error_remove: '&c错误:$playerName 未被允许加入服务器。'
duration:
expired: 已过期
forever: 永久
year: 年
years: 年
month: 月
months: 月
week: 周
weeks: 周
day: 天
days: 天
hour: 小时
hours: 小时
minute: 分钟
minutes: 分钟
second: 秒
seconds: 秒
format: '%d %s'
separator: ', '
strings:
global: 全局
'null': 未定义
'true': 是
'false': 否复制代码
处罚模板:(templates.yml全汉化)
请注意,以下内容不是我在玩梗,是这个插件的这个文件就长这样
# LiteBans templates.yml由版本2.12.4生成
# 每个模板都有以下选项:
# reason | 如果没有指定原因,则使用的默认原因
# message | 惩罚玩家收到惩罚时显示的消息
# duration | 惩罚的持续时间(或永久)
# permission | 需要的权限(除了所有其他适用权限之外)来使用模板,或通过/unban、/unmute、/unwarn删除此模板下的任何惩罚。
# actions | 将由发出惩罚的玩家执行的命令列表
# Ladders:
# - 每个模板都有自己可配置的阶梯。阶梯从最低点爬升到最高点。
# - 阶梯必须按降序指定(从高到低)。最终的惩罚位于阶梯的顶部,并且首先列出。
# - 每个阶梯步骤可以覆盖模板选项(reason、message、duration、permission)。
# Usage:
# - 所有模板可以直接使用它们的名称(/ban [reason])
# - 模板没有隐式前缀。如果您想要一个模板前缀,比如 "!" 或 "#",请相应地命名您的模板(使用引号,例如 '!template')。
# Technical limitations:
# - 此文件 templates.yml 必须在所有服务器上进行复制,以使模板正常工作。
# - 每种类型的模板有255个限制。
# - 在不重置所有活动模板的情况下,无法从此配置中删除或重新排序模板(随时重命名现有模板或添加新模板是可以的)。
# 如果您希望从头开始,清除所有现有惩罚的模板,请使用 "/litebans reset-templates"。
ban-templates:
# 一个示例模板。
# 这个示例不是认真的,因为Minecraft没有菠萝和披萨,所以创建菠萝披萨是不可能的。
# 使用方法:/ban PineapplePizza
PineapplePizza:
message: |-
&c你被Finecrafting-Minecrafting网络封禁了!
#FF0000你因为制作了菠萝披萨而被封禁。
#FF8000这是一个严重的罪行。我们对此不轻视。
#FF0000请不要试图申诉此惩罚。我们知道你做了什么,证据是无可辩驳的。
&c此封禁将在&e$duration后过期。
permission: litebans.unban.pineapple
ladder:
# 在此阶梯中,第一次违规将导致封禁五年,第二次违规将导致永久封禁。
final:
reason: '#FF0000制作菠萝披萨!- 最终惩罚'
duration: permanent
first:
reason: '#FF0000制作菠萝披萨!- 第一次违规'
duration: 5 years
# 此阶梯将永不过期。每次违规都将被计入直到永远。
expire_ladder: never
# 这是另一个示例模板。
# 使用方法:/ban Rule985
Rule985:
reason: '规则 #985'
message: |-
&c你被Finecrafting-Minecrafting网络封禁了!
#FF0000你因为违反规则 #985 而被封禁。
#FFFF00请参阅Finecrafting-Minecrafting规则手册&a第51页#FFFF00以获取更多信息。
#FF0000你的惩罚将在:#CC7700 $duration后过期
# 在此阶梯中,第一次违规将导致封禁两周,然后是一个月的封禁,然后是三个月的封禁,最后一次违规将导致一年的封禁。
ladder:
final:
duration: 1 year
third:
duration: 3 months
second:
duration: 1 month
first:
duration: 2 weeks
# 此阶梯将在10个月后过期,这意味着此模板下超过10个月的惩罚不会计入阶梯。
expire_ladder: 10 months
mute-templates: {}
warn-templates:
CustomWarning:
reason: '自定义客户端'
message: |-
&e你因为自定义客户端而收到警告。
&c请在5分钟内将所有设置恢复为默认值,否则你将被封禁。
ladder:
second:
reason: '自定义客户端 - 第二次警告'
actions:
- /ban $playerName 5d 自定义客户端
first: {}
kick-templates:
Speeding:
reason: '跑得太快'
message: '你跑得太快了!请放慢速度再试一次。'复制代码
汉化文件打包下载:
指令、权限:
命令权限备注/banlitebans.ban允许永久封禁和临时封禁。如果启用 punish_ip,则需要 litebans.ipban 权限。/mutelitebans.mute允许永久禁言和临时禁言。如果启用 punish_ip,则需要 litebans.ipmute 权限。/warnlitebans.warn/kicklitebans.kick跨服务器踢出玩家使用 litebans.kick.global。/ipbanlitebans.ipban使用通配符进行 IP 封禁使用 litebans.ipban.wildcard。/ipmutelitebans.ipmute使用通配符进行 IP 禁言使用 litebans.ipmute.wildcard。/tempbanlitebans.tempban只允许临时封禁/tempmutelitebans.tempmute只允许临时禁言/unbanlitebans.unban.own使用 litebans.unban 来解封你没有封禁的玩家。/unmutelitebans.unmute.own使用 litebans.unmute 来解禁你没有禁言的玩家。/unwarnlitebans.unwarn.own使用 litebans.unwarn 来解除你没有警告的玩家。/historylitebans.history/staffhistorylitebans.staffhistory/banlistlitebans.banlist/warningslitebans.warnings.self使用 litebans.warnings 在其他玩家身上。/dupeiplitebans.dupeip也称为 /alts。使用 litebans.dupeip.viewip 来查看 IP 地址(在 config.yml 中的 "security" 下的 "dupeip" 必须设置为 false)/ipreportlitebans.ipreport/geoiplitebans.geoip/checkbanlitebans.checkban/checkmutelitebans.checkmute/lockdownlitebans.lockdown/clearchatlitebans.clearchat/mutechatlitebans.mutechat/lastuuidlitebans.lastuuid

默认情况下litebans会使用h2的方式存储,不需要额外配置数据库(但如果是多服同步的情况则必须配置数据库)首先如果是单个bukkit\spigot\paper\folia\purpur端的情况直接丢入plugins开服即可(如果需要上数据库的话再到config配置就行)如果是多服的情况或是BungeeCord+多子服的情况,这边建议是一定要连相同的数据库并在所有服安装这个插件(bc建议是子服和bc都安装litebans因为有些自动封禁插件在子服仅调用子服ban而不是bc上litebans的ban以至于被封的玩家仅仅只是被子服封了)