# GeoLoc
## 适用于 Paper 服务器的高级地理位置插件
### 描述
GeoLoc 是一个适用于 Paper 服务器的强大地理位置插件,允许管理员查看玩家的大致地理位置。使用 GeoLoc,服务器管理员可以轻松查看来自世界各地社区成员的连接地点,从而增强社区建设和管理功能。
### 功能
- **快速可靠:** 使用多个地理位置 API 以确保准确的位置数据
- **灵活的命令:** 查看完整的地理位置数据或仅查看特定信息(城市、地区、国家、当地时间)
- **PlaceholderAPI 支持:** 通过我们的 PAPI 扩展将地理位置数据集成到其他插件中
- **可定制的消息:** 通过 messages.yml 配置文件完全定制消息
- **加入消息:** 玩家加入你的服务器时的可选位置公告
- **标签自动完成:** 在线玩家的便捷标签自动完成功能
- **轻量级:** 对服务器性能的影响最小
### 命令
```
/geoloc reload - 重新加载插件配置
/geoloc geolocation <玩家> - 查看完整的地理位置数据
/geoloc geolocation full <玩家> - 查看完整的地理位置数据,带有玩家建议
/geoloc geolocation city <玩家> - 查看仅有城市信息,带有玩家建议
/geoloc geolocation region <玩家> - 查看仅有地区信息,带有玩家建议
/geoloc geolocation country <玩家> - 查看仅有国家信息,带有玩家建议
/geoloc geolocation localTime <玩家> - 查看仅有当地时间信息,带有玩家建议
```
### 权限
- **geoloc.admin** - 访问所有 GeoLoc 命令
- **geoloc.see** - 允许玩家查看加入消息
### PlaceholderAPI 集成
GeoLoc 提供了以下占位符,当安装了 PlaceholderAPI 时:
```
%geoloc_full% - 完整的地理位置信息
%geoloc_city% - 玩家的城市
%geoloc_region% - 玩家的地区/州
%geoloc_country% - 玩家的国家
%geoloc_localtime% - 玩家的当地时间
```
### 配置
GeoLoc 带有两个配置文件:
- **config.yml** - 主插件设置
- **messages.yml** - 所有插件功能的自定义消息
config.yml
```yaml
# GeoLoc 插件配置
# 设置为 true 以向带有位置信息的玩家显示欢迎消息
# 设置为 false 以禁用欢迎消息
# 实际消息内容在 messages.yml 中
join-message-enabled: true
# 权限:
# geoloc.admin - 允许重新加载配置
# geoloc.see - 允许查看加入消息(如果已启用)
```
messages.yml
```yaml
# GeoLoc 插件消息
# 您可以使用颜色代码 & (例如 &a 代表绿色,&c 代表红色)
# 可用的占位符为加入消息:
# {player} - 玩家姓名
# {city} - 城市
# {region} - 地区/州
# {country} - 国家
# {localTime} - 当地时间,格式为 HH:mm:ss
# 所有消息的可用占位符为全大写
# 消息前缀
# NONE
prefix: "&c&lGeoLoc &7&l→ &r"
# 玩家地理位置返回空值时的默认值(当他们在本地网络中时)
# NONE
default-location-value: "未知"
# 加入消息(向所有玩家广播)
# PLAYER, CITY, REGION, COUNTRY, LOCALTIME
join-message: "&a玩家 &e{player} &a加入了我们,来自 &6{city}, {region}, {country}&a!现在是 &b{localTime} &athere."
# 命令消息
# NONE
command:
# NONE
reload-success: "&aGeoLoc 配置已成功重新加载!"
# NONE
no-permission: "&c您没有使用此命令的权限。"
# PLAYER, CITY, REGION, COUNTRY, LOCALTIME
location: "&a玩家 &e{player} &ais 来自 &6{city}, {region}, {country}&a!当地时间:&b{localTime}"
# 日志消息(仅在控制台显示)
log:
# PLAYER, CITY, REGION, COUNTRY, LOCALTIME
player-connected: "{player} 连接来自: {city}, {region}, {country} (当地时间: {localTime})"
# PLAYER
no-ip: "无法获取玩家的 IP 地址: {player}"
# PLAYER
no-geolocation: "无法获取玩家的地理位置数据: {player}"
error:
# PLAYER
player-not-found: "&c{player} 找不到或不在线。"
# PLAYER
ip-not-found: "&c无法从 {player} 获取 IP。"
# PLAYER
geolocation-not-found: "&c无法从 {player} 获取地理位置数据。"
# 可能的占位符:
# - %geoloc_full% -> 返回来自玩家的所有地理位置信息
# - %geoloc_city% -> 返回玩家所在的城市
# - %geoloc_region% -> 返回玩家的地区
# - %geoloc_country% -> 返回玩家的国家
# - %geoloc_localTime% -> 返回玩家的当地时间(根据地区计算)
# 所有占位符的返回格式都可以定义在下面
# PlaceholderAPI 返回格式
placeholder:
full: "{city}, {region}, {country}, {localTime}"
city: "{city}"
region: "{region}"
country: "{country}"
localTime: "{localTime}"
```
### 支持
如需支持,请访问我们的 Discord 服务器或在我们的 GitHub 仓库中创建问题.
## **免责声明**
此插件基于 IP 地址提供大致的地理位置数据,不应被视为 100% 准确。所提供的数据仅供一般信息参考,不应用于任何关键决策。该插件依赖于第三方地理位置服务,这些服务在不同地区的准确性可能有所不同。
GeoLoc 尊重玩家的隐私,仅提供常规位置信息(城市、地区、国家、当地时间),而不是精确坐标。服务器管理员应告知他们的玩家,此信息可能会对服务器工作人员可见。
*GeoLoc 不隶属于在此插件中使用的任何地理位置服务提供商。 我们对这些服务提供的数据中的任何不准确性概不负责。*
*© 2025 TSERATO | 版本 1.0*