# SignWarp
   [](https://discord.com/invite/sRuEqP6Bxs)
一个用于传送的Bukkit插件,通过告示牌实现。
**(Minecraft 版本 1.20 - 1.21.8)**
SignWarp 允许玩家放置告示牌,通过简单的右键点击在告示牌之间传送。
默认情况下,传送需要一个末影珍珠,必须在玩家与告示牌互动时持有,但也可以在配置文件中禁用此功能。
## 权限
- `signwarp.create` - 允许创建和销毁传送告示牌 (默认: op)
- `signwarp.use` - 允许使用传送告示牌 (默认: everyone)
- `signwarp.reload` - 允许访问重新加载 (默认: op)
- `signwarp.admin` - 允许访问传送管理 GUI (默认: op)
- `signwarp. *` - 允许访问所有功能 (默认: op)
- `signwarp.limit.unlimited` - 允许无限创建传送点
命令:
- `/signwarp reload` - 重新加载配置文件。
- `/signwarp gui` - 打开传送管理 GUI。
## 使用方法
首先,在您想要传送到哪里放置一个告示牌,内容如下:
- 第一行: **[WarpTarget]** 或 **[WPT]**
- 第二行: 您想要使用的名称
这将创建一个传送告示牌,设置传送到的位置。
创建传送告示牌后,创建一或多个您想要从它们传送到目标告示牌的告示牌。
这是通过放置带有以下内容的告示牌来实现的:
- 第一行: **[Warp]** 或 **[WP]**
- 第二行: 您想要使用的名称
**注意:目标告示牌 (WarpTarget) 必须在创建传送告示牌之前存在!**
### 双向传送 (新功能,v1.2.0!)
SignWarp 现在支持 **双向传送**!此增强功能允许玩家在配对的传送告示牌之间无缝地来回旅行。
#### 工作原理
- **前进传送**:右键点击 **[Warp]** 告示牌会将您传送到相应的 **[WarpTarget]** 告示牌 (现有行为)。
- **返回传送**:右键点击 **[WarpTarget]** 告示牌现在会将您传送到相应的 **[Warp]** 告示牌 (新功能!)
这创建了一个真正的两向传送系统,适用于:
- 创建基地之间的交通网络
- 设置冒险地图中的快速旅行点
- 建立商人店连接
- 构建地牢入口/出口系统
#### 技术细节
- 两方向都遵守相同的权限、冷却时间和成本
- 插件在数据库中跟踪告示牌位置,以实现可靠的双向链接
- 如果任意一方告示牌被破坏,链接将自动清理
- 与所有现有的传送配置兼容 (经济成本、物品成本、效果等)
在创建了这两个告示牌后,您可以携带 `use-item` 右键点击 (默认情况下,它是一个末影珍珠)。
每次传送都会消耗 `use-cost` 中配置的物品数量 (默认: 1)。
您可以在 `config.yml` 中删除 `use-item` 选项或将其设置为 "none" 以允许使用任何物品(即,每次传送都是免费的)。
或者,您可以在 `config.yml` 中启用 `teleport-cost` 以便为每次传送收取一定数量的内置游戏货币。要使用此功能,请确保在您的服务器上安装了 [Vault](https://www.spigotmc.org/resources/vault.34315/)。
## 传送点限制系统
使用权限控制玩家可以创建的最大传送点数量。
例如使用 LuckPerms:
`/lp group default permission set signwarp.limit.3`
这允许默认组中的玩家创建最多 3 个传送点。
如果没有限制权限,玩家默认可以创建无限数量的传送点。
## 管理员 GUI

## 消息自定义
在 `config.yml` 配置文件中,您可以自定义插件使用的消息。这些消息在 key messages 密钥下定义,可以根据您的喜好进行修改。
**预览:**
```yaml
messages:
create_permission: "&c您没有创建传送告示牌所需的权限!"
no_warp_name: "&c未设置传送点名称!\n请在第二行中指定传送点名称。"
warp_created: "&a传送告示牌成功放置。"
warp_name_taken: "&c已经存在相同名称的传送目标!"
warp_destroyed: "&a传送点已销毁。"
target_sign_created: "&a传送点目标告示牌成功放置。"
destroy_permission: "&c您没有销毁传送告示牌所需的权限!"
invalid_item: "&c您必须使用 {use-item} 来进行此传送!"
not_enough_item: "&c您需要 {use-cost} {use-item} 进行此传送!"
warp_not_found: "&c找不到指定的传送点!"
use_permission: "&c您没有使用传送告示牌所需的权限!"
teleport: "&e正在传送至 {warp-name},{time} 秒后..."
teleport-success: "&a已成功传送至 {warp-name}。"
teleport-cancelled: "&c传送已取消。"
notify-cost: "&a您已为此传送支付 {cost} 货币。"
not_permission: "&c您没有权限!"
limit_reached: "&c您已达到传送点创建限制 ({limit})。"
warp_sign_removed: "&a传送告示牌成功移除!"
no_bidirectional_link: "&c找不到此传送点的返回点!"
```
- `{warp-name}` : 此占位符将替换为告示牌上指定的传送点名称。
- `{use-item}` : 用于表示使用传送所需的物品名称。例如,如果所需的物品是末影珍珠,则此占位符将替换为 "ENDER_PEARL"。
- `{use-cost}` : 此占位符将替换为使用传送所需的物品数量。例如,如果传送的成本是 1 个末影珍珠,则此占位符将替换为 "1"。
- `{cost}` : 此占位符将替换为传送支付的货币金额。
- `{time}` : 此占位符将替换为传送完成前的时间(以秒为单位)。
您可以在 `config.yml` 配置文件中自定义插件使用的文本。文本使用 Minecraft 颜色代码进行一次样式设置。这些代码以 & 字符开头,后跟一个表示特定颜色的字母或数字。[更多信息](https://www.digminecraft.com/lists/color_list_pc.php)
## 音效和效果自定义
您可以在 `config.yml` 配置文件中自定义传送过程中播放的声音和效果:
[声音列表](https://www.digminecraft.com/lists/sound_list_pc.php) 和 [效果列表](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Effect.html)
**注意:声音和效果必须大写并且将 "." 替换为 "_" 以播放声音。**
**预览:**
```yaml
teleport-sound: ENTITY_ENDERMAN_TELEPORT
teleport-effect: ENDER_SIGNAL
```
## 截图

## 统计数据 (bstats.org)
