# DashAPI
DashAPI 添加了 "dash()": 以方块为单位设置实体的速度,而不是向量。
[]()
## 教程
首先,将 DashAPI 包含到您的项目中。 然后,在您的 "plugin.yml" 文件中添加此依赖项。
`depend: [DashAPI]`
要获取此 API 的实例以供使用,请使用 "DashAPI.getInstance()" 定义一个 "DashFunctions" 对象:
```
DashAPI api;
@Override
public void onEnable() {
api = DashAPI.getInstance();
}
```
示例 #1 (基本函数):
```
@EventHandler
public void onClick(PlayerInteractEntityEvent event) {
api.dash(event.getRightClicked(), 10, 10, -10);
}
```
当玩家与实体交互时,实体将向前方、向上和向左分别移动 10 个方块,在 Minecraft 的 x、y 和 z 轴上。
示例 #2 (调整):
```
@EventHandler
public void onCrouch(PlayerToggleSneakEvent event) {
api.dash(event.getPlayer(), 10, 100, 0, true, true, true);
}
```
当玩家蹲下或站起身时,由于 “adjustHorizontal” 为 true,他们将相对于他们的视线方向向前移动,并且玩家的当前速度将添加到 dash 中,由于 “additive” 为 true。 此外,由于实体可以垂直移动的最大方块数是 60(水平方向是 43),因此该插件将值 100 减小到 60 并将玩家向上移动 60 个方块,假设没有重力(例如,玩家在飞行中)。 最后,由于 “adjustVertical” 设置为 true,玩家的视线上下会影响 dash 的 y 值。
示例 #3 (int 和 Double 输入):
```
@EventHandler
public void bounceClick(PlayerInteractEntityEvent event) {
api.dash(event.getPlayer(), 0, event.getPlayer().getLocation().getDirection().getY() * -4, 0);
}
```
可以在任何组合中使用块距离的 int 值和速度的 Double 值,在本例中为 (int, Double, int)。 在本示例中,当玩家与实体交互时,玩家视线方向的 y 值乘以 -4,这意味着如果玩家向下看单击实体,他们将以较大的正 y 速度移动。
示例 #4 (乘数):
```
@EventHandler
public void pushAndPull(PlayerInteractEntityEvent event) {
api.dash(event.getRightClicked(), event.getPlayer().getLocation().getDirection());
api.dash(event.getPlayer(), event.getRightClicked().getVelocity(), 0.5, 0.5, 0.5);
}
```
第一个 dash 应用于玩家交互的实体,基于玩家所面向的方向,创建击退效果。 第二个 dash 应用于玩家,基于所单击实体的速度,创建拉动效果。 此外,拉动效果的 x、y 和 z 乘数都减半,这意味着,如果重复进行,交互的实体最终会离玩家太远,无法进行交互。