一个允许玩家控制生物生成的Spigot插件。
插件用于 Velocity 和 BungeeCord 代理,可以根据用户的 **A**utonomous**S**ystem**N**umber **(ASN)** 阻止用户 IP。
使用 **ASN** 级别的过滤来保护您的服务器免受第 7 层机器人攻击。
> **警告!** 此解决方案 ~~是一种快速修复~~ 不保证能完全防止所有机器人,
> 但是,它确实执行了预期的功能。
## 本地化
本地化文件位于插件的 `translations` 目录中,并支持 [MiniMessage](https://docs.advntr.dev/minimessage/format.html) 格式。
插件首次启动时会自动生成本地化文件。
当用户因 **ASN** 被阻止时显示的提示信息可以使用 `asnblacklist.message.kick` 键进行配置。
> **示例:**
>
> ```properties
> asnblacklist.message.kick=您的 ASN 在此服务器上被阻止。
> ```
>
[](https://raw.githubusercontent.com/novitpw/asn-blacklist/master/images/disconnect_reason_en.png)
如果需要显示带有换行的消息,请使用 `` 标签。
> **示例:**
>
> ```properties
> asnblacklist.message.kick=\
> 您的 ASN 在此服务器上被阻止。
> ```
## 配置
所有持续时间格式都必须使用标准的 **ISO 8601** 格式,例如:
- `PT6H` → 6 小时
- `P3D` → 3 天
- `P2DT3H4M` → 2 天,3 小时,4 分钟
---
> ### asn-blacklist
>
> 被阻止的 ASN。您可以在 [bgp.tools 网站](https://bgp.tools/) 上查找信息或获取 ASN 号码。
>
> **示例:**
>
> ```yaml
> asn-blacklist:
> - "AS35048" # 带有 AS 前缀的值
> - "53667" # 没有 AS 前缀的值
> ```
---
> ### maxmind-database
>
> MaxMind 数据库设置。
>
> - `api-key` — MaxMind API 密钥。默认配置已经包含一个有效的密钥。如果需要,您可以使用您在 [MaxMind 网站](https://www.maxmind.com/en/accounts/current/license-key) 上生成的密钥。
> - `file` — 本地数据库文件的路径
> - `ttl` — 本地数据库保留期(ISO 8601)。保留期过后,数据库将被重新下载。
>
> **示例:**
>
> ```yaml
> maxmind-database:
> api-key: "apiKey"
> file: "GeoLite2-ASN.mmdb"
> ttl: "P3D"
> ```
---
> ### cache-ttl
>
> 经过验证的 ASN 的缓存持续时间 (ISO 8601)。
>
> **示例:**
>
> ```yaml
> cache-ttl: "PT12H"
> ```
---
## 命令
- `/asnblacklist` - 主命令。别名 - `/asnbl`
- `/asnblacklist add ` - 将 ASN 添加到黑名单。
- `/asnblacklist remove ` - 从黑名单中移除 ASN。
- `/asnblacklist list` - 获取 ASN 黑名单。
- `/asnblacklist reload` - 重新加载配置和本地化。
[](https://raw.githubusercontent.com/novitpw/asn-blacklist/master/images/commands_en.png)
## 支持和反馈
请使用 [GitHub 问题跟踪器](https://github.com/novitpw/ans-blacklist/issues) 报告错误并提交建议。
## 许可
该项目采用 [GNU GPL v3.0 许可](https://github.com/novitpw/asn-blacklist/LICENSE)。