mirror of
https://github.com/System-End/Discord-MC-Chat.git
synced 2026-04-19 19:45:14 +00:00
refactor: restructure i18n keys for account linking system
- Merge player_join and code_generated messages into unified linking.message.not_linked_1/2/3
- Hardcode command strings (/dmcc unlink, /link code: {}, /dmcc link) in Java code
- Remove redundant "your code is: CODE" line from /dmcc link response
- Rename _suffix/_tail/_prefix naming to _1/_2/_3 pattern
- Move tooltip keys to linking.tooltip.click_to_copy/click_to_run
- Fix zh_cn: consumed phrasing, refresh wording, add "Minecraft" prefix to player references
- Remove dead buildCodeGeneratedMessage() method, unify into buildNotLinkedMessage()
Co-authored-by: Xujiayao <58985541+Xujiayao@users.noreply.github.com>
This commit is contained in:
parent
f99f82fbff
commit
71f38e953f
3 changed files with 33 additions and 67 deletions
|
|
@ -131,15 +131,6 @@ commands:
|
|||
player_only: "This command can only be used by a Minecraft player."
|
||||
discord_only: "This command can only be used from Discord."
|
||||
not_available: "This command is not available in the current mode."
|
||||
already_linked: "Your Minecraft account is already linked to Discord user \"{}\". Run "
|
||||
already_linked_unlink: "/dmcc unlink"
|
||||
already_linked_suffix: " to unlink."
|
||||
code_generated_prefix: "Your verification code is: "
|
||||
code_generated_suffix: ". Use "
|
||||
code_generated_discord_cmd: "/link code: {}"
|
||||
code_generated_tail: " on Discord to complete linking. The code expires in 5 minutes. If expired, run "
|
||||
code_generated_refresh_cmd: "/dmcc link"
|
||||
code_generated_refresh_tail: " in-game to get a new code."
|
||||
invalid_code: "Invalid or expired verification code."
|
||||
success: "Successfully linked to Minecraft player \"{}\"!"
|
||||
uuid_already_linked: "This Minecraft account is already linked to another Discord user."
|
||||
|
|
@ -274,15 +265,16 @@ linking:
|
|||
unlinked_minecraft: "Unlinked Minecraft player {} ({}) from Discord user {} ({})!"
|
||||
uuid_already_linked: "Minecraft player {} ({}) is already linked to Discord user {} ({})."
|
||||
verification:
|
||||
generated: "Generated verification code for player {}: {}!"
|
||||
refreshed: "Refreshed verification code for player {}: {}!"
|
||||
consumed: "Verification code consumed by player {}: {}!"
|
||||
player_join:
|
||||
not_linked_prefix: "Your Minecraft account is not linked to Discord. Use "
|
||||
not_linked_discord_cmd: "/link code: {}"
|
||||
not_linked_middle: " on Discord to complete linking. The code expires in 5 minutes. If expired, run "
|
||||
not_linked_refresh_cmd: "/dmcc link"
|
||||
not_linked_refresh_tail: " in-game to get a new code."
|
||||
generated: "Generated verification code for Minecraft player {}: {}!"
|
||||
refreshed: "Refreshed verification code validity for Minecraft player {}: {}!"
|
||||
consumed: "Minecraft player {} completed linking with verification code {}!"
|
||||
message:
|
||||
not_linked_1: "Your Minecraft account is not linked to a Discord user. Use "
|
||||
not_linked_2: " on Discord to complete linking. The code expires in 5 minutes. Run "
|
||||
not_linked_3: " in-game to refresh the code validity."
|
||||
already_linked_1: "Your Minecraft account is already linked to Discord user \"{}\". Run "
|
||||
already_linked_2: " to unlink."
|
||||
tooltip:
|
||||
click_to_copy: "Click to copy"
|
||||
click_to_run: "Click to fill command"
|
||||
|
||||
|
|
|
|||
|
|
@ -131,15 +131,6 @@ commands:
|
|||
player_only: "此命令只能由 Minecraft 玩家使用。"
|
||||
discord_only: "此命令只能在 Discord 上使用。"
|
||||
not_available: "此命令在当前模式下不可用。"
|
||||
already_linked: "你的 Minecraft 账户已绑定到 Discord 用户 \"{}\"。执行 "
|
||||
already_linked_unlink: "/dmcc unlink"
|
||||
already_linked_suffix: " 解除绑定。"
|
||||
code_generated_prefix: "你的验证码是:"
|
||||
code_generated_suffix: "。在 Discord 上使用 "
|
||||
code_generated_discord_cmd: "/link code: {}"
|
||||
code_generated_tail: " 命令来完成绑定。验证码将在 5 分钟后过期。若过期可在游戏内执行 "
|
||||
code_generated_refresh_cmd: "/dmcc link"
|
||||
code_generated_refresh_tail: " 获取新验证码。"
|
||||
invalid_code: "无效或已过期的验证码。"
|
||||
success: "成功绑定 Minecraft 玩家 \"{}\"!"
|
||||
uuid_already_linked: "此 Minecraft 账户已绑定到另一个 Discord 用户。"
|
||||
|
|
@ -274,15 +265,16 @@ linking:
|
|||
unlinked_minecraft: "已解除 Minecraft 玩家 {} ({}) 与 Discord 用户 {} ({}) 的绑定!"
|
||||
uuid_already_linked: "Minecraft 玩家 {} ({}) 已绑定到 Discord 用户 {} ({})。"
|
||||
verification:
|
||||
generated: "已为玩家 {} 生成验证码 {}!"
|
||||
refreshed: "已为玩家 {} 刷新验证码 {}!"
|
||||
consumed: "验证码已被玩家 {} 使用:{}!"
|
||||
player_join:
|
||||
not_linked_prefix: "你的 Minecraft 账户尚未与 Discord 用户绑定。在 Discord 上使用 "
|
||||
not_linked_discord_cmd: "/link code: {}"
|
||||
not_linked_middle: " 命令来完成绑定。验证码将在 5 分钟后过期。若过期可在游戏内执行 "
|
||||
not_linked_refresh_cmd: "/dmcc link"
|
||||
not_linked_refresh_tail: " 获取新验证码。"
|
||||
generated: "已为 Minecraft 玩家 {} 生成验证码 {}!"
|
||||
refreshed: "已刷新 Minecraft 玩家 {} 的验证码 {} 有效期!"
|
||||
consumed: "Minecraft 玩家 {} 使用验证码 {} 完成绑定!"
|
||||
message:
|
||||
not_linked_1: "你的 Minecraft 账户尚未与 Discord 用户绑定。在 Discord 上使用 "
|
||||
not_linked_2: " 完成绑定。验证码将在 5 分钟后过期,届时可执行 "
|
||||
not_linked_3: " 刷新验证码有效期。"
|
||||
already_linked_1: "你的 Minecraft 账户已绑定到 Discord 用户 \"{}\"。执行 "
|
||||
already_linked_2: " 解除绑定。"
|
||||
tooltip:
|
||||
click_to_copy: "点击复制"
|
||||
click_to_run: "点击填入命令"
|
||||
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ public class MinecraftEventHandler {
|
|||
if (event.alreadyLinked()) {
|
||||
player.sendSystemMessage(buildAlreadyLinkedMessage(event.discordName()));
|
||||
} else if (event.code() != null) {
|
||||
player.sendSystemMessage(buildCodeGeneratedMessage(event.code()));
|
||||
player.sendSystemMessage(buildNotLinkedMessage(event.code()));
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
|
|
@ -547,7 +547,8 @@ public class MinecraftEventHandler {
|
|||
}
|
||||
|
||||
/**
|
||||
* Builds a rich Component for the "not linked" player join notification.
|
||||
* Builds a rich Component for the "not linked" notification shown on both player join
|
||||
* and /dmcc link when the account is not linked.
|
||||
* Contains inline clickable elements: [/link code: CODE] for copy-to-clipboard
|
||||
* and [/dmcc link] for suggest-command.
|
||||
*
|
||||
|
|
@ -556,30 +557,11 @@ public class MinecraftEventHandler {
|
|||
*/
|
||||
private static Component buildNotLinkedMessage(String code) {
|
||||
return Component.empty()
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.player_join.not_linked_prefix")))
|
||||
.append(buildCopyToClipboard(I18nManager.getDmccTranslation("linking.player_join.not_linked_discord_cmd", code)))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.player_join.not_linked_middle")))
|
||||
.append(buildSuggestCommand("/dmcc link", I18nManager.getDmccTranslation("linking.player_join.not_linked_refresh_cmd")))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.player_join.not_linked_refresh_tail")));
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a rich Component for the "code generated" response from /dmcc link.
|
||||
* Contains inline clickable elements: [/link code: CODE] for copy-to-clipboard
|
||||
* and [/dmcc link] for suggest-command.
|
||||
*
|
||||
* @param code The verification code.
|
||||
* @return A rich Component with inline clickable elements.
|
||||
*/
|
||||
private static Component buildCodeGeneratedMessage(String code) {
|
||||
return Component.empty()
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("commands.link.code_generated_prefix")))
|
||||
.append(buildCopyToClipboard(code))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("commands.link.code_generated_suffix")))
|
||||
.append(buildCopyToClipboard(I18nManager.getDmccTranslation("commands.link.code_generated_discord_cmd", code)))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("commands.link.code_generated_tail")))
|
||||
.append(buildSuggestCommand("/dmcc link", I18nManager.getDmccTranslation("commands.link.code_generated_refresh_cmd")))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("commands.link.code_generated_refresh_tail")));
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.message.not_linked_1")))
|
||||
.append(buildCopyToClipboard("/link code: " + code))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.message.not_linked_2")))
|
||||
.append(buildSuggestCommand("/dmcc link", "/dmcc link"))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.message.not_linked_3")));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -591,9 +573,9 @@ public class MinecraftEventHandler {
|
|||
*/
|
||||
private static Component buildAlreadyLinkedMessage(String discordName) {
|
||||
return Component.empty()
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("commands.link.already_linked", discordName)))
|
||||
.append(buildSuggestCommand("/dmcc unlink", I18nManager.getDmccTranslation("commands.link.already_linked_unlink")))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("commands.link.already_linked_suffix")));
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.message.already_linked_1", discordName)))
|
||||
.append(buildSuggestCommand("/dmcc unlink", "/dmcc unlink"))
|
||||
.append(Component.literal(I18nManager.getDmccTranslation("linking.message.already_linked_2")));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -607,7 +589,7 @@ public class MinecraftEventHandler {
|
|||
return Component.literal("[" + text + "]").withStyle(style -> style
|
||||
.withClickEvent(new ClickEvent.CopyToClipboard(text))
|
||||
.withHoverEvent(new HoverEvent.ShowText(
|
||||
Component.literal(I18nManager.getDmccTranslation("linking.player_join.click_to_copy"))))
|
||||
Component.literal(I18nManager.getDmccTranslation("linking.tooltip.click_to_copy"))))
|
||||
.withColor(ChatFormatting.GREEN));
|
||||
}
|
||||
|
||||
|
|
@ -623,7 +605,7 @@ public class MinecraftEventHandler {
|
|||
return Component.literal("[" + displayText + "]").withStyle(style -> style
|
||||
.withClickEvent(new ClickEvent.SuggestCommand(command))
|
||||
.withHoverEvent(new HoverEvent.ShowText(
|
||||
Component.literal(I18nManager.getDmccTranslation("linking.player_join.click_to_run"))))
|
||||
Component.literal(I18nManager.getDmccTranslation("linking.tooltip.click_to_run"))))
|
||||
.withColor(ChatFormatting.GREEN));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue