From fe50a42a3c9747c0f0c538ac648c052e59f4e7c1 Mon Sep 17 00:00:00 2001 From: Someone999 <45456778+Someone999@users.noreply.github.com> Date: Mon, 4 Jul 2022 12:21:41 +0800 Subject: [PATCH] Added permission information to help command (#1427) Original commits: * Added command CommandPermissionCommand. Added permission information in HelpCommand. * Removed command CommandPermissionCommand * Display permission for single command when use help. * Display permission targeted when use help. --- .../command/commands/HelpCommand.java | 47 ++++++++++++++++++- src/main/resources/languages/en-US.json | 6 ++- src/main/resources/languages/zh-CN.json | 7 ++- src/main/resources/languages/zh-TW.json | 6 ++- 4 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java index 431890fd..f4588ef2 100644 --- a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java @@ -46,8 +46,24 @@ public final class HelpCommand implements CommandHandler { builder.append(alias).append(" "); } } + + builder.append("\n").append(translate(player, "commands.help.tip_need_permission")); + if(annotation.permission().isEmpty() || annotation.permission().isBlank()) { + builder.append(translate(player, "commands.help.tip_need_no_permission")); + } + else { + builder.append(annotation.permission()); + } + builder.append(" "); + + if(!annotation.permissionTargeted().isEmpty() && !annotation.permissionTargeted().isBlank()) { + String permissionTargeted = annotation.permissionTargeted(); + builder.append(translate(player, "commands.help.tip_permission_targeted", permissionTargeted)); + } + if (player != null && !Objects.equals(annotation.permission(), "") && !player.getAccount().hasPermission(annotation.permission())) { - builder.append("\n Warning: You do not have permission to run this command."); + builder.append("\n "); + builder.append(translate(player, "commands.help.warn_player_has_no_permission")); } } @@ -68,6 +84,20 @@ public final class HelpCommand implements CommandHandler { builder.append(alias).append(" "); } } + builder.append("\n").append(translate(player, "commands.help.tip_need_permission")); + if(annotation.permission().isEmpty() || annotation.permission().isBlank()) { + builder.append(translate(player, "commands.help.tip_need_no_permission")); + } + else { + builder.append(annotation.permission()); + } + + builder.append(" "); + + if(!annotation.permissionTargeted().isEmpty() && !annotation.permissionTargeted().isBlank()) { + String permissionTargeted = annotation.permissionTargeted(); + builder.append(translate(player, "commands.help.tip_permission_targeted", permissionTargeted)); + } builder.append("\n"); }); @@ -85,6 +115,21 @@ public final class HelpCommand implements CommandHandler { builder.append(alias).append(" "); } } + builder.append("\n").append(translate(player, "commands.help.permission")); + if(annotation.permission().isEmpty() || annotation.permission().isBlank()) { + builder.append(translate(player, "commands.help.no_permission")); + } + else { + builder.append(annotation.permission()); + } + + builder.append(" "); + + if(!annotation.permissionTargeted().isEmpty() && !annotation.permissionTargeted().isBlank()) { + String permissionTargeted = annotation.permissionTargeted(); + builder.append(translate(player, "commands.help.tip_permission_targeted", permissionTargeted)); + } + CommandHandler.sendMessage(player, builder.toString()); }); diff --git a/src/main/resources/languages/en-US.json b/src/main/resources/languages/en-US.json index 2df91648..a057be8c 100644 --- a/src/main/resources/languages/en-US.json +++ b/src/main/resources/languages/en-US.json @@ -167,7 +167,11 @@ "usage": "Usage: ", "aliases": "Aliases: ", "available_commands": "Available commands: ", - "description": "Sends the help message or shows information about a specified command" + "description": "Sends the help message or shows information about a specified command", + "tip_need_permission": "Permission: ", + "tip_need_no_permission": " None", + "tip_permission_targeted": " (Permission %s is also required to use on other players)", + "warn_player_has_no_permission": "Notice: You do not have permission to run this command." }, "kick": { "player_kick_player": "Player [%s:%s] has kicked player [%s:%s]", diff --git a/src/main/resources/languages/zh-CN.json b/src/main/resources/languages/zh-CN.json index c50f59b7..64fade3d 100644 --- a/src/main/resources/languages/zh-CN.json +++ b/src/main/resources/languages/zh-CN.json @@ -167,7 +167,12 @@ "usage": "鐢ㄦ硶锛�", "aliases": "鍒悕锛�", "available_commands": "鍙敤鍛戒护锛�", - "description": "鍙戦€佸府鍔╀俊鎭垨鏄剧ず鎸囧畾鍛戒护鐨勪俊鎭�" + "description": "鍙戦€佸府鍔╀俊鎭垨鏄剧ず鎸囧畾鍛戒护鐨勪俊鎭�", + "tip_need_permission": "鎵€闇€鏉冮檺: ", + "tip_need_no_permission": " 鏃�", + "tip_permission_targeted": "(瀵瑰叾浠栫帺瀹朵娇鐢ㄨ繖涓懡浠よ繕闇€瑕佹潈闄�%s)", + "warn_player_has_no_permission": "娉ㄦ剰锛氫綘娌℃湁鎵ц杩欎釜鍛戒护鐨勬潈闄�" + }, "kick": { "player_kick_player": "鐜╁ [%s:%s] 宸插皢 [%s:%s] 韪㈠嚭銆�", diff --git a/src/main/resources/languages/zh-TW.json b/src/main/resources/languages/zh-TW.json index 30e0e9e7..da4b1e01 100644 --- a/src/main/resources/languages/zh-TW.json +++ b/src/main/resources/languages/zh-TW.json @@ -178,7 +178,11 @@ "usage": "鐢ㄦ硶锛�", "aliases": "鍒ュ悕锛�", "description": "鐧奸€佸公鍔╀俊鎭垨椤ず鐗瑰畾鍛戒护鐨勪俊鎭�", - "available_commands": "鍙敤鎸囦护锛�" + "available_commands": "鍙敤鎸囦护锛�", + "tip_need_permission": "闇€瑕佺殑娆婇檺: ", + "tip_need_no_permission": "鐒�", + "tip_permission_targeted": "(灏嶅叾浠栫殑鐜╁浣跨敤閫欏€嬫寚浠ら倓闇€瑕佹瑠闄�%s)", + "warn_player_has_no_permission": "娉ㄦ剰锛氫綘娌掓湁鍩疯閫欐鎸囦护鐨勬瑠闄�" }, "kick": { "player_kick_player": "鐜╁ [%s:%s] 宸叉妸 [%s:%s] 韪㈠嚭", -- GitLab