## 关于
**想以一种花哨的方式在你的服务器上显示信息吗?**
**或者你可能想在你的基地里显示一个漂亮的动画电视屏幕?**
**_那么这个插件就是为你准备的!_**
## 视频
**想看演示视频吗?这里有一些由一些很棒的人制作的视频!**
由 [**ServerMiner**](https://www.youtube.com/@ServerMiner) 制作的英语视频:
由 [**KasaiSora**](https://www.youtube.com/@KasaiSora) 制作的英语视频:
## 特性
### 1. 将图像加载到地图和物品框上
- 从 URL 加载图像!
- 支持 PNG、JPEG、WEBP 和 GIF!
- 以地图形式获取它们,或直接在物品框上!(使用智能选择工具选择你的物品框!)
- 自动图像拟合意味着你的图像不会被拉伸!

### 2. 甚至可以与动画 GIF 一起使用!
- 如果是 GIF,图像将会被动画化!
- 动画速度可达每秒 1/20 秒!
- 动画任务异步运行

### 3. 定义自定义宽度和高度
- 让你的图像跨越多个地图
- 自动图像拟合也适用于所有尺寸!
- 非常适合在物品框上显示!

*^ 这些地铁站平台上的指示牌看起来很棒,不是吗?用 ImageFrame 和不可见的发光物品框组合在一起!*
### 4. 添加到普通原版地图的叠加层!
- 创建一个带有普通原版地图的图像地图,你手上拿着它
- 或者通过在物品框中选择它们,跨越多个地图!

*^ 你注意到地图顶部带有蓝色背景的额外文字了吗?*
### 5. 组合的 ImageMap 以便轻松放置!
- 将整个多部分 ImageMap 作为单个项目获得!
- 自动搜索在物品框墙(或地面/天花板)上放置 ImageMap 的空间
- 如果有足够的空间,将点击的物品框视为左上角
- 破坏时,整个组合地图会被移除,并返回单个组合地图!
- 尊重其他插件上的物品框保护!(通过调用 Bukkit 事件)

*^ 心脏的粒子来自 _另一个插件_,它侦听 [EntityDamageEvent](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageEvent.html)*
*^ 内置的不可见物品框系统*
### 6. 轻松刷新地图!
- 从 URL 来源刷新同一个图像地图的所有副本,只需一个简单的命令!
- 非常适合显示你需要不时在你的服务器上更新的信息,而无需去替换每个单独的地图

*^ 我已经上传并用草方块替换了源 URL 上的 TNT 方块,我手上拿着 4 张地图中的 1 张*
### 7. 在你的图像上添加地图标记!
- 任何地图图标都可以使用! 例如,原版探险家地图上的豪宅和寺庙图标!
- 它们下面还可以有一个可选的文本行
- 可配置的每个地图的最大标记数量
- 非常适合标记自定义图像地图上的位置!


### 8. 生存友好
- 要求玩家在生存模式下,在他们的物品栏中拥有空的地图,才能创建图像地图 (使用玩家命令)
- 即使直接在物品框上创建图像也可以工作,或者获取组合的图像地图项目!
- 在配置文件中配置
### 9. 易于跟踪和管理
- 有命令可以帮助你 (无论是玩家还是管理员) 管理你 (或所有人的) 创建的图像地图
- 能够将图像地图访问权限授予其他玩家!
- 为不同的玩家提供不同的权限级别,以便你决定与哪些地图共享。
- 例如,列出某个玩家的所有地图、重命名等。
- 可以为每个玩家设置图像创建限制 (可以针对每个玩家进行不同的设置!)
- 可以设置单个图像框的最大尺寸! (始终可以自定义)
- 可用于 [ImageMap](https://www.spigotmc.org/resources/imagemaps.81851/)、[ImageOnMap](https://www.spigotmc.org/resources/imageonmap.26585/) 和 [DrMap](https://www.spigotmc.org/threads/drmap.480868/) 的迁移功能 (想了解更多插件支持请求,请联系我)
### 10. 无可见的物品框
- 内置对生存友好的不可见物品框的支持!
- 用隐身药水泼洒物品框物品来获得。
- 可以在配置文件中进行调整。

### 11. 多语言
- 向你的玩家展示的所有消息都可以自定义。
## 依赖
- 无!
## 安装
1. 将 ImageFrame.jar 放入插件文件夹以及所需的依赖项
2. 启动服务器
3. *编辑配置文件 (如果需要的话)*
4. *更改配置文件后重新启动服务器 (步骤 3)*
## 开发版

[**Jenkins**](https://ci.loohpjames.com/job/ImageFrame/)
## 演示服务器
想在实际中看到插件吗?
```
IP: mc.loohpjames.com
```

## 命令
**图例:**
对于命令 "
"/"" 参数,
你可以通过以下语法访问 **拥有权限** 的其他玩家的地图:
":"
例如:/if get LOOHP:map combined
**管理:**
```
/imageframe reload - 重新加载插件
/imageframe update - 检查更新
```
**玩家:**
```
/imageframe select - 选择放置图像地图的物品框
/imageframe create - 创建新的图像地图
/imageframe create selection - 创建新的图像地图,并将其直接放置在你的选定物品框中
/imageframe create combined - 创建新的图像地图,并获得其组合的图像地图项目
/imageframe overlay - 创建一个新的图像地图,它会在你手里的 Minecraft 原版地图上添加一个叠加层
/imageframe overlay selection - 通过添加叠加层来创建一个新的图像地图,并通过在物品框中选择来自 Minecraft 原版地图
/imageframe clone - 创建一个新的图像地图,其属性与旧的相同
/imageframe clone selection - 创建一个新的图像地图,其属性与旧的相同,并将其直接放置在你选定的物品框中
/imageframe clone combined - 创建一个新的图像地图,其属性与旧的相同,并获得其组合的图像地图项目
/imageframe playback pause - 切换动画图像地图的暂停/播放状态
/imageframe playback jumpto - 跳转到动画图像地图的特定秒
/imageframe refresh [optional:image_name] [optional:new_url] - 从源 url 刷新你创建的地图
/imageframe info - 获取你手持的图像地图相关信息
/imageframe get - 获取你创建的预先存在的图像地图
/imageframe get selection - 将你创建的预先存在的图像地图直接放置在你的选定物品框中
/imageframe get combined - 以其组合的图像地图形式获取你创建的预先存在的图像地图
/imageframe delete - 删除你创建的预先存在的图像地图
/imageframe rename - 重命名你创建的预先存在的图像地图
/imageframe list - 列出你创建的所有预先存在的图像地图
/imageframe marker add [optional:caption] - 在你的地图上添加一个标记
/imageframe marker remove - 从你的地图上移除一个标记
/imageframe marker clear - 清除你地图上的所有标记
/imageframe setaccess - 设置其他玩家对你的地图的访问权限
```
**审核:**
```
/imageframe list - 列出某个玩家的预先存在的图像地图
/imageframe giveinvisibleframe [amount] [player] - 给予不可见的物品框项目
/imageframe adminsetcreator - 更改图像地图的创建者
/imageframe adminmigrate - 从选定的、受支持的第三方插件迁移数据
```
## 权限
```yaml
permissions:
imageframe.create:
default: op
description: 允许玩家创建新的图像地图
imageframe.create.animated:
default: op
description: 允许玩家创建新的动画图像地图
imageframe.create.others:
default: op
description: 允许玩家为其他玩家创建图像地图,适用于叠加和克隆,绕过拥有限制
imageframe.overlay:
default: op
description: 允许玩家在原版地图上覆盖图像
imageframe.clone:
default: op
description: 允许玩家创建自己的图像地图的深层副本
imageframe.playback:
default: op
description: 允许玩家暂停或设置他们自己动画图像地图的播放位置
imageframe.select:
default: op
description: 允许玩家选择物品框
imageframe.marker:
default: op
description: 允许玩家在图像地图上添加和删除标记
imageframe.marker.unlimited:
default: op
description: 允许玩家在图像地图上添加无限数量的标记
imageframe.refresh:
default: op
description: 允许玩家刷新图像地图
imageframe.rename:
default: op
description: 允许玩家重命名图像地图
imageframe.info:
default: true
description: 允许玩家查看图像地图数据
imageframe.list:
default: true
description: 允许玩家列出他们自己创建的所有图像地图
imageframe.list.others:
default: op
description: 允许玩家列出某名玩家创建的所有图像地图
imageframe.delete:
default: op
description: 允许玩家删除他们自己创建的图像地图
imageframe.purge:
default: false
description: 允许玩家清除特定玩家创建的所有图像地图
imageframe.purge.all:
default: false
description: 允许玩家一次性清除所有图像地图
imageframe.get:
default: op
description: 允许玩家获取他们自己创建的图像地图
imageframe.setaccess:
default: op
description: 允许玩家更改他们自己图像地图的访问权限
imageframe.adminbypass:
default: op
description: 绕过所有访问限制,并允许用户使用和修改任何图像地图
imageframe.adminsetcreator:
default: op
description: 允许玩家通过图像地图 ID 更改任何图像地图的创建者
imageframe.admindelete:
default: op
description: 允许玩家通过图像地图 ID 删除任何图像地图
imageframe.adminmigrate:
default: op
description: 允许玩家从受支持的插件迁移地图到 ImageFrame
imageframe.preference:
default: true
description: 允许玩家更新他们的玩家偏好设置
imageframe.preference.others:
default: op
description: 允许玩家更新其他玩家的玩家偏好设置
imageframe.giveinvisibleframe:
default: op
description: 允许玩家给予不可见的物品框
imageframe.update:
default: op
description: 允许你接收更新消息
```
## 默认配置
[**最新带有描述的配置**](https://github.com/LOOHP/ImageFrame/blob/main/common/src/main/resources/config.yml)
## 数据使用
使用统计信息位于 https://bstats.org/plugin/bukkit/ImageFrame,公开可见,你的服务器包含在统计数据中。不会发送你的服务器的任何私人信息。
更新检查也通过 https://api.loohpjames.com 进行,以便在发布新版本时通知你。不会发送你的服务器的任何私人信息。
