| [API] MapManager 地图管理器 | |
|---|---|
| |
用于在项目框架和地图上显示自定义图像的API |
| 作 者 | inventivetalent |
| 发布时间 | 2016年2月28日 |
| 支持核心 | Spigot | 原生版本 |
| 支持版本 | 1.18 |
插件详细介绍
MapManager 是一个允许在地图上显示自定义图像并将单独的地图发送给玩家的 API。其主要特点是支持快速地图更新(类似于 AnimatedFrames),因为地图数据可以发送给玩家,之后可以在物品框或玩家的背包中更改显示的地图。
MapManager 插件
🗺️ MapManager 插件
MapManager 是一个允许在地图上显示自定义图像并将单独的地图发送给玩家的 API。其主要特点是支持快速地图更新(类似于 AnimatedFrames),因为地图数据可以发送给玩家,之后可以在物品框或玩家的背包中更改显示的地图。
使用方法
try {
// 获取 MapManager 实例
MapManager mapManager = ((MapManagerPlugin) Bukkit.getPluginManager().getPlugin("MapManager")).getMapManager();
// 包装本地文件 "myImage.png"
MapWrapper mapWrapper = mapManager.wrapImage(ImageIO.read(new File("myImage.png")));
MapController mapController = mapWrapper.getController();
// 添加 "inventivetalent" 作为查看者并发送内容
mapController.addViewer(Bukkit.getPlayer("inventivetalent"));
mapController.sendContent(Bukkit.getPlayer("inventivetalent"));
// 此时,玩家能够看到图像
// 因此我们可以在物品框中显示
mapController.showInFrame(Bukkit.getPlayer("inventivetalent"), null /* <Item Frame Object> */);
// 或者仅作为物品显示
mapController.showInHand(Bukkit.getPlayer("inventivetalent"));
} catch (IOException e) {
e.printStackTrace();
}
依赖
依赖于 PacketListenerAPI!
命令
/mapmanager reload - 重新加载配置mapmanager.reload - 重新加载配置的权限# 是否允许将原版地图发送给玩家(效率较低,因为需要检查每个发送地图的 ID)
allowVanilla: true
# 更改此数值以“保留”一定数量的地图 ID,这些 ID 不会被 MapManager 插件使用
# 请注意,过多增加此数值会限制插件可以创建的地图数量
forcedOffset: 0
# 插件在创建新地图前是否检查重复图像(首次创建图像时效率较低,但总体上更高效)
checkDuplicates: true
# 在图像对象中缓存数据包数据(对于大量玩家来说 CPU 强度较低,但可能根据图像大小内存强度稍高)
cacheData: true
sender:
# 地图数据包之间的延迟(刻)
delay: 2
# 一次发送的最大地图数据包数量
amount: 10
# 允许立即发送地图数据
allowQueueBypass: true
# 如果您使用的是 PaperSpigot(或遇到此错误:http://paste.inventivetalent.org/damuhonebu),请启用此项
paperSpigot: false
我喜欢免费制作所有插件,但我需要您的帮助来保持它们免费。
捐赠链接