From 9bcdd72996be3f4272eeb39e0b8d9612d9accf14 Mon Sep 17 00:00:00 2001 From: ApliNi Date: Sat, 4 May 2024 21:58:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=AA=E8=BF=B0=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 63 +++++++++++++++++++++++++++++------ src/main/resources/config.yml | 4 +-- 2 files changed, 55 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 91b1975..9011e94 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,11 @@ --- + +
更新和数据迁移说明 + ## v4 更新 +v4 版本改动特别大, 建议不要从旧配置中复制内容到新配置, 因为有很多变量名被修改. 此版本对插件进行完全重构, 添加新功能并优化性能, 属于不兼容更新. 在发布正式版后, 建议所有服主更新到此版本, 这需要一些时间来重新修改配置 @@ -26,11 +30,10 @@ 然后将带有换行的指令复制到控制台, 即可一次性导入完毕 -[注意] 对于正版服务器和支持正版以及离线的服务器尽量使用 UUID 而非 NAME - +
-### 注意 -- 此版本添加了完整的指令补全能力, 当显示 `....` 时代表这里支持通过输入的内容进行补全. +### 注意事项 +- 新的版本添加了完整的指令补全能力, 当显示 `....` 时代表这里支持通过输入的内容进行补全. 补全内容可以直接在指令中使用, 包括控制台中补全内容带反斜杠的情况 - 此版本的配置顺序与插件进行数据处理的流程顺序一致 - 此版本许多功能基于"事件程序", 它将被用于发送消息, 以及调度各种功能. 代替了旧版杂乱的功能配置 @@ -45,8 +48,8 @@ # %playerUUID% = 玩家 UUID 36 位字符串 # %playerName% = 玩家名称, 区分大小写 ``` -- 此版本改动特别大, 建议不要从旧配置中复制内容到新配置, 因为有很多变量名被修改 - 此版本准备弃用 Time 为 `-1` 的功能, 这在旧版本代表永远不会过期或等待玩家加入时进行更新 +- 对于正版服务器和支持正版以及离线的服务器尽量使用 UUID 而非 NAME --- @@ -68,16 +71,17 @@ 1. 对于同时支持正版账户和离线账户的服务器, 应始终优先使用 UUID (如果存在), 而非玩家名称. 并且保持开启插件的防止重复数据功能 2. 若需要取消一个玩家的白名单, 可以通过 `del` 和 `ban` 实现, 但这两者有区别: + > "取消白名单" 功能目前并没有一个很好的设计, 如果您有建议欢迎提出 1. `del` 会将账户标签标记为 `NOT` 这同时代表数据已被删除. 如果不需要删除玩家数据, 请不要使用此方法 2. `ban` 操作不会修改账户的数据, 同时会防止其他操作影响账户数据, 适合需要保持玩家数据不被改动的情况 3. 清理玩家数据功能最好在服务器重启后使用, 有少部分插件只会在服务器关闭时断开与玩家数据文件的连接 -4. `....` --- ### 参观账户 -推荐让参观账户使用观察模式加入服务器, 特别是红石服务器. 因为还无法解决生存模式下玩家碰撞实体的问题. +如果您对此功能没有足够的了解和测试, 不应该随意使用它!! +推荐让参观账户使用观察模式加入服务器, 特别是红石服务器. 因为还无法解决生存模式下玩家碰撞实体的问题. 参观账户是外挂在当前的游戏环境中的, 并不是完美的隔离. 可以配合这些插件使用: @@ -86,11 +90,34 @@ - [[UseTranslatedNames]](https://github.com/ApliNi/useTranslatedNames) - 消息过滤/编辑/翻译插件. 可用于防止参观账户收到不必要的消息, 比如可能出现的登录注册消息 - [[CommandWhitelist]](https://github.com/YouHaveTrouble/CommandWhitelist) - 命令白名单. 隐藏和防止执行命令 +--- + +### 地址限制功能 +白名单中存在两种地址限制功能, `ipBlacklist` 用于限制玩家的 IP, `addressConfig` 用于限制玩家连接的**服务器地址**. +插件会在玩家加入时同时显示玩家 IP 和玩家使用的服务器地址, 可以直接用于配置. 日志格式为 `[IpacWhitelist] 玩家名称[玩家IP] -> Server[服务器地址]`. + +- `ipBlacklist` 地址格式使用服务端提供的地址, 格式为 `/127.0.0.1`, `/0:0:0:0:0:0:0:1`. 暂时没有支持端口. +- `addressConfig` 用于限制玩家通过服务器的哪个线路 (域名) 或 IP 连接服务器, 支持端口. + 要注意其中域名是有可能被伪造的, 并且无法获取 SRV 记录名称, 只能得到 SRV 记录中的域名和端口. --- +### 白名单超时 +一个简单的配置, 让长时间没有上线的账户被锁定, 需要通过 `/wl add` 指令重置时间才可恢复. +此功能无法直接禁用, 您可以通过将其改为较大的值来防止它被触发. -### 开发和调试 [待更新] +--- + +## API 和扩展功能 + +#### PlaceholderAPI 占位符 +- `iwl_player_type_name` - 显示当前玩家类型的显示名称, 名称可配置 +- `iwl_player_type` - 显示当前玩家类型的内部名称 + +--- + + +## 开发和调试 [待更新]
点击展开这部分内容 @@ -245,7 +272,7 @@ whitelist: ipBlacklist: [ ] # - '^/192\.168\.100\..+$' # - '^/fe80::1234:.+$' - ipBlacklistMsg: '§6IpacEL §f> §b您已被列入黑名单: §a%playerName%' # var: %ip% + ipBlacklistMsg: '§6IpacEL §f> §b您的 IP 已被列入黑名单: §a%playerName%' # var: %ip% # 限定玩家只能通过以下地址连接服务器 addressConfig: @@ -377,6 +404,11 @@ whitelist: # 白名单中的玩家 WHITE: + + # 距离上一次上线超过此时间就踢出, 如果需要取消可以修改为较大的数值 + timeOut: 18394560 # 7个月 + timeOutMsg: '§6IpacEL §f> §a太久没有上线? 请联系管理员恢复' + onPlayerLoginEvent: [ ] # 玩家登录服务器 onPlayerJoinEvent: # 玩家加入服务器 @@ -423,7 +455,7 @@ command: add: title: '§6IpacEL §f> §a添加到白名单[§b%var%§a]:' isBan: ' - §a%playerName%§f[§7%playerUUID%§f] §b已在黑名单中, 不可操作' - isExist: ' - §a%playerName%§f[§7%playerUUID%§f] §b已在白名单中' + isExist: ' - §a%playerName%§f[§7%playerUUID%§f] §b已在白名单中, 已更新时间记录' isVisit: ' - §a%playerName%§f[§7%playerUUID%§f] §a已从参观账户中重置' finish: ' - §a%playerName%§f[§7%playerUUID%§f] §a已完成' @@ -532,6 +564,17 @@ command: TIME: 5 +# API 相关配置 +api: + PlaceholderAPI: + iwl_player_type: {} + iwl_player_type_name: + NOT: '不存在' + VISIT: '参观账户' + WHITE: '白名单' + VISIT_CONVERT: '白名单 (正在转换)' + BAN: '已封禁' + # 其他消息 message: noEnable: '§6IpacEL §f> §b功能未启用' diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index b3679b6..5a9be3b 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -21,7 +21,7 @@ whitelist: ipBlacklist: [ ] # - '^/192\.168\.100\..+$' # - '^/fe80::1234:.+$' - ipBlacklistMsg: '§6IpacEL §f> §b您已被列入黑名单: §a%playerName%' # var: %ip% + ipBlacklistMsg: '§6IpacEL §f> §b您的 IP 已被列入黑名单: §a%playerName%' # var: %ip% # 限定玩家只能通过以下地址连接服务器 addressConfig: @@ -156,7 +156,7 @@ whitelist: # 距离上一次上线超过此时间就踢出, 如果需要取消可以修改为较大的数值 timeOut: 18394560 # 7个月 - timeOutMsg: '§6IpacEL §f> §a白名单已超时, 请联系管理员恢复' + timeOutMsg: '§6IpacEL §f> §a太久没有上线? 请联系管理员恢复' onPlayerLoginEvent: [ ] # 玩家登录服务器