SmoothSleep 流畅睡眠 | |
---|---|
![]() |
更顺畅的多人友好睡眠。 |
作 者 | OffLuffy |
发布时间 | 2016年11月19日 |
支持核心 | Spigot | 原生版本 |
支持版本 | 1.16 |
插件详细介绍
SmoothSleep 插件旨在根据睡眠玩家的数量逐渐加快夜晚的进程。每个世界的夜晚流逝速度都可以配置。如果玩家被设置为忽略睡眠,他们仍然可以通过睡觉来加速时间,但如果他们醒着,将不会被计算在内。
如果您遇到夜晚瞬间跳过的问题,这不是 SmoothSleep 的 Bug,而是 Essentials 的一项功能。要解决此问题,请否定 essentials.sleepingignored
权限,并让之前拥有此权限的玩家注销并重新登录,以允许 Essentials 缓存该权限。
自 v2.6.0 起,已实现对 PlaceholderAPI 的可选支持。
自 v2.9.3 起,该插件可以使用 CMI 忽略消失和 AFK 用户。
自 v2.10.0 起,您可以在可配置消息中使用十六进制颜色代码,格式为 AABBCC
或 ABC
。
玩家可以选择在夜间被治愈、喂食(或受到伤害/饥饿),并移除药水效果,具体取决于玩家的睡眠时间。
早上会向玩家问好,并尽早将懒惰的人从床上踢出去。如果通过睡觉到达早晨,天气也会放晴(也可配置),就像原版睡觉一样。
SmoothSleep 会将统计数据传输到 bStats.org(如果您不选择退出)。这是统计页面:bStats
smoothsleep.reload
: 允许使用 /ssreload
重载配置。smoothsleep.toggle
: 允许使用 /sstoggle
临时禁用和重新启用 SmoothSleep。smoothsleep.configure
: 允许通过 /ssconf
命令管理配置。smoothsleep.addworld
: 允许通过 /ssaddworld
命令向配置添加世界配置段。smoothsleep.ignore
: 允许绕过睡眠需求。拥有此权限的玩家可以睡觉以加速时间,但不会被计为醒着。这与使用 Bukkit API 将玩家设置为忽略睡眠效果相同,但实际上并未将玩家设置为忽略睡眠。smoothsleep.metrics
: 允许使用 /ssmetrics
切换 SmoothSleep 指标。smoothsleep.notify
: 如果有插件更新可用,则在您登录时收到通知。smoothsleep.ignoreheal
: 拥有此权限的用户不会在夜间被治愈。smoothsleep.ignorefeed
: 拥有此权限的用户不会在夜间被喂食。smoothsleep.sleepreward
: 拥有此权限的用户如果睡到早上并且至少达到所需的睡眠小时数,将获得配置的睡眠奖励。默认情况下授予此权限。/ssreload
: 重载配置。/sstoggle
: 临时禁用或重新启用插件。如果服务器重启或重新加载,则插件将重新启用。如果您想删除插件,但不想立即重启,或者如果您需要为活动或迷你游戏禁用它,这将非常有用。/ssconf
: 通过命令设置配置选项。使用不带参数的命令来列出哪些选项可以修改以及如何使用该命令。/ssaddworld
: 允许您使用默认设置将新世界添加到配置中,以便更轻松地进行修改。/ssmetrics
: 允许您切换指标。使用此命令将禁用指标,还会为您切换配置值。
# 更多信息: https://www.spigotmc.org/resources/smoothsleep.32043
enable-stats: true
enable-update-check: true
update-notify-login: false
logging-settings:
log-debug: false
log-warning: true
log-info: true
worlds:
world:
min-night-speed-mult: 10
max-night-speed-mult: 20
all-sleeping-speed-mult: 20
night-speed-curve: 0.5
accelerate-random-tick: true
max-random-tick: 1000
accelerate-weather: true
clear-weather-when-morning: true
heal-slept-villagers: true
morning-sound: 'ENTITY_PLAYER_LEVELUP'
morning-particle-options:
particle: 'VILLAGER_HAPPY'
amount: 20
radius: 0.5
enabled: true
delay-ticks: 5
pattern: 'RANDOM'
instant-day-if-all-sleeping: false
essentials-settings:
ignore-afk: true
ignore-vanish: true
replenish-settings:
heal-negative-statuses: true
hours-to-heal-negative: 3
heal-positive-statuses: false
hours-to-heal-positive: 3
ticks-per-heal: 1000
heal-amount: 0
heal-awake: false
ticks-per-feed: 1000
feed-amount: 0
feed-awake: false
sleep-rewards:
potion-effects:
enabled: true
required-hours-sleep: 3
show-effect-particles: false
effects:
LUCK:
duration: 3600
amplifier: 0
titles:
enabled: true
sleep-title: '&b{12H}:{MIN} {MER_UPPER}'
sleep-subtitle: '&a{SLEEPERS}/{TOTAL} Sleeping &3({TIMESCALE}x speed)'
morning-title: '&e{12H}:{MIN} {MER_UPPER}'
morning-subtitle: '&aRise and shine, {USERNAME}!'
stay-ticks: 20
fade-ticks: 40
action-bar:
enabled: true
show-if-awake: false
title: '&4Health: &c{HEALTH_BAR} &3Food: &b{FOOD_BAR}'
boss-bar:
enabled: true
show-if-awake: true
color: 'BLUE'
style: 'SOLID'
title: '&a{SLEEPERS}/{TOTAL} Sleeping &3- &b{12H}:{MIN} {MER_UPPER}'
要更改 SmoothSleep 使用的世界,只需将 world
更改为您要使用的世界的名称,或者使用新名称复制 world
部分。如果您想将新世界添加到配置中,请使用 /ssaddworld <word>
enable-stats
: 您可以通过将此值设置为 false 或在游戏中使用 /ssmetrics
来切换它来禁用指标。如果启用,一些数据将发送到 bStats.org。enable-update-check
: 这将允许插件从 Spigot 的网站请求最新的插件版本。将此值设置为 false 以完全绕过更新检查。update-notify-login
: 如果启用此选项,当工作人员登录时,如果有插件更新可用,则会收到通知。这些是不言自明的,选择要在控制台中显示的日志级别。我建议不要启用调试,除非您试图找到一个问题,因为它可能有点过头。
min-night-speed-mult
: 最低的夜晚速度倍增器(如果只有极小部分的玩家在睡觉)。请记住,如果没有人睡觉,SmoothSleep 不会影响速度,这仅适用于至少有一个人睡觉的情况。必须是大于 0 的整数。max-night-speed-mult
: 最高的夜晚速度倍增器(如果每个人都在睡觉)。必须是大于 0 的整数。all-sleeping-speed-mult
: 只有当所有未被睡眠忽略的玩家都在睡觉时,此速度倍增器才会生效。如果设置为与 max-night-speed-mult
相同的值,将有效地禁用此功能。如果启用了 instant-day-if-all-sleeping
,则将忽略此设置。night-speed-curve
: 此值允许您调整睡眠玩家的比例如何影响夜晚的速度。对于小于 0.5 的值,较少的睡眠者将对速度的影响较小,然后随着更多玩家睡眠,速度会更快地增加。对于大于 0.5 的值,则相反。精确地为 0.5 时,它是线性增加。如果您将值设置为 0,那么夜晚速度将是最小速度,直到每个人都睡着,然后它将是最大速度。如果为 1,那么如果有人睡觉,它将是最大速度。仅接受 0-1 之间的值。要更好地可视化此值的工作方式,请查看 Desmos 上的此图表:Desmos Graph在此图中,X 轴表示睡眠玩家的百分比,Y 轴表示夜晚应该以多快的速度流逝(介于最小和最大夜晚速度之间)。
accelerate-random-tick
: 此选项允许 SmoothSleep 在夜间修改 randomTickSpeed
游戏规则。这将加速受随机刻影响的任何事物,包括:作物生长、树叶腐烂、草/藤蔓蔓延等。max-random-tick
: 这允许您限制 randomTickSpeed
能够设置的速度。具有非常高的值可能会导致滞后,因此如果您已经设置了较高的 randomTickSpeed
并且不想太高,则可以使用此选项。accelerate-weather
: 这应该使天气更快地过去,类似于夜晚的工作方式。由于很难正确测试此功能,我什至无法说它是否有效,但是该选项在这里。morning-sound
: 如果这是一个有效的声音,那么它将在玩家醒来时播放。要禁用,请留空。有关有效声音的列表,请参阅 Sound enum - Bukkit APIclear-weather-when-morning
: 如果为 true,则如果在到达早晨时仍有玩家在床上,则雨和风暴会停止。heal-slept-villagers
: 这将允许 SmoothSleep 在到达早晨时完全治愈正在睡觉的村民。以防万一该插件以某种方式阻止了香草治疗机制。instant-day-if-all-sleeping
: 不言自明。如果所有未被睡眠忽略的玩家都在睡觉,那么这会将时间立即设置为白天,同时仍然显示早晨标题/字幕。这比香草更即时。一旦最后(或唯一)的人点击床,它将立即将时间设置为白天,不像香草那样会等待您在床上坐几秒钟。enabled
: 如果为 true,那么标题将显示游戏内时间、睡眠玩家数量/非睡眠忽略玩家总数以及当前的夜晚速度倍增器。morning-title
: 如果启用了 use-titles
,则在醒来时显示的标题。morning-subtitle
: 如果启用了 use-titles
,则在醒来时在标题下显示的消息。sleep-title
: 如果启用了 use-titles
,则在睡觉时显示的标题。sleep-subtitle
: 如果启用了 use-titles
,则在睡觉时在标题下显示的消息。enabled
: 如果为 true,那么当玩家睡觉时,消息将出现在热栏上方,并带有指定的标题。默认情况下,这用于在睡觉时向睡眠者显示他们的生命值/食物水平,因为“离开床”按钮在某些情况下会阻止正常的 UI 元素。show-if-awake
: 如果玩家没有睡觉,是否向他们显示动作栏。title
: 当玩家睡觉时,在动作栏中显示什么文本(支持占位符)enabled
: 如果为 true,那么当玩家睡觉时,带有标题的老板栏将显示在屏幕顶部。show-if-awake
: 如果玩家没有睡觉,是否向他们显示老板栏。title
: 当玩家睡觉时,在老板栏中显示什么文本(支持占位符)color
: 使老板栏的颜色。有效颜色为 PINK、BLUE、RED、GREEN、YELLOW、PURPLEstyle
: 确定栏样式。有效样式为 SOLID、SEGMENTED_6、SEGMENTED_10、SEGMENTED_12、SEGMENTED_20enabled
: 是否在早上生成粒子particle
: 这是您要使用的粒子的名称。请注意,当前无法使用需要额外数据的粒子。如果您选择的粒子需要额外数据,您将在控制台中收到一些警告。这些粒子目前无法工作!REDSTONE, BLOCK_CRACK, BLOCK_DUST, FALLING_DUST, ITEM_CRACK, LEGACY_BLOCK_CRACK, LEGACY_BLOCK_DUST, LEGACY_FALLING_DUST, SPELL_MOB, SPELL_MOB_AMBIENT
有关有效粒子的完整列表,请参阅 Particle enum - Bukkit API
amount
: 这将更改显示的粒子数量以及粒子的显示时间。此设置和 delay-ticks
设置控制粒子效果持续的时间。radius
: 这控制您希望粒子从玩家身上产生的距离。最大半径当前为 20,仅仅是因为更大的值似乎没有多大意义。pattern
: 生成粒子的形状。这可以是 random
、circle
或 spiral
。delay-ticks
: 在生成一组粒子后等待多少刻再生成另一组粒子。如果您想间隔粒子生成的频率,请增加此值。这增加了效果持续的时间。heal-negative-statuses
: 如果为 true,如果玩家已经睡了所需的 小时数,则治疗负面状态效果。hours-to-heal-negative
: 治疗负面状态所需的睡眠小时数。heal-positive-statuses
: 如果为 true,如果玩家已经睡了所需的 小时数,则治疗正面状态效果。hours-to-heal-positive
: 治疗正面状态所需的睡眠小时数。ticks-per-health
: 睡眠的刻数(包括时间刻度)以治疗指定的量。1000 = 1 游戏内小时。一个完整的夜晚持续不到 10 个小时。如果您将其设置为 1000,它将在早晨治愈玩家 9 次,而不管夜晚的速度如何。heal-amount
: 每次指定的间隔治疗的量。可以是负数。1 = 半颗心。heal-awake
: 治疗效果是否应适用于未睡觉的玩家,但在时间正在加速的世界中。ticks-per-feed
: 睡眠的刻数(包括时间刻度)以喂食指定的量。类似于 ticks-per-health
。feed-amount
: 睡眠的刻数(包括时间刻度)以喂食指定的量。feed-awake
: 喂食效果是否应适用于未睡觉的玩家,但在时间正在加速的世界中。enabled
: 是否启用药水效果睡眠奖励required-sleep-hours
: 玩家需要睡眠多少游戏内小时才能获得奖励show-effect-particles
: 是否显示药水效果粒子。如果显示,粒子将是“环境”。effects
: 要应用的效果列表。此下的每个条目都应是有效的效果名称,并且在其下具有持续时间和放大器值。放大器从 0 开始作为基本级别效果。如果效果名称无效,则在初始化时将向控制台打印一条消息。这些设置仅在安装了 Essentials 时才适用
ignore-afk
: 如果为 true,则 AFK 玩家将被视为睡眠忽略。ignore-vanish
: 如果为 true,则消失的玩家将被视为睡眠忽略。与 YAML 文件通常的情况一样,间距很重要!不要使用选项卡,否则会破坏它!此外,对于文本值,如果各种特殊字符开始文本,则可能需要用引号引起来!通常始终使用“单引号”包装文本值是安全的,因为 YAML 引擎会在重新保存时删除它们(如果不是必需的)。
从 v2.6.0 开始,配置中的文本值现在也应支持 PlaceholderAPI。您可以混合和匹配内置占位符和 PAPI 占位符。首先解析内置占位符,因此您甚至可以在 PAPI 占位符中使用它们(例如,进度条)。
{12H}
: 服务器时间的 12 小时部分{24H}
: 服务器时间的 24 小时部分。可以通过在标题配置中放置 {24H}:{MIN}
来设置标准 24 小时时钟,并根据口味着色。甚至费心研究并确保时钟循环到 0:00 而不是 24:00,不客气。{MIN}
: 服务器时间的分钟部分(如果 <10,则用 0 填充){MER_UPPER}
: 12 小时时间的子午线对应项,AM 或 PM{MER_LOWER}
: 12 小时时间的子午线对应项,am 或 pm{SLEEPERS}
: 当前正在睡觉的玩家数量{WAKERS}
: 未被忽略的非睡眠玩家数量{TOTAL}
: 睡眠 + 非睡眠,未被忽略的玩家数量{TIMESCALE}
: 玩家的用户名(并不总是游戏中显示的那个){USERNAME}
: 玩家的用户名(并不总是游戏中显示的那个){DISPLAYNAME}
: 玩家在游戏中显示的名称。可能包含前缀、颜色代码等。{DISPLAYNAME_STRIP}
: DISPLAYNAME 没有颜色或格式。{LEVEL}
: 玩家的当前等级{DAYS_LIVED}
: 玩家居住的天数{REM_HOURS_LIVED}
: 玩家在减去天数后居住的小时数{REM_MINS_LIVED}
: 玩家在减去天数和小时数后居住的分钟数{TOTAL_HOURS_LIVED}
: 玩家居住的小时数(总小时数,不减去天数){TOTAL_MINS_LIVED}
: 玩家居住的分钟数(总分钟数,不减去小时数或天数){TIME_LIVED}
: 玩家居住的时间,以天、分钟和秒为单位;格式为“0d, 0h, 0m”{WORLD}
: 玩家正在睡觉的世界的名称{SERVER_IP}
: server.properties 中指定的“server-ip”{SERVER_MOTD}
: server.properties 中指定的“motd”(包括颜色){SERVER_NAME}
: server.properties 中指定的“server-name”(包括颜色){SERVER_MOTD_STRIP}
: server.properties 中指定的“motd”(已去除颜色){SERVER_NAME_STRIP}
: server.properties 中指定的“server-name”(已去除颜色){NICKNAME}
: 没有组前缀的 Essentials 昵称。如果未安装 essentials,则与 DISPLAYNAME 相同。{NICKNAME_STRIP}
: NICKNAME 没有颜色或格式。{HEALTH}
: 显示玩家的生命值 (0-20){HEALTH_PER}
: 以百分比形式显示玩家的生命值 (0-100%){HEALTH_BAR}
: 生成一个 20 段的条,指示玩家的生命值,将条的空闲部分设置为黑色(避免为此使用黑色颜色代码,否则条将始终显示为空){FOOD}
: 显示玩家的食物水平 (0-20){FOOD_PER}
: 以百分比形式显示玩家的食物水平 (0-100%){FOOD_BAR}
: 生成一个 20 段的条,指示玩家的食物水平,将条的空闲部分设置为黑色(避免为此使用黑色颜色代码,否则条将始终显示为空)当使用可以着色的占位符(显示名称、服务器名称和服务器 MOTD)时,您可能希望在占位符之后包含一个颜色字符,以防止它为消息的其余部分着色。
有建议吗?使用讨论或 github 问题提交您的想法!
源代码在 GitHub 上