创建虫洞
什么是虫洞?
虫洞是一种高效的传送门对传送门的传送系统。这些传送门会以视觉特效标记出来。
虫洞机制
虫洞可以实现以下功能:
- 穿过一个传送门抵达目标传送门,再从目标传送门返回最初的传送门。
- 玩家穿过时播放音效
- 玩家穿过时短暂致盲以平滑过渡
- 为防止传送循环,必须经过超过 5 秒,并且玩家已离开目标传送门
1.5 × sizeMultiplier + 2格以外,才能再次传送 - 玩家传送时自动禁用飞行模式
- 播放精美的视觉特效
- 要求拥有权限才能使用虫洞
- 要求使用货币才能使用虫洞
- 当目标传送门不可用时通知玩家和管理员
玩家每 5 刻(四分之一秒)才会针对某个虫洞检查一次,而且仅在其处于该虫洞 30 格范围内时才检查。
切换世界视为已离开目标传送门的半径,因此切换世界后只剩下 5 秒的时间要求。重新连接服务器会清除冷却。
创建一个虫洞
将配置文件添加到 plugins/EliteMobs/wormholes。支持子文件夹,例如 plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml。
在游戏内放置虫洞
你可以不必手写坐标,而是站在你希望传送门所在的位置并运行:
/em place wormhole <filename> <1/2>
1 设置 location1,2 设置 location2。该命令需要 elitemobs.place.admin 权限,必须由玩家执行,并会把新坐标直接写入该虫洞的配置文件。传送门被锚定在你站立位置上方一格(乘以 sizeMultiplier)处,因此通过它抵达的玩家会落到你原本所站的方块上。
抵达朝向
location1 和 location2 中的偏航角(Yaw)和俯仰角(Pitch)(坐标中的最后两个数字)设定玩家抵达虫洞该侧时所面朝的方向。来看这个例子:
location1: my_world,20,10,20,180,20
偏航角设为 180 时,玩家抵达时面朝北方。俯仰角遵循 Minecraft 的约定,正值表示向下看,负值表示向上看,因此俯仰角 20 表示玩家抵达时略微向下看。
请注意,虫洞不会把玩家推向任何地方;抵达位置就是另一侧的坐标,包括其偏航角和俯仰角。
虫洞配置
以下是一个有效虫洞配置的示例:
isEnabled: true
location1: em_primis,1288.5,19,452.5,135,-23
location2: em_primis,1288.5,-39,451.5,180,-1
isEnabled
设定虫洞是否启用。
| 键 | 值 | 默认值 |
|---|---|---|
isEnabled | 布尔值 | true |
示例
isEnabled: true
location1
指定虫洞的第一个位置。两个位置字段都接受 world,x,y,z,yaw,pitch,也接受 adventurers_guild_hub.yml 这样的副本包文件名。包引用使用该包配置的传送位置。使用前请安装该包并加载其世界。传送处理检查解析后的位置和世界加载状态,不会单独强制检查包的安装标记。它不会创建新的副本实例。
| 键 | 值 | 默认值 |
|---|---|---|
location1 | 字符串 | 无 |
示例
location1: world_one,50,100,50,0,0
location2
指定虫洞的第二个位置。
| 键 | 值 | 默认值 |
|---|---|---|
location2 | 字符串 | 无 |
示例
location2: world_two,100,33,100,0,0
location1Text
设定第一个位置的显示文本。
| 键 | 值 | 默认值 |
|---|---|---|
location1Text | 字符串 | 无 |
示例
location1Text: Awesome Wormhole In World One

location2Text
设定第二个位置的显示文本。
| 键 | 值 | 默认值 |
|---|---|---|
location2Text | 字符串 | 无 |
示例
location2Text: Awesome Wormhole In World Two

permission
设定双向使用虫洞所需的权限。启用 /em quest bypass 的玩家跳过此权限检查,但仍需满足费用和冷却要求。
| 键 | 值 | 默认值 |
|---|---|---|
permission | 字符串 | 无 |
示例
permission: elitemobs.mypermission
coinCost
设定虫洞的使用费用。通常使用精英金币;启用 Vault 经济集成后,使用服务器货币。
只有在权限、冷却和目的地检查都通过后才会扣费,两个方向的费用相同。付不起费用的玩家会收到 Wormholes.yml 中的 insufficientCurrencyForWormholeMessage,且不会被传送。如果传送被取消或未能抵达,费用会被退还。
如果经济系统无法确认扣款或退款,EliteMobs 会告知玩家联系管理员,记录金额以便人工核对,并在服务器重启前禁止该玩家使用所有虫洞。负数或非有限值的 coinCost 会记录一条警告,该虫洞不会传送任何人。
| 键 | 值 | 默认值 |
|---|---|---|
coinCost | 双精度小数 | 0 |
示例
coinCost: 0
style
设定虫洞的视觉形状。
该形状被绘制为由方块显示实体构成的旋转线框,并每 5 刻在其上叠加少量粒子点缀。把 style 设为 NONE 会完全跳过该形状。
这些特效可能使部分客户端卡顿。在 Wormholes.yml 中设置 noParticlesMode: true 可关闭线框及其粒子。传送门文字、自定义模型和独立的基岩版标记会保留。
| 键 | 值 | 默认值 |
|---|---|---|
style | NONE / CRYSTAL / ICOSAHEDRON / CUBE | CUBE |
示例
style: CRYSTAL

particleColor
设定 style 所用粒子的颜色。线框方块不会使用精确颜色,EliteMobs 会选择颜色最接近的混凝土方块。
默认值 0 是黑色,因此值得为你创建的每一个虫洞都设置这一项。
| 键 | 值 | 默认值 |
|---|---|---|
particleColor | 0x 后跟一个十六进制代码 | 0 |
示例
particleColor: 0x9f5cdd

blindPlayer
设定传送时是否施加 40 刻、约 2 秒的失明效果。
| 键 | 值 | 默认值 |
|---|---|---|
blindPlayer | 布尔值 | false |
示例
blindPlayer: true

sizeMultiplier
缩放 style 定义的形状,并将激活半径设为 1.5 × sizeMultiplier 格。距离包括高度,独立的 30 格玩家搜索仍会限制激活范围。请使用有限正数。此设置还影响放置高度和文字高度,但不会缩放 FreeMinecraftModels 模型。
| 键 | 值 | 默认值 |
|---|---|---|
sizeMultiplier | 倍率 | 1 |
示例
sizeMultiplier: 3
请记住,应用大小倍率后,你需要相应调整虫洞的 Y 坐标。

customModel1
设定在第一个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 1 中由 style 定义的形状。
虫洞自定义模型需要 FreeMinecraftModels。模型必须存在,否则使用 style 线框。模型仅用于装饰,不响应点击。传送仍按距离触发。
| 键 | 值 | 默认值 |
|---|---|---|
customModel1 | 字符串 | 无 |
示例
customModel1: my_custom_wormhole_model
customModel2
设定在第二个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 2 中由 style 定义的形状。与 customModel1 相同的 FreeMinecraftModels 要求同样适用。
| 键 | 值 | 默认值 |
|---|---|---|
customModel2 | 字符串 | 无 |
示例
customModel2: my_custom_wormhole_model
虫洞配置示例
在这个示例中,我们将创建一个简单的虫洞,将我们从一个世界带到另一个世界。别忘了虫洞也可以只是将玩家传送到同一世界中的不同位置。
isEnabled: true #We enable the worm by setting this value to true
location1: my_world,1.5,11.0,1.5,108.0,5.0 #this is where the wormhole will appear in my_world
location2: my_other_world,766.5,29.0,517.5,-136.0,5.0 #this is where the wormhole will appear in my_other_world
location1Text: "&aGo to My World" #makes a nice display text above wormhole location1
location2Text: "&aGo to My Other World" #makes a nice display text above wormhole location2
permission: eliteperm.coolplayers #only players with this permission will be able to use the wormhole, both for location1 and location2
coinCost: 0 #free to use; a positive value charges elite coins, or Vault currency when Vault is enabled
style: CRYSTAL #this wormhole will be in the shape of a crystal
particleColor: 0x00ff00 #this will set the wormhole particles to green
blindPlayer: true #the wormhole teleport will blind the player for a short duration to make the transition less jarring
sizeMultiplier: 1.0 #sets how big the shape of the wormhole should be
性能问题
虫洞特效可能使基岩版客户端卡顿。可以在 plugins/EliteMobs/Wormholes.yml 中配置:
reducedParticlesMode: true(默认)减少沿形状生成的点数。noParticlesMode: false(默认)设为true时完全禁用虫洞形状及其粒子。
启用任一选项后,如果服务器的基岩版自定义实体桥接可用,基岩版玩家还可以看到一个简单标记。它使用 particleColor,最小缩放倍率为 0.5。成功加载的自定义模型会替代该标记。Java 版玩家不会看到它。
只有 30 格范围内至少一名玩家能直视传送门时,线框才会更新。视线被遮挡约 5 秒后,或附近不再有玩家时,线框会被移除。这不会禁用靠近传送门触发的传送,也不影响独立显示的自定义模型。
