TargetTracker —— 创建寻路点,为玩家提供导航
本帖最后由 FireworkPolymer 于 2025-7-24 20:48 编辑多说无益直接上视频
https://www.bilibili.com/video/BV1m78wzCEFS
默认配置文件:
TargetTracker
├─ config.yml
└─ points
└─ example.yml
config.yml:
player-points:
enabled: true
max-range: -1
max-lines: 2 #如果玩家拥有自定义文本权限(custom-text),他最多可以输入几行,设置为0则不限制
permissions: #权限留空则不需要权限
open: "targettracker.player.open"
start: "targettracker.player.start"
share: "targettracker.player.share"
stop: ""
list: "targettracker.player.list"
text-display: ""
block-display: "targettracker.player.block"
item-display: "targettracker.player.item"
beam: "targettracker.player.beam"
custom-text: "targettracker.player.custom.text"
custom-block: "targettracker.player.custom.block"
custom-item: "targettracker.player.custom.item"
text-color: "targettracker.player.text.color"
text-format: "targettracker.player.text.format"
defaults:
show-in-list: true
display: "追踪点"
target:
type: text
scale: 2
beam:
length: 255
width: 1
spinspeed: 1
block: "glass"
offset: 0
display:
- '⨀'
mark:
type: text
scale: 1
distance: 5
display:
- '✥'
- '%distance%格'
trigger-distance: 4
fade-speed: 10
stop-triggers:
- 'quit'
- 'death'
- 'attack'
- 'damaged'
- 'world_change'
- 'teleport'
message:
usage: '&c使用方法: /%label% <玩家名> <点ID> [是否触发动作]'
player-not-exist: '&c玩家%player%不在线或不存在'
point-not-found: '&c找不到指定的点: %point%'
track-started: '&a已开始为玩家%player%追踪点%point%'
track-start-failed: '&c开始失败,%player%已经有一个进行中的%point%追踪'
track-stopped: '&a已为玩家%player%停止点%point%的追踪,动作触发状态为%trigger%'
track-stopped-failed: '&c停止失败,玩家%player%没有进行中的%point%追踪'
track-cancelled: '&c停止失败,该操作已被取消'
not-player: '&c只有玩家才能使用该命令'
reload: '&a已重载配置文件与追踪点'
reload-failed: '&c重载时出现错误,请查看控制台'
start-same-point: '不能开始同一个点的追踪: %point%'
all-tracks-stopped: '&c已为玩家%player%停止所有点的追踪'
all-tracks-stopped-failed: '&c玩家%player%没有任何已在追踪的点'
dialog-title: '&6请选择操作'
dialog-start-title: '&6请输入参数'
dialog-list-title: '&6进行中的追踪'
dialog-stop-title: '&6停止追踪'
dialog-display-types: '&f标记类型'
dialog-display-text: '&a文本'
dialog-display-block: '&a方块'
dialog-display-item: '&a物品'
dialog-confirm: '&a确认'
dialog-cancel: '&c取消'
dialog-start: '&a创建追踪点'
dialog-stop: '&c停止进行中的追踪'
dialog-list: '&a查看进行中的追踪'
dialog-location: '&a目标点坐标,格式为x,y,z'
dialog-custom-display: '&a自定义展示名,仅用于列表展示'
dialog-custom-text: '&a自定义文本,显示在标记上'
dialog-custom-block: '&a自定义方块标记,请输入方块ID,如stone'
dialog-custom-item: '&a自定义物品标记,请输入物品ID,如diamond'
dialog-custom-beam: '&a自定义光柱所显示的方块,请输入方块ID,如tnt'
dialog-share: '&a你要分享追踪的玩家,以逗号分隔玩家名'
dialog-created-by-server: '&e系统创建'
dialog-created-by: '&e创建者: %player%'
dialog-no-points: '&c当前没有追踪点'
wrong-material: '&c无效的材质: %material%'
no-location: '&c你没有输入坐标'
too-close: '&c该点距离其他已追踪点过近,请重新输入坐标'
wrong-number: '&c参数数量不正确,你只需要输入x,y,z三个坐标'
invalid-number: '&c坐标必须为整数'
out-of-range: '&c追踪点超出允许范围,最大范围为 %distance% 格,你输入的坐标离你 %now-distance% 格'
point-share-message: '&e%player%&a向你发来了追踪共享&d(%display%: %location%)&a!点击加入共享!'
example.yml:
给了追踪点的配置格式
point1:
display: "<green>神秘标记"
show-in-list: true
target:
type: text
# block: tnt
# item: diamond_sword
scale: 2 #标记大小
beam: #beam是可选的
length: 255 #柱子的长度
width: 1 #柱子的宽度
spinspeed: 1 #柱子的旋转速度,负数反向
block: "tnt" #方块
offset: 0.5 #上下偏移量
location: world,100,100,100 #目标点坐标
display:
- '&6?'
- '&a神秘标记'
mark:
type: text
scale: 1
distance: 5 #距离玩家的距离
display:
- '✥'
- '%distance%格'
trigger-distance: 4
fade-speed: 10
stop-triggers:
- 'quit'
- 'death'
- 'attack'
- 'damaged'
- 'world_change'
- 'teleport'
actions:
- 'command: say a'
- 'op: say b'
- 'console: say c' #以玩家身份、op身份、控制台执行命令
- 'message: &4你完成了这个目标!'
- 'title: &4你完成了!;&6这个目标!;20;20;20'
- 'actionbar: &4你完成了这个目标!'
- 'sound: entity.player.death;1;0'
- 'lightning: target;100;100;100'
- 'firework: player;#123456,#654321,#111111;BALL;#123456,#000000;0' #生成烟花,参数分别是位置,颜色,类型,渐变颜色和飞行高度(对应power)
- 'start: point2' #开始另一个点的追踪
point2:
target:
scale: 2
location: world,200,100,200 #目标点坐标
display:
- '&6?'
- '&a神秘标记2'
mark:
scale: 1
distance: 5 #距离玩家的距离
display:
- '✥'
- '%distance%格'
trigger-distance: 4
fade-speed: 10
actions:
- 'command: say b'
[*]点分为target和mark两个部分,对应目标点位置和为你提供引导的标记点
scale是共用属性,对应文字的缩放大小
display也是共用属性,对应显示内容,最好不要加太多行,支持%player%和%distance%变量,代表玩家名和距离,支持papi变量
type也是共用属性,设置为block或item时,可以在点中设置对应显示的方块或物品,具体见上方
target:
[*]location: 目标点位置
[*]beam: 具体见上方配置和视频演示
mark:
[*]distance:标记点与玩家的距离,太近太远都不好
trigger-distance: 触发点的开始距离,达到此距离点就会开始淡化,消失后执行动作
fade-speed: 点淡化的速度,也就是透明度减小的速度,透明度最开始为255,每刻减小该值,直到25(游戏定义此透明度直接变为完全透明)便会触发动作,所以你要立刻执行可以直接设置为一个很大的值'
[*]停止触发器介绍:
你可以设置追踪在某些事件触发的时候停止
[*]quit: 玩家退出时停止追踪,默认情况下玩家会在重新进游戏的时候继续追踪
[*]death: 死亡时
[*]attack: 玩家进行攻击时
[*]damaged:玩家受到伤害时
[*]world_change:玩家切换世界时,默认玩家的追踪状态不会在切换世界时停止,回到原世界时会继续
[*]teleport:玩家传送时
[*]动作介绍:
动作的参数有些不止一个,需要以;号分割,所有动作均支持%distance%和%player%变量以及papi变量
[*]command: 以玩家身份执行命令
[*]console:以控制台身份执行命令
[*]op:以op身份执行命令,谨慎使用后果自负
[*]message:向玩家发送一条消息
[*]title: 向玩家发送一个标题消息,需要五个参数,第一个是主标题,第二个是副标题,第三个是渐入时间,第四个是持续时间,第五个是渐出时间,都以刻为单位,20刻等于1秒
[*]actionbar: 向玩家发送一个动作栏消息
[*]sound:播放一个声音,你可以用原版声音格式,也可以使用ENTITY_PLAYER_DEATH这种格式,第二个参数是音量第三个是音调
[*]lightning:打一道雷,仅为特效,第一个参数是位置,可以为player、target或者 世界名,x,y,z 这种格式,player对应玩家位置,target对应目标点位置
[*]firework:生成烟花,参数分别是位置,颜色,类型,渐变颜色和飞行高度(对应power),位置的格式个上面一样
[*]start: 开始另一个点的追踪,不能开始自己的追踪
[*]命令介绍:
[*]/starttrack 玩家名 点ID: 开始一个追踪
[*]/stoptrack 玩家名 : 停止所有追踪
[*]/stoptrack 玩家名 点ID [是否触发动作]: 停止一个追踪,第三个参数可为true或false,不填默认false
[*]/targettracker reload: 重载插件配置文件和点文件
[*]/track: 打开追踪菜单,表现见上方视频
[*]PlaceholderAPI变量介绍:
[*]%targettracker_isactive_<id>% : 指定ID的点是否已激活
[*]%targettracker_active/all_amount% : 目前正在追踪的或所有的点的总数
[*]%targettracker_active/all_nearest/furthest_distance% : 目前正在追踪的或所有的点中最近或最远的点离玩家的距离
[*]%targettracker_active/all_nearest/furthest_markdisplay% : 目前正在追踪的或所有的点中最近或最远的点的标记点描述
[*]%targettracker_active/all_nearest/furthest_targetdisplay% : 目前正在追踪的或所有的点中最近或最远的点的目标点描述
[*]%targettracker_active/all_nearest/furthest_id% : 目前正在追踪的或所有的点中最近或最远的点的点ID
[*]%targettracker_point_<id>_distance% : 指定ID的点距玩家的距离
[*]%targettracker_point_<id>_markdisplay% : 指定ID的点的标记点描述
[*]%targettracker_point_<id>_targetdisplay% : 指定ID的点的目标点描述
权限(默认权限见上方):
[*]open: 是否可以使用/track命令
[*]start: 是否可以自己创建追踪点
[*]share: 是否可以分享给其他玩家
[*]stop: 是否可以访问停止菜单
[*]list: 是否可以访问追踪列表
[*]text-display: 是否可以使用文本展示实体,默认可以
[*]block-display: 是否可以使用方块展示实体
[*]item-display: 是否可以使用物品展示实体
[*]beam: 是否可以设置光柱方块
[*]custom-text: 是否可以自定义文本
[*]custom-block: 是否可以自定义方块
[*]custom-item: 是否可以自定义物品
[*]text-color: 是否可以使用颜色代码,&a或者<green>格式都行
[*]text-format: 是否可以使用格式代码,&l或者<bold>都行
前置下载:https://www.spigotmc.org/resources/packetevents-api.80279/
插件下载:
这个插件也可以用来和其他插件配合做寻路,怎么开发就看你们自己了
更新记录:
2.0:
大更新,由于使用了对话框系统,当前版本仅支持1.21.6+
主要是为标记添加了方块和物品展示实体的支持,以及用来模拟信标的会旋转的beam
当然最重要的还是玩家自创导航标,分享功能使得大家可以一起去同一个地方
1.7:
修复了错误的配置文件缩进
1.6:
修复停止所有点追踪后点仍然存在的问题
1.5:
更新了API,添加了TrackStartEvent和TrackStopEvent
1.4:
更新了%targettracker_isactive_<id>%
1.3:
更新了%targettracker_active/all_amount%变量
1.2
更新了 /stoptrack 玩家名 命令
1.1
更新了变量
1.20.4加载时报错
: Could not load plugin 'TargetTracker-1.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.21
at org.bukkit.craftbukkit.v1_20_R3.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:383) ~
at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:119) ~
at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35) ~
at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116) ~
at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38) ~
at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:36) ~
at org.bukkit.craftbukkit.v1_20_R3.CraftServer.loadPlugins(CraftServer.java:529) ~
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:318) ~
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1138) ~
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:308) ~
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
本帖最后由 FireworkPolymer 于 2025-1-13 23:21 编辑
soft 发表于 2025-1-13 11:39
1.20.4加载时报错
写错API版本了,更新下就行
页:
[1]