这个插件并不是我制作的
原链接:
---------------------正文-------------------
FancyHologram功能简介:
支持显示彩色、变量、自定义长度空行、物品、文字动画支持精确到行、到灰框边缘(技术上可以精确到字,使用FancyHologramAPI可以做到)的监听点击(功能类似按钮)支持全息实体传送、跟随
支持将全息实体以文件的方式储存与导入(可以依此实现跨服复制全息实体)
支持中英文提示信息切换
全息实体并非mc中的实体,只是用于统称一整面全息!为了减小服务器开销,本插件不使用任何mc实体!
单行自定义
彩色支持:
A.形如&6的传统颜色符号;
B.形如&#rrggbb的rgb自定义颜色;
C.彩虹变色符号&~。
变量支持:
(可选前置插件:PlaceholderAPI,以获得更多变量)
使用%变量名%来表示变量,如果有参数,可以使用%变量名:参数%
这里列出了预置的几个变量:
0.animation(anim):动画,下面会介绍
1.player_name:玩家名
2.player_level:玩家等级
3.player_health:玩家生命值
4.player_max_health:玩家最大生命值
5.player_food_level:玩家饱食度
6.player_statistic:玩家官方统计值,参数为mc官方的统计类型,例如player_statistic:deaths表示玩家死亡次数
7.player_attribute:玩家官方属性,参数为mc官方的玩家属性值,例如player_attribute:generic_max_health表示玩家的最大生命值(效果同4)
8.world_full_time:世界自创建到现在的时间,不写参数即默认参数为tick,可选参数如下:
8-1:tick,游戏刻,一刻为0.05秒
8-2:second,秒
8-3:minute,分钟
8-4:hour,小时
8-5:day,天
8-6:game_day,游戏内天数
9.world_name:世界名称
10.server_name:服务器名称
11.online_players_number:在线玩家数量
空行:
(旧版的\n将被兼容并自动转化为下面格式)
使用[blank]来空一行
使用:
[blank:0.5]
来空0.5格高,参数可以为负数,但负数可能会导致点击事件无法被捕获
文字动画:使用:
%animation:动画名%来表示动画
动画可以通过指令或文件的方式创造
动画中可以插入其它变量(甚至嵌套动画,但是可能会降低性能,导致卡顿)
(切勿自我嵌套!!!!!)
另,旧版的\animation将在下下次更新后不再支持
动态物品展示:
(旧版的\dynamic_item将被兼容并自动转化为下面格式)
1.使用[dynamic_item:物品英文名] 来展示物品
2.使用[dynamic_item:玩家头颅ID] 来展示自定义头颅(ID是一串64位的字符串,可以参考NameMC: Minecraft Names & Skins (minecraft-heads.com))
静态物品展示会在不久的将来上线,敬请期待
指令集
注意,下列/hologram都可以用/fh来简化,/animation都可以用/fa来简化!
/hologram append: 将新的内容(可以是多行)添加入指定的全息实体
/hologram click_event: 设置玩家点击后系统执行的命令(执行位置为玩家所在位置,执行者为系统)
/hologram create: 创造一个全息实体
/hologram follow: 让一个全息实体跟随某一指定实体(如村民),若找不到该实体则停止跟随,跟随期间无法传送(实验性功能)
(注意,被跟随的实体自身观察全息时会有较明显的延迟,跟随其它实体时延迟很小,但在高速移动时延迟仍然明显)
/hologram help: 查看帮助
/hologram insert: 将一行插入到指定的全息实体的某一位置
/hologram remove: 删除指定的全息实体,或者删除指定全息实体的某一行
/hologram rename: 重命名指定实体
/hologram teleport: 将指定的全息实体传送至某一位置
/hologram teleport-to: 将自身传送至指定的全息实体处
/hologram view-distance: 查看或设置指定的全息实体的可视距离(-1即为不限制)
/animation append: 将新的帧(可以是多行)添加入指定的动画
/animation create: 创造一个动画变量
/animation help: 查看帮助
/animation insert: 将一帧插入到指定的动画的某一位置
/animation interval: 设置指定动画的两帧之间的间隔时间(tick)
/animation remove: 删除指定的动画,或者删除指定动画的某一行
/animation rename: 重命名指定动画
文件操作
1、语言配置
在第一次启动插件后,会生成./plugins/FancyHologram/config.yml文件
将其中的language设置为zh-CN即可切换为中文
若想自定义语言,可以在./plugins/FancyHologram/lang中放入自定义的语言文件
2、以文件的方式读写全息实体
./plugins/FancyHologram/entity/中会保存该服的所有全息实体(每个实体一个文件),下面是一个样例,文件名myhologram.dat
version: 1.0.1 #存储该文件时插件的版本号,用于兼容
name: myhologram
location: world_0.0_63.0_0.0
content:
- '&a欢迎&b%player_name%&a使用'
- '&~饭稀全息'
- '[dynamic_item:9f13197c6a7cf52570fe564aab9944a9043bdf7d957479311ece0225e1d38df4]'
- 上面是展示掉落物的样例
- '%anim:divider%+%anim:divider%'
- 你的血量&a%player_health%&r/&a%player_max_health%
- '[blank:0.8]'
advanced-settings:
'2':
listener:
left: msg @s 你用左键点击了第三行!(注:以server的身份在player的位置执行该行指令)
你可以通过文件操作的方式跨服复制全息实体,但记得要修改location中的world
下面是动画的文件保存形式,存放于./plugins/FancyHologram/animation/,下面样例的文件名为divider.dat
name: divider
interval: 2
content:
- '&7=========='
- '&6=&7========='
- '&6==&7========'
- '&6===&7======='
- '&7=&6===&7======'
- '&7==&6===&7====='
- '&7===&6===&7===='
- '&7====&6===&7==='
- '&7=====&6===&7=='
- '&7======&6===&7='
- '&7=======&6==='
- '&7========&6=='
- '&7=========&6='
- '&7=========='
FancyHologram API
Maven:
<repository>
<id>noyexception-repo</id>
<url>https://gitee.com/noyexception/repository/raw/master</url>
</repository>
<dependency>
<groupId>cn.noy.fancyhologram</groupId>
<artifactId>fancyhologram-api</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
常用方法:
1、创建全息实体
HologramEntity entity = Hologram.getHologramBuilder() .setName("MyFirstHologram") //设置全息实体的名字
.setViewDistance(8) //设置可视距离
.append("/blank 0.5") //空0.5个方块
.append(FrameEmpty.builder().setHeight(1.14)) //空1.14个方块
.append("&6玩家&~%player_name%&#aabbcc你好") //插入一行文字
.append(FrameText.builder().setText("awa..")) //继续插入一行文字
.append(FrameItem.builder().setDynamic(true).setItemStack(itemStack)) //展示一个物品
.append(FrameItem.builder().setDynamic(true)
.setCustomHead("9f13197c6a7cf52570fe564aab9944a9043bdf7d957479311ece0225e1d38df4"))//展示自定义头颅
.build(location); //在指定位置生成
2、注册自定义变量
Hologram.getVariableManager().register("hp", (player, par) ->
String.valueOf(player.getHealth()));
3、监听点击事件
Hologram.getHologramManager().getHologramEntity("name").getAdvancedSettings().setOnClickListener(
new CommandOnClickListener()
.set(PlayerClickHologramEntityEvent.ClickType.RIGHT,"msg @p awa")
);
Hologram.getHologramManager().getHologramEntity("name").getFrame(2).getAdvancedSettings()
.setOnClickListener(new CommandOnClickListener()
.set(PlayerClickHologramEntityEvent.ClickType.RIGHT,"msg @p awa")
);
Hologram.getHologramManager().getHologramEntity("name").getFrame(2).getAdvancedSettings()
.setOnClickListener(new CommandOnClickListener()
.set(PlayerClickHologramEntityEvent.ClickType.SHIFT_RIGHT,"msg @p awa")
);
或者你可以监听PlayerClickHologramEntityEvent,使用该方法时监听器将在点击前触发,可以取消点击事件(而上面的方法无法取消点击事件)。
自定义的监听事件需要在每次启用插件时注册一次,若想自动注册,则可以使用API提供的2个可以自动保存并加载的listener:CommandOnClickListener和MethodOnClickListener
必要的前置:ProtocolLib
需要注意的是,ProtocolLib在服务器reload后可能会存在不可预期的错误,故谨慎reload
非必要的前置插件:PlaceholderAPI
使用该前置插件后即可拓展变量池
原链接:
[FancyHologram1.1.0]新一代的全息插件 - 服务端插件 - Minecraft(我的世界)中文论坛 -
[FancyHologram1.1.0]新一代的全息插件 - FancyHologram功能简介:支持显示彩色、变量、自定义长度空行、物品、文字动画支持精确到行、到灰框边缘(技术上可以精确 ...
www.mcbbs.net
---------------------正文-------------------
FancyHologram功能简介:
支持显示彩色、变量、自定义长度空行、物品、文字动画支持精确到行、到灰框边缘(技术上可以精确到字,使用FancyHologramAPI可以做到)的监听点击(功能类似按钮)支持全息实体传送、跟随
支持将全息实体以文件的方式储存与导入(可以依此实现跨服复制全息实体)
支持中英文提示信息切换
全息实体并非mc中的实体,只是用于统称一整面全息!为了减小服务器开销,本插件不使用任何mc实体!
单行自定义
彩色支持:
A.形如&6的传统颜色符号;
B.形如&#rrggbb的rgb自定义颜色;
C.彩虹变色符号&~。
变量支持:
(可选前置插件:PlaceholderAPI,以获得更多变量)
使用%变量名%来表示变量,如果有参数,可以使用%变量名:参数%
这里列出了预置的几个变量:
0.animation(anim):动画,下面会介绍
1.player_name:玩家名
2.player_level:玩家等级
3.player_health:玩家生命值
4.player_max_health:玩家最大生命值
5.player_food_level:玩家饱食度
6.player_statistic:玩家官方统计值,参数为mc官方的统计类型,例如player_statistic:deaths表示玩家死亡次数
7.player_attribute:玩家官方属性,参数为mc官方的玩家属性值,例如player_attribute:generic_max_health表示玩家的最大生命值(效果同4)
8.world_full_time:世界自创建到现在的时间,不写参数即默认参数为tick,可选参数如下:
8-1:tick,游戏刻,一刻为0.05秒
8-2:second,秒
8-3:minute,分钟
8-4:hour,小时
8-5:day,天
8-6:game_day,游戏内天数
9.world_name:世界名称
10.server_name:服务器名称
11.online_players_number:在线玩家数量
空行:
(旧版的\n将被兼容并自动转化为下面格式)
使用[blank]来空一行
使用:
[blank:0.5]
来空0.5格高,参数可以为负数,但负数可能会导致点击事件无法被捕获
文字动画:使用:
%animation:动画名%来表示动画
动画可以通过指令或文件的方式创造
动画中可以插入其它变量(甚至嵌套动画,但是可能会降低性能,导致卡顿)
(切勿自我嵌套!!!!!)
另,旧版的\animation将在下下次更新后不再支持
动态物品展示:
(旧版的\dynamic_item将被兼容并自动转化为下面格式)
1.使用[dynamic_item:物品英文名] 来展示物品
2.使用[dynamic_item:玩家头颅ID] 来展示自定义头颅(ID是一串64位的字符串,可以参考NameMC: Minecraft Names & Skins (minecraft-heads.com))
静态物品展示会在不久的将来上线,敬请期待
指令集
注意,下列/hologram都可以用/fh来简化,/animation都可以用/fa来简化!
/hologram append: 将新的内容(可以是多行)添加入指定的全息实体
/hologram click_event: 设置玩家点击后系统执行的命令(执行位置为玩家所在位置,执行者为系统)
/hologram create: 创造一个全息实体
/hologram follow: 让一个全息实体跟随某一指定实体(如村民),若找不到该实体则停止跟随,跟随期间无法传送(实验性功能)
(注意,被跟随的实体自身观察全息时会有较明显的延迟,跟随其它实体时延迟很小,但在高速移动时延迟仍然明显)
/hologram help: 查看帮助
/hologram insert: 将一行插入到指定的全息实体的某一位置
/hologram remove: 删除指定的全息实体,或者删除指定全息实体的某一行
/hologram rename: 重命名指定实体
/hologram teleport: 将指定的全息实体传送至某一位置
/hologram teleport-to: 将自身传送至指定的全息实体处
/hologram view-distance: 查看或设置指定的全息实体的可视距离(-1即为不限制)
/animation append: 将新的帧(可以是多行)添加入指定的动画
/animation create: 创造一个动画变量
/animation help: 查看帮助
/animation insert: 将一帧插入到指定的动画的某一位置
/animation interval: 设置指定动画的两帧之间的间隔时间(tick)
/animation remove: 删除指定的动画,或者删除指定动画的某一行
/animation rename: 重命名指定动画
文件操作
1、语言配置
在第一次启动插件后,会生成./plugins/FancyHologram/config.yml文件
将其中的language设置为zh-CN即可切换为中文
若想自定义语言,可以在./plugins/FancyHologram/lang中放入自定义的语言文件
2、以文件的方式读写全息实体
./plugins/FancyHologram/entity/中会保存该服的所有全息实体(每个实体一个文件),下面是一个样例,文件名myhologram.dat
version: 1.0.1 #存储该文件时插件的版本号,用于兼容
name: myhologram
location: world_0.0_63.0_0.0
content:
- '&a欢迎&b%player_name%&a使用'
- '&~饭稀全息'
- '[dynamic_item:9f13197c6a7cf52570fe564aab9944a9043bdf7d957479311ece0225e1d38df4]'
- 上面是展示掉落物的样例
- '%anim:divider%+%anim:divider%'
- 你的血量&a%player_health%&r/&a%player_max_health%
- '[blank:0.8]'
advanced-settings:
'2':
listener:
left: msg @s 你用左键点击了第三行!(注:以server的身份在player的位置执行该行指令)
你可以通过文件操作的方式跨服复制全息实体,但记得要修改location中的world
下面是动画的文件保存形式,存放于./plugins/FancyHologram/animation/,下面样例的文件名为divider.dat
name: divider
interval: 2
content:
- '&7=========='
- '&6=&7========='
- '&6==&7========'
- '&6===&7======='
- '&7=&6===&7======'
- '&7==&6===&7====='
- '&7===&6===&7===='
- '&7====&6===&7==='
- '&7=====&6===&7=='
- '&7======&6===&7='
- '&7=======&6==='
- '&7========&6=='
- '&7=========&6='
- '&7=========='
FancyHologram API
Maven:
<repository>
<id>noyexception-repo</id>
<url>https://gitee.com/noyexception/repository/raw/master</url>
</repository>
<dependency>
<groupId>cn.noy.fancyhologram</groupId>
<artifactId>fancyhologram-api</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
常用方法:
1、创建全息实体
HologramEntity entity = Hologram.getHologramBuilder() .setName("MyFirstHologram") //设置全息实体的名字
.setViewDistance(8) //设置可视距离
.append("/blank 0.5") //空0.5个方块
.append(FrameEmpty.builder().setHeight(1.14)) //空1.14个方块
.append("&6玩家&~%player_name%&#aabbcc你好") //插入一行文字
.append(FrameText.builder().setText("awa..")) //继续插入一行文字
.append(FrameItem.builder().setDynamic(true).setItemStack(itemStack)) //展示一个物品
.append(FrameItem.builder().setDynamic(true)
.setCustomHead("9f13197c6a7cf52570fe564aab9944a9043bdf7d957479311ece0225e1d38df4"))//展示自定义头颅
.build(location); //在指定位置生成
2、注册自定义变量
Hologram.getVariableManager().register("hp", (player, par) ->
String.valueOf(player.getHealth()));
3、监听点击事件
Hologram.getHologramManager().getHologramEntity("name").getAdvancedSettings().setOnClickListener(
new CommandOnClickListener()
.set(PlayerClickHologramEntityEvent.ClickType.RIGHT,"msg @p awa")
);
Hologram.getHologramManager().getHologramEntity("name").getFrame(2).getAdvancedSettings()
.setOnClickListener(new CommandOnClickListener()
.set(PlayerClickHologramEntityEvent.ClickType.RIGHT,"msg @p awa")
);
Hologram.getHologramManager().getHologramEntity("name").getFrame(2).getAdvancedSettings()
.setOnClickListener(new CommandOnClickListener()
.set(PlayerClickHologramEntityEvent.ClickType.SHIFT_RIGHT,"msg @p awa")
);
或者你可以监听PlayerClickHologramEntityEvent,使用该方法时监听器将在点击前触发,可以取消点击事件(而上面的方法无法取消点击事件)。
自定义的监听事件需要在每次启用插件时注册一次,若想自动注册,则可以使用API提供的2个可以自动保存并加载的listener:CommandOnClickListener和MethodOnClickListener
必要的前置:ProtocolLib
需要注意的是,ProtocolLib在服务器reload后可能会存在不可预期的错误,故谨慎reload
非必要的前置插件:PlaceholderAPI
使用该前置插件后即可拓展变量池