• 注册
  • 服务器&插件 服务器&插件 关注:30 内容:11826

    neoipSee

  • 查看作者
  • 打赏作者
  • 当前位置: SodaMC > 服务器&插件 > 正文
  • 泥土

    一个功能强大、高性能的 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 等。

    NeoIpSee

  • 原创

  • 泥土

    回复

    请登录之后再进行评论

    登录
  • Soda任务 图片
  • 偏好设置
  • 主题
  • 帖子间隔 侧栏位置: