FireworkPolymer 发表于 2025-1-11 18:03:16

TargetTracker —— 创建寻路点,为玩家提供导航

本帖最后由 FireworkPolymer 于 2025-1-22 00:23 编辑

多说无益直接上视频

https://www.bilibili.com/video/BV1ZCcAePEsM


默认配置文件:

TargetTracker
├─ config.yml
└─ points
   └─ example.yml


config.yml:
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%追踪'
reload: '&a已重载配置文件与追踪点'
reload-failed: '&c重载时出现错误,请查看控制台'
start-same-point: '不能开始同一个点的追踪: %point%'
all-tracks-stopped: '&c已为玩家%player%停止所有点的追踪'
all-tracks-stopped-failed: '&c玩家%player%没有任何已在追踪的点'目前只有消息

example.yml:
给了追踪点的配置格式
point1:
target:
    scale: 2 #标记大小
    location: world,100,100,100 #目标点坐标
    display:
      - '&6?'
      - '&a神秘标记'
mark:
    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变量
target:

[*]location: 目标点位置
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: 重载插件配置文件和点文件
[*]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的点的目标点描述

前置下载:https://www.spigotmc.org/resources/packetevents-api.80279/
插件下载:
这个插件也可以用来和其他插件配合做寻路,怎么开发就看你们自己了


更新记录:

1.4:
更新了%targettracker_isactive_<id>%

1.3:
更新了%targettracker_active/all_amount%变量

1.2
更新了 /stoptrack 玩家名 命令

1.1
更新了变量

soft 发表于 2025-1-13 11:39:18


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:08:28

本帖最后由 FireworkPolymer 于 2025-1-13 23:21 编辑

soft 发表于 2025-1-13 11:39
1.20.4加载时报错
写错API版本了,更新下就行
页: [1]
查看完整版本: TargetTracker —— 创建寻路点,为玩家提供导航