Installation command
!!MCDR plugin install player_ip_logger
Author
Repository
Synced at
...
Last update
...
Latest version
Total downloads
82
Back to catalogue
Player IP Logger for MCDReforged
插件简介
Player IP Logger 是一款为 MCDReforged (MCDR) 开发的插件,主要功能是记录玩家的 IP 地址。该插件通过监控玩家的登录和断开连接事件,记录玩家对应的 IP 地址,并提供便捷的 API 供服务器管理员进行查询、封禁或解禁操作。
功能
- 自动记录玩家 IP: 插件会自动监控玩家的登录和断线信息,捕获并保存 IP 地址。
- 封禁与解禁功能: 支持通过命令封禁或解禁玩家或 IP 地址,适用于服务器管理。
- 多格式支持: 支持多种日志格式解析,确保不同场景下都能正确提取玩家的 IP 地址。
- IP 地址存储: 将玩家所有历史 IP 地址保存到配置文件中,避免重复记录。
- 支持 API 调用: 提供了多种 API,方便插件调用,或让管理员查询玩家的 IP 信息。
- 假人判断: 假人一般没有IP,通过这个特性可以判断出假人,多用于玩家列表筛选。
安装与配置
-
安装: 将插件文件放入 MCDReforged 的
plugins
目录中,启动服务器。 -
配置: 插件会自动生成一个
config.json
配置文件,存储用户和 IP 记录。文件格式如下:{ "users": { "玩家名称": [ "玩家的IP1", "玩家的IP2" ] }, "banned_player": [], "banned_ips": [] }
命令
- !!ip ban
<player/ip>
: 封禁指定玩家或 IP。 - !!ip pardon
<player/ip>
: 解禁指定玩家或 IP。 - !!ip list: 显示当前封禁的玩家和 IP。
事件处理
- 当玩家登录或断开连接时,插件会自动解析相关日志信息,并提取玩家名称和 IP 地址。
- 如果玩家的 IP 地址尚未记录,将其添加到配置文件中,并自动保存。
支持的事件格式
该插件支持以下日志格式的解析:
玩家名[/IP地址:端口] logged in with entity id
Disconnecting 玩家名 (/IP地址:端口)
玩家名 (/IP地址:端口) lost connection
使用
插件会自动运行并自动监听玩家的登录与断开事件,并记录 IP 地址,不需要任何配置。管理员可以快速对玩家或 IP 进行封禁或解禁操作,或者查看封禁列表。
API 开发
-
is_player(name: str) -> bool
- 描述: 检查是否是真实玩家(多用于假人判断)
- 参数:
name
:玩家名称。
- 返回: 如果玩家存在记录返回
True
,否则返回False
。
示例:
if is_player("Shusao"): print("Shusao 是 真人玩家") else: print("Shusao 是 假人")
-
get_player_ips(name: str) -> list
- 描述: 获取指定玩家的所有 IP 地址。
- 参数:
name
:玩家名称。
- 返回: 包含玩家所有历史 IP 地址的列表。如果玩家没有记录,返回空列表。
示例:
ips = get_player_ips("Shusao") print(f"Shusao 的 IP 历史: {ips}")
-
get_player_names(ip: str) -> list
-
描述: 获取使用该 IP 地址的所有玩家名称。
-
参数:
ip
:IP地址。
-
返回: 包含玩家名称的列表。
-
-
ban_player(name: str) -> None
- 描述: 封禁指定玩家(支持离线玩家), 后续通过该ID登录的IP也会被封。
- 参数:
- 玩家ID。
-
unban_player(name: str) -> None
- 描述: 解禁指定玩家。
- 参数:
- 玩家ID。
-
ban_ip(ip: str) -> None
- 描述: 封禁指定IP, 后续通过该IP登录的玩家也会被封。
- 参数:
- 玩家IP。
-
unban_ip(ip: str) -> None
- 描述: 解禁指定IP。
- 参数:
- 玩家IP。
API 开发(事件)
- player_ip_logger.player_login
- 描述: 玩家登录时分发
player_ip_logger.player_login
事件,便于其他插件上报信息 - 样例:
def do_something(server: PluginServerInterface, player_name:str, player_ip:str): pass server.register_event_listener('player_ip_logger.player_login', do_something)
- 描述: 玩家登录时分发
使用此API的插件
-
PF-GUGUbot : MCDR-GUGUBot QQ机器人 群聊管理 聊天互转
用于区分真实玩家
-
IPLocation : 在玩家上线时查询并显示IP归属地。
获取玩家IP
贡献
如果发现问题,或希望贡献代码,欢迎在 GitHub 提交 Issue 或 Pull Request。
- 插件初版提供: 树梢(LoosePrince)
- 技术支持: 雪开(XueK66)
- 文档编写: 树梢(LoosePrince)、 雪开(XueK66)
未来计划
- 暂无
欢迎提建议!
README source: /README.md