基本信息
我的世界Java版本
平台
运行环境
分类
创作者
详情信息
一个功能强大、高性能的 Minecraft 服务器 IP 地域查询插件 支持多种数据源和多语言配置,为服务器管理员和玩家提供准确的地域信息展示。
neoipSee 是一个基于 Spigot/Paper 平台的 Minecraft 插件,用于查询和显示玩家的 IP 地域信息。 该插件采用模块化设计,支持多种数据源策略,为服务器管理员和玩家提供准确的地域信息展示
技术说明 Java 17 现代 Java 开发语言,提供更好的性能和稳定性 Spigot/Paper API Minecraft 服务器插件开发框架 梅文 项目构建和依赖管理 JSON 数据解析 HTTP 客户端 网络请求处理 占位API 占位符集成
快速开始 环境要求 Java 17 或更高版本 Minecraft 1.21+(推荐 26.1.x) 服务器类型:Spigot / Paper / Folia
安装步骤 从 Releases 下载插件 JAR 文件 将 JAR 文件放入服务器的 目录plugins 重启服务器(需要 Java 17 或更高版本) 插件会自动生成配置文件和语言文件 基础使用
# 查看帮助
/neoipse
# 查询玩家或IP地域信息
/neoipse query <player/ip>
# 切换地域信息显示
/neoipse toggle
# 重载配置
/neoipse reload
插件启动后会在 目录下生成配置文件 根目录/plugins/neoipSee/
配置文件说明
config.yml:主配置文件
languages/:语言文件目录(包含多种语言配置)
config.yml 主要配置项
配置项 说明 默认值
dataSource 数据源选择 (fallback/ip9/ipquery/ipplus360/ipapi/whois/voreAPI) ip9
language 语言选择 (zh_CN/zh_TW/en_US/ja_JP/ko_KR/es_ES) zh_CN
removeProvinceAndCity 是否移除省份和城市信息 false
unknown 是否显示“未知”(true: 显示,false: 不显示) true
local 内网IP显示 "内网IP"
isCheckUpdate 开启检查更新 true
isCheckUpdateToOpMsg 有新版本是否发送给op提示 true
ipPlus360Ipv4Key ipplus360数据源的IPv4密钥 123456
ipPlus360Ipv6Key ipplus360数据源的IPv6密钥 123456
cache.maxSize 缓存最大大小 1000
cache.preheatIps 预热IP列表 公共DNS
配置示例
# 主配置文件 config.yml
# 数据源类型(推荐使用 fallback 或 ip9)
dataSource: fallback
# 语言选择
language: zh_CN
# 是否移除省份和城市信息
removeProvinceAndCity: false
# 缓存配置
cache:
maxSize: 1000
preheatIps:
- "8.8.8.8"
- "1.1.1.1"
- "114.114.114.114"
# 是否显示"未知"(true: 显示,false: 不显示)
unknown: true
# 本地IP显示
local: "内网IP"
# 开启检查更新
isCheckUpdate: true
有新版本是否发送给op提示
isCheckUpdateToOpMsg: true 命令和权限
命令列表
命令 权限 描述
/neoipse 无 主命令帮助
/neoipse reload neoipse.reload 重载插件配置
/neoipse toggle neoipse.toggle 切换地域信息显示状态
/neoipse show neoipse.show 显示地域信息
/neoipse hide neoipse.hide 隐藏地域信息
/neoipse query <ip> neoipse.query 查询指定 IP 的地域信息
/neoipse query <player> neoipse.query.other 查询指定玩家的地域信息
权限节点
权限 描述 默认
neoipse.* 所有权限 楼主
neoipse.reload 重载插件权限 楼主
neoipse.toggle 切换显示状态权限 所有玩家
neoipse.show 显示地域信息权限 所有玩家
neoipse.hide 隐藏地域信息权限 所有玩家
neoipse.query 查询自己 IP 权限 所有玩家
neoipse.query.other 查询其他玩家 IP 权限 楼主
🪝 PlaceholderAPI 占位符
占位符 描述
%neoipse% 完整地域信息(国家
%neoipse_country% 国家名称
%neoipse_province% 省份名称
%neoipse_city% 城市名称
%neoipse_isp% 运营商名称
%neoipse_district% 区县名称
数据源列表
数据源 优先级 特点
IPPlus 100 完全免费,支持IPv4和IPv6,返回详细地理信息
WHOIS 85 国内精度高,海外IP可能返回较少信息
IPInfo 80 完全免费,支持IPv4和IPv6,提供国家级别和ASN信息
IPQuery 75 完全免费,无需API密钥
IPPlus360 70 需要API密钥,高精度
IPAPI 65 免费但有速率限制,可能对中国IP返回403
IP9 30 完全免费,支持IPv4和IPv6
VoreAPI 20 可能已不可用
🔧 开发者 API NeoIpSeeApi类提供了一系列静态方法,支持同步和异步调用。 同步方法
方法 描述 返回值
getRegion(Player player) 获取玩家完整地域信息 地域信息字符串(格式:国家
getNational(Player player) 获取玩家国家信息 国家名称
getProvince(Player player) 获取玩家省份信息 省份名称
getCity(Player player) 获取玩家城市信息 城市名称
getIsp(Player player) 获取玩家运营商信息 运营商名称
getDistrict(Player player) 获取玩家区县信息 区县名称
import cn.handyplus.neoipse.api.NeoIpSeeApi;
// 获取玩家完整地域信息
String region = NeoIpSeeApi.getRegion(player);
// 获取玩家国家信息
String country = NeoIpSeeApi.getNational(player);
// 获取玩家省份信息
String province = NeoIpSeeApi.getProvince(player);
// 获取玩家城市信息
String city = NeoIpSeeApi.getCity(player);
// 获取玩家运营商信息
String isp = NeoIpSeeApi.getIsp(player);
// 获取玩家区县信息
String district = NeoIpSeeApi.getDistrict(player);
异步方法
import cn.handyplus.neoipse.api.NeoIpSeeApi;
// 异步获取玩家地域信息
NeoIpSeeApi.getRegionAsync(player, region -> {
player.sendMessage("您的地域信息: " + region);
});
// 异步获取玩家国家信息
NeoIpSeeApi.getNationalAsync(player, country -> {
player.sendMessage("您的国家: " + country);
});
// 异步获取玩家省份信息
NeoIpSeeApi.getProvinceAsync(player, province -> {
player.sendMessage("您的省份: " + province);
});
// 异步获取玩家城市信息
NeoIpSeeApi.getCityAsync(player, city -> {
player.sendMessage("您的城市: " + city);
});
// 异步获取玩家运营商信息
NeoIpSeeApi.getIspAsync(player, isp -> {
player.sendMessage("您的运营商: " + isp);
});
// 异步获取玩家区县信息
NeoIpSeeApi.getDistrictAsync(player, district -> {
player.sendMessage("您的区县: " + district);
});
实际应用示例
玩家加入时显示地域信息
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
NeoIpSeeApi.getRegionAsync(player, region -> {
player.sendMessage("欢迎来自 " + region + " 的玩家!");
});
}
在 Tab 列表中显示玩家地域
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
NeoIpSeeApi.getNationalAsync(player, country -> {
player.setPlayerListName(country + " " + player.getName());
});
}
常见问题 Q: 为什么地域信息显示为"未知"? 答:可能的原因:
IP 地址无效或无法查询 数据源配置错误 API 限流或不可用 网络连接问题 Q: 如何隐藏地域信息中的"未知"部分? A: 在 中设置 ,然后使用 命令重载配置。config.ymlunknown: false/neoipse reload
问:什么是缓存预热? A: 缓存预热是在服务器启动时预先加载常用 IP 的地域信息到缓存中。 这样当玩家加入时,可以更快地显示地域信息。
问:如何配置多个数据源? A: 在 中设置 为 ,插件会自动在多个数据源之间切换,确保查询的稳定性。config.ymldataSourcefallback
问:是否支持 IPv6? A: 是的,部分数据源支持 IPv6 地址查询,包括 IPPlus、IPInfo、IP9 等。



