PotatoIPDisplay
一款提供查询与显示玩家 IP 归属地信息的 Bukkit 插件。
在玩家加入服务器后,插件会根据配置的模式查询玩家的 IP 归属地信息,支持 Placeholder API。
特性
高效率
ip2region 可以提供微秒级别的查询响应时间,且支持数据库内存缓存
异步的查询
基于 IP 的结果缓存,极速响应
功能
指定查询模式
Placeholder API 支持
内置基本的消息格式化功能(见下图)(默认关闭)
多种查询模式
ip2region - lionsoul2014/ip2region rel="nofollow" 本地查询
pconline - 太平洋网络IP地址查询Web接口 rel="nofollow" 在线查询
ip-api - IP-API.com rel="nofollow" IP Geolocation API 在线查询
以及
提供可自定义的配置文件
支持 Placeholder API,可配合其他插件使用查询结果
玩家称号,消息格式化,等等
插件最初为 土豆网络 rel="nofollow" 定制,开源后采纳了大家提供的许多建议,相比初版已经优化和解决了不少问题。感谢你的帮助!
详细使用文档(中文)
详见 此处 rel="nofollow" 。
使用方法
将插件放进 plugins/
启动服务器
修改配置文件,可参考 配置文件说明
重启服务器(推荐)或 重载插件
配置文件
说明
options.mode: 默认值 "ip2region"。查询模式。
"ip2region":【推荐!】使用 Ip2region 查询(本地数据库)
"pconline":使用 太平洋网络IP地址查询Web接口 查询(在线接口)
建议使用 ip2region ,因为这是基于本地的,并且不受网络因素影响。
此外,插件会在加载时自动保存内置的 ip2region.xdb 至插件目录,如果遇到问题,请 手动下载 。
options.xdb-buffer: 默认值 "vindex"。xdb 缓存模式。
"none": 完全基于文件,不进行缓存。
"vindex": 额外占用固定的 512 KB 内存,缓存 VectorIndex 数据。
"cbuff": 额外占用文件大小的内存,缓存整个 ip2region.xdb。
缓存有助于减少磁盘 I/O 操作,并在一定程度上提升查询速度。
即使是完全基于 xdb 文件的查询,单次查询响应时间在十微秒级别。 (来自 ip2region README [src])
自 1.2 版本起,PotatoIpDisplay 现在支持 PAPI 了。变量列表
如果你想使用本插件内置的格式化功能,请将设置 messages.player-chat.enabled 为 true。
config.yml
# PotatoIpDisplay-bukkit 配置文件
# 一款用于显示玩家 IP 归属地的 Minecraft 插件
# 详情:[https://github.com/dmzz-yyhyy/PotatoIpDisplay]
# 请勿修改!
config-version: 1
# 常规设置
options:
# 查询模式: "pconline"(在线 API), "ip2region"(本地)或 "ip-api"(在线 API)
# "ip2region" 模式为本地查询,插件会自动保存内置的文件至对应路径。
# 也可以从 [https://github.com/lionsoul2014/ip2region/tree/master/data] 下载
mode: "ip2region"
# 缓存模式:只有模式设置为 ip2region 时生效,用于加速查询。
# "none": 完全基于文件,不进行缓存。
# "vindex": 额外占用固定的 512 KB 内存,缓存 VectorIndex 数据。
# "cbuff": 额外占用文件大小的内存,缓存整个 ip2region.xdb。
xdb-buffer: "vindex"
# 开启 bStats 统计
allow-bstats: true
# 消息设置
messages:
player-chat:
# 是否接管玩家消息事件。
# 与其他消息格式化插件冲突。
enabled: false
# 消息格式
string: "§7[§b%ipAttr%§7] §f%playerName% §7>> §f%msg%"
player-login:
# 是否在玩家登录后发送一条消息显示 IP 归属地。
enabled: true
# 消息格式
string: "§7[§6PotatoIPDisplay§7] §e您当前IP归属地 §7[§b%ipAttr%§7]"
# Placeholder API 设置
papi:
# 启用 PAPI 支持。需要安装 Placeholder API。
enabled: false
# 可用变量:
# [https://github.com/dmzz-yyhyy/PotatoIpDisplay#placeholder-api]
要加载默认配置文件,将其重命名为config.yml.bak,即可在下次加载时生成。
命令
命令列表
命令 |
描述 |
权限 |
默认 |
/pipd |
等效于 /potatoipdisplay |
potatoipdisplay.command |
OP |
/potatoipdisplay |
插件信息 |
potatoipdisplay.command |
OP |
/potatoipdisplay about |
显示关于信息 |
potatoipdisplay.command |
OP |
/potatoipdisplay clear [player/cache] |
清除玩家/查询缓存 |
potatoipdisplay.command |
OP |
/potatoipdisplay lookup [玩家/IPv4] |
查询玩家或IP |
potatoipdisplay.lookup |
OP |
/potatoipdisplay reload |
重载插件 |
potatoipdisplay.reload |
OP |
示例:使用 /potatoipdisplay lookup 命令分别查询玩家和 IP 的归属地信息:
Placeholder API
要开启插件的 Placeholder API 集成,请先在配置文件中启用。
%potatoipdisplay_ip% 玩家的 IP
%potatoipdisplay_country% IP 所属国家
%potatoipdisplay_province% IP 所属省份
%potatoipdisplay_city% IP 所属城市
%potatoipdisplay_region% IP 所属区域
%potatoipdisplay_isp% 运营商信息
%potatoipdisplay_fallback% fallback 变量