Skip to content

Commit

Permalink
更新自述文件
Browse files Browse the repository at this point in the history
  • Loading branch information
ApliNi committed May 4, 2024
1 parent e097f43 commit 9bcdd72
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 12 deletions.
63 changes: 53 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@

---


<details><summary>更新和数据迁移说明</summary>

## v4 更新
v4 版本改动特别大, 建议不要从旧配置中复制内容到新配置, 因为有很多变量名被修改.
此版本对插件进行完全重构, 添加新功能并优化性能, 属于不兼容更新.
在发布正式版后, 建议所有服主更新到此版本, 这需要一些时间来重新修改配置

Expand All @@ -26,11 +30,10 @@

然后将带有换行的指令复制到控制台, 即可一次性导入完毕

[注意] 对于正版服务器和支持正版以及离线的服务器尽量使用 UUID 而非 NAME

</details>

### 注意
- 此版本添加了完整的指令补全能力, 当显示 `....` 时代表这里支持通过输入的内容进行补全.
### 注意事项
- 新的版本添加了完整的指令补全能力, 当显示 `....` 时代表这里支持通过输入的内容进行补全.
补全内容可以直接在指令中使用, 包括控制台中补全内容带反斜杠的情况
- 此版本的配置顺序与插件进行数据处理的流程顺序一致
- 此版本许多功能基于"事件程序", 它将被用于发送消息, 以及调度各种功能. 代替了旧版杂乱的功能配置
Expand All @@ -45,8 +48,8 @@
# %playerUUID% = 玩家 UUID 36 位字符串
# %playerName% = 玩家名称, 区分大小写
```
- 此版本改动特别大, 建议不要从旧配置中复制内容到新配置, 因为有很多变量名被修改
- 此版本准备弃用 Time 为 `-1` 的功能, 这在旧版本代表永远不会过期或等待玩家加入时进行更新
- 对于正版服务器和支持正版以及离线的服务器尽量使用 UUID 而非 NAME

---

Expand All @@ -68,16 +71,17 @@
1. 对于同时支持正版账户和离线账户的服务器, 应始终优先使用 UUID (如果存在), 而非玩家名称.
并且保持开启插件的防止重复数据功能
2. 若需要取消一个玩家的白名单, 可以通过 `del` 和 `ban` 实现, 但这两者有区别:
> "取消白名单" 功能目前并没有一个很好的设计, 如果您有建议欢迎提出
1. `del` 会将账户标签标记为 `NOT` 这同时代表数据已被删除. 如果不需要删除玩家数据, 请不要使用此方法
2. `ban` 操作不会修改账户的数据, 同时会防止其他操作影响账户数据, 适合需要保持玩家数据不被改动的情况
3. 清理玩家数据功能最好在服务器重启后使用, 有少部分插件只会在服务器关闭时断开与玩家数据文件的连接
4. `....`

---

### 参观账户
推荐让参观账户使用观察模式加入服务器, 特别是红石服务器. 因为还无法解决生存模式下玩家碰撞实体的问题.
如果您对此功能没有足够的了解和测试, 不应该随意使用它!!

推荐让参观账户使用观察模式加入服务器, 特别是红石服务器. 因为还无法解决生存模式下玩家碰撞实体的问题.
参观账户是外挂在当前的游戏环境中的, 并不是完美的隔离.

可以配合这些插件使用:
Expand All @@ -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` - 显示当前玩家类型的内部名称

---


## 开发和调试 [待更新]

<details><summary>点击展开这部分内容</summary>

Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -377,6 +404,11 @@ whitelist:

# 白名单中的玩家
WHITE:

# 距离上一次上线超过此时间就踢出, 如果需要取消可以修改为较大的数值
timeOut: 18394560 # 7个月
timeOutMsg: '§6IpacEL §f> §a太久没有上线? 请联系管理员恢复'

onPlayerLoginEvent: [ ] # 玩家登录服务器

onPlayerJoinEvent: # 玩家加入服务器
Expand Down Expand Up @@ -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已完成'

Expand Down Expand Up @@ -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功能未启用'
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -156,7 +156,7 @@ whitelist:

# 距离上一次上线超过此时间就踢出, 如果需要取消可以修改为较大的数值
timeOut: 18394560 # 7个月
timeOutMsg: '§6IpacEL §f> §a白名单已超时, 请联系管理员恢复'
timeOutMsg: '§6IpacEL §f> §a太久没有上线? 请联系管理员恢复'

onPlayerLoginEvent: [ ] # 玩家登录服务器

Expand Down

0 comments on commit 9bcdd72

Please sign in to comment.