**RRPNames** 是一个轻量级、高性能的插件,旨在完美地实现一个目标:为你的角色扮演服务器提供一个强大且专业的命名系统。 考虑到性能和易用性,RRPNames专注于质量和稳定性,为玩家和管理员提供无缝的体验。

忘记那些试图做各种事情的笨重插件吧。RRPNames是角色身份的基础,提供一个干净、强大且对开发者友好的解决方案。
# 特性
**直观的命名设置:** 当新玩家加入时,他们会通过聊天进行一个简单的命名设置过程,使用清晰的屏幕标题。无需记住复杂的命令!
**强大的验证引擎:** 通过详细的 config.yml 自定义名称验证的各个方面:
**允许的语言:** 选择 CYRILLIC、LATIN 或 ANY 字符集。
**长度控制:** 定义首字母名和姓名的最小和最大长度。
**字符规则:** 允许或禁止数字和连字符。
**唯一名称:** 阻止玩家注册重复的名称。
**自动大写:** 自动格式化名称,例如 jOhN dOE 变为 John Doe。
**完整的管理员控制:** 提供一组完整的命令,便于管理:
/rpn set <昵称> <首字母名> <姓> — 强制为任何玩家设置 RP 名称,即使他们离线。
/rpn reset <昵称> — 重置玩家的名称,并在他们下次加入时提示他们设置一个新的名称。
/rpn reload — 在不重启服务器的情况下重新加载配置文件。
**无缝的 PlaceholderAPI 集成:** RRPNames 提供了一组丰富的占位符,可用于任何其他插件(TAB、聊天管理器、积分板等):
%rrpnames_fullname% — 玩家的完整 RP 名称。
%rrpnames_firstname% — 仅显示首字母名。
%rrpnames_lastname% — 仅显示姓。
%rrpnames_initials% — 首字母名和姓的第一个字母(例如,“John D.”)。
**自动更新检查器:** 插件会自动在 GitHub 上检查新版本,并在游戏内和控制台中通知操作员,以确保你始终运行最新的、最稳定的版本。
**广泛的开发者 API:** RRPNames 被构建为平台。它暴露了一个强大且易于使用的 API,允许其他开发者创建插件,并将我们的命名系统集成到他们自己的插件中(例如,用于身份证、派系或熟人系统)。
RRPNames 不仅仅是一个插件——它是你服务器上角色身份的明确基础。简单、快速且做得对。
# config.yml
```
# ---------------------------------------------------- #
# RRPNames by reallmerry #
# ---------------------------------------------------- #
# 在所有插件消息中使用的前缀。
plugin-prefix: "EA3434&lr&lSDD2D35<D72A36&luD12737&ldCA2337&liC42038&lo &c»&r"
# ---------------------------------------------------- #
# NAME SETUP SETTINGS #
# ---------------------------------------------------- #
setup:
# 是否循环显示询问玩家设置名称的标题,直到玩家设置名称?
loop-title: true
# 重新发送标题的间隔(秒)。
loop-interval-seconds: 5
# 在设置名称之前是否阻止玩家移动和聊天?
block-actions-before-setup: true
# ---------------------------------------------------- #
# NAME VALIDATION SETTINGS #
# ---------------------------------------------------- #
validation:
# 名称允许的语言。
# CYRILLIC - 仅允许西里尔字母(例如,а-я, А-Я)
# LATIN - 仅允许拉丁字母(a-z, A-Z)
# ANY - 任何字母
language: "LATIN"
# 是否允许名称中使用数字? (true/false)
allow-numbers: false
# 是否允许名称中使用连字符? (例如,用于“Anne-Marie”之类的名称)
allow-hyphens: true
# 首字母名的最小和最大长度。
min-firstname-length: 3
max-firstname-length: 15
# 姓名的最小和最大长度。
min-lastname-length: 3
max-lastname-length: 15
# 阻止不同的玩家使用相同的 RP 名称?
prevent-duplicates: true
# 自动将首字母和姓的第一个字母大写,并将其他字母变为小写。
# 例如,“jOHn DOE” -> “John Doe”
force-capitalization: true
# ---------------------------------------------------- #
# PLACEHOLDERAPI INTEGRATION #
# ---------------------------------------------------- #
display:
placeholders:
# 当 RP 名称未设置时,在占位符中显示什么。
# 例如,%rrpnames_fullname% 将返回 "Unknown"
name-not-set-text: "Unknown"
# ---------------------------------------------------- #
# MESSAGES #
# ---------------------------------------------------- #
messages:
# 显示标题和副标题,当名称需要设置时。
setup-title: "&f请输入您的姓名"
setup-subtitle: "&f格式&7: 首字母名 姓&f,例如&7: John Doe"
# 验证错误消息。
error-invalid-format: "&c格式无效。使用&7: 首字母名 姓"
error-firstname-too-short: "&c首字母名太短。最小字符数: %min%"
error-firstname-too-long: "&c首字母名太长。最大字符数: %max%"
error-lastname-too-short: "&c姓名太短。最小字符数: %min%"
error-lastname-too-long: "&c姓名太长。最大字符数: %max%"
error-invalid-characters: "&c名称包含无效字符。检查语言和特殊符号。"
error-name-taken: "&c这个名称已经被占用。请选择另一个。"
# 成功设置名称。
success-name-set: "您已成功注册您的姓名!"
# 管理员消息。
admin-reset-success: "&a您已重置玩家 &f%player%&a 的 RP 名称。"
admin-set-success: "&a您已强制为玩家 &f%player%&a 设置名称 &f%name%&a。"
admin-player-not-found: "&c未找到玩家 &f%player%&c。"
admin-reload-success: "&a配置文件已成功重新加载。"
# 管理员的帮助菜单。
admin-help-message:
- "&f&l管理员命令:"
- "&e/rpn reload &7- 重新加载插件的配置文件。"
- "&e/rpn set <昵称> <首字母名> <姓> &7- 强制设置玩家的名称。"
- "&e/rpn reset <昵称> &7- 重置玩家的名称并强制他们再次设置。"
```