• 【MineBBS社区发展意见征集】

    欢迎参与MineBBS社区调查,助力打造更好Minecraft社区!完成问卷可获赠200金粒,优质回答可额外获得200金粒(限5名),快来参与吧!【点击参与】

RTP - 高性能随机传送插件

授权转载 开源 RTP - 高性能随机传送插件 2024-07-20

登录后下载
版权类型
授权转载
插件中文名称
随机传送
插件英文名称
RTP
原帖地址
https://www.spigotmc.org/resources/rtp.94812/
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
  4. PufferFish
  5. Leaves
语言支持
多语言
前置组件
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
  6. 1.16
  7. 1.15
  8. 1.14
  9. 1.13
  10. 1.12
  11. 1.11
  12. 1.10
  13. 1.9
  14. 1.8
高性能

随机传送插件通常被认为是容易实现的,但实际上这是服务器中最耗费资源的插件类型之一。

因为 RTP 需要进行区块生成、区块加载、安全位置寻找、非安全位置重新查找、玩家传送等复杂操作。

市面上的随机传送插件往往会滞后服务器或者传送前等待一段时间,这严重影响了玩家的游戏体验。

为了解决这些问题 RTP 使用了位置缓存、Paper异步加载、异步随机化、玩家队列等方式改进了随机传送的问题。

所以,RTP 每次进行随机传送几乎只需要 <2ms(对于缓存好的位置) <200ms(对于缓存外的位置)。

为什么要让玩家随机传送时等待呢?试试 RTP 给你带来的超快随机传送

高可配置性


  • 每个世界内任意数量的传送区域
  • 每个区域和每个世界的传送配置
    • 传送区域形状(方形 / 圆形)
    • 传送半径和中心半径
    • 中心 x,z 坐标
    • 偏向加权(朝向或远离中心)
    • 最小值和最大传送高度值
    • 可选天空亮度检查(避免传送到地下)
    • 可选的世界权限要求
    • 可分 Region(区域),这意味着可以在地图任意位置划定多个随机传送区域,他们是可重复的(可参考下图 2)
  • 通过命令更新区域和世界配置
  • 多维度支持
  • 传送安全
    • 可配置的安全半径检查
    • 可配置的安全平台创建
    • 可配置的无敌时间
    • 可配置危险方块黑名单
  • 具有权限的世界和玩家参数
  • 自动从不良展示位置中吸取教训
    • 每次失败时,选择在统计上都会变得更快。
  • 完全可配置的日志和消息 lang.yml
  • 基于权限的声音和效果
  • 面向开发人员的 API
72e0fd910f84b92c1530a4b630a4254f36044eeb

bb818c173d5c9b00eacbb51fe79a8ef47ef93a7f


高兼容性

PlaceholderAPI 支持


  • %rtp_player_status% - 玩家当前的传送状态
  • %rtp_total_queue_length% - “/rtp”将使用的区域中玩家可用的位置总数
  • %rtp_public_queue_length% - “/rtp”将使用的区域中可供所有人使用的位置数
  • %rtp_personal_queue_length% - “/rtp”将使用的区域中专门分配给该玩家的位置数
  • %rtp_teleport_world% - 随机传送的目标世界
  • %rtp_teleport_x% - 随机传送的目标位置 X 坐标
  • %rtp_teleport_y% - 随机传送的目标世界 Y 坐标
  • %rtp_teleport_z% - 随机传送的目标世界 Z 坐标
领地支持

对应常用的领地插件,可以避免传送到其他人的领地。
  • Domain
  • Factions (and any factions plugins using massivecraft.factions as a base)
  • GriefDefender
  • GriefPrevention
  • HuskTowns
  • Lands
  • TownyAdvanced
  • WorldGuard
简单易用

  • /rtp - 传送到你所在世界的默认区域
  • /rtp [parameter]:[value] - 在传送之前指定区域、世界、玩家和/或临时区域参数
  • /rtp update - 通过命令更新任意/所有配置
  • /rtp fill - 尝试一个区域中所有可能的展示位置,并存储任何失败的展示位置和生物群落位置。(不稳定)
搬运授权证明

fdzwxw


汉化配置

YAML:
# 用户体验的一般消息配置
# 支持 Bukkit 颜色代码和十六进制颜色代码
# 支持 PlaceholderAPI 引用

# 额外占位符列表
# 格式:Pn - 其中 n 是此列表中的索引
placeholders:
  - '[#f2d68f传送&f]' #P0

# 当正在传送时,显示此消息
alreadyTeleporting: '&f[P0] 正在传送中!'
delayMessage: '&f[P0]  [delay]秒后开始传送,请勿移动!'
chunkLoading: '&f[P0] 区块加载中...'
teleportMessage: '&f[P0] 您出生在了x:%player_x% y:%player_y% z:%player_z% (耗时 [processingTime]) '

# 如果传送被取消
teleportCancel: '&f[P0] 传送已取消!'

# 如果在达到最大尝试次数后找不到安全地点
unsafe: '&f[P0] [attempts]次尝试后无法找到安全出生点'

# 当玩家处于冷却期
cooldownMessage: '&f[P0] 等待 [remainingCooldown] 后才能继续随机传送'

# 如果区域没有排队的位置,并且玩家没有 rtp.unqueued 权限
noLocationsQueued: '#f5eb73[P0] 未准备就绪'

# 当队列发生变化时
queueUpdate: '#2636ef[P0]队列中[spot]'

# 如果玩家在该区域没有足够的金钱进行传送
# 占位符:[money] - 执行命令所需的金额
notEnoughMoney: '&f[P0] 您没有用于传送的 [money]$'

# 对于时间占位符,表示天数、小时数、分钟数、秒数的词汇
days: 天
hours: 小时
minutes: 分钟
seconds: 秒
millis: 毫秒

# 如果配置文件的版本低于最新版
# 占位符:[filename] - 文件名,包括扩展名
oldFile: '&f[P0] 正在更新旧的 [filename]'

# 检测到未在配置文件中的 Bukkit 世界
# 占位符:[world] - 被检测到的世界
newWorld: '&f[P0] 检测到新世界'[world]''

# 世界在 Bukkit 中不存在
invalidWorld: '&f[P0] 不存在的世界'[world]''

# 配置更新
updatingWorlds: '&f[P0] 正在升级世界...'
updatedWorlds: '&f[P0] 世界配置文件升级完成!'

updatingRegions: '&f[P0] 正在升级区域...'
updatedRegions: '&f[P0] 区域配置文件升级完成!'

# 插件重新加载文本
reloading: '&f[P0] 正在加载[filename]...'
reloaded: '&f[P0] 成功加载[filename].'
updating: '&a[P0] 正在升级 [filename]...'
updated: '&a[P0] 成功升级 [filename].'

# 插件没有用户请求的命令
# 占位符:[arg] - 尝试的参数
badArg: '&c[P0] 使用错误: [arg]'

# 用户没有执行请求命令的权限
noPerms: '#f2d68f无权限'

# 用户试图唤醒一个不向其位置发送消息的世界,但没有权限
# 占位符:[world] - 命令中尝试的世界
noGlobalPerms: '#f2d68f无权限'

fillStart: '&a[P0] 开始填充区域 [region]'
fillCancel: '&f[P0] 取消填充区域 [region]'
fillPause: '#A020F0[P0] 暂停填充区域 [region]'
fillResume: '#10A5F5[P0] 继续填充区域 [region]'
fillRunning: '&c[P0] 区域 [region] 的填充任务已在运行'
fillNotRunning: '&c[rtp] 区域 [region] 的填充任务未运行'
fillStatus: '&a[P0] 区域 [region] 完成 [chunks] / [totalChunks] 区块的填充速率为 [cps] 区块每秒 。预计完成时间: [eta]'

# 信息命令
infoTitle: '&a======RTP 信息======'
infoChunks: '#D4AF37当前由 RTP 加载的区块数: [chunks]'
infoWorldHeader: '#008080世界:'
infoWorld: '  #21ADA8[world]'
infoRegionHeader: '#63C5DA区域:'
infoRegion: '  #52B2BF[region]'

# 子信息
worldInfo:
  - '#21ADA8[world]:'
  - '#99EEBB  名称: [name]'
  - '#99EEBB  区域: [region]'
  - '#99EEBB  需要权限: [requirePermission]'
  - '#99EEBB  覆盖设置: [override]'

regionInfo:
  - '#52B2BF[region]:'
  - '#58CCED  世界: [world]'
  - '#58CCED  形状: [shape]'
  - '#58CCED  需要权限: [requirePermission]'
  - '#58CCED  超越世界边界: [worldBorderOverride]'
  - '#58CCED  缓存上限: [cacheCap]'
  - '#58CCED  已缓存: [cached]'

# 命令描述
rtp: '#f2d68f/rtp - 随机传送'
help: '#f2d68f/rtp help - 这个帮助页面'
reload: '#f2d68f/rtp reload - 重新加载'
fill: '#f2d68f/rtp fill - 预加载'

# 用于 PAPI 的玩家传送状态占位符
PLAYER_AVAILABLE: '&a空闲'
PLAYER_COOLDOWN: '#f2d68f冷却中'
PLAYER_SETUP: '#f2d68f选择位置中'
PLAYER_LOADING: '#f2d68f加载区块中'
PLAYER_TELEPORTING: '#f2d68f传送中'

# 显示标题
# 删除或设置标题为 "" 以禁用
# 推荐使用 PlaceholderAPI 来获取坐标
title: '#f2d68f你出生在地球的一个角落'
subtitle: ''
fadeIn: 20
stay: 60
fadeOut: 20

actionbar: ''

version: '1.0'
作者
Radiation_pi
下载
608
查看
1,908
首次发布
最后更新

评分

0.00 星 0 次评分

Radiation_pi 的其他资源

后退
顶部 底部