
Afk Plus
离开或管理暂离玩家;并格式化其名称显示
查看大图AfkPlus Fabric Mod for Minecraft
基本描述:
- 一个基于 beabfc 的 AfkDisplay 的分支项目。他已允许我继续创建这个模组,请查看我的 Archived Issues 页面。
- 在玩家列表中显示哪些玩家处于 AFK 状态,查看原因、时长和时间。
- 完全可配置,并支持 Placeholder API,包含所有 Placeholder API 格式化节点,例如:原生黄色或粗体。(你甚至可以在 AFK 原因中包含 URL!)
- 模组现在可以在单人游戏和集成服务器(对局域网开放)中使用。
- [新] 截至 2024 年 12 月,模组已大部分重写为基于 Fallen-Breath 的模板模组架构的多版本项目。
- [新] 模组现在是我新库模组 CoreLib 的依赖项,More Color 系统也被分支到我的 More Color API 模组中。
- 它们都包含在 AfkPlus 的 JAR 文件中。
模组重写与新增功能
- 整个模组生态系统已迁移到多版本架构,以便使用单个分支更快地同时将模组移植到 1.19.2-1.21.4+ 版本。
- 配置不再使用 TOML,已转换为基于数据驱动的 CoreLib JSON 配置系统;其工作方式类似于 Pat 的模组生态系统。
- 大多数玩家/服务器事件现在由 CoreLib 接口管理;仅有少数 AFK 特定的例外。
- 所有命令现在由 CoreLib 接口注册和管理。
- 所有抽象的文本 Placeholder API 格式化和额外颜色标签现在由 More Color API 管理。参见
/morecolors命令。 - 所有新的抽象时间日期/时长格式化接口由 CoreLib 管理。
- 完全重写的 AfkPlayer / Afk 玩家列表系统基于抽象化;而不是通过 Mixin 类管理。这应有助于解决任何严格的模组兼容性问题;并避免丑陋的代码。
- 从 CoreLib 到 AfkPlus 的整个模组生态系统都有 API / 事件系统,供其他模组在其模组中实现和兼容。
- AfkPlus 添加了对
Vanish、Carpet Mod和Styled Player List的 API 兼容处理。每个模组的集成根据任何兼容性需求而有所不同。 - 添加了几个
message选项,并将afkKick和disableDamage系统分支到它们自己的配置类别中。查看下面的配置以获取更多默认信息。 - 根据请求添加了其他几个改进、错误修复和功能;例如通过各种配置选项完全配置
Gone for: XXX消息的能力。
功能
- 添加了一个占位符
%afkplus:afk%,让你可以为 AFK 的玩家提供一个非常基本的“[AFK]”标签。 - 添加了一个占位符
%afkplus:name%/%afkplus:display_name%,这样你可以在其他模组(如 Styled Playerlist)下使用它作为“%player:displayname%”占位符的替代品。 请注意,此方法设计为在 Styled Playerlist 下完全兼容 LuckPerms 前缀,因为玩家列表更新的标准方法会失败,或者你可以直接使用 %afkplus:afk% 为你喜欢的现有名称添加格式。 - 添加了一个占位符
%afkplus:duration%,这样你可以获取某人 AFK 以来的时间,并可配置格式前缀。 - 添加了一个占位符
%afkplus:time%,这样你可以获取某人 AFK 的时间/日期,并可配置格式前缀。 - 添加了一个占位符
%afkplus:reason%,这样你可以移植某人 AFK 的原因,并可配置格式前缀。 - 添加了一个占位符
%afkplus:invulnerable%,这样你可以显示所有用户的“禁用伤害”状态,类似于“[AFK]”占位符标签,但或多或少是一个“附加项”。 - 有一个特殊的配置选项 'prettyDuration',用于以更人性化的格式配置 AFK 时长,而不是默认的(HH:mm:ss.mss)格式。不过每种方法都有其优势。(想到 Styled Nicknames 或 Styled Chat)
- 为管理员提供了几个模组/数据包冲突警告,以帮助他们更好地决定要安装哪些模组。
- 添加了一个“disableDamage”配置,使 AFK 玩家在 15 秒冷却后免疫伤害。当发生这种情况时,默认会强制执行一个新的可配置的全服消息。
- 添加了一个“disableDamageCooldown”配置,允许管理员调整玩家进入 AFK 后应用的默认“计时器”。我强烈建议不要将其设置为 '0',除非你认为你的玩家不会滥用此特权。
- 添加了一个“whenDamageDisabled”配置,以便你可以自定义玩家被标记为无敌时显示的消息。
- 添加了一个“whenDamageEnabled”配置,以便你可以自定义玩家被取消标记为无敌时显示的消息。
- 现在还检查玩家是否处于旁观者模式,而不仅仅是创造模式,以管理你的 AFK/禁用伤害状态。
- 添加了几个玩家可用于 AFK 原因的颜色节点。参见 /afkex 查看显示示例。
- brown, cyan, dark_brown, dark_pink, light_blue, light_brown, light_gray, light_pink, lime, magenta, purple, salmon,
- bluetiful, burnt_orange, canary, cool_mint, copper, powder_blue, royal_purple, shamrock, tickle_me_pink, ultramarine_blue
- 添加了一个“bypassSleepCount”配置,以便你可以允许被标记为 AFK 的玩家绕过睡眠要求。
- 添加了一个“bypassInsomnia”配置,以便你可以允许被标记为 AFK 的玩家阻止幻翼生成。
- 添加了一个“/noafk”命令,供玩家阻止自己被标记为 AFK。
- 添加了一个“displayDuration”配置选项,以便你可以在 whenReturn 期间启用/禁用“Gone for XX minutes, XX seconds”。
- 添加了额外的处理,允许将“afkTimeoutString”设置为“”,并将“defaultReason”传递为“”,以获得更多“原始”AfkDisplay 的感觉。
- 添加了一个“AFK 踢出”系统,在配置的时间后自动从服务器踢出处于 AFK 状态的玩家。它有几个配置选项:
afkKickEnabled- (true/false)启用 AFK 自动踢出管理器。afkKickNonSurvival- (true/false)允许踢出创造/旁观者模式玩家。afkKickTimer- 玩家从服务器被移除时超过timeoutSeconds的时间(叠加),因此如果timeoutSeconds为 240,afkKickTimer设置为 3600,实际被踢出的时间是 3840,即最长 64 分钟。afkKickSafePermissions- (权限 3)被标记为“安全”免于自动踢出的默认权限级别。(Luck Perms:afkplus.kick.safe)- 注意;如果玩家拥有
afkPlusCommandPermissions(Luck Perms:afkplus.afkplus),他们也会被标记为安全免于自动踢出,但这个新配置允许你单独配置这些权限。
- 注意;如果玩家拥有
afkKickMessage- 发送给被踢出玩家的消息,作为其被移除的原因。(当displayDuration启用时添加时长)whenKicked- 当玩家因 AFK 被踢出时向服务器广播的消息。(当displayDuration启用时添加时长)- 注意事项:此功能不会自动踢出 Carpet Mod 机器人,因为“假”玩家不会被服务器 tick。
- 此功能不会在单人游戏/对局域网开放中工作,需要专用服务器环境才能正常运行。
命令(通过 Luck Permissions 或 afk_plus 配置设置权限)
- '/afkplus',使用 AfkPlusCommandPermissions(默认:4)设置默认限制。(权限:afkplus.afkplus)
- 显示模组版本信息。
- '/afkplus reload' 命令。(权限:afkplus.afkplus.reload)
- 这允许管理员在服务器运行时重新加载配置。
- '/afkplus ex' 命令。(权限:afkplus.afkplus.ex)
- 这会显示一个简单的“格式化测试”,向用户展示可用的基本文本节点,这也允许他们通过点击颜色/格式来进行复制/粘贴。
- '/afkplus set [Player] [Reason]' 命令。(权限:afkplus.afkplus.set)
- 这允许任何管理员设置玩家的 AFK 状态,这也会移除他们的 NoAFK 状态。
- '/afkplus clear [Player]' 命令。(权限:afkplus.afkplus.clear)
- 这允许任何管理员清除玩家的 AFK 状态。
- '/afkplus damage enable [Player]' 命令。(权限:afkplus.afkplus.damage.enable)
- 这允许管理员在 AFK 玩家连接期间强制启用其受到伤害的能力。
- '/afkplus damage disable [Player]' 命令。(权限:afkplus.afkplus.damage.disable)
- 这允许管理员在玩家的“禁用伤害”被强制移除后恢复其使用能力。
- '/afkplus info [Player]' 命令。(权限:afkplus.afkplus.info)
- 这允许任何管理员检查玩家的 AFK 状态,并显示自他们 AFK 以来的时间和时长。
- '/afkplus update [Player]' 命令。(权限:afkplus.afkplus.update)
- 这允许任何管理员强制为玩家更新玩家列表。
- '/afkinfo [Player]',使用 AfkInfoCommandPermissions(默认:2)设置默认限制,(权限:afkplus.afkinfo)
- 与 '/afkplus info [Player]' 功能相同,但可用于模组、玩家,或你喜欢的任何配置方式供人们查看。
- '/afkex',使用 AfkExCommandPermissions(默认:0)设置默认限制。(权限:afkplus.afkex)
- 这会显示一个简单的“格式化测试”,向用户展示可用的基本文本节点,这也允许他们通过点击颜色/格式来进行复制/粘贴。
- '/afk [Reason]',使用 AfkCommandPermissions(默认:0)设置默认限制。(权限:afkplus.afk)
- 这允许任何用户使用 [Reason] 同时设置他们的 AFK 状态。
- [新] '/noafk',使用 noAfkCommandPermissions(默认:0)设置默认限制。(权限:afkplus.noafk)
- 这允许任何用户将自身设置为根据配置的超时值不会进入 AFK 的状态。
- [新] 'afkKickSafePermissions'(默认:3)设置默认权限,将 AFK 玩家标记为免于被踢出。(权限:afkplus.kick.safe)
潜在已知冲突(请自行选择)
- afk display 数据包(Vanilla Tweaks 数据包,更改玩家列表显示)——模组检查名称中包含任何“afk”的数据包。
- AfkDisplay —— 因为这是 AfkPlus 所基于的模组,且提供的功能较少。
- AntiLogout(/afk 命令,超时处理)
- Auto AFK(/afk 命令,超时处理)
- Sessility(超时处理)
- Playtime-Tracker(超时处理)
- SvrUtil(/afk 命令,其余是安全的)
配置示例
配置文件位于服务器配置文件夹中的 afkplus.json。
{
"___comment": "AfkPlus-1.21.4-1.7.4-SNAPSHOT Config",
"config_date": "Fri, 3 Jan 2025 00:05:08 -0500",
"afk_plus": {
"_comment01": "# Allows you to disable the /afk command to mark yourself as AFK, with an optional [Reason] (Default: true)",
"enableAfkCommand": true,
"_comment02": "# Allows you to disable the /noafk command to mark yourself as NoAFK, which disables the timeout (Default: true)",
"enableNoAfkCommand": true,
"_comment03": "# Allows you to disable the /afkinfo command to allow players to see someone's AFK status (Time, Duration, Reason). (Default: true)",
"enableAfkInfoCommand": true,
"_comment04": "# The /afk default command permissions, configurable with Luck Perms (afkplus.afk) node (Default: 0)",
"afkCommandPermissions": 0,
"_comment05": "# The /noafk default command permissions, configurable with Luck Perms (afkplus.noafk) node (Default: 0)",
"noAfkCommandPermissions": 0,
"_comment06": "# The /afkinfo default command permissions, configurable with Luck Perms (afkplus.afkinfo) node (Usually for Mods) (Default: 2)",
"afkInfoCommandPermissions": 2,
"_comment07": "# The /afkplus default command permissions, configurable with Luck Perms (afkplus.afkplus with .subcommands) node (Default: 3)",
"afkPlusCommandPermissions": 3,
"_comment08": "# A Basic Cooldown configurable to help prevent people from spamming the /afk command (Default: 5 seconds)",
"afkCommandCooldown": 5,
"_comment09": "# A boolean toggle to enable / disable debug logger messages in the mod",
"debugMode": false
},
"packet": {
"_comment01": "# The time without actions after which a player is considered AFK. Set to -1 to disable automatic AFK detection. (Default: 240)",
"_comment02": "# --note; the Original AfkDisplay's default timeout was set to 180 seconds.",
"timeoutSeconds": 240,
"_comment03": "# Consider players that moved no longer AFK (enables easy bypass methods like AFK pools) (Default: false)",
"resetOnMovement": false,
"_comment04": "# Consider players which looked around no longer AFK (Default: false)",
"resetOnLook": false,
"_comment05": "# Consider players who are only swinging their sword as AFK (Default: false)",
"ignoreAttacks": false,
"_comment06": "# Makes it so that Afk players are not counted in the Sleep Percentage check (Default: true)",
"bypassSleepCount": true,
"_comment07": "# Makes it so that Afk Players block Phantom Spawning attempts. (Default: true)",
"bypassInsomnia": true,
"_comment08": "# The default \"timeout\" AFK reason (Default: \"<i><gray>timeout<r>\")",
"afkTimeoutString": "<i><gray>timeout<r>",
"_comment09": "# The default AFK timeout message for the \"ignoreAttacks\" detection",
"afkTimeoutIgnoreAttack": "<i><gray>only swinging their sword<r>"
},
"disable_damage": {
"_comment01": "# Disable damage after disableDamageCooldown seconds since a player went AFK (Default: false)",
"disableDamage": false,
"_comment02": "# Cooldown timer for enabling the \"DisableDamage\" feature. (Default: 15 seconds)",
"_comment03": "# - WARNING! Be advised that settings this too low can encourage poor player behavior.",
"disableDamageCooldown": 15,
"_comment04": "# The message content when an AFK player is marked as Invulnerable.",
"_comment06": "# (Default: \"%player:displayname% <yellow>is marked as <red>Invulnerable.<r>\")",
"whenDamageDisabled": "%player:displayname% <yellow>is marked as <red>Invulnerable.<r>",
"_comment08": "# The message content when an AFK player is no longer marked as Invulnerable.",
"_comment09": "# (Default: \"%player:displayname% <yellow>is no longer <red>Invulnerable.<r>\")",
"whenDamageEnabled": "%player:displayname% <yellow>is no longer <red>Invulnerable.<r>"
},
"afk_kick": {
"_comment01": "# Enables the AFK Auto-Kick system. (Default: false)",
"afkKickEnabled": false,
"_comment02": "# Allows Non-Survival players to be kicked (Creative, Spectator, etc) (Default: false)",
"afkKickNonSurvival": false,
"_comment03": "# The time after `timeoutSeconds` to automatically kick an AFK player (Default: 3600, aka. 1 hour)",
"_comment04": "# --note; that this value is \"Additive\" to the `timeoutSeconds` value, so the actual time will be 3840, aka. 64 minutes.",
"afkKickTimer": 3000,
"_comment05": "# Default permission level to mark players as \"safe\" from being automatically kicked, i.e., Server Admins (Default: 3)",
"afkKickSafePermissions": 3,
"_comment06": "# The Kick Reason message sent to players that are removed. Can be set to \"\" to get a basic \"AFK timeout\" reason.",
"_comment07": "# (Default: \"<copper>AFK beyond the allowed time limit set by your Administrator.<r>\")",
"_comment08": "# --note; that this message gets the AFK duration added to the end if `message.displayDuration` is set to true.",
"afkKickMessage": "<copper>AFK beyond the allowed time limit set by your Administrator.<r>",
"_comment09": "# The message content when an AFK player gets kicked from the server.",
"_comment10": "# (Default: \"%player:displayname% <copper>was kicked for being AFK.<r>\")",
"_comment11": "# --note; that this message gets the AFK duration added to the end if `message.displayDuration` is set to true.",
"whenKicked": "%player:displayname% <copper>was kicked for being AFK.<r>",
"_comment12": "# The default reason when a player is kicked",
"_comment13": "# (Default: \"<copper>AFK timeout\")",
"whenKickedDefaultReason": "<copper>AFK timeout",
"_comment14": "# The AFK default Duration Prefix used when a player is kicked. The duration format used follows the message.duration configuration.",
"_comment15": "# (Default: \" <gray>(Gone for: <green>\")",
"whenKickedDurationDefaultPrefix": " <gray>(Gone for: <green>",
"_comment16": "# The AFK Player Named Duration Prefix used when a player is kicked. The duration format used follows the message.duration configuration.",
"_comment17": "# (Default: \" <gray>(%player:displayname% was gone for: <green\")",
"whenKickedDurationNamedPrefix": " <gray>(%player:displayname% was gone for: <green>",
"_comment18": "# The suffix for either kick Duration Prefix",
"_comment19": "# (Default: \" <gray>)\"",
"whenKickedDurationSuffix": "<gray>)"
},
"player_list": {
"_comment01": "# Change the playerlist name for players who are AFK (Default: true)",
"_comment02": "# -- note; This is for when you're NOT using a player list display mods.",
"enableListDisplay": true,
"_comment03": "# The name that is shown in the player list if a player is AFK, and accepts formatting nodes",
"_comment04": "# (Default: \"<i><gray>[AFK%afkplus:invulnerable%] %player:displayname%<r>\")",
"_comment05": "# -- note; This function works best when not using Player List mods!*",
"afkPlayerName": "<i><gray>[AFK%afkplus:invulnerable%] %player:displayname%<r>",
"_comment06": "# This option sets a default Player List update interval. This config goes a long way fixing",
"_comment07": "# various Player list update issues; especially when other Player List management mods are installed.",
"_comment08": "# (Default: 10 seconds)",
"updateInterval": 10
},
"place_holder": {
"_comment01": "# This will be the value of the placeholder %afkplus: afk% if a player is AFK, option accepts full formatting nodes",
"_comment02": "# (Default: \"<i><gray>[AFK%afkplus:invulnerable%]<r>\")",
"_comment03": "# -- note; *DOES NOT* place an \"<r>\" at the end in the code (trying not to modify its default behavior)",
"afkPlaceholder": "<i><gray>[AFK%afkplus:invulnerable%]<r>",
"_comment04": "# Placeholder %afkplus:name% for backporting the entire %displayname% for use in other Mods, such as Styled Player List",
"_comment05": "# (Default: \"<i><gray>[AFK%afkplus:invulnerable%] %player:displayname_unformatted%<r>\")",
"_comment06": "# -- note; *DOES NOT* places an \"<r>\" at the end in the code (trying not to modify its default behavior)",
"afkPlusNamePlaceholderAfk": "<i><gray>[AFK%afkplus:invulnerable%] %player:displayname_unformatted%<r>",
"_comment07": "# Value for when a player is NOT AFK, (i.e., the default \"%player:displayname%\")",
"_comment08": "# -- note; *DOES NOT* places an \"<r>\" at the end in the code (trying not to modify its default behavior)",
"afkPlusNamePlaceholder": "%player:displayname%",
"_comment09": "# Adds a formatting prefix node for %afkplus:duration% (default: <green>)",
"_comment10": "# -- note; places an \"<r>\" at the end in the code, and this is used during /afkinfo",
"afkDurationPlaceholderFormatting": "<green>",
"_comment11": "# Adds a formatting prefix node for %afkplus: time% (default: <green>)",
"_comment12": "# -- note; places an \"<r>\" at the end in the code, and this is used during /afkinfo",
"afkTimePlaceholderFormatting": "<green>",
"_comment13": "# Adds a formatting prefix node for %afkplus: reason%, I'm not sure why someone might want this enabled, because",
"_comment14": "# formatting your [Reason] yourself is fun. (default: none)",
"_comment15": "# -- note; places an \"<r>\" at the end of the code, and this is used during /afkinfo",
"afkReasonPlaceholderFormatting": "",
"_comment16": "# Adds an option to configure a basic \"Add-On\" placeholder for attaching to the \"[AFK]\" tag to mark when a player is",
"_comment17": "# marked as Invulnerable using %afkplus: invulnerable% (Default: \":<red>I<r>\")",
"afkInvulnerablePlaceholder": ":<red>I<r>",
"_comment18": "# Adds an option for using custom formatters for the output of the %duration% placeholder. The valid options are:",
"_comment19": "# -- 'REGULAR' (HH:mm:ss.SSS) (Default: REGULAR)",
"_comment20": "# -- 'PRETTY' (d' days 'H' hours 'm' minutes 's' seconds')",
"_comment21": "# -- 'ISO_EXTENDED' ('P'yyyy'Y'M'M'd'DT'H'H'm'M's.SSS'S')",
"_comment22": "# -- 'FORMATTED'; Same as ISO_EXTENDED, but this option allows you to set your own custom DurationFormatUtils Formatter,",
"_comment23": "# --> SEE: \"org.apache.commons.lang3.time.DurationFormatUtils;\" for more information",
"duration": {
"option": "REGULAR",
"customFormat": ""
},
"_comment24": "# Adds an option for using custom formatters for the output of the %afkTime% placeholder. The valid options are:",
"_comment25": "# -- 'REGULAR' (yyyy-MM-dd_HH.mm.ss); which is the same format that Minecraft uses and is the Default config. (Default: REGULAR)",
"_comment26": "# -- 'ISO_LOCAL' (yyyy-MM-ddTHH:mm:ss.n)",
"_comment27": "# -- 'ISO_OFFSET' (yyyy-MM-ddTHH:mm:ss.nZ)",
"_comment28": "# -- 'RFC1123' (EEE, dd MMM yyyy HH:mm:ss +HHMM)",
"_comment29": "# -- 'FORMATTED'; (yyyy-MM-dd_HH.mm.ss); This is the same as 'REGULAR', but this option allows you to set your own custom",
"_comment30": "# formatters based on the \"java.time.format.DateTimeFormatter\" formatter syntax; see that package for more information.",
"timeDate": {
"option": "REGULAR",
"customFormat": ""
}
},
"message": {
"_comment01": "# Enables chat messages when a player goes AFk or returns. (Default: true)",
"enableMessages": true,
"_comment02": "# The message content when a player goes AFK, and accepts formatting nodes",
"_comment03": "# (Default: \"%player:displayname% <yellow>is now AFK<r>\")",
"whenAfk": "%player:displayname% <yellow>is now AFK<r>",
"_comment04": "# An optional configuration for the \"whenAfk\" punctuation in between that, and the Duration / Reason that follows.",
"_comment05": "# (Default: \"<yellow>,<r> \")",
"whenAfkPunctuation": "<yellow>,<r> ",
"_comment06": "# The messages content when a player returns from AFK, and accepts formatting nodes.",
"_comment07": "# (Default: \"%player:displayname% <yellow>is no longer AFK<r>\")",
"_comment08": "# --note; that this message gets the AFK duration added to the end if `displayDuration` is set to true.",
"whenReturn": "%player:displayname% <yellow>is no longer AFK<r>",
"_comment09": "# The prefix formatting for the \"whenReturn\" duration formatting portion.",
"_comment10": "# (Default: \" <gray>(Gone for: <green>\")",
"whenReturnDurationPrefix": " <gray>(Gone for: <green>",
"_comment11": "# The suffix formatting for the \"whenReturn\" duration formatting portion.",
"_comment12": "# (Default: \"<gray>)\")",
"whenReturnDurationSuffix": "<gray>)",
"_comment13": "# Default reason for going AFK via the /afk command. Leave in a poof of smoke without having to give a reason.",
"_comment14": "# (Default: \"<gray>poof!<r>\")",
"_comment15": "# --note; \"\" is a valid setting, and will disable the default /afk reason.",
"defaultReason": "<gray>poof!<r>",
"_comment16": "# A configurable greeting when players repeatedly type '/afk' and expect a broken result.",
"_comment17": "# (Default: \"<yellow>Welcome back, <r>%player:display_name%<r>, <yellow>did you miss anything fun?\")",
"afkCooldownGreeting": "<yellow>Welcome back, <r>%player:display_name%<r>, <yellow>did you miss anything fun?",
"_comment18": "# An general error condition sent when a player is marked as Vanished by \"melius-vanish\" maintained by DrexHD",
"_comment19": "# (Default: \"<red>You are vanished, and probably shouldn't be doing that.<r>\")",
"whileYourVanished": "<red>You are vanished, and probably shouldn't be doing that.<r>",
"_comment20": "# An general error condition in the third person sent when a player is marked as Vanished by \"melius-vanish\" maintained by DrexHD",
"_comment21": "# (Default: \"<red> is vanished, and probably shouldn't be doing that.<r>\")",
"whileVanished": "<red> is vanished, and probably shouldn't be doing that.<r>",
"_comment22": "# This enables the duration display portion of the whenReturn message. See the \"duration\" configuration below.",
"_comment23": "# (Default: true)",
"displayDuration": true,
"_comment24": "# Re-Formats the \"duration\" in chat messages and /afkinfo and 'whenReturn', etc; to a more human-readable format.",
"_comment25": "# -- 'REGULAR' (HH:mm:ss.SSS)",
"_comment26": "# -- 'PRETTY' (d' days 'H' hours 'm' minutes 's' seconds') (Default: PRETTY)",
"_comment27": "# -- 'ISO_EXTENDED' ('P'yyyy'Y'M'M'd'DT'H'H'm'M's.SSS'S')",
"_comment28": "# -- 'FORMATTED'; Same as ISO_EXTENDED, but this option allows you to set your own custom DurationFormatUtils Formatter,",
"_comment29": "# --> SEE: \"org.apache.commons.lang3.time.DurationFormatUtils;\" for more information",
"duration": {
"option": "PRETTY",
"customFormat": ""
},
"_comment30": "# Adds an option for using custom formatters for the output of the /afkinfo command. The valid options are:",
"_comment31": "# -- 'REGULAR' (yyyy-MM-dd_HH.mm.ss); which is the same format that Minecraft uses and is the Default config. (Default: REGULAR)",
"_comment32": "# -- 'ISO_LOCAL' (yyyy-MM-ddTHH:mm:ss.n)",
"_comment33": "# -- 'ISO_OFFSET' (yyyy-MM-ddTHH:mm:ss.nZ)",
"_comment34": "# -- 'RFC1123' (EEE, dd MMM yyyy HH:mm:ss +HHMM)",
"_comment35": "# -- 'FORMATTED'; (yyyy-MM-dd_HH.mm.ss); This is the same as 'REGULAR', but this option allows you to set your own custom",
"_comment36": "# formatters based on the \"java.time.format.DateTimeFormatter\" formatter syntax; see that package for more information.",
"timeDate": {
"option": "REGULAR",
"customFormat": ""
}
}
}
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。