From a4f176fd07b0cde50e36c806a99a62c11f81a579 Mon Sep 17 00:00:00 2001 From: F0rb1d Date: Fri, 3 Aug 2018 20:35:36 +0800 Subject: [PATCH 01/29] Updated Simplified Chinese translation and formalized language codes. --- .../main/resources/{german.yml => de-DE.yml} | 0 .../main/resources/{spanish.yml => es-ES.yml} | 0 .../main/resources/{italian.yml => it-IT.yml} | 0 .../main/resources/{Ko-kr.yml => ko_KR.yml} | 0 Core/src/main/resources/s_chinese.yml | 378 ----------- .../main/resources/s_chinese_unescaped.yml | 257 -------- Core/src/main/resources/zh_CN.yml | 407 ++++++++++++ chinese.yml | 600 +++++++++--------- 8 files changed, 723 insertions(+), 919 deletions(-) rename Core/src/main/resources/{german.yml => de-DE.yml} (100%) rename Core/src/main/resources/{spanish.yml => es-ES.yml} (100%) rename Core/src/main/resources/{italian.yml => it-IT.yml} (100%) rename Core/src/main/resources/{Ko-kr.yml => ko_KR.yml} (100%) delete mode 100644 Core/src/main/resources/s_chinese.yml delete mode 100644 Core/src/main/resources/s_chinese_unescaped.yml create mode 100644 Core/src/main/resources/zh_CN.yml diff --git a/Core/src/main/resources/german.yml b/Core/src/main/resources/de-DE.yml similarity index 100% rename from Core/src/main/resources/german.yml rename to Core/src/main/resources/de-DE.yml diff --git a/Core/src/main/resources/spanish.yml b/Core/src/main/resources/es-ES.yml similarity index 100% rename from Core/src/main/resources/spanish.yml rename to Core/src/main/resources/es-ES.yml diff --git a/Core/src/main/resources/italian.yml b/Core/src/main/resources/it-IT.yml similarity index 100% rename from Core/src/main/resources/italian.yml rename to Core/src/main/resources/it-IT.yml diff --git a/Core/src/main/resources/Ko-kr.yml b/Core/src/main/resources/ko_KR.yml similarity index 100% rename from Core/src/main/resources/Ko-kr.yml rename to Core/src/main/resources/ko_KR.yml diff --git a/Core/src/main/resources/s_chinese.yml b/Core/src/main/resources/s_chinese.yml deleted file mode 100644 index e6fbf8701..000000000 --- a/Core/src/main/resources/s_chinese.yml +++ /dev/null @@ -1,378 +0,0 @@ -#Translator: c7w/1345979462 -confirm: - failed_confirm: $2\u4f60\u5f53\u524d\u6ca1\u6709\u53ef\u4ee5\u63a5\u53d7\u7684\u884c\u52a8\uff01 - requires_confirm: '$2\u4f60\u662f\u5426\u8981\u6267\u884c: $1%s$2?&-$2\u8be5\u64cd\u4f5c\u4e0d\u53ef\u9006! \u5982\u679c\u786e\u5b9a\u8bf7\u8f93\u5165: $1/plot confirm' -move: - move_success: $4\u6210\u529f\u7684\u79fb\u52a8\u4e86\u5730\u76ae\u3002 - copy_success: $4\u6210\u529f\u7684\u590d\u5236\u4e86\u5730\u76ae\u3002 - requires_unowned: $2\u4f60\u6307\u5b9a\u7684\u4f4d\u7f6e\u5df2\u88ab\u5360\u7528\u3002 -set: - set_attribute: $4\u6210\u529f\u5c06 %s0 \u8bbe\u7f6e\u4e3a %s1 -web: - generating_link: $1\u5904\u7406\u5730\u76ae\u4e2d... - generating_link_failed: $2\u521b\u5efa\u4e0b\u8f7d\u94fe\u63a5\u5931\u8d25\u4e86\uff01 - save_failed: $2\u4fdd\u5b58\u5931\u8d25 - load_null: $2\u8bf7\u4f7f\u7528 $4/plot load $2\u6765\u83b7\u53d6\u6a21\u578b\u5217\u8868 - load_failed: $2\u8bfb\u53d6\u6a21\u578b\u5931\u8d25 - load_list: '$2\u82e5\u8981\u8bfb\u53d6\u4e00\u4e2a\u6a21\u578b\uff0c\u8bf7\u4f7f\u7528 $1/plot load #' - save_success: $1\u6210\u529f\u4fdd\u5b58\uff01 -compass: - compass_target: $4\u6210\u529f\u7684\u7528\u6307\u5357\u9488\u6307\u5411\u4e86\u5730\u76ae\uff01 -cluster: - cluster_available_args: '''$1\u4e0b\u9762\u7684\u5b50\u6307\u4ee4\u662f\u53ef\u884c\u7684: $4list$2, $4create$2, $4delete$2, $4resize$2, - $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome''' - cluster_list_heading: $2\u5728\u8fd9\u4e2a\u4e16\u754c\u4e2d\u6709 $1%s$2 \u4e2a\u5730\u76ae\u7fa4 - cluster_list_element: $2 - $1%s&- - cluster_intersection: $2\u76ee\u6807\u533a\u57df\u88ab %s0 \u8986\u76d6' - cluster_added: $4\u6210\u529f\u7684\u521b\u5efa\u4e86\u7fa4\u3002 - cluster_deleted: $4\u6210\u529f\u7684\u5220\u9664\u4e86\u7fa4\u3002 - cluster_resized: $4\u6210\u529f\u4e3a\u7fa4\u91cd\u65b0\u8bbe\u7f6e\u5927\u5c0f\u3002 - cluster_added_user: $4\u6210\u529f\u4e3a\u7fa4\u589e\u52a0\u7528\u6237\u3002 - cannot_kick_player: $2\u4f60\u4e0d\u80fd\u4ece\u5730\u76ae\u4e2d\u79fb\u9664\u90a3\u4f4d\u73a9\u5bb6\uff01 - cluster_invited: $1\u4f60\u88ab\u9080\u8bf7\u53bb\u4e0b\u5217\u7fa4\uff1a $2%s - cluster_removed: $1\u4f60\u88ab\u8be5\u7fa4\u79fb\u9664\uff1a $2%s - cluster_kicked_user: $4\u6210\u529f\u79fb\u9664\u4e86\u7528\u6237\u3002 - invalid_cluster: '''$1\u4e0d\u5408\u6cd5\u7684\u7fa4\u540d\u79f0\uff1a $2%s''' - cluster_not_added: $2\u90a3\u4e2a\u73a9\u5bb6\u6ca1\u6709\u88ab\u6dfb\u52a0\u5230\u5730\u76ae\u7fa4\u4e2d - cluster_cannot_leave: $1\u4f60\u5728\u79bb\u5f00\u4e4b\u524d\u5fc5\u987b\u5220\u9664\u6216\u8f6c\u8ba9\u7fa4 - cluster_added_helper: $4\u6210\u529f\u4e3a\u5730\u76ae\u7fa4\u589e\u52a0\u4e86\u63f4\u5efa\u8005 - cluster_removed_helper: $4\u6210\u529f\u4e3a\u5730\u76ae\u7fa4\u79fb\u9664\u4e86\u4e00\u4f4d\u63f4\u5efa\u8005 - cluster_regenerated: $4\u6210\u529f\u7684\u5f00\u59cb\u4e86\u5730\u76ae\u7fa4\u91cd\u5efa\u4efb\u52a1 - cluster_teleporting: $4\u4f20\u9001\u4e2d... - cluster_info: '''$1\u5f53\u524d\u7fa4\uff1a $2%id%&-$1\u540d\u79f0\uff1a $2%name%&-$1\u6240\u6709\u8005\uff1a $2%owner%&-$1\u5927\u5c0f\uff1a $2%size%&-$1\u6743\u5229\uff1a - $2%rights%''' - cluster_outside: '$2The proposed area is outside the plot area: %s0' -border: - border: $2\u4f60\u5728\u5f53\u524d\u5730\u56fe\u8fb9\u754c\u4e4b\u5916 -unclaim: - unclaim_success: $4\u4f60\u6210\u529f\u7684\u653e\u5f03\u4e86\u5730\u76ae - unclaim_failed: $2\u4e0d\u80fd\u653e\u5f03\u5730\u76ae -worldedit masks: - worldedit_delayed: $2\u8bf7\u7b49\u5f85\u6211\u4eec\u5904\u7406\u4f60\u7684 Worldedit \u884c\u52a8... - worldedit_run: '''$2\u8bf7\u7b49\u5f85\u5f53\u524d\u4efb\u52a1\u5b8c\u6210\u3002\u5f53\u524d\u6b63\u5728\u8fdb\u884c\u7684\u4efb\u52a1\uff1a%s''' - require_selection_in_mask: $2\u4f60\u5f53\u524d\u9009\u62e9\u8303\u56f4\u4e2d %s \u4e0d\u662f\u4f60\u7684\u5730\u76ae\uff0c\u4f60\u53ea\u80fd\u5728\u4f60\u81ea\u5df1\u7684\u5730\u76ae\u4e0a\u66f4\u6539\u3002 - worldedit_volume: $2\u4f60\u76ee\u524d\u9009\u533a\u4e2d\u6709 %current%\u4e2a\u65b9\u5757\uff0c\u4f60\u6700\u5927\u53ef\u4ee5\u4e00\u6b21\u6027\u7f16\u8f91\u7684\u65b9\u5757\u6570\u76ee\u4e3a %max%\u3002 - worldedit_iterations: $2\u4f60\u4e0d\u80fd\u91cd\u590d %current% \u6b21\u3002\u4f60\u53ef\u4ee5\u91cd\u590d\u7684\u6700\u5927\u6b21\u6570\u4e3a %max%\u6b21\u3002 - worldedit_unsafe: $2\u90a3\u4e2a\u6307\u4ee4\u5df2\u88ab\u7981\u7528 - worldedit_bypass: $2&o\u82e5\u8981\u89e3\u9664\u4f60\u7684 Worldedit \u9650\u5236\uff0c\u8f93\u5165 $4/plot wea - worldedit_bypassed: $2\u5f53\u524d\u89e3\u9664\u4e86\u4f60\u7684 WorldEdit \u9650\u5236 - worldedit_unmasked: $1\u4f60\u7684 WorldEdit \u73b0\u5728\u88ab\u89e3\u9664\u9650\u5236\u3002 - worldedit_restricted: $1\u4f60\u7684 WorldEdit \u73b0\u5728\u88ab\u9650\u5236\u3002 -gamemode: - gamemode_was_bypassed: $1\u4f60\u4e3a\u5730\u76ae $2{plot} $1\u8df3\u8fc7\u4e86\u6e38\u620f\u6a21\u5f0f \u2014\u2014 ($2{gamemode}$1) $1 -height limit: - height_limit: $1\u8fd9\u4e2a\u5730\u76ae\u7684\u5efa\u7b51\u9ad8\u5ea6\u9650\u5236\u4e3a $2{limit} -records: - record_play: $2%player $2\u5f00\u59cb\u4e86 $1%name \u7684\u8bb0\u5f55 - notify_enter: $2%player $2\u8fdb\u5165\u4e86\u4f60\u7684\u5730\u76ae ($1%plot$2) - notify_leave: $2%player $2\u79bb\u5f00\u4e86\u4f60\u7684\u5730\u76ae ($1%plot$2) -swap: - swap_overlap: $2\u76ee\u6807\u533a\u57df\u4e0d\u5141\u8bb8\u88ab\u8986\u76d6 - swap_dimensions: $2\u548c\u76ee\u6807\u533a\u57df\u5fc5\u987b\u62e5\u6709\u76f8\u540c\u7684\u4e16\u754c\u7c7b\u578b - swap_syntax: $2/plots swap - swap_success: $4\u6210\u529f\u7684\u4ea4\u6362\u4e86\u5730\u76ae - started_swap: $2\u4ea4\u6362\u5730\u76ae\u4efb\u52a1\u5df2\u5f00\u59cb\uff0c\u4f60\u5c06\u4f1a\u5728\u5b8c\u6210\u540e\u6536\u5230\u901a\u77e5\u3002 -comment: - inbox_notification: '%s \u6761\u672a\u8bfb\u4fe1\u606f\u3002\u4f7f\u7528 /plot inbox \u6765\u8bfb\u53d6' - not_valid_inbox_index: $2\u5728\u7b2c %s \u9875\u6ca1\u6709\u4fe1\u606f - inbox_item: $2 - $4%s - comment_syntax: $2\u8bf7\u4f7f\u7528 /plots comment [X;Z] <%s> - invalid_inbox: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6536\u4ef6\u7bb1&-$1\u5141\u8bb8\u7684\u503c\uff1a %s - no_perm_inbox: $2\u4f60\u6ca1\u6709\u67e5\u770b\u90a3\u4e2a\u6536\u4ef6\u7bb1\u7684\u6743\u9650 - no_perm_inbox_modify: $2\u4f60\u6ca1\u6709\u66f4\u6539\u90a3\u4e2a\u6536\u4ef6\u7bb1\u7684\u6743\u9650 - no_plot_inbox: $2\u4f60\u5fc5\u987b\u7ad9\u5728\u6216\u6307\u5b9a\u4e00\u4e2a\u5730\u76ae\u53c2\u6570 - comment_removed: $4\u6210\u529f\u7684\u5220\u9664\u4e86\u8bc4\u8bba\uff1a$2 - '$3%s$2' - comment_added: $4\u4e00\u6761\u8bc4\u8bba\u88ab\u7559\u4e0b - comment_header: $2&m---------&r $1\u8bc4\u8bba $2&m---------&r - inbox_empty: $2\u6ca1\u6709\u8bc4\u8bba -console: - not_console: $2\u4e3a\u4e86\u5b89\u5168\uff0c\u8fd9\u4e2a\u6307\u4ee4\u53ea\u80fd\u7531\u63a7\u5236\u53f0\u6267\u884c\u3002 - is_console: $2\u8fd9\u4e2a\u6307\u4ee4\u53ea\u80fd\u7531\u73a9\u5bb6\u6267\u884c\u3002 -inventory: - inventory_usage: '&c\u4f7f\u7528\uff1a &6{usage}' - inventory_desc: '&c\u63cf\u8ff0\uff1a &6{desc}' - inventory_category: '&c\u7c7b\u578b\uff1a &6{category}' -clipboard: - clipboard_set: $2\u5f53\u524d\u5730\u76ae\u5df2\u88ab\u590d\u5236\u5230\u4f60\u7684\u526a\u5207\u677f\u4e2d\uff0c\u4f7f\u7528 $1/plot paste$2 \u6765\u7c98\u8d34\u3002 - pasted: $4\u5730\u76ae\u5df2\u88ab\u6210\u529f\u7c98\u8d34\u3002\u5b83\u4ece\u4f60\u7684\u526a\u5207\u677f\u4e2d\u88ab\u79fb\u9664\u3002 - paste_failed: $2\u7c98\u8d34\u9009\u4e2d\u533a\u57df\u65f6\u5931\u8d25\u4e86\uff0c\u5931\u8d25\u539f\u56e0\uff1a $2%s - no_clipboard: $2\u4f60\u7684\u526a\u5207\u677f\u4e2d\u6ca1\u6709\u9009\u62e9\u3002 - clipboard_info: '$2\u5f53\u524d\u9009\u62e9 - \u5730\u76aeID: $1%id$2, \u5bbd\u5ea6: $1%width$2, \u603b\u8ba1\u65b9\u5757\u6570\uff1a$1%total$2' -toggle: - toggle_enabled: $2\u542f\u7528\u8bbe\u7f6e\uff1a %s - toggle_disabled: $2\u7981\u7528\u8bbe\u7f6e\uff1a %s -blocked command: - command_blocked: $2\u5728\u8fd9\u4e2a\u5730\u76ae\u4e2d\u90a3\u4e2a\u6307\u4ee4\u4e0d\u88ab\u5141\u8bb8 -done: - done_already_done: $2\u8fd9\u4e2a\u5730\u76ae\u5df2\u7ecf\u88ab\u6807\u8bb0\u5b8c\u6210\u3002 - done_not_done: $2\u8fd9\u4e2a\u5730\u76ae\u6ca1\u6709\u88ab\u6807\u8bb0\u5b8c\u6210\u3002 - done_insufficient_complexity: $2\u8fd9\u4e2a\u5730\u76ae\u592a\u8fc7\u4e8e\u7b80\u5355\u3002\u8bf7\u5728\u4f7f\u7528\u8fd9\u4e2a\u6307\u4ee4\u4e4b\u524d\u589e\u52a0\u589e\u52a0\u66f4\u591a\u7ec6\u8282\u3002 - done_success: $1\u6210\u529f\u5c06\u5730\u76ae\u6807\u8bb0\u5b8c\u6210\u3002 - done_removed: $1\u4f60\u73b0\u5728\u53ef\u4ee5\u7ee7\u7eed\u5728\u5730\u76ae\u4e2d\u5efa\u7b51\u4e86\u3002 -ratings: - rating_not_valid: $2\u4f60\u9700\u8981\u5728 1 - 10 \u4e4b\u524d\u6307\u5b9a\u4e00\u4e2a\u6570\u5b57 - rating_already_exists: $2\u4f60\u5df2\u7ecf\u4e3a\u5730\u76ae $2%s \u6295\u8fc7\u7968\u4e86 - rating_applied: $4\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae $2%s \u6295\u4e86\u4e00\u7968 - rating_not_your_own: $2\u4f60\u4e0d\u80fd\u4e3a\u81ea\u5df1\u7684\u5730\u76ae\u6295\u7968 - rating_not_done: $2\u4f60\u53ea\u80fd\u4e3a\u5b8c\u6210\u7684\u5730\u76ae\u6295\u7968\u3002 - rating_not_owned: $2\u4f60\u4e0d\u80fd\u4e3a\u65e0\u4e3b\u7684\u5730\u76ae\u6295\u7968\u3002 -tutorial: - rate_this: $2\u4e3a\u8fd9\u4e2a\u5730\u76ae\u6295\u7968\uff01 - comment_this: $2\u4e3a\u8fd9\u4e2a\u5730\u76ae\u7559\u4e00\u4e9b\u53cd\u9988\uff1a %s -economy: - econ_disabled: $2\u73b0\u5728\u6ca1\u6709\u542f\u52a8\u7ecf\u6d4e\u7cfb\u7edf - cannot_afford_plot: $2\u4f60\u6ca1\u6709\u8db3\u591f\u7684\u94b1\u4e70\u8fd9\u5757\u5730\u76ae\u3002\u5b83\u9700\u8981\u82b1\u8d39 $1%s - not_for_sale: $2\u8fd9\u5757\u5730\u76ae\u6ca1\u6709\u51fa\u552e - cannot_buy_own: $2\u4f60\u4e0d\u80fd\u8d2d\u4e70\u4f60\u81ea\u5df1\u7684\u5730\u76ae - plot_sold: $4\u4f60\u7684\u5730\u76ae $1%s0$4\uff0c\u4ee5 $1$%s2 \u7684\u4ef7\u683c\u88ab\u5356\u7ed9\u4e86 $1%s1$4 - cannot_afford_merge: $2\u4f60\u6ca1\u6709\u8db3\u591f\u7684\u94b1\u6765\u5408\u5e76\u5730\u76ae\u3002\u5b83\u9700\u8981\u82b1\u8d39 $1%s - added_balance: $1%s $2\u88ab\u6253\u5165\u4f60\u7684\u8d26\u6237 - removed_balance: $1%s $2\u4ece\u4f60\u7684\u8d26\u6237\u53d6\u51fa - removed_granted_plot: $2\u4f60\u4f7f\u7528\u4e86 %s \u4e2a\u5730\u76ae\u6388\u6743\uff0c\u4f60\u8fd8\u5269\u4e0b $1%s $2\u4e2a -setup: - setup_init: $1\u8bf7\u4f7f\u7528\uff1a $2/plot setup - setup_step: $3[$1\u7b2c %s0 $1\u6b65$3] $1%s1 $2- $1\u53c2\u6570\u7c7b\u578b\uff1a $2%s2 $1\u9ed8\u8ba4\u503c\uff1a $2%s3 - setup_invalid_arg: $2%s0 \u4e0d\u662f\u5bf9\u4e8e\u7b2c %s1 \u6b65\u7684\u6b63\u786e\u7684\u53c2\u6570\u3002\u8981\u60f3\u53d6\u6d88\u8bbe\u7f6e\u4f7f\u7528\uff1a $1/plot setup cancel - setup_valid_arg: $2\u4f60\u5c06\u503c $1%s0 $2\u8bbe\u7f6e\u4e3a\u4e86 %s1 - setup_finished: $4\u4f60\u5e94\u8be5\u88ab\u4f20\u9001\u5230\u4e86\u521b\u5efa\u7684\u4e16\u754c\u3002\u5426\u5219\u4f60\u9700\u8981\u624b\u52a8\u8bbe\u7f6e\u5728 bukkit.yml \u4e2d\u7684\u4e16\u754c\u521b\u5efa\u5668\u6216\u8005\u4f60\u9009\u62e9\u7684\u4e16\u754c\u7684\u7ba1\u7406\u63d2\u4ef6\u3002 - setup_world_taken: $2%s \u662f\u4e00\u4e2a\u5df2\u7ecf\u521b\u5efa\u7684\u5730\u76ae\u4e16\u754c - setup_missing_world: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u4e16\u754c\u540d($1/plot setup &l$1 $2)&-$1\u9644\u52a0\u6307\u4ee4\uff1a&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u4e16\u754c\u751f\u6210\u5668 ($1/plot setup &l&r$2)&-$1\u9644\u52a0\u6307\u4ee4\uff1a&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_invalid_generator: $2\u9519\u8bef\u7684\u751f\u6210\u5668\u3002\u6b63\u786e\u7684\u751f\u6210\u5668\u6709\uff1a %s -schematics: - schematic_too_large: $2\u8fd9\u4e2a\u5730\u76ae\u5bf9\u6b64\u884c\u52a8\u592a\u5927\u4e86\uff01 - schematic_missing_arg: $2\u4f60\u9700\u8981\u5236\u5b9a\u4e00\u4e2a\u53c2\u6570\u3002\u6b63\u786e\u7684\u503c\uff1a $1test $2 , $1save$2 , $1paste $2, $1exportall - schematic_invalid: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6a21\u677f\u3002\u539f\u56e0\uff1a $2%s - schematic_valid: $2\u90a3\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6a21\u677f - schematic_paste_failed: $2\u7c98\u8d34\u6a21\u677f\u5931\u8d25\u4e86 - schematic_paste_success: $4\u6210\u529f\u7684\u7c98\u8d34\u4e86\u6a21\u677f -titles: - title_entered_plot: $1\u5730\u76ae\uff1a %world%;%x%;%z% - title_entered_plot_sub: $4\u5730\u76ae\u4e3b\u4eba %s - prefix_greeting: '$1%id%$2> ' - prefix_farewell: '$1%id%$2> ' -core: - task_start: \u4efb\u52a1\u5f00\u59cb... - prefix: $3[$1\u5730\u76ae\u7cfb\u7edf$3] $2 - enabled: $1PlotSquared \u73b0\u5df2\u5f00\u542f -reload: - reloaded_configs: $1\u7ffb\u8bd1\u548c\u4e16\u754c\u8bbe\u7f6e\u88ab\u91cd\u65b0\u8bfb\u53d6 - reload_failed: $2\u8bfb\u53d6\u6587\u4ef6\u914d\u7f6e\u5931\u8d25 -desc: - desc_set: $2\u5730\u76ae\u7684\u63cf\u8ff0\u88ab\u8bbe\u7f6e - desc_unset: $2\u5730\u76ae\u7684\u63cf\u8ff0\u88ab\u91cd\u7f6e - missing_desc: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u63cf\u8ff0 -alias: - alias_set_to: $2\u5730\u76ae\u7b80\u79f0\u8bbe\u7f6e\u4e3a $1%alias% - missing_alias: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u7b80\u79f0 - alias_too_long: $2\u5728\u957f\u5ea6\u4e0a\u7b80\u79f0\u5fc5\u987b\u5c0f\u4e8e50\u5b57\u7b26 - alias_is_taken: $2\u5df2\u7ecf\u6709\u5730\u76ae\u547d\u540d\u4e3a\u90a3\u4e2a\u7b80\u79f0\u4e86 -position: - missing_position: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u65b9\u4f4d\u3002\u6b63\u786e\u7684\u503c\uff1a \u00d7\u65e0\u00d7 - position_set: $1\u5c06\u5bb6\u8bbe\u7f6e\u4e3a\u5f53\u524d\u4f4d\u7f6e - position_unset: $1\u5bb6\u7684\u4f4d\u7f6e\u91cd\u7f6e\u5230\u9ed8\u8ba4\u4f4d\u7f6e - home_argument: $2\u8bf7\u4f7f\u7528 /plot set home [none] - invalid_position: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u4f4d\u7f6e\u7684\u503c -cap: - entity_cap: $2\u4f60\u4e0d\u80fd\u518d\u751f\u6210\u66f4\u591a\u602a\u7269\u4e86\uff01 -time: - time_format: $1%hours%, %min%, %sec% -permission: - no_schematic_permission: $2\u4f60\u6ca1\u6709\u6743\u9650\u6765\u4f7f\u7528\u6a21\u677f $1%s - no_permission: $2\u4f60\u6ca1\u6709\u6743\u9650\uff01 ($1%s) - no_permission_event: $2\u4f60\u6ca1\u6709\u6743\u9650\u8fd9\u6837\u505a\uff01 ($1%s) - no_plot_perms: $2\u4f60\u9700\u8981\u5730\u76ae\u4e3b\u4eba\u6743\u9650 - cant_claim_more_plots: $2\u4f60\u4e0d\u80fd\u518d\u9886\u53d6\u66f4\u591a\u5730\u76ae\u4e86 - cant_transfer_more_plots: $2\u4f60\u4e0d\u80fd\u7ed9\u90a3\u4e2a\u73a9\u5bb6\u66f4\u591a\u5730\u76ae\u4e86 - cant_claim_more_plots_num: $2\u4f60\u4e0d\u80fd\u540c\u65f6\u9886\u53d6\u8d85\u8fc7 $1%s $2\u4e2a\u5730\u76ae - you_be_denied: $2\u4f60\u4e0d\u80fd\u8fdb\u5165\u90a3\u4e2a\u5730\u76ae - merge_request_confirm: \u6765\u81ea %s \u7684\u5730\u76ae\u5408\u5e76\u7533\u8bf7 - cant_claim_more_clusters: $2You can't claim more clusters. -merge: - merge_not_valid: $2\u8fd9\u4e2a\u5408\u5e76\u8bf7\u6c42\u4e0d\u518d\u5408\u6cd5 - merge_accepted: $2\u5408\u5e76\u8bf7\u6c42\u88ab\u63a5\u53d7 - success_merge: $2\u5730\u76ae\u6210\u529f\u88ab\u5408\u5e76\uff01 - merge_requested: $2\u6210\u529f\u7684\u53d1\u9001\u4e86\u4e00\u4e2a\u5408\u5e76\u8bf7\u6c42 - no_perm_merge: $2\u4f60\u4e0d\u662f\u5730\u76ae $1%plot% \u7684\u4e3b\u4eba - no_available_automerge: $2\u4f60\u5728\u6307\u5b9a\u4f4d\u7f6e\u6ca1\u6709\u90bb\u8fd1\u7684\u5730\u76ae\u6216\u4e0d\u5141\u8bb8\u4f60\u5408\u5e76\u6210\u90a3\u6837\u5927\u5c0f\u3002 - unlink_required: $2\u4f60\u9700\u8981\u5148\u89e3\u9664\u5730\u76ae\u7684\u5408\u5e76\u3002 - unlink_impossible: $2\u4f60\u53ea\u80fd\u89e3\u9664\u8d85\u7ea7\u5730\u76ae\u7684\u5408\u5e76 - unlink_success: $2\u6210\u529f\u7684\u89e3\u9664\u4e86\u5730\u76ae\u7684\u5408\u5e76\u3002 -commandconfig: - not_valid_subcommand: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u5b50\u547d\u4ee4 - did_you_mean: $2\u4f60\u60f3\u8f93\u5165\uff1a $1%s$2\u5417 - name_little: $2%s0 \u7684\u540d\u5b57\u592a\u77ed\u4e86\uff0c$1%s1$2<$1%s3 - no_commands: $2\u5f88\u62b1\u6b49\uff0c\u4f60\u6ca1\u6709\u6743\u9650\u4f7f\u7528\u4efb\u4f55\u5b50\u6307\u4ee4\u3002 - subcommand_set_options_header: '$2\u6b63\u786e\u7684\u503c\uff1a ' - command_syntax: $1\u8bf7\u4f7f\u7528\uff1a $2%s - flag_tutorial_usage: $1\u4f7f\u4e00\u4f4d\u7ba1\u7406\u5458\u8bbe\u7f6e\u6807\u5fd7\uff1a $2%s -errors: - invalid_player_wait: $2\u6ca1\u6709\u627e\u5230\u73a9\u5bb6\uff1a$1%s$2\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002 - invalid_player: $2\u6ca1\u6709\u627e\u5230\u73a9\u5bb6\uff1a $1%s$2. - invalid_player_offline: $2\u8fd9\u4e2a\u73a9\u5bb6\u5fc5\u987b\u5728\u7ebf\uff1a $1%s. - error: $2\u53d1\u751f\u4e86\u4e00\u4e2a\u9519\u8bef\uff1a %s - command_went_wrong: $2\u5f53\u4f7f\u7528\u6307\u4ee4\u65f6\u53d1\u751f\u4e86\u9519\u8bef... - no_free_plots: $2\u73b0\u5728\u6ca1\u6709\u53ef\u83b7\u5f97\u7684\u514d\u8d39\u5730\u76ae - not_in_plot: $2\u4f60\u4e0d\u5728\u4e00\u4e2a\u5730\u76ae\u4e2d - not_in_cluster: $2\u4f60\u5fc5\u987b\u5728\u4e00\u4e2a\u5730\u76ae\u7fa4\u7ec4\u4e2d\u624d\u80fd\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4 - not_in_plot_world: $2\u4f60\u4e0d\u5728\u4e00\u4e2a\u5730\u76ae\u4e16\u754c\u4e2d - plotworld_incompatible: $2\u4e24\u4e2a\u4e16\u754c\u5fc5\u987b\u662f\u517c\u5bb9\u7684 - not_valid_world: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u4e16\u754c(\u533a\u5206\u5927\u5c0f\u5199) - not_valid_plot_world: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u5730\u76ae\u4e16\u754c(\u533a\u5206\u5927\u5c0f\u5199) - no_plots: $2\u4f60\u4e0d\u62e5\u6709\u4efb\u4f55\u5730\u76ae - wait_for_timer: $2A setblock timer is bound to either the current plot or you. Please wait for it to finish - invalid_command_flag: '$2Invalid command flag: %s0' -paste: - debug_report_created: $1U\u5c06DEBUG\u4fe1\u606f\u7c98\u8d34\u5230\u4e86\uff1a $1%url% -purge: - purge_success: $4\u6210\u529f\u7684\u5408\u5e76\u4e86 %s \u5757\u5730\u76ae -trim: - trim_in_progress: \u5df2\u7ecf\u6709\u4e00\u4e2a\u5730\u76ae\u6e05\u7406\u4efb\u52a1\u5728\u8fdb\u884c\uff01 - not_valid_hybrid_plot_world: \u8981\u8fdb\u884c\u8fd9\u4e2a\u884c\u52a8\uff0c\u4f60\u9700\u8981\u7acb\u65b9\u4f53\u5730\u76ae\u7ba1\u7406\u7cfb\u7edf\u3002 -block list: - block_list_separater: '$1,$2 ' -biome: - need_biome: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u6b63\u786e\u7684\u751f\u7269\u7fa4\u7cfb - biome_set_to: $2\u5730\u76ae\u7684\u751f\u7269\u7fa4\u7cfb\u8bbe\u7f6e\u4e3a $2 -teleport: - teleported_to_plot: $1\u4f60\u5df2\u88ab\u4f20\u9001 - teleported_to_road: $2\u4f60\u88ab\u4f20\u9001\u5230\u4e86\u9053\u8def\u4e0a - teleport_in_seconds: $1\u4f20\u9001\u5c06\u5728 %s \u79d2\u540e\u8fdb\u884c\u3002\u4e0d\u8981\u79fb\u52a8... - teleport_failed: $2\u4f20\u9001\u56e0\u79fb\u52a8\u6216\u4f24\u5bb3\u88ab\u53d6\u6d88 -set block: - set_block_action_finished: $1\u4e0a\u4e00\u4e2a\u65b9\u5757\u8bbe\u7f6e\u884c\u52a8\u73b0\u5728\u5b8c\u6210\u4e86\u3002 -unsafe: - debugallowunsafe_on: $2\u5141\u8bb8\u4e86\u4e0d\u5b89\u5168\u7684\u884c\u52a8 - debugallowunsafe_off: $2\u4e0d\u5b89\u5168\u7684\u884c\u52a8\u88ab\u7981\u7528 -debug: - debug_header: $1Debug \u4fe1\u606f&- - debug_section: $2>> $1&l%val% - debug_line: $2>> $1%var%$2:$1 %val%&- -invalid: - not_valid_data: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6570\u636eID - not_valid_block: $2%s \u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u65b9\u5757 - not_allowed_block: $2\u8fd9\u4e2a\u65b9\u5757\u88ab\u7981\u7528\uff1a %s - not_valid_number: $2\u5728\u8303\u56f4\u4e0a\u8fd9\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6570\u503c\uff1a %s - not_valid_plot_id: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u5730\u76aeID - plot_id_form: $2\u5730\u76ae ID \u7684\u683c\u5f0f\u5fc5\u987b\u4e3a\uff1a $1X;Y $2\u4f8b\u5982\uff1a $1-5;7 - not_your_plot: $2\u90a3\u4e0d\u662f\u4f60\u7684\u5730\u76ae - no_such_plot: $2\u6ca1\u6709\u8fd9\u4e2a\u5730\u76ae - player_has_not_been_on: $2\u90a3\u4f4d\u73a9\u5bb6\u4e0d\u5728\u5730\u76ae\u4e2d - found_no_plots: $2\u5728\u4f60\u7684\u641c\u7d22\u8bf7\u6c42\u4e2d\u627e\u4e0d\u5230\u5339\u914d\u7684\u5730\u76ae -camera: - camera_started: $2\u4f60\u8fdb\u5165\u4e86\u5730\u76ae $1%s \u7684\u6444\u50cf\u673a\u6a21\u5f0f - camera_stopped: $2\u4f60\u9000\u51fa\u4e86\u6444\u50cf\u673a\u6a21\u5f0f -need: - need_plot_number: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u5730\u76aeID\u6216\u5730\u76ae\u7b80\u79f0 - need_block: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u65b9\u5757 - need_plot_id: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u65b9\u5757 ID\u3002 - need_plot_world: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u5730\u76ae\u533a\u57df\u3002 - need_user: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u7528\u6237\u540d -info: - none: \u65e0 - now: \u73b0\u5728 - never: \u4ece\u4e0d - unknown: \u672a\u77e5 - everyone: \u6240\u6709\u4eba - plot_unowned: $2\u6267\u884c\u8fd9\u4e2a\u884c\u52a8\u5f53\u524d\u5730\u76ae\u5fc5\u987b\u6709\u4e3b\u4eba - plot_info_unclaimed: $2\u5730\u76ae $1%s$2 \u8fd8\u6ca1\u6709\u88ab\u9886\u53d6 - plot_info_header: $3&m---------&r $1\u4fe1\u606f $3&m--------- - plot_info: $1ID\uff1a $2%id%$1&-$1\u522b\u79f0\uff1a $2%alias%$1&-$1\u5730\u76ae\u4e3b\u4eba\uff1a $2%owner%$1&-$1\u751f\u7269\u7fa4\u7cfb\uff1a $2%biome%$1&-$1\u662f\u5426\u53ef\u5efa\u7b51\uff1a $2%build%$1&-$1\u8bc4\u7ea7\uff1a $2%rating%&-$1\u53ef\u89c1\uff1a $2%seen%&-$1\u63f4\u5efa\u8005\uff1a $2%trusted%$1&-$1\u6210\u5458\uff1a $2%members%$1&-$1\u9ed1\u540d\u5355\uff1a $2%denied%$1&-$1\u6807\u5fd7\uff1a $2%flags% - plot_info_footer: $3&m---------&r $1\u4fe1\u606f $3&m--------- - plot_info_trusted: $1\u63f4\u5efa\u8005\uff1a$2 %trusted% - plot_info_members: $1\u6210\u5458\uff1a$2 %members% - plot_info_denied: $1\u9ed1\u540d\u5355\uff1a$2 %denied% - plot_info_flags: $1\u6807\u5fd7\uff1a$2 %flags% - plot_info_biome: $1\u751f\u7269\u7fa4\u7cfb\uff1a$2 %biome% - plot_info_rating: $1\u8bc4\u7ea7\uff1a$2 %rating% - plot_info_owner: $1\u5730\u76ae\u4e3b\u4eba\uff1a$2 %owner% - plot_info_id: $1\u5730\u76aeID\uff1a$2 %id% - plot_info_alias: $1\u5730\u76ae\u522b\u79f0\uff1a$2 %alias% - plot_info_size: $1\u5730\u76ae\u5927\u5c0f\uff1a$2 %size% - plot_info_seen: $1\u5730\u76ae\u53ef\u89c1\uff1a$2 %seen% - plot_user_list: ' $1%user%$2,' - plot_flag_list: $1%s0:%s1$2 - info_syntax_console: $2/plot info X;Y -working: - generating_component: $1\u4ece\u60a8\u7684\u8bbe\u7f6e\u4e2d\u5f00\u59cb\u7ec4\u6210\u90e8\u4ef6 - clearing_plot: $2\u6e05\u9664\u5730\u76ae\u5f02\u6b65\u5904\u7406\u3002 - clearing_done: $4\u6e05\u7406\u5b8c\u6210\uff01\u82b1\u8d39\u4e86 %s \u6beb\u79d2\u3002 - plot_not_claimed: $2\u5730\u76ae\u6ca1\u6709\u88ab\u9886\u53d6 - plot_is_claimed: $2\u8fd9\u4e2a\u5730\u76ae\u5df2\u7ecf\u88ab\u9886\u53d6 - claimed: $4\u4f60\u6210\u529f\u7684\u9886\u53d6\u4e86\u5730\u76ae - deleting_done: $4Delete completed! Took %sms. -list: - comment_list_header_paged: $2(\u7b2c $1%cur$2 \u9875/\u5171 $1%max$2 \u9875) $1\u5217\u51fa\u4e86 %amount% \u6761\u8bc4\u8bba - clickable: ' \uff08\u53ef\u70b9\u51fb\uff09' - area_list_header_paged: $2(\u7b2c $1%cur$2 \u9875/\u5171 $1%max$2 \u9875) $1\u5217\u51fa\u4e86 %amount% \u7247\u533a\u57df - plot_list_header_paged: $2(\u7b2c $1%cur$2 \u9875/\u5171 $1%max$2 \u9875) $1\u5217\u51fa\u4e86 %amount% \u5757\u5730\u76ae - plot_list_header: $1\u5217\u51fa\u4e86 %word% \u5730\u76ae - plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner - plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner - plot_list_footer: $2>> $1%word% \u603b\u8ba1\u6709\u5757 $2%num% $1\u9886\u53d6\u7684 %plot%. -left: - left_plot: $2\u4f60\u79bb\u5f00\u4e86\u4e00\u4e2a\u5730\u76ae -chat: - plot_chat_format: '$2[$1\u5730\u76ae\u804a\u5929$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' - plot_chat_forced: $2\u8fd9\u4e2a\u4e16\u754c\u5f3a\u5236\u6240\u6709\u4eba\u4f7f\u7528\u5730\u76ae\u804a\u5929 - plot_chat_on: $4\u5f00\u542f\u4e86\u5730\u76ae\u804a\u5929\u3002 - plot_chat_off: $4\u5173\u95ed\u4e86\u5730\u76ae\u804a\u5929\u3002 -deny: - denied_removed: $4Y\u4f60\u6210\u529f\u7684\u4ece\u6b64\u5730\u76ae\u9ed1\u540d\u5355\u89e3\u9664\u4e86\u4e00\u4f4d\u73a9\u5bb6 - denied_added: $4\u4f60\u6210\u529f\u7684\u5c06\u8fd9\u4f4d\u73a9\u5bb6\u52a0\u5165\u6b64\u5730\u76ae\u7684\u9ed1\u540d\u5355\u4e2d - denied_need_argument: $2\u7f3a\u5c11\u53c2\u6570\u3002\u8bf7\u4f7f\u7528$1/plot denied add $2\u6216\u8005 $1/plot denied remove - was_not_denied: $2\u90a3\u4f4d\u73a9\u5bb6\u4e0d\u5728\u6b64\u5730\u76ae\u7684\u9ed1\u540d\u5355\u4e2d - you_got_denied: $4\u4f60\u88ab\u6240\u5728\u7684\u5730\u76ae\u52a0\u5165\u4e86\u9ed1\u540d\u5355\uff0c\u6240\u4ee5\u4f60\u88ab\u4f20\u9001\u5230\u4e86\u51fa\u751f\u70b9\u3002 -kick: - you_got_kicked: $4\u4f60\u88ab\u8e22\u51fa\u4e86\u5730\u76ae\uff01 -rain: - need_on_off: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u503c\u3002\u6b63\u786e\u7684\u503c\uff1a $1on$2, $1off - setting_updated: $4\u4f60\u6210\u529f\u7684\u66f4\u65b0\u4e86\u8bbe\u7f6e\u3002 -flag: - flag_key: $2\u5173\u952e\u8bcd\uff1a %s - flag_type: $2\u7c7b\u578b\uff1a %s - flag_desc: $2\u63cf\u8ff0\uff1a %s - not_valid_flag: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6807\u5fd7 - not_valid_flag_suggested: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6807\u5fd7\u3002\u4f60\u60f3\u7528\uff1a $1%s \u5417\uff1f - not_valid_value: $2\u5730\u76ae\u503c\u5fc5\u987b\u4e3a\u4ee3\u6570 - flag_not_in_plot: $2\u8fd9\u4e2a\u5730\u76ae\u76ee\u524d\u6ca1\u6709\u6807\u5fd7 - flag_not_removed: $2\u8fd9\u4e2a\u6807\u5fd7\u4e0d\u80fd\u88ab\u79fb\u9664 - flag_not_added: $2\u8fd9\u4e2a\u6807\u5fd7\u4e0d\u80fd\u88ab\u6dfb\u52a0 - flag_removed: $4\u6210\u529f\u7684\u79fb\u9664\u4e86\u6807\u5fd7 - flag_added: $4\u6210\u529f\u7684\u6dfb\u52a0\u4e86\u6807\u5fd7 -trusted: - trusted_added: $4\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae\u6dfb\u52a0\u4e86\u4e00\u4f4d\u4fe1\u4efb\u73a9\u5bb6 - trusted_removed: $4\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae\u79fb\u9664\u4e86\u4e00\u4f4d\u4fe1\u4efb\u73a9\u5bb6 - was_not_added: $2\u90a3\u4f4d\u73a9\u5bb6\u5728\u8fd9\u4e2a\u5730\u76ae\u4e2d\u4e0d\u662f\u4fe1\u4efb\u73a9\u5bb6 - plot_removed_user: $1\u56e0\u4e3a\u5730\u76ae\u4e3b\u4eba\u7684\u957f\u671f\u4e0d\u5728\u7ebf\uff0c\u4f60\u6240\u4f5c\u4e3a\u4fe1\u4efb\u73a9\u5bb6\u7684\u5730\u76ae %s \u5df2\u88ab\u5220\u9664 -member: - removed_players: $2Removed %s players from this plot. - already_owner: $2\u73a9\u5bb6 %s0 \u5df2\u7ecf\u662f\u5730\u76ae\u4e3b\u4eba\u4e86 - already_added: $2\u73a9\u5bb6 %s0 \u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230\u6b64\u7c7b\u4e86 - member_added: $4\u90a3\u4f4d\u73a9\u5bb6\u73b0\u5728\u5728\u5730\u76ae\u4e3b\u4eba\u5728\u7ebf\u65f6\u53ef\u4ee5\u7f16\u8f91\u5730\u76ae - member_removed: $1\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae\u79fb\u9664\u4e86\u4e00\u4f4d\u6210\u5458 - member_was_not_added: $2\u90a3\u4f4d\u73a9\u5bb6\u4e0d\u662f\u5730\u76ae\u7684\u4e00\u4f4d\u6210\u5458 - plot_max_members: $2\u4f60\u4e0d\u88ab\u5141\u8bb8\u518d\u4e3a\u5730\u76ae\u589e\u52a0\u6210\u5458\u4e86 -owner: - set_owner: $4\u4f60\u6210\u529f\u7684\u8bbe\u7f6e\u4e86\u5730\u76ae\u4e3b\u4eba - now_owner: $4\u4f60\u73b0\u5728\u662f\u5730\u76ae %s \u7684\u4e3b\u4eba\u4e86 -signs: - owner_sign_line_1: $1\u5730\u76aeID\uff1a $1%id% - owner_sign_line_2: '$1\u6240\u6709\u8005:' - owner_sign_line_3: $2%plr% - owner_sign_line_4: $3\u88ab\u9886\u53d6 -help: - help_header: $3&m---------&r $1\u5730\u76ae\u7cfb\u7edf\u2461\u5e2e\u52a9\u6587\u4ef6 $3&m--------- - help_page_header: '$1\u7c7b\u578b: $2%category%$2,$1 \u9875\u9762\uff1a $2%current%$3/$2%max%$2' - help_footer: $3&m---------&r $1\u5730\u76ae\u7cfb\u7edf\u2461\u5e2e\u52a9\u6587\u4ef6 $3&m--------- - help_info_item: $1/plots help %category% $3- $2%category_desc% - help_item: $1%usage% [%alias%]&- $3- $2%desc%&- - direction: $1\u5f53\u524d\u8def\u5f84\uff1a %dir% -grants: - granted_plots: $1\u7ed3\u679c\uff1a $1\u5269\u4f59 $2%s - granted_plot: $1\u4f60\u5c06 %s0 \u5730\u76ae\u8d60\u4e88 $2%s1 - granted_plot_failed: $1\u8d60\u4e88\u5931\u8d25\u4e86\uff1a$2%s -'-': - custom_string: '-' -near: - plot_near: '$1Players: %s0' diff --git a/Core/src/main/resources/s_chinese_unescaped.yml b/Core/src/main/resources/s_chinese_unescaped.yml deleted file mode 100644 index 328adc858..000000000 --- a/Core/src/main/resources/s_chinese_unescaped.yml +++ /dev/null @@ -1,257 +0,0 @@ -### UNESCAPED TEMPLATE ### -# Translated by: Liouftgoo/Mayomi9 -# UTF-8 ESCAPE USING: http://www.rapidmonkey.com/unicodeconverter/ -### UNESCAPED TEMPLATE ### -camera_started: "$2������˵�Ƥ $1%s �������ģʽ" -command_syntax: "$1�÷�: $2%s" -not_valid_flag: "$2�ⲻ��һ����Ч�ı�ʶ" -setup_world_taken: "$2%s �Ѿ��ǵ�Ƥ������" -plot_list_item: "$2>> $1%id$2:$1%world $2- $1%owner" -schematic_invalid: "$2�ⲻ��һ����Ч�Ľ����ļ�. ԭ��: $2%s" -not_valid_inbox_index: "$2ҳ�� %s û������" -setup_invalid_generator: "$2��Ч�����ɲ���. ��ѡ: %s" -teleported_to_road: "$2�㴫�͵���·��" -debug_section: "$2>> $1&l%val%" -plot_id_form: "$2��ƤID�ĸ�ʽ����Ϊ: $1X;Y $2����: $1-5;7" -invalid_position: "$2�ⲻ��һ����Ч��λ��" -worldedit_unsafe: "$2��ָ���Ѿ�����ֹʹ��" -not_in_plot_world: "$2�㲻�ڵ�Ƥ������" -cannot_buy_own: "$2�㲻�������Լ��ĵ�Ƥ" -help_item: "$1%usage% [%alias%]&- $3- $2%desc%&-" -not_valid_world: "$2�ⲻ��һ����Ч������ (ע���Сд)" -home_argument: "$2�÷� /plot set home [�ɲ���]" -title_left_plot_color: "GOLD" -merge_not_valid: "$2�ϲ�������ʧЧ." -debug_line: "$2>> $1%var%$2:$1 %val% " -comment_added: "$4�����һ���µ�����" -alias_is_taken: "$2��������ѱ�����ʹ��" -setup_missing_generator: "$2����Ҫָ��һ�����ɲ��� ($1/plot setup <��������> &l<���ɲ���>&r$2)&-$1����ָ��:&-$2 - $1/plot setup <����>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" -block_list_separater: "$1,$2 " -alias_set_to: "$2��Ƥ�ı�������Ϊ $1%alias%" -did_you_mean: "$2�����˼�� $1%s $2��?" -cluster_not_added: "$2������δ�������Ƥ��Ⱥ��" -success_merge: "$2��Ƥ�ɹ����ϲ�!" -position_set: "$1���㵱ǰ��λ�����ü�" -cluster_regenerated: "$4�ɹ���ʼȺ���ؽ�" -not_valid_data: "$2�ⲻ��һ����Ч�IJ���ֵ." -not_for_sale: "$2����Ƥ��������" -not_in_cluster: "$2�������һ����Ƥ��Ⱥ�в��ܽ��д˲���" -schematic_paste_success: "$4�����ļ�ճ���ɹ�" -set_block_action_finished: "$1���һ���������������." -missing_alias: "$2����Ҫָ��һ������" -paste_failed: "$2ճ��ʱ��������. ԭ��: $2%s" -invalid_player: "$2δ�ҵ���� $1%s." -plot_info_helpers: "$1����:$2 %helpers%" -cluster_added: "$4�ɹ�������Ⱥ." -setup_init: "$1�÷�: $2/plot setup <����>" -bossbar_clearing: "$2���������Ƥ $1%id%" -title_entered_plot_sub_color: "RED" -prefix_greeting: "$1%id%$2> " -not_your_plot: "$2�ⲻ����ĵ�Ƥ." -worldedit_volume: "$2���޷�ѡ�� %current% �Ŀռ�. ���ռ��������Ϊ %max%." -not_valid_plot_id: "$2�ⲻ����Ч�ĵ�ƤID." -unclaim_success: "$4�����������Ƥ." -teleport_failed: "$2��Ϊ�ܵ��˺�����ȡ������" -need_plot_world: "$2����Ҫָ��һ����Ƥ����." -plot_not_claimed: "$2��Ƥδ����ȡ" -title_entered_plot_color: "GOLD" -denied_removed: "$4�����������Ƥ����ҵĺ�����" -plot_removed_helper: "$1�����ĵ�Ƥ %s ��Ϊӵ���߲���Ծ����ɾ����" -plotworld_incompatible: "$2������������໥����" -generating_component: "$1��ʼ��������趨����" -not_valid_block_list_header: "$2�ⲻ��һ����Ч�ķ���. ��Ч�ķ���: " -alias_too_long: "$2�����ij��ȱ���С��50���ַ�" -move_success: "$4�ɹ��Ƴ���Ƥ." -no_plot_perms: "$2������ǵ�Ƥӵ���߲���ִ���������" -command_went_wrong: "$2ִ������ʱ�����˴���..." -helper_added: "$4��ɹ�Ϊ��Ƥ�����˰���" -schematic_paste_failed: "$2ճ�������ļ�ʧ��" -removed_balance: "$2������˻��п۳��� $1%s" -setup_step: "$3[$1���� - %s$3] $1%s $2- $1����: $2%s $1Ĭ��ֵ: $2%s" -schematic_valid: "$2����һ����Ч�Ľ����ļ�" -owner_sign_line_4: "$3����ȡ" -cluster_added_helper: "$4�ɹ�Ϊ��Ⱥ�������" -owner_sign_line_3: "$2%plr%" -already_owner: "$2�������Ѿ�ӵ�е�Ƥ��." -owner_sign_line_2: "$1ӵ����:" -owner_sign_line_1: "$1ID: $1%id%" -not_valid_subcommand: "$2�ⲻ��һ����Ч��������" -subcommand_set_options_header: "$2���õIJ���: " -requires_unowned: "$2��λ���ѱ�ռ��." -plot_unowned: "$2������ǵ�Ƥӵ���߲���ִ���������" -inbox_item: "$2 - $4%s" -cannot_kick_player: "$2�㲻���߳������" -clearing_done: "$4�������! ��ʱ %s����." -setup_valid_arg: "$2���� $1%s $2����Ϊ %s" -camera_stopped: "$2��ȡ���������ģʽ" -flag_type: "$2����: %s" -pasted: "$4��ѡ��ĵ�Ƥ�ɹ�ճ��." -cluster_info: "$1��ǰ��Ⱥ: $2%id%&-$1����: $2%name%&-$1ӵ����: $2%owner%&-$1��С: $2%size%&-$1Ȩ��: $2%rights%" -cluster_cannot_leave: "$1���˳�֮ǰ��ת������Ȩ" -help_header: "$3====== $1��Ƥ�����˵� $3======" -cannot_afford_merge: "$2��û���㹻�Ľ�Ǯ�ϲ���Ƥ. ��Ҫ���� $1%s" -setting_updated: "$4�����������趨" -need_key: "$2���ò���: $1%values%" -merge_requested: "$2�ɹ����ͺϲ�����" -compass_target: "$4S�ɹ����͵�Ŀ���Ƥ" -flag_not_added: "$2�ñ�ʶ�޷������" -no_plots: "$2��û�ж���ĵ�Ƥ��" -need_plot_id: "$2����Ҫָ��һ����ƤID." -flag_not_removed: "$2�ñ�ʶ�޷����Ƴ�" -trusted_removed: "$1��ӵ�Ƥ���Ƴ���һ���������" -comment_header: "$2====== ���԰� ======" -flag_removed: "$4�ɹ��Ƴ���ʶ" -rating_applied: "$4��Ϊ��Ƥ $2%s $4�����" -requires_confirm: "$2���Ƿ�ִ��: $1%s$2?&-$2�ò���������! ���ȷ��������: $1/plot confirm" -flag_added: "$4�ɹ���ӱ�ʶ" -econ_disabled: "$2���ù���δ����" -not_valid_hybrid_plot_world: "The hybrid plot manager is required to perform this action" -no_commands: "$2��û��Ȩ��ʹ���κ�ָ��." -missing_position: "$2����Ҫָ��һ��λ��. ���õIJ���: $1none" -record_play: "$2%player $2��ʼ����CD $1%name" -no_perm_inbox_modify: "$2��û��Ȩ���޸�" -unlink_required: "$2�����Ҫȡ���ϲ���Ƥ." -denied_need_argument: "$2ȱ�ٲ���. $1/plot denied add <�������> $2�� $1/plot denied remove <�������>" -added_balance: "$2������˻��м����� $1%s" -not_using_plotme: "$2���������ʹ���� $1PlotSquared $2��Ƥ����ϵͳ. ������ $1/ps $2�� $1/p2 $2�� $1/plot $2������" -player_has_not_been_on: "$2�����һ�ûӵ�е�Ƥ" -plot_list_footer: "$2>> $1%word% �� $2%num% $1����ȡ�� %plot%." -trim_in_progress: "��Ƥ�����������ڽ���!" -cluster_deleted: "$4�ɹ�ɾ����Ⱥ." -cant_claim_more_plots: "$2�㲻����ȡ����ĵ�Ƥ��." -unlink_success: "$2�ɹ�ȡ����Ƥ�ϲ�." -no_perm_inbox: "$2��û��Ȩ��������" -worldedit_bypass: "$2&o����Ȩ�������� $3/plot wea" -prefix: "$3[$1��Ƥ$3] " -claimed: "$4��ɹ���ȡ�˵�Ƥ" -failed_confirm: "$2��һ��ʱ�����˴���!" -copy_success: "$4��ɹ������˵�Ƥ." -cluster_available_args: "$1���õ���Ⱥָ��: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4helpers$2, $4info$2, $4tp$2, $4sethome" -cluster_list_heading: "$2���������� $1%s$2 ����Ⱥ" -cluster_list_element: "$2 - $1%s&-" -cluster_intersection: "$2�õ������ص��� $1%s$2 ����Ⱥ" -cluster_resized: "$4�ɹ���������Ⱥ�Ĵ�С." -cluster_added_user: "$4�ɹ�������ҵ���Ⱥ��." -cluster_invited: "$1�㱻���뵽��Ⱥ: $2%s" -cluster_removed: "$1�㱻��Ⱥ $2%s �߳���" -cluster_kicked_user: "$4�ɹ��߳����" -invalid_cluster: "$1��Ч����Ⱥ����: $2%s" -cluster_removed_helper: "$4�ɹ��Ƴ�����Ⱥ�İ���" -cluster_teleporting: "$4������..." -cluster_current_plotid: "$1��ǰ��Ƥ: $2%s" -border: "$2���ߵ��˵�ͼ�߾�" -require_selection_in_mask: "$2��ѡ��ĵ�Ƥ %s �������. ��ֻ������ĵ�Ƥ�н���." -worldedit_iterations: "$2�㲻���ظ� %current% ��. ����ظ�����Ϊ %max%." -worldedit_unmasked: "$1���WE����û������." -worldedit_restricted: "$1���WE���ܱ�����." -notify_enter: "$2%player $2��������ĵ�Ƥ ($1%plot$2)" -notify_leave: "$2%player $2�뿪����ĵ�Ƥ ($1%plot$2)" -swap_overlap: "$2������������" -swap_dimensions: "$2��������Ҫͬ����С�ijߴ�" -swap_syntax: "$2/plot swap <��ƤID>" -swap_success: "$4�ɹ�������Ƥ" -started_swap: "$2��ʼ��Ƥ����. �����������֪ͨ��" -comment_syntax: "$2�÷� /plot comment [X;Z] <%s> <����>" -invalid_inbox: "$2�ⲻ��һ����Ч��ҳ��.&-$1���õIJ���: %s" -no_plot_inbox: "$2�ⲻ����Ч�ĵ�Ƥҳ��" -comment_removed: "$4�ɹ�ɾ����Ƥ����/s:n$2 - '$3%s$2'" -not_console: "$��ָ����޿���̨����." -is_console: "$2��ָ������������." -clipboard_set: "$2��ǰ��Ƥ�Ѿ������Ƶ��˼��а�, ʹ�� $1/plot paste$2 ��ճ����" -no_clipboard: "$2��û��ѡ����а�" -clipboard_info: "$2��ǰѡ�� - ��Ƥ ID: $1%id$2, ���: $1%width$2, ��������: $1%total$2" -rating_not_valid: "$2����Ҫָ��һ��1~10֮�����" -rating_already_exists: "$2���Ѿ�Ϊ��Ƥ $2%s ��������" -rating_not_your_own: "$2�㲻��Ϊ�Լ���Ƥ����" -rating_not_owned: "$2�㲻��Ϊ���õ�Ƥ����" -cannot_afford_plot: "$2��û���㹻�Ľ�Ǯ�����Ƥ. ��Ҫ���� $1%s" -plot_sold: "$4��ĵ�Ƥ; $1%s$4, �������� $1%s$4 �۸�Ϊ $1$%s" -setup_invalid_arg: "$2%s���Dz��� %s ����Ч����. ȡ����������: $1/plot setup cancel" -setup_finished: "$3���ʹ���� MULTIVERSE �� MULTIWORLD �����������û��Զ�д��. ��������Ҫ�ֶ�д���ļ� bukkit.yml" -setup_missing_world: "$2����Ҫָ��һ���������� ($1/plot setup &l<��������>$1 <���ɲ���>$2)&-$1����ָ��:&-$2 - $1/plot setup <����>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" -schematic_missing_arg: "$2����Ҫָ��һ������. ���õIJ���: $1test <����>$2 , $1save$2 , $1paste $2, $1exportall" -title_entered_plot: "��Ƥλ��: %world%;%x%;%z%" -title_entered_plot_sub: "ӵ���� %s" -title_left_plot: "���뿪�� %s" -title_left_plot_sub: "ӵ���� %s" -title_left_plot_sub_color: "RED" -prefix_farewell: "$1%id%$2> " -enabled: "$1PlotSquared ������" -example_message: "$2����һ����ʾ��Ϣ &k!!!" -reloaded_configs: "$1�ļ����趨�����¶�ȡ" -reload_failed: "$2���¶�ȡʧ����" -time_format: "$1%hours%, %min%, %sec%" -no_schematic_permission: "$2��û��Ȩ��ʹ�ý����ļ� $1%s" -no_permission: "$2��ȱ����Ȩ��: $1%s" -cant_transfer_more_plots: "$2�㲻�ܷ�������ĵ�Ƥ������" -cant_claim_more_plots_num: "$2�㲻��һ����ȡ $1%s $2���Ƥ" -you_be_denied: "$2�㲻�ܽ�������Ƥ" -no_perm_merge: "$2�㲻������Ƥ $1%plot% $2��ӵ����" -unlink_impossible: "$2��ֻ��ȡ���ϲ�������Ƥ" -no_merge_to_mega: "$2������Ƥ�޷����ϲ�." -merge_accepted: "$2�ϲ������ѱ�����" -merge_request_confirm: "�յ��� %s �ĺϲ�����" -name_little: "$2%s ����̫����, $1%s$2<$1%s" -purge_syntax: "�÷� /plot purge <��������>" -purge_success: "$4�ɹ������� %s ���Ƥ" -trim_syntax: "�÷� /plot trim <��������>" -trim_start: "��ʼ��Ƥ����..." -no_free_plots: "$2û����ѵĵ�Ƥ����" -not_in_plot: "$2�㲻�ڵ�Ƥ��" -not_valid_plot_world: "$2�ⲻ��һ����Ч������ (ע���Сд)" -block_list_item: " $1%mat%$2," -need_biome: "$2����Ҫָ��һ������Ⱥ��" -biome_set_to: "$2��Ƥ������Ⱥ������Ϊ $2" -teleported_to_plot: "$2�㴫�͵��˵�Ƥ��" -teleport_in_seconds: "$1���� %s ���ڴ���. �����ƶ�..." -deubg_header: "$1������Ϣ" -not_valid_block: "$2�ⲻ��һ����Ч�ķ���." -not_valid_number: "$2�ⲻ��һ����Ч������" -no_such_plot: "$2û�и����͵ĵ�Ƥ" -found_no_plots: "$2�޷����ݸ�Ҫ����ҵ�Ƥ" -need_plot_number: "$2����Ҫָ��һ����ƤID�����" -need_block: "$����Ҫָ��һ�ַ���" -need_user: "$2����Ҫָ��һ�����" -plot_info_unclaimed: "$2��Ƥ $1%s$2 ��δ����ȡ" -plot_info_header: "$3====== $1INFO $3======" -plot_info: "$1ID: $2%id%$1&-$1����: $2%alias%$1&-$1ӵ����: $2%owner%$1&-$1����Ⱥ��: $2%biome%$1&-$1�ɷ���: $2%build%$1&-$1����: $2%rating%$1/$210$1&-$1����: $2%helpers%$1&-$1�������: $2%trusted%$1&-$1������: $2%denied%$1&-$1��ʶ: $2%flags%" -plot_info_trusted: "$1�������:$2 %trusted%" -plot_info_denied: "$1���������:$2 %denied%" -plot_info_flags: "$1��ʶ:$2 %flags%" -plot_info_biome: "$1����Ⱥ��:$2 %biome%" -plot_info_rating: "$1����:$2 %rating%" -plot_info_owner: "$1ӵ����:$2 %owner%" -plot_info_id: "$1ID:$2 %id%" -plot_info_alias: "$1����:$2 %alias%" -plot_info_size: "$1��С:$2 %size%" -plot_user_list: " $1%user%$2," -info_syntax_console: "$2/plot info <��������> X;Y" -clearing_plot: "$2�����Ƥ��." -plot_is_claimed: "$2����Ƥ�ѱ���ȡ" -plot_list_header_paged: "$2(ҳ�� $1%cur$2/$1%max$2) $1�г��� %word% ���Ƥ" -plot_list_header: "$11�г��� %word% ���Ƥ" -plot_list_item_ordered: "$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner" -left_plot: "$2���뿪�˵�Ƥ" -wait_for_timer: "$2���÷����ʱ��������. ���Ժ�..." -plot_chat_format: "$2[$1��Ƥ����$2][$1%plot_id%$2] $1%sender%$2: $1%msg%" -denied_added: "$4��ɹ�Ϊ��Ƥ�����˺��������" -was_not_denied: "$2������Ҳ��ں�������" -need_on_off: "$2����Ҫָ��һ������. ���õIJ���: $1on$2, $1off" -flag_key: "$2�ؼ���: %s" -flag_desc: "$2����: %s" -not_valid_value: "$2��ʶ�IJ�������Ϊ����" -flag_not_in_plot: "$2����Ƥ��û�����ñ�ʶ 26" -helper_removed: "$4��ɹ�Ϊ��Ƥ�Ƴ��˰���" -helper_need_argument: "$2ȱ�ٲ���. $1/plot helpers add <�������> $2�� $1/plot helpers remove <�������>" -was_not_added: "$2�����һ�û�г�Ϊ�õ�Ƥ�İ���" -already_added: "$2�������Ѿ������˸÷���." -trusted_added: "$4��ɹ�Ϊ��Ƥ�����˿������" -trusted_need_argument: "$2ȱ�ٲ���. $1/plot trusted add <�������> $2�� $1/plot trusted remove <�������>" -t_was_not_added: "$2�����һ�û�г�Ϊ�õ�Ƥ�Ŀ������" -set_owner: "$4��ɹ�Ϊ��Ƥ������ӵ����" -now_owner: "$4�����ڳ�Ϊ��Ƥ %s ��ӵ������" -help_category: "$1����: $2%category%$2,$1 ҳ��: $2%current%$3/$2%max%$2,$1 ����ʾ: $2%dis%$3/$2%total%" -help_info: "$3====== $1ѡ��һ������ $3======" -help_info_item: "$1/plot help %category% $3- $2%category_desc%" -direction: "$1��ǰ����: %dir%" -custom_string: "-" \ No newline at end of file diff --git a/Core/src/main/resources/zh_CN.yml b/Core/src/main/resources/zh_CN.yml new file mode 100644 index 000000000..4afc3564a --- /dev/null +++ b/Core/src/main/resources/zh_CN.yml @@ -0,0 +1,407 @@ +# This file is translated by c7w, w/1345979462 and 佛壁灯(f0rb1d) +# Translation Guide +# 1. 句子与变量、命令、数字之间保留空隙,全角符号除外 +# 2. 使用已成功/已复制/正在/未启用/已启用/请使用开头 +# 3. 使用阁下(其实好像也无所谓) +# 4. 失败/成功/无效应放在句末 +# 就差不多这些 +confirm: + expired_confirm: $2确认已过期,请重新执行命令! + failed_confirm: $2阁下没有待确认的操作! + requires_confirm: '$2阁下是否确定执行:$1%s$2?&-$2此操作无法恢复!若阁下确定,请输入:$1/plot confirm' +move: + move_success: $4已成功移除地皮。 + copy_success: $4已成功复制地皮。 + requires_unowned: $2指定地点已被占用。 +set: + set_attribute: $4已成功设置 %s0 为 %s1 +web: + generating_link: $1正在处理地皮··· + generating_link_failed: $2生成下载链接失败! + save_failed: $2保存失败 + load_null: $2请使用 $4/plot load$2 获取布局列表 + load_failed: $2载入布局失败 + load_list: '$2要载入布局,请使用 $1/plot load #' + save_success: $1已成功保存! +compass: + compass_target: $4已成功将指南针指向地皮 +cluster: + cluster_available_args: '$1以下子指令可用:$4list$2, $4create$2, + $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, + $4tp$2, $4sethome' + cluster_list_heading: $2此世界中有 $1%s$2 个群集 + cluster_list_element: $2 - $1%s&- + cluster_intersection: '$计划的区域与%s0重叠' + cluster_outside: '$2计划的区域在地皮区域%s0外' + cluster_added: $4已成功创建群集。 + cluster_deleted: $4已成功删除群集。 + cluster_resized: $4已成功调整群集尺寸。 + cluster_added_user: $4已成功将玩家添加到群集。 + cannot_kick_player: $2阁下无法踢出此玩家 + cluster_invited: '$1阁下已被邀请至群集 $2%s' + cluster_removed: '$1阁下已被群集 $2%s $1移除' + cluster_kicked_user: $4已成功踢出此玩家 + invalid_cluster: '$1群集名 $2%s 无效' + cluster_not_added: $2此玩家未被添加至地皮群集 + cluster_cannot_leave: $1阁下必须在离开前先删除群集或转移所有权 + cluster_added_helper: $4已成功将帮手添加到群集 + cluster_removed_helper: $4已成功将帮手从群集移除 + cluster_regenerated: $4已成功开始群集重生 + cluster_teleporting: $4正在传送··· + cluster_info: '$1当前群集:$2%id%&-$1名称:$2%name%&-$1所有者:$2%owner%&-$1大小: + $2%size%&-$1权限:$2%rights%' +border: + border: $2阁下处于当前地图边界外 +unclaim: + unclaim_success: $4阁下已成功解除认领地皮。 + unclaim_failed: $2无法解除认领地皮 +worldedit masks: + worldedit_delayed: $2请在我们处理阁下的WorldEdit操作时稍等片刻··· + worldedit_run: '$2很抱歉造成了延迟。现正执行:%s' + require_selection_in_mask: $2选中的 %s 不在阁下的地皮覆盖范围内。 + 阁下仅可对自己的地皮做出修改。 + worldedit_volume: $2阁下无法选择 %current% 体积。阁下可编辑的最大 + 体积为 %max%。 + worldedit_iterations: $2阁下无法重复 %current% 次。容许的最大 + 重复次数为 %max%。 + worldedit_unsafe: $2已禁止对此命令的访问 + worldedit_bypass: $2&o要绕过对阁下的限制,请使用 $4/plot wea + worldedit_bypassed: $2当前正绕过WorldEdit功能限制。 + worldedit_unmasked: $1阁下的WorldEdit功能现已解除限制。 + worldedit_restricted: $1阁下的WorldEdit功能现已受限制。 +gamemode: + gamemode_was_bypassed: $1阁下绕过了为 $2{plot} $1设置的游戏模式($2{gamemode}$1)限制 +height limit: + height_limit: $1此地皮拥有高度 $2{limit} 的限制 +records: + record_play: $2%player $2已开始游玩记录 $1%name + notify_enter: $2%player $2已进入阁下的地皮($1%plot$2) + notify_leave: $2%player $2已离开阁下的地皮($1%plot$2) +swap: + swap_overlap: $2计划的区域不允许重叠 + swap_dimensions: $2计划的区域必须有可对比的维度 + swap_syntax: $2/plot swap <编号> + swap_success: $4已成功交换地皮 + started_swap: $2已开始地皮交换任务。阁下将会在完成时收到提醒 +comment: + inbox_notification: '%s 条未读消息。请使用 /plot inbox 阅读' + not_valid_inbox_index: $2索引 %s 处无评论 + inbox_item: $2 - $4%s + comment_syntax: $2请使用 /plot comment [X;Z] <%s> <评论> + invalid_inbox: '$2此收件箱无效。&-$1接受的值:%s' + no_perm_inbox: $2阁下没有此收件箱的权限 + no_perm_inbox_modify: $2阁下没有编辑此收件箱的权限 + no_plot_inbox: $2阁下必须站在地皮内或提供地皮参数 + comment_removed: $4已成功删除评论$2 - '$3%s$2' + comment_added: $4有玩家留下了一条评论 + comment_header: $2&m---------&r $1评论 $2&m---------&r + inbox_empty: $2无评论 +console: + not_console: $2由于安全考虑,此命令只可由控制台执行。 + is_console: $2此命令只可被玩家执行。 +inventory: + inventory_usage: '&c用法:&6{usage}' + inventory_desc: '&c描述:&6{desc}' + inventory_category: '&c分类:&6{category}' +clipboard: + clipboard_set: $2当前地皮已复制到阁下的剪贴板,请使用 $1/plot paste$2 粘贴 + pasted: $4已成功粘贴选择项并已从剪贴板中清除。 + paste_failed: '$2无法粘贴选择项。理由:$2%s' + no_clipboard: $2阁下的剪贴板内无选择项 + clipboard_info: '$2当前选择项 - 地皮编号:$1%id$2, 宽度:$1%width$2, 方块 + 总数: $1%total$2' +toggle: + toggle_enabled: '$2已启用设置:%s' + toggle_disabled: '$2已禁用设置:%s' +blocked command: + command_blocked: $2此地皮中不允许使用此命令 +done: + done_already_done: $2此地皮已被标记为已完成 + done_not_done: $2此地皮未标记为已完成。 + done_insufficient_complexity: $2此地皮过于简单。请在使用此命令前添加更多的细节。 + done_success: $1已成功标记此地皮为已完成。 + done_removed: $1阁下现在可以在此地皮中继续建造了。 +ratings: + ratings_purged: $2已清除此地皮的评分 + rating_not_valid: $2阁下需要指定介于 1 到 10 之间的数字 + rating_already_exists: $2阁下已评价过地皮 $2%s + rating_applied: $4阁下已成功评价地皮 $2%s + rating_not_your_own: $2阁下无法评价自己的地皮 + rating_not_done: $2阁下仅可评价已完成的地皮。 + rating_not_owned: $2阁下无法评价尚未被任何玩家拥有的地皮 +tutorial: + rate_this: $2评价此地皮! + comment_this: '$2请为地皮 %s 留下反馈' +economy: + econ_disabled: $2未启用经济系统 + cannot_afford_plot: $2阁下无法购买此地皮。此地皮价值 $1%s + not_for_sale: $2此地皮恕不出售 + cannot_buy_own: $2阁下无法购买自己的地皮 + plot_sold: $4阁下的地皮 $1%s0$4 已以 $1$%s2$4 的价格售给了 $1%s1 + cannot_afford_merge: $2阁下无法合并地皮。此操作花费 $1%s + added_balance: $1%s $2已转入您的余额 + removed_balance: $1%s $2已从您的余额中转出 + removed_granted_plot: $2阁下已使用了授予的 %s 块地皮,剩余 $1%s $2块 +setup: + setup_init: '$1用法:$2/plot setup <值>' + setup_step: '$3[$1步骤 %s0$3] $1%s1 $2- $1预期值:$2%s2 $1默认值:$2%s3' + setup_invalid_arg: '$2%s0 不是步骤 %s1 的有效参数。要取消配置 + 请使用:$1/plot setup cancel' + setup_valid_arg: $2值 $1%s0 $2已设置为 %s1 + setup_finished: $4阁下应已被传送至新建的世界。否则阁下将需 + 在 bukkit.yml 或世界管理插件中手动设置生成器。 + setup_world_taken: $2%s 已是一个世界 + setup_missing_world: $2阁下需要指定世界名($1/plot setup &l<世界名>$1 + <生成器>$2)&-$1附加指令:&-$2 - $1/plot setup <值>&-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel + setup_missing_generator: $2阁下需要指定生成器($1/plot setup <世界名> + &l<生成器>&r$2)&-$1附加指令&-$2 - $1/plot setup <值>&-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel + setup_invalid_generator: '$2无效的生成器。可能选项:%s' +schematics: + schematic_too_large: $2此地皮过大无法进行此操作! + schematic_missing_arg: '$2阁下需要指定参数。可能的值:$1test + <名称>$2 , $1save$2 , $1paste $2, $1exportall' + schematic_invalid: '$2布局无效。理由:$2%s' + schematic_valid: $2布局无效 + schematic_paste_failed: $2粘贴布局失败 + schematic_paste_success: $4已成功粘贴布局 +titles: + title_entered_plot: '$1地皮:%world%;%x%;%z%' + title_entered_plot_sub: $4由 %s 所有 + prefix_greeting: '$1%id%$2> ' + prefix_farewell: '$1%id%$2> ' +core: + task_start: 正在启动任务··· + prefix: $3[$1P2$3] $2 + enabled: $1%s0 现已启用 +reload: + reloaded_configs: $1已重载翻译及世界设置 + reload_failed: $2重载文件配置失败 +desc: + desc_set: $2已设置地皮描述 + desc_unset: $2已重置地皮描述 + missing_desc: $2阁下需要指定描述 +alias: + alias_set_to: $2地皮别名已设置为 $1%alias% + alias_removed: $2已移除地皮别名 + missing_alias: $2阁下需要指定别名 + alias_too_long: $2别名长度必须小于 50 个字符 + alias_is_taken: $2此别名已被占用 +position: + missing_position: '$2阁下需要指定位置。可能的值:$1none' + position_set: $1已设置家为阁下的当前位置 + position_unset: $1已重置家为默认位置 + home_argument: $2使用 /plot set home [无] + invalid_position: $2位置值无效 +cap: + entity_cap: $2阁下被禁止生成更多怪物 +time: + time_format: $1%hours%, %min%, %sec% +permission: + no_schematic_permission: $2阁下没有使用布局的所需权限 + $1%s + no_permission: '$2阁下缺少权限节点:$1%s' + no_permission_event: '$2阁下缺少权限节点:$1%s' + no_plot_perms: $2阁下必须为地皮所有者才能执行此操作 + cant_claim_more_plots: $2阁下无法拥有更多地皮。 + cant_claim_more_clusters: $2阁下无法拥有更多群集。 + cant_transfer_more_plots: $2阁下无法赠予此用户更多地皮 + cant_claim_more_plots_num: $2阁下无法同时拥有多于 $1%s $2块地皮 + you_be_denied: $2阁下被禁止进入此地皮 + merge_request_confirm: 来自 %s 的合并请求 +merge: + merge_not_valid: $2此合并请求已不再可用。 + merge_accepted: $2此合并请求已被接受 + success_merge: $2已合并地皮! + merge_requested: $2已成功发送合并请求 + no_perm_merge: '$2阁下不是地皮 $1%plot% $2的所有者' + no_available_automerge: $2阁下在指定方向不拥有任何相邻的地皮 + 或阁下被禁止合并所需的大小。 + unlink_required: $2需要解除关联才能执行此操作。 + unlink_impossible: $2阁下只能解除关联大地皮 + unlink_success: $2已成功将地皮解除关联。 +commandconfig: + not_valid_subcommand: $2此子命令无效 + did_you_mean: '$2阁下的意思是否是:$1%s' + name_little: $2%s0 名称过短,$1%s1$2<$1%s3 + no_commands: $2很抱歉,但阁下无法使用任何子命令。 + subcommand_set_options_header: '$2可能的值:' + command_syntax: '$1用法:$2%s' + flag_tutorial_usage: '$1请让管理员设置标记:$2%s' +errors: + invalid_player_wait: '$2未找到玩家:$1%s$2,正在获取。请稍后再试。' + invalid_player: '$2未找到玩家:$1%s$2.' + invalid_player_offline: '$2玩家 $1%s $2必须在线。' + invalid_command_flag: '$2无效的命令标记:%s0' + error: '$2发生了 %s 错误' + command_went_wrong: $2执行此命令时发生错误··· + no_free_plots: $2无可用的免费地皮 + not_in_plot: $2阁下不在地皮上 + not_loaded: $2无法加载地皮 + not_in_cluster: $2阁下必须在地皮群集上以进行此操作 + not_in_plot_world: $2阁下不在地皮区域上 + plotworld_incompatible: $2两个世界必须相互兼容 + not_valid_world: $2世界无效(大小写敏感) + not_valid_plot_world: $2地皮区域无效(大小写敏感) + no_plots: $2阁下不拥有任何地皮 + wait_for_timer: $2一个设置方块计时器已关联到当前地皮或阁下上。请等待此操作完成 +paste: + debug_report_created: '$1已上传完整调试日志至:$1%url%' +purge: + purge_success: $4已成功清除了 %s 块地皮 +trim: + trim_in_progress: 世界修整任务正在进行中! + not_valid_hybrid_plot_world: 需要混合地皮管理以执行此操作 +block list: + block_list_separater: '$1,$2 ' +biome: + need_biome: $2阁下需要指定一个有效的生态群落。 + biome_set_to: $2地皮生态群落被设置为 $2 +teleport: + teleported_to_plot: $1阁下已被传送 + teleported_to_road: $2阁下已被传送到道路上 + teleport_in_seconds: $1%s 秒后传送。请勿移动··· + teleport_failed: $2传送由于移动或伤害取消 +set block: + set_block_action_finished: $1已完成最后一个设置方块操作。 +unsafe: + debugallowunsafe_on: $2已允许不安全的操作 + debugallowunsafe_off: $2已禁用不安全的操作 +debug: + debug_header: $1调试信息&- + debug_section: $2>> $1&l%val% + debug_line: $2>> $1%var%$2:$1 %val%&- +invalid: + not_valid_data: $2数据编号无效。 + not_valid_block: '$2%s 不是有效的方块。' + not_allowed_block: '$2方块 %s 被禁止' + not_valid_number: '$2%s 不是区间内的有效数字' + not_valid_plot_id: $2地皮编号无效。 + plot_id_form: '$2地皮编号必须为 $1X;Y 形式 $2例如:$1-5;7' + not_your_plot: $2此地皮不为阁下拥有 + no_such_plot: $2没有此地皮 + player_has_not_been_on: $2此玩家从未进入过地皮世界 + found_no_plots: $2阁下的搜索查询未找到地皮 + found_no_plots_for_player: '$2未找到玩家 %s 的地皮' +camera: + camera_started: $2阁下已进入地皮 $1%s 的摄像模式 + camera_stopped: $2阁下已不再处于摄像模式 +need: + need_plot_number: $2阁下必须指定地皮数字或别名 + need_block: $2阁下必须指定方块 + need_plot_id: $2阁下必须指定地皮编号。 + need_plot_world: $2阁下必须指定地皮区域。 + need_user: $2阁下必须指定用户名 +near: + plot_near: '$1玩家:%s0' +info: + none: 无 + now: 现在 + never: 从不 + unknown: 未知 + everyone: 所有人 + plot_unowned: $2当前地皮必须有所有者才能执行此操作 + plot_info_unclaimed: $2地皮 $1%s$2 尚未被领取 + plot_info_header: $3&m---------&r $1信息 $3&m--------- + plot_info: '$1编号:$2%id%$1&-$1别名:$2%alias%$1&-$1所有者:$2%owner%$1&-$1生态群落: + $2%biome%$1&-$1可以建造:$2%build%$1&-$1评分:$2%rating%&-$1可见:$2%seen%&-$1受信: + $2%trusted%$1&-$1成员:$2%members%$1&-$1拒绝:$2%denied%$1&-$1标记:$2%flags%' + plot_info_footer: $3&m---------&r $1信息 $3&m--------- + plot_info_trusted: $1受信:$2 %trusted% + plot_info_members: $1成员:$2 %members% + plot_info_denied: $1拒绝:$2 %denied% + plot_info_flags: $1标记:$2 %flags% + plot_info_biome: $1生态群落:$2 %biome% + plot_info_rating: $1评分:$2 %rating% + plot_info_owner: $1所有者:$2 %owner% + plot_info_id: $1编号:$2 %id% + plot_info_alias: $1别名:$2 %alias% + plot_info_size: $1大小:$2 %size% + plot_info_seen: $1可见:$2 %seen% + plot_user_list: ' $1%user%$2,' + plot_flag_list: $1%s0:%s1$2 + info_syntax_console: $2/plot info X;Y +working: + generating_component: $1已开始从阁下的设置中生成元件 + clearing_plot: $2正在清除地皮异步。 + clearing_done: $4已清除!此操作花费了 %s 毫秒。 + deleting_done: $4已删除!此操作花费了 %s 毫秒。 + plot_not_claimed: $2地皮未领取 + plot_is_claimed: $2此地皮已被领取 + claimed: $4阁下已成功领取地皮 +list: + comment_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 条评论 + clickable: '(可交互)' + area_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块区域 + plot_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块地皮 + plot_list_header: $1共计 %word% 块地皮 + plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner + plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner + plot_list_footer: $2>> $1%word% 共计 $2%num% $1领取了地皮 %plot%。 +left: + left_plot: $2阁下已离开地皮 +chat: + plot_chat_spy_format: '$2[$1地皮间谍$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' + plot_chat_format: '$2[$1地皮老铁$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' + plot_chat_forced: $2此世界强制所有人使用地皮聊天。 + plot_chat_on: $4已启用地皮聊天。 + plot_chat_off: $4已禁用地皮聊天。 +deny: + denied_removed: $4阁下已成功解禁此玩家进入地皮 + denied_added: $4阁下已成功禁止此玩家进入地皮 + denied_need_argument: $2缺少参数。$1/plot denied add <名称> $2或 $1/plot + denied remove <名称> + was_not_denied: $2此玩家未被此地皮封禁 + you_got_denied: $4阁下已被禁止进入先前所在的地皮并已被传送至出生点 +kick: + you_got_kicked: $4阁下已被踢出! +rain: + need_on_off: '$2阁下需要指定值。可能的值:$1on$2, $1off' + setting_updated: $4阁下已成功更新设置 +flag: + flag_key: '$2关键词:%s' + flag_type: '$2类型:%s' + flag_desc: '$2描述:%s' + not_valid_flag: $2标记无效 + not_valid_flag_suggested: '$2标记无效。阁下的意思是否是:$1%s' + not_valid_value: $2标记值必须为字母数字混合编制 + flag_not_in_plot: $2此地皮不拥有此标记 + flag_not_removed: $2无法移除此标记 + flag_not_added: $2无法添加此标记 + flag_removed: $4已成功移除标记 + flag_added: $4已成功添加标记 +trusted: + trusted_added: $4阁下已成功将用户添加到地皮受信列表 + trusted_removed: $4阁下已成功将用户从地皮受信列表中移除 + was_not_added: $2此用户在此地皮上不受信任 + plot_removed_user: $1阁下所添加至的地皮 %s 由于所有者不活跃已被删除 +member: + removed_players: $2已从此地皮中移除了 %s 位玩家。 + already_owner: '$2此玩家已是地皮所有者:%s0' + already_added: '$2此玩家已被添加到此分类:%s0' + member_added: $4此用户现已可以在地皮所有者在线时建造 + member_removed: $1阁下已成功从此地皮中移除了用户 + member_was_not_added: $2此玩家并未被添加到此地皮的用户列表 + plot_max_members: $2阁下被禁止添加更多玩家至此地皮 +owner: + set_owner: $4阁下已成功设置地皮所有者 + now_owner: $4阁下现在是地皮 %s 的所有者 +signs: + owner_sign_line_1: '$1编号:$1%id%' + owner_sign_line_2: '$1所有者:' + owner_sign_line_3: $2%plr% + owner_sign_line_4: $3已被领取 +help: + help_header: $3&m---------&r $1Plot² 帮助 $3&m--------- + help_page_header: '$1分类:$2%category%$2,$1 页面:$2%current%$3/$2%max%$2' + help_footer: $3&m---------&r $1Plot² 帮助 $3&m--------- + help_info_item: $1/plot help %category% $3- $2%category_desc% + help_item: $1%usage% [%alias%]&- $3- $2%desc%&- + direction: '$1当前方向:%dir%' +grants: + granted_plots: '$1结果:剩余 $2%s $1次授权' + granted_plot: $1阁下授权了 %s0 地皮至 $2%s1 + granted_plot_failed: '$1授权失败:$2%s' +'-': + custom_string: '-' diff --git a/chinese.yml b/chinese.yml index 41794c6da..4afc3564a 100644 --- a/chinese.yml +++ b/chinese.yml @@ -1,375 +1,407 @@ +# This file is translated by c7w, w/1345979462 and 佛壁灯(f0rb1d) +# Translation Guide +# 1. 句子与变量、命令、数字之间保留空隙,全角符号除外 +# 2. 使用已成功/已复制/正在/未启用/已启用/请使用开头 +# 3. 使用阁下(其实好像也无所谓) +# 4. 失败/成功/无效应放在句末 +# 就差不多这些 confirm: - failed_confirm: $2你当前没有可以接受的行动! - requires_confirm: '$2你是否要执行: $1%s$2?&-$2该操作不可逆! 如果确定请输入: $1/plot confirm' + expired_confirm: $2确认已过期,请重新执行命令! + failed_confirm: $2阁下没有待确认的操作! + requires_confirm: '$2阁下是否确定执行:$1%s$2?&-$2此操作无法恢复!若阁下确定,请输入:$1/plot confirm' move: - move_success: $4成功的移动了地皮。 - copy_success: $4成功的复制了地皮。 - requires_unowned: $2你指定的位置已被占用。 + move_success: $4已成功移除地皮。 + copy_success: $4已成功复制地皮。 + requires_unowned: $2指定地点已被占用。 set: - set_attribute: $4成功将 %s0 设置为 %s1 + set_attribute: $4已成功设置 %s0 为 %s1 web: - generating_link: $1处理地皮中... - generating_link_failed: $2创建下载链接失败了! + generating_link: $1正在处理地皮··· + generating_link_failed: $2生成下载链接失败! save_failed: $2保存失败 - load_null: $2请使用 $4/plot load $2来获取模型列表 - load_failed: $2读取模型失败 - load_list: '$2若要读取一个模型,请使用 $1/plot load #' - save_success: $1成功保存! + load_null: $2请使用 $4/plot load$2 获取布局列表 + load_failed: $2载入布局失败 + load_list: '$2要载入布局,请使用 $1/plot load #' + save_success: $1已成功保存! compass: - compass_target: $4成功的用指南针指向了地皮! + compass_target: $4已成功将指南针指向地皮 cluster: - cluster_available_args: "'$1下面的子指令是可行的: $4list$2, $4create$2, + cluster_available_args: '$1以下子指令可用:$4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, - $4tp$2, $4sethome'" - cluster_list_heading: "$2在这个世界中有 $1%s$2 个地皮群" - cluster_list_element: "$2 - $1%s&-" - cluster_intersection: "$2目标区域被 %s0 覆盖'" - cluster_added: "$4成功的创建了群。" - cluster_deleted: "$4成功的删除了群。" - cluster_resized: "$4成功为群重新设置大小。" - cluster_added_user: "$4成功为群增加用户。" - cannot_kick_player: "$2你不能从地皮中移除那位玩家!" - cluster_invited: "$1你被邀请去下列群: $2%s" - cluster_removed: "$1你被该群移除: $2%s" - cluster_kicked_user: "$4成功移除了用户。" - invalid_cluster: "'$1不合法的群名称: $2%s'" - cluster_not_added: "$2那个玩家没有被添加到地皮群中" - cluster_cannot_leave: "$1你在离开之前必须删除或转让群" - cluster_added_helper: "$4成功为地皮群增加了援建者" - cluster_removed_helper: "$4成功为地皮群移除了一位援建者" - cluster_regenerated: "$4成功的开始了地皮群重建任务" - cluster_teleporting: "$4传送中..." - cluster_info: "'$1当前群: $2%id%&-$1名称: $2%name%&-$1所有者: $2%owner%&-$1大小: - $2%size%&-$1权利: $2%rights%'" + $4tp$2, $4sethome' + cluster_list_heading: $2此世界中有 $1%s$2 个群集 + cluster_list_element: $2 - $1%s&- + cluster_intersection: '$计划的区域与%s0重叠' + cluster_outside: '$2计划的区域在地皮区域%s0外' + cluster_added: $4已成功创建群集。 + cluster_deleted: $4已成功删除群集。 + cluster_resized: $4已成功调整群集尺寸。 + cluster_added_user: $4已成功将玩家添加到群集。 + cannot_kick_player: $2阁下无法踢出此玩家 + cluster_invited: '$1阁下已被邀请至群集 $2%s' + cluster_removed: '$1阁下已被群集 $2%s $1移除' + cluster_kicked_user: $4已成功踢出此玩家 + invalid_cluster: '$1群集名 $2%s 无效' + cluster_not_added: $2此玩家未被添加至地皮群集 + cluster_cannot_leave: $1阁下必须在离开前先删除群集或转移所有权 + cluster_added_helper: $4已成功将帮手添加到群集 + cluster_removed_helper: $4已成功将帮手从群集移除 + cluster_regenerated: $4已成功开始群集重生 + cluster_teleporting: $4正在传送··· + cluster_info: '$1当前群集:$2%id%&-$1名称:$2%name%&-$1所有者:$2%owner%&-$1大小: + $2%size%&-$1权限:$2%rights%' border: - border: $2你在当前地图边界之外 + border: $2阁下处于当前地图边界外 unclaim: - unclaim_success: $4你成功的放弃了地皮 - unclaim_failed: $2不能放弃地皮 + unclaim_success: $4阁下已成功解除认领地皮。 + unclaim_failed: $2无法解除认领地皮 worldedit masks: - worldedit_delayed: "$2请等待我们处理你的 Worldedit 行动..." - worldedit_run: "'$2请等待当前任务完成。当前正在进行的任务:%s'" - require_selection_in_mask: "$2你当前选择范围中 %s 不是你的地皮,你只能在你自己的地皮上更改。" - worldedit_volume: "$2你目前选区中有 %current%个方块,你最大可以一次性编辑的方块数目为 %max%。" - worldedit_iterations: "$2你不能重复 %current% 次。你可以重复的最大次数为 %max%次。" - worldedit_unsafe: "$2那个指令已被禁用" - worldedit_bypass: "$2&o若要解除你的 Worldedit 限制,输入 $4/plot wea" - worldedit_bypassed: "$2当前解除了你的 WorldEdit 限制" - worldedit_unmasked: "$1你的 WorldEdit 现在被解除限制。" - worldedit_restricted: "$1你的 WorldEdit 现在被限制。" + worldedit_delayed: $2请在我们处理阁下的WorldEdit操作时稍等片刻··· + worldedit_run: '$2很抱歉造成了延迟。现正执行:%s' + require_selection_in_mask: $2选中的 %s 不在阁下的地皮覆盖范围内。 + 阁下仅可对自己的地皮做出修改。 + worldedit_volume: $2阁下无法选择 %current% 体积。阁下可编辑的最大 + 体积为 %max%。 + worldedit_iterations: $2阁下无法重复 %current% 次。容许的最大 + 重复次数为 %max%。 + worldedit_unsafe: $2已禁止对此命令的访问 + worldedit_bypass: $2&o要绕过对阁下的限制,请使用 $4/plot wea + worldedit_bypassed: $2当前正绕过WorldEdit功能限制。 + worldedit_unmasked: $1阁下的WorldEdit功能现已解除限制。 + worldedit_restricted: $1阁下的WorldEdit功能现已受限制。 gamemode: - gamemode_was_bypassed: $1你为地皮 $2{plot} $1跳过了游戏模式 —— ($2{gamemode}$1) $1 + gamemode_was_bypassed: $1阁下绕过了为 $2{plot} $1设置的游戏模式($2{gamemode}$1)限制 height limit: - height_limit: $1这个地皮的建筑高度限制为 $2{limit} + height_limit: $1此地皮拥有高度 $2{limit} 的限制 records: - record_play: $2%player $2开始了 $1%name 的记录 - notify_enter: $2%player $2进入了你的地皮 ($1%plot$2) - notify_leave: $2%player $2离开了你的地皮 ($1%plot$2) + record_play: $2%player $2已开始游玩记录 $1%name + notify_enter: $2%player $2已进入阁下的地皮($1%plot$2) + notify_leave: $2%player $2已离开阁下的地皮($1%plot$2) swap: - swap_overlap: $2目标区域不允许被覆盖 - swap_dimensions: $2和目标区域必须拥有相同的世界类型 - swap_syntax: $2/plots swap - swap_success: $4成功的交换了地皮 - started_swap: $2交换地皮任务已开始,你将会在完成后收到通知。 + swap_overlap: $2计划的区域不允许重叠 + swap_dimensions: $2计划的区域必须有可对比的维度 + swap_syntax: $2/plot swap <编号> + swap_success: $4已成功交换地皮 + started_swap: $2已开始地皮交换任务。阁下将会在完成时收到提醒 comment: - inbox_notification: '%s 条未读信息。使用 /plot inbox 来读取' - not_valid_inbox_index: $2在第 %s 页没有信息 + inbox_notification: '%s 条未读消息。请使用 /plot inbox 阅读' + not_valid_inbox_index: $2索引 %s 处无评论 inbox_item: $2 - $4%s - comment_syntax: $2请使用 /plots comment [X;Z] <%s> - invalid_inbox: '$2那不是一个正确的收件箱&-$1允许的值: %s' - no_perm_inbox: $2你没有查看那个收件箱的权限 - no_perm_inbox_modify: $2你没有更改那个收件箱的权限 - no_plot_inbox: $2你必须站在或指定一个地皮参数 - comment_removed: $4成功的删除了评论:$2 - '$3%s$2' - comment_added: $4一条评论被留下 + comment_syntax: $2请使用 /plot comment [X;Z] <%s> <评论> + invalid_inbox: '$2此收件箱无效。&-$1接受的值:%s' + no_perm_inbox: $2阁下没有此收件箱的权限 + no_perm_inbox_modify: $2阁下没有编辑此收件箱的权限 + no_plot_inbox: $2阁下必须站在地皮内或提供地皮参数 + comment_removed: $4已成功删除评论$2 - '$3%s$2' + comment_added: $4有玩家留下了一条评论 comment_header: $2&m---------&r $1评论 $2&m---------&r - inbox_empty: $2没有评论 + inbox_empty: $2无评论 console: - not_console: $2为了安全,这个指令只能由控制台执行。 - is_console: $2这个指令只能由玩家执行。 + not_console: $2由于安全考虑,此命令只可由控制台执行。 + is_console: $2此命令只可被玩家执行。 inventory: - inventory_usage: '&c使用: &6{usage}' - inventory_desc: '&c描述: &6{desc}' - inventory_category: '&c类型: &6{category}' + inventory_usage: '&c用法:&6{usage}' + inventory_desc: '&c描述:&6{desc}' + inventory_category: '&c分类:&6{category}' clipboard: - clipboard_set: $2当前地皮已被复制到你的剪切板中,使用 $1/plot paste$2 来粘贴。 - pasted: $4地皮已被成功粘贴。它从你的剪切板中被移除。 - paste_failed: '$2粘贴选中区域时失败了,失败原因: $2%s' - no_clipboard: $2你的剪切板中没有选择。 - clipboard_info: '$2当前选择 - 地皮ID: $1%id$2, 宽度: $1%width$2, 总计方块数:$1%total$2' + clipboard_set: $2当前地皮已复制到阁下的剪贴板,请使用 $1/plot paste$2 粘贴 + pasted: $4已成功粘贴选择项并已从剪贴板中清除。 + paste_failed: '$2无法粘贴选择项。理由:$2%s' + no_clipboard: $2阁下的剪贴板内无选择项 + clipboard_info: '$2当前选择项 - 地皮编号:$1%id$2, 宽度:$1%width$2, 方块 + 总数: $1%total$2' toggle: - toggle_enabled: '$2启用设置: %s' - toggle_disabled: '$2禁用设置: %s' + toggle_enabled: '$2已启用设置:%s' + toggle_disabled: '$2已禁用设置:%s' blocked command: - command_blocked: $2在这个地皮中那个指令不被允许 + command_blocked: $2此地皮中不允许使用此命令 done: - done_already_done: $2这个地皮已经被标记完成。 - done_not_done: $2这个地皮没有被标记完成。 - done_insufficient_complexity: $2这个地皮太过于简单。请在使用这个指令之前增加增加更多细节。 - done_success: $1成功将地皮标记完成。 - done_removed: $1你现在可以继续在地皮中建筑了。 + done_already_done: $2此地皮已被标记为已完成 + done_not_done: $2此地皮未标记为已完成。 + done_insufficient_complexity: $2此地皮过于简单。请在使用此命令前添加更多的细节。 + done_success: $1已成功标记此地皮为已完成。 + done_removed: $1阁下现在可以在此地皮中继续建造了。 ratings: - rating_not_valid: $2你需要在 1 - 10 之前指定一个数字 - rating_already_exists: $2你已经为地皮 $2%s 投过票了 - rating_applied: $4你成功的为地皮 $2%s 投了一票 - rating_not_your_own: $2你不能为自己的地皮投票 - rating_not_done: $2你只能为完成的地皮投票。 - rating_not_owned: $2你不能为无主的地皮投票。 + ratings_purged: $2已清除此地皮的评分 + rating_not_valid: $2阁下需要指定介于 1 到 10 之间的数字 + rating_already_exists: $2阁下已评价过地皮 $2%s + rating_applied: $4阁下已成功评价地皮 $2%s + rating_not_your_own: $2阁下无法评价自己的地皮 + rating_not_done: $2阁下仅可评价已完成的地皮。 + rating_not_owned: $2阁下无法评价尚未被任何玩家拥有的地皮 tutorial: - rate_this: $2为这个地皮投票! - comment_this: '$2为这个地皮留一些反馈: %s' + rate_this: $2评价此地皮! + comment_this: '$2请为地皮 %s 留下反馈' economy: - econ_disabled: $2现在没有启动经济系统 - cannot_afford_plot: $2你没有足够的钱买这块地皮。它需要花费 $1%s - not_for_sale: $2这块地皮没有出售 - cannot_buy_own: $2你不能购买你自己的地皮 - plot_sold: $4你的地皮 $1%s0$4,以 $1$%s2 的价格被卖给了 $1%s1$4 - cannot_afford_merge: $2你没有足够的钱来合并地皮。它需要花费 $1%s - added_balance: $1%s $2被打入你的账户 - removed_balance: $1%s $2从你的账户取出 - removed_granted_plot: $2你使用了 %s 个地皮授权,你还剩下 $1%s $2个 + econ_disabled: $2未启用经济系统 + cannot_afford_plot: $2阁下无法购买此地皮。此地皮价值 $1%s + not_for_sale: $2此地皮恕不出售 + cannot_buy_own: $2阁下无法购买自己的地皮 + plot_sold: $4阁下的地皮 $1%s0$4 已以 $1$%s2$4 的价格售给了 $1%s1 + cannot_afford_merge: $2阁下无法合并地皮。此操作花费 $1%s + added_balance: $1%s $2已转入您的余额 + removed_balance: $1%s $2已从您的余额中转出 + removed_granted_plot: $2阁下已使用了授予的 %s 块地皮,剩余 $1%s $2块 setup: - setup_init: '$1请使用: $2/plot setup ' - setup_step: '$3[$1第 %s0 $1步$3] $1%s1 $2- $1参数类型: $2%s2 $1默认值: $2%s3' - setup_invalid_arg: '$2%s0 不是对于第 %s1 步的正确的参数。要想取消设置使用: $1/plot setup cancel' - setup_valid_arg: $2你将值 $1%s0 $2设置为了 %s1 - setup_finished: $4你应该被传送到了创建的世界。否则你需要手动设置在 bukkit.yml 中的世界创建器或者你选择的世界的管理插件。 - setup_world_taken: $2%s 是一个已经创建的地皮世界 - setup_missing_world: $2你需要指定一个世界名($1/plot setup &l$1 $2)&-$1附加指令:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2你需要指定一个世界生成器 ($1/plot setup &l&r$2)&-$1附加指令:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_invalid_generator: '$2错误的生成器。正确的生成器有: %s' + setup_init: '$1用法:$2/plot setup <值>' + setup_step: '$3[$1步骤 %s0$3] $1%s1 $2- $1预期值:$2%s2 $1默认值:$2%s3' + setup_invalid_arg: '$2%s0 不是步骤 %s1 的有效参数。要取消配置 + 请使用:$1/plot setup cancel' + setup_valid_arg: $2值 $1%s0 $2已设置为 %s1 + setup_finished: $4阁下应已被传送至新建的世界。否则阁下将需 + 在 bukkit.yml 或世界管理插件中手动设置生成器。 + setup_world_taken: $2%s 已是一个世界 + setup_missing_world: $2阁下需要指定世界名($1/plot setup &l<世界名>$1 + <生成器>$2)&-$1附加指令:&-$2 - $1/plot setup <值>&-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel + setup_missing_generator: $2阁下需要指定生成器($1/plot setup <世界名> + &l<生成器>&r$2)&-$1附加指令&-$2 - $1/plot setup <值>&-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel + setup_invalid_generator: '$2无效的生成器。可能选项:%s' schematics: - schematic_too_large: $2这个地皮对此行动太大了! - schematic_missing_arg: '$2你需要制定一个参数。正确的值: $1test $2 , $1save$2 , $1paste $2, $1exportall' - schematic_invalid: '$2那不是一个正确的模板。原因: $2%s' - schematic_valid: $2那是一个正确的模板 - schematic_paste_failed: $2粘贴模板失败了 - schematic_paste_success: $4成功的粘贴了模板 + schematic_too_large: $2此地皮过大无法进行此操作! + schematic_missing_arg: '$2阁下需要指定参数。可能的值:$1test + <名称>$2 , $1save$2 , $1paste $2, $1exportall' + schematic_invalid: '$2布局无效。理由:$2%s' + schematic_valid: $2布局无效 + schematic_paste_failed: $2粘贴布局失败 + schematic_paste_success: $4已成功粘贴布局 titles: - title_entered_plot: '$1地皮: %world%;%x%;%z%' - title_entered_plot_sub: $4地皮主人 %s + title_entered_plot: '$1地皮:%world%;%x%;%z%' + title_entered_plot_sub: $4由 %s 所有 prefix_greeting: '$1%id%$2> ' prefix_farewell: '$1%id%$2> ' core: - task_start: 任务开始... - prefix: $3[$1地皮系统$3] $2 - enabled: $1PlotSquared 现已开启 + task_start: 正在启动任务··· + prefix: $3[$1P2$3] $2 + enabled: $1%s0 现已启用 reload: - reloaded_configs: $1翻译和世界设置被重新读取 - reload_failed: $2读取文件配置失败 + reloaded_configs: $1已重载翻译及世界设置 + reload_failed: $2重载文件配置失败 desc: - desc_set: $2地皮的描述被设置 - desc_unset: $2地皮的描述被重置 - missing_desc: $2你需要指定一个描述 + desc_set: $2已设置地皮描述 + desc_unset: $2已重置地皮描述 + missing_desc: $2阁下需要指定描述 alias: - alias_set_to: $2地皮简称设置为 $1%alias% - missing_alias: $2你需要指定一个简称 - alias_too_long: $2在长度上简称必须小于50字符 - alias_is_taken: $2已经有地皮命名为那个简称了 + alias_set_to: $2地皮别名已设置为 $1%alias% + alias_removed: $2已移除地皮别名 + missing_alias: $2阁下需要指定别名 + alias_too_long: $2别名长度必须小于 50 个字符 + alias_is_taken: $2此别名已被占用 position: - missing_position: '$2你需要指定一个方位。正确的值: ×无×' - position_set: $1将家设置为当前位置 - position_unset: $1家的位置重置到默认位置 - home_argument: $2请使用 /plot set home [none] - invalid_position: $2那不是一个正确的位置的值 + missing_position: '$2阁下需要指定位置。可能的值:$1none' + position_set: $1已设置家为阁下的当前位置 + position_unset: $1已重置家为默认位置 + home_argument: $2使用 /plot set home [无] + invalid_position: $2位置值无效 cap: - entity_cap: $2你不能再生成更多怪物了! + entity_cap: $2阁下被禁止生成更多怪物 time: time_format: $1%hours%, %min%, %sec% permission: - no_schematic_permission: $2你没有权限来使用模板 $1%s - no_permission: '$2你没有权限! ($1%s)' - no_permission_event: '$2你没有权限这样做! ($1%s)' - no_plot_perms: $2你需要地皮主人权限 - cant_claim_more_plots: $2你不能再领取更多地皮了 - cant_transfer_more_plots: $2你不能给那个玩家更多地皮了 - cant_claim_more_plots_num: $2你不能同时领取超过 $1%s $2个地皮 - you_be_denied: $2你不能进入那个地皮 - merge_request_confirm: 来自 %s 的地皮合并申请 + no_schematic_permission: $2阁下没有使用布局的所需权限 + $1%s + no_permission: '$2阁下缺少权限节点:$1%s' + no_permission_event: '$2阁下缺少权限节点:$1%s' + no_plot_perms: $2阁下必须为地皮所有者才能执行此操作 + cant_claim_more_plots: $2阁下无法拥有更多地皮。 + cant_claim_more_clusters: $2阁下无法拥有更多群集。 + cant_transfer_more_plots: $2阁下无法赠予此用户更多地皮 + cant_claim_more_plots_num: $2阁下无法同时拥有多于 $1%s $2块地皮 + you_be_denied: $2阁下被禁止进入此地皮 + merge_request_confirm: 来自 %s 的合并请求 merge: - merge_not_valid: $2这个合并请求不再合法 - merge_accepted: $2合并请求被接受 - success_merge: $2地皮成功被合并! - merge_requested: $2成功的发送了一个合并请求 - no_perm_merge: '$2你不是地皮 $1%plot% 的主人' - no_available_automerge: $2你在指定位置没有邻近的地皮或不允许你合并成那样大小。 - unlink_required: $2你需要先解除地皮的合并。 - unlink_impossible: $2你只能解除超级地皮的合并 - unlink_success: $2成功的解除了地皮的合并。 + merge_not_valid: $2此合并请求已不再可用。 + merge_accepted: $2此合并请求已被接受 + success_merge: $2已合并地皮! + merge_requested: $2已成功发送合并请求 + no_perm_merge: '$2阁下不是地皮 $1%plot% $2的所有者' + no_available_automerge: $2阁下在指定方向不拥有任何相邻的地皮 + 或阁下被禁止合并所需的大小。 + unlink_required: $2需要解除关联才能执行此操作。 + unlink_impossible: $2阁下只能解除关联大地皮 + unlink_success: $2已成功将地皮解除关联。 commandconfig: - not_valid_subcommand: $2那不是一个正确的子命令 - did_you_mean: '$2你想输入: $1%s$2吗' - name_little: $2%s0 的名字太短了,$1%s1$2<$1%s3 - no_commands: $2很抱歉,你没有权限使用任何子指令。 - subcommand_set_options_header: '$2正确的值: ' - command_syntax: '$1请使用: $2%s' - flag_tutorial_usage: '$1使一位管理员设置标志: $2%s' + not_valid_subcommand: $2此子命令无效 + did_you_mean: '$2阁下的意思是否是:$1%s' + name_little: $2%s0 名称过短,$1%s1$2<$1%s3 + no_commands: $2很抱歉,但阁下无法使用任何子命令。 + subcommand_set_options_header: '$2可能的值:' + command_syntax: '$1用法:$2%s' + flag_tutorial_usage: '$1请让管理员设置标记:$2%s' errors: - invalid_player_wait: '$2没有找到玩家:$1%s$2。请稍后再试。' - invalid_player: '$2没有找到玩家: $1%s$2.' - invalid_player_offline: '$2这个玩家必须在线: $1%s.' - error: '$2发生了一个错误: %s' - command_went_wrong: $2当使用指令时发生了错误... - no_free_plots: $2现在没有可获得的免费地皮 - not_in_plot: $2你不在一个地皮中 - not_in_cluster: $2你必须在一个地皮群组中才能使用这个命令 - not_in_plot_world: $2你不在一个地皮世界中 - plotworld_incompatible: $2两个世界必须是兼容的 - not_valid_world: $2那不是一个正确的世界(区分大小写) - not_valid_plot_world: $2那不是一个正确的地皮世界(区分大小写) - no_plots: $2你不拥有任何地皮 - not_using_plotme: $2This server uses the far superior $1PlotSquared $2plot management system. Please use the $1/ps $2or $1/p2 $2or $1/plots $2instead - wait_for_timer: $2A setblock timer is bound to either the current plot or you. Please wait for it to finish + invalid_player_wait: '$2未找到玩家:$1%s$2,正在获取。请稍后再试。' + invalid_player: '$2未找到玩家:$1%s$2.' + invalid_player_offline: '$2玩家 $1%s $2必须在线。' + invalid_command_flag: '$2无效的命令标记:%s0' + error: '$2发生了 %s 错误' + command_went_wrong: $2执行此命令时发生错误··· + no_free_plots: $2无可用的免费地皮 + not_in_plot: $2阁下不在地皮上 + not_loaded: $2无法加载地皮 + not_in_cluster: $2阁下必须在地皮群集上以进行此操作 + not_in_plot_world: $2阁下不在地皮区域上 + plotworld_incompatible: $2两个世界必须相互兼容 + not_valid_world: $2世界无效(大小写敏感) + not_valid_plot_world: $2地皮区域无效(大小写敏感) + no_plots: $2阁下不拥有任何地皮 + wait_for_timer: $2一个设置方块计时器已关联到当前地皮或阁下上。请等待此操作完成 paste: - debug_report_created: '$1U将DEBUG信息粘贴到了: $1%url%' + debug_report_created: '$1已上传完整调试日志至:$1%url%' purge: - purge_success: $4成功的合并了 %s 块地皮 + purge_success: $4已成功清除了 %s 块地皮 trim: - trim_in_progress: 已经有一个地皮清理任务在进行! - not_valid_hybrid_plot_world: 要进行这个行动,你需要立方体地皮管理系统。 + trim_in_progress: 世界修整任务正在进行中! + not_valid_hybrid_plot_world: 需要混合地皮管理以执行此操作 block list: block_list_separater: '$1,$2 ' biome: - need_biome: $2你需要指定一个正确的生物群系 - biome_set_to: $2地皮的生物群系设置为 $2 + need_biome: $2阁下需要指定一个有效的生态群落。 + biome_set_to: $2地皮生态群落被设置为 $2 teleport: - teleported_to_plot: $1你已被传送 - teleported_to_road: $2你被传送到了道路上 - teleport_in_seconds: $1传送将在 %s 秒后进行。不要移动... - teleport_failed: $2传送因移动或伤害被取消 + teleported_to_plot: $1阁下已被传送 + teleported_to_road: $2阁下已被传送到道路上 + teleport_in_seconds: $1%s 秒后传送。请勿移动··· + teleport_failed: $2传送由于移动或伤害取消 set block: - set_block_action_finished: $1上一个方块设置行动现在完成了。 + set_block_action_finished: $1已完成最后一个设置方块操作。 unsafe: - debugallowunsafe_on: $2允许了不安全的行动 - debugallowunsafe_off: $2不安全的行动被禁用 + debugallowunsafe_on: $2已允许不安全的操作 + debugallowunsafe_off: $2已禁用不安全的操作 debug: - debug_header: $1Debug 信息&- + debug_header: $1调试信息&- debug_section: $2>> $1&l%val% debug_line: $2>> $1%var%$2:$1 %val%&- invalid: - not_valid_data: $2那不是一个正确的数据ID - not_valid_block: '$2%s 不是一个正确的方块' - not_allowed_block: '$2这个方块被禁用: %s' - not_valid_number: '$2在范围上这不是一个正确的数值: %s' - not_valid_plot_id: $2那不是一个正确的地皮ID - plot_id_form: '$2地皮 ID 的格式必须为: $1X;Y $2例如: $1-5;7' - not_your_plot: $2那不是你的地皮 - no_such_plot: $2没有这个地皮 - player_has_not_been_on: $2那位玩家不在地皮中 - found_no_plots: $2在你的搜索请求中找不到匹配的地皮 + not_valid_data: $2数据编号无效。 + not_valid_block: '$2%s 不是有效的方块。' + not_allowed_block: '$2方块 %s 被禁止' + not_valid_number: '$2%s 不是区间内的有效数字' + not_valid_plot_id: $2地皮编号无效。 + plot_id_form: '$2地皮编号必须为 $1X;Y 形式 $2例如:$1-5;7' + not_your_plot: $2此地皮不为阁下拥有 + no_such_plot: $2没有此地皮 + player_has_not_been_on: $2此玩家从未进入过地皮世界 + found_no_plots: $2阁下的搜索查询未找到地皮 + found_no_plots_for_player: '$2未找到玩家 %s 的地皮' camera: - camera_started: $2你进入了地皮 $1%s 的摄像机模式 - camera_stopped: $2你退出了摄像机模式 + camera_started: $2阁下已进入地皮 $1%s 的摄像模式 + camera_stopped: $2阁下已不再处于摄像模式 need: - need_plot_number: $2你需要指定一个地皮ID或地皮简称 - need_block: $2你需要指定一个方块 - need_plot_id: $2你需要指定一个方块 ID。 - need_plot_world: $2你需要指定一个地皮区域。 - need_user: $2你需要指定一个用户名 + need_plot_number: $2阁下必须指定地皮数字或别名 + need_block: $2阁下必须指定方块 + need_plot_id: $2阁下必须指定地皮编号。 + need_plot_world: $2阁下必须指定地皮区域。 + need_user: $2阁下必须指定用户名 +near: + plot_near: '$1玩家:%s0' info: none: 无 now: 现在 never: 从不 unknown: 未知 everyone: 所有人 - plot_unowned: $2执行这个行动当前地皮必须有主人 - plot_info_unclaimed: $2地皮 $1%s$2 还没有被领取 + plot_unowned: $2当前地皮必须有所有者才能执行此操作 + plot_info_unclaimed: $2地皮 $1%s$2 尚未被领取 plot_info_header: $3&m---------&r $1信息 $3&m--------- - plot_info: '$1ID: $2%id%$1&-$1别称: $2%alias%$1&-$1地皮主人: $2%owner%$1&-$1生物群系: - $2%biome%$1&-$1是否可建筑: $2%build%$1&-$1评级: $2%rating%&-$1可见: $2%seen%&-$1援建者: - $2%trusted%$1&-$1成员: $2%members%$1&-$1黑名单: $2%denied%$1&-$1标志: $2%flags%' + plot_info: '$1编号:$2%id%$1&-$1别名:$2%alias%$1&-$1所有者:$2%owner%$1&-$1生态群落: + $2%biome%$1&-$1可以建造:$2%build%$1&-$1评分:$2%rating%&-$1可见:$2%seen%&-$1受信: + $2%trusted%$1&-$1成员:$2%members%$1&-$1拒绝:$2%denied%$1&-$1标记:$2%flags%' plot_info_footer: $3&m---------&r $1信息 $3&m--------- - plot_info_trusted: $1援建者:$2 %trusted% + plot_info_trusted: $1受信:$2 %trusted% plot_info_members: $1成员:$2 %members% - plot_info_denied: $1黑名单:$2 %denied% - plot_info_flags: $1标志:$2 %flags% - plot_info_biome: $1生物群系:$2 %biome% - plot_info_rating: $1评级:$2 %rating% - plot_info_owner: $1地皮主人:$2 %owner% - plot_info_id: $1地皮ID:$2 %id% - plot_info_alias: $1地皮别称:$2 %alias% - plot_info_size: $1地皮大小:$2 %size% - plot_info_seen: $1地皮可见:$2 %seen% + plot_info_denied: $1拒绝:$2 %denied% + plot_info_flags: $1标记:$2 %flags% + plot_info_biome: $1生态群落:$2 %biome% + plot_info_rating: $1评分:$2 %rating% + plot_info_owner: $1所有者:$2 %owner% + plot_info_id: $1编号:$2 %id% + plot_info_alias: $1别名:$2 %alias% + plot_info_size: $1大小:$2 %size% + plot_info_seen: $1可见:$2 %seen% plot_user_list: ' $1%user%$2,' plot_flag_list: $1%s0:%s1$2 info_syntax_console: $2/plot info X;Y working: - generating_component: $1从您的设置中开始组成部件 - clearing_plot: $2清除地皮异步处理。 - clearing_done: $4清理完成!花费了 %s 毫秒。 - plot_not_claimed: $2地皮没有被领取 - plot_is_claimed: $2这个地皮已经被领取 - claimed: $4你成功的领取了地皮 + generating_component: $1已开始从阁下的设置中生成元件 + clearing_plot: $2正在清除地皮异步。 + clearing_done: $4已清除!此操作花费了 %s 毫秒。 + deleting_done: $4已删除!此操作花费了 %s 毫秒。 + plot_not_claimed: $2地皮未领取 + plot_is_claimed: $2此地皮已被领取 + claimed: $4阁下已成功领取地皮 list: - comment_list_header_paged: $2(第 $1%cur$2 页/共 $1%max$2 页) $1列出了 %amount% 条评论 - clickable: ' (可点击)' - area_list_header_paged: $2(第 $1%cur$2 页/共 $1%max$2 页) $1列出了 %amount% 片区域 - plot_list_header_paged: $2(第 $1%cur$2 页/共 $1%max$2 页) $1列出了 %amount% 块地皮 - plot_list_header: $1列出了 %word% 地皮 + comment_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 条评论 + clickable: '(可交互)' + area_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块区域 + plot_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块地皮 + plot_list_header: $1共计 %word% 块地皮 plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner - plot_list_footer: $2>> $1%word% 总计有块 $2%num% $1领取的 %plot%. + plot_list_footer: $2>> $1%word% 共计 $2%num% $1领取了地皮 %plot%。 left: - left_plot: $2你离开了一个地皮 + left_plot: $2阁下已离开地皮 chat: - plot_chat_format: '$2[$1地皮聊天$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' - plot_chat_forced: $2这个世界强制所有人使用地皮聊天 - plot_chat_on: $4开启了地皮聊天。 - plot_chat_off: $4关闭了地皮聊天。 + plot_chat_spy_format: '$2[$1地皮间谍$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' + plot_chat_format: '$2[$1地皮老铁$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' + plot_chat_forced: $2此世界强制所有人使用地皮聊天。 + plot_chat_on: $4已启用地皮聊天。 + plot_chat_off: $4已禁用地皮聊天。 deny: - denied_removed: $4Y你成功的从此地皮黑名单解除了一位玩家 - denied_added: $4你成功的将这位玩家加入此地皮的黑名单中 - denied_need_argument: $2缺少参数。请使用$1/plot denied add $2或者 $1/plot denied remove - was_not_denied: $2那位玩家不在此地皮的黑名单中 - you_got_denied: $4你被所在的地皮加入了黑名单,所以你被传送到了出生点。 + denied_removed: $4阁下已成功解禁此玩家进入地皮 + denied_added: $4阁下已成功禁止此玩家进入地皮 + denied_need_argument: $2缺少参数。$1/plot denied add <名称> $2或 $1/plot + denied remove <名称> + was_not_denied: $2此玩家未被此地皮封禁 + you_got_denied: $4阁下已被禁止进入先前所在的地皮并已被传送至出生点 kick: - you_got_kicked: $4你被踢出了地皮! + you_got_kicked: $4阁下已被踢出! rain: - need_on_off: '$2你需要指定一个值。正确的值: $1on$2, $1off' - setting_updated: $4你成功的更新了设置。 + need_on_off: '$2阁下需要指定值。可能的值:$1on$2, $1off' + setting_updated: $4阁下已成功更新设置 flag: - flag_key: '$2关键词: %s' - flag_type: '$2类型: %s' - flag_desc: '$2描述: %s' - not_valid_flag: $2那不是一个正确的标志 - not_valid_flag_suggested: '$2那不是一个正确的标志。你想用: $1%s 吗?' - not_valid_value: $2地皮值必须为代数 - flag_not_in_plot: $2这个地皮目前没有标志 - flag_not_removed: $2这个标志不能被移除 - flag_not_added: $2这个标志不能被添加 - flag_removed: $4成功的移除了标志 - flag_added: $4成功的添加了标志 + flag_key: '$2关键词:%s' + flag_type: '$2类型:%s' + flag_desc: '$2描述:%s' + not_valid_flag: $2标记无效 + not_valid_flag_suggested: '$2标记无效。阁下的意思是否是:$1%s' + not_valid_value: $2标记值必须为字母数字混合编制 + flag_not_in_plot: $2此地皮不拥有此标记 + flag_not_removed: $2无法移除此标记 + flag_not_added: $2无法添加此标记 + flag_removed: $4已成功移除标记 + flag_added: $4已成功添加标记 trusted: - trusted_added: $4你成功的为地皮添加了一位信任玩家 - trusted_removed: $4你成功的为地皮移除了一位信任玩家 - was_not_added: $2那位玩家在这个地皮中不是信任玩家 - plot_removed_user: $1因为地皮主人的长期不在线,你所作为信任玩家的地皮 %s 已被删除 + trusted_added: $4阁下已成功将用户添加到地皮受信列表 + trusted_removed: $4阁下已成功将用户从地皮受信列表中移除 + was_not_added: $2此用户在此地皮上不受信任 + plot_removed_user: $1阁下所添加至的地皮 %s 由于所有者不活跃已被删除 member: - removed_players: $2Removed %s players from this plot. - already_owner: '$2玩家 %s0 已经是地皮主人了' - already_added: '$2玩家 %s0 已经被添加到此类了' - member_added: $4那位玩家现在在地皮主人在线时可以编辑地皮 - member_removed: $1你成功的为地皮移除了一位成员 - member_was_not_added: $2那位玩家不是地皮的一位成员 - plot_max_members: $2你不被允许再为地皮增加成员了 + removed_players: $2已从此地皮中移除了 %s 位玩家。 + already_owner: '$2此玩家已是地皮所有者:%s0' + already_added: '$2此玩家已被添加到此分类:%s0' + member_added: $4此用户现已可以在地皮所有者在线时建造 + member_removed: $1阁下已成功从此地皮中移除了用户 + member_was_not_added: $2此玩家并未被添加到此地皮的用户列表 + plot_max_members: $2阁下被禁止添加更多玩家至此地皮 owner: - set_owner: $4你成功的设置了地皮主人 - now_owner: $4你现在是地皮 %s 的主人了 + set_owner: $4阁下已成功设置地皮所有者 + now_owner: $4阁下现在是地皮 %s 的所有者 signs: - owner_sign_line_1: '$1地皮ID: $1%id%' - owner_sign_line_2: '$1所有者:' + owner_sign_line_1: '$1编号:$1%id%' + owner_sign_line_2: '$1所有者:' owner_sign_line_3: $2%plr% - owner_sign_line_4: $3被领取 + owner_sign_line_4: $3已被领取 help: - help_header: $3&m---------&r $1地皮系统②帮助文件 $3&m--------- - help_page_header: '$1类型: $2%category%$2,$1 页面: $2%current%$3/$2%max%$2' - help_footer: $3&m---------&r $1地皮系统②帮助文件 $3&m--------- - help_info_item: $1/plots help %category% $3- $2%category_desc% + help_header: $3&m---------&r $1Plot² 帮助 $3&m--------- + help_page_header: '$1分类:$2%category%$2,$1 页面:$2%current%$3/$2%max%$2' + help_footer: $3&m---------&r $1Plot² 帮助 $3&m--------- + help_info_item: $1/plot help %category% $3- $2%category_desc% help_item: $1%usage% [%alias%]&- $3- $2%desc%&- - direction: '$1当前路径: %dir%' + direction: '$1当前方向:%dir%' grants: - granted_plots: '$1结果: $1剩余 $2%s' - granted_plot: $1你将 %s0 地皮赠予 $2%s1 - granted_plot_failed: '$1赠予失败了:$2%s' + granted_plots: '$1结果:剩余 $2%s $1次授权' + granted_plot: $1阁下授权了 %s0 地皮至 $2%s1 + granted_plot_failed: '$1授权失败:$2%s' '-': custom_string: '-' From bbcd508bc3bf9cfe6035dd6d46d6e0b6b046ab85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Fri, 10 Aug 2018 16:04:43 +0200 Subject: [PATCH 02/29] Remove unnecessary lines in Configuration javadoc --- .../com/intellectualcrafters/plot/config/Configuration.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/config/Configuration.java b/Core/src/main/java/com/intellectualcrafters/plot/config/Configuration.java index 211821a55..8cc3f2131 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/config/Configuration.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/config/Configuration.java @@ -8,8 +8,6 @@ import java.util.ArrayList; /** * Main Configuration Utility - * - */ public class Configuration { From 86e7f4e2b38d155df79bc88ce35bcf400830dd56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Sat, 11 Aug 2018 15:28:41 +0200 Subject: [PATCH 03/29] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index b193b6e5f..5b2fa30d2 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@ # Bug report template - + **Debug paste link:** From b1246adac2fd0efc78aeb3929a8bcb71c8ff0ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Sat, 11 Aug 2018 15:29:31 +0200 Subject: [PATCH 04/29] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7443d1464..84e60b9ae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PlotSquared [![forthebadge](http://forthebadge.com/images/badges/built-by-developers.svg)](http://forthebadge.com) - -[![Join the chat at https://gitter.im/PlotSquared/Lobby](https://badges.gitter.im/PlotSquared/Lobby.svg)](https://gitter.im/PlotSquared/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +[![Join the chat at https://gitter.im/PlotSquared/Lobby](https://badges.gitter.im/PlotSquared/Lobby.svg)](https://gitter.im/PlotSquared/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) For the end user, PlotSquared is packed with a tonne of cool features. It allows you to merge plots, and build together with your friends. You can also change a lot of plot specific settings in the form of @@ -29,6 +29,9 @@ If you prefer to use maven, a `pom.xml` file is provided for working with the Bu # Contributing Feel free to contribute, if you feel like you can improve the plugin in any way. Make sure to test your code before sending it away from us, as committing broken code will block you from future contribution. +## Suggestions +Suggestions are welcome! We have a separate issue tracker for suggestions, that can be found in [this](https://github.com/IntellectualSites/PlotSquaredSuggestions) repository. + # Official Addons * [Plot2Dynmap](http://www.spigotmc.org/resources/plot2dynmap.1292/) * [AdvPlots](http://www.spigotmc.org/resources/advplots-%CE%B2.1500/) From 40e91de11142f2325fa5b1c6e7533e56e0ad28f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Sat, 11 Aug 2018 15:38:22 +0200 Subject: [PATCH 05/29] Create stale.yml --- .github/stale.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..96a6248b7 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,16 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - [‼] high priority +# Label to use when marking an issue as stale +staleLabel: Old +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false From 5378c9007c0dcf087e574138bc3831512561f9b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Sat, 11 Aug 2018 15:43:36 +0200 Subject: [PATCH 06/29] Create auto-comment.yml --- .github/auto-comment.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/auto-comment.yml diff --git a/.github/auto-comment.yml b/.github/auto-comment.yml new file mode 100644 index 000000000..5b9c4f45c --- /dev/null +++ b/.github/auto-comment.yml @@ -0,0 +1,13 @@ +# Comment to a new issue. +issueOpened: > + Thank your for raising a issue. We will try and get back to you as soon as possible. + + Please make sure that you followed the issue template, and provied all neccessary information. Failure + to do so will prevent us from resolving the issue in a timely manner. + +pullRequestOpened: > + Thank your for raising your pull request. + + Please make sure you have followed our contributing guidelines and to take an extra look at the code to make sure that it is functional! + + We will review it as soon as possible! From 91052949651d70249c02501ac647d3c650bb18e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Sat, 11 Aug 2018 15:48:33 +0200 Subject: [PATCH 07/29] Update auto-comment.yml --- .github/auto-comment.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/auto-comment.yml b/.github/auto-comment.yml index 5b9c4f45c..4aef8cae8 100644 --- a/.github/auto-comment.yml +++ b/.github/auto-comment.yml @@ -2,8 +2,10 @@ issueOpened: > Thank your for raising a issue. We will try and get back to you as soon as possible. - Please make sure that you followed the issue template, and provied all neccessary information. Failure - to do so will prevent us from resolving the issue in a timely manner. + Please make sure that you followed the issue template, and provied all neccessary information. + Failure to do so will prevent us from resolving the issue in a timely manner. + + Please note that suggestions are now to be submitted to https://git.io/fN5B4 rather than this issue tracker! pullRequestOpened: > Thank your for raising your pull request. From 4b8c434669da5b700f700416ddaaad7526ce4b3c Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Sun, 12 Aug 2018 21:35:48 +1000 Subject: [PATCH 08/29] Fix compile (var must be final) --- .../main/java/com/intellectualcrafters/plot/commands/Auto.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Auto.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Auto.java index cc50723d4..874f2aed7 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Auto.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Auto.java @@ -235,7 +235,7 @@ public class Auto extends SubCommand { * @param start * @param schem */ - public static void autoClaimSafe(final PlotPlayer player, final PlotArea area, PlotId start, final String schem, @Nullable Integer allowed_plots) { + public static void autoClaimSafe(final PlotPlayer player, final PlotArea area, PlotId start, final String schem, @Nullable final Integer allowed_plots) { player.setMeta(Auto.class.getName(), true); autoClaimFromDatabase(player, area, start, new RunnableVal() { @Override From 01a927ccad54d5a51e3ea5c88c32332bce39e9bc Mon Sep 17 00:00:00 2001 From: sauilitired Date: Sun, 19 Aug 2018 23:12:59 +0200 Subject: [PATCH 09/29] Allow PlotRateEvent to be cancelled. Fixes #2017 --- .../bukkit/events/PlotRateEvent.java | 13 +++++++++++- .../bukkit/util/BukkitEventUtil.java | 6 +++++- .../plot/commands/Rate.java | 21 ++++++++++++------- .../plot/util/EventUtil.java | 9 ++++++++ .../nukkit/events/PlotRateEvent.java | 11 +++++++++- .../nukkit/util/NukkitEventUtil.java | 6 ++++++ .../sponge/events/PlotRateEvent.java | 17 +++++++++++++-- .../sponge/util/SpongeEventUtil.java | 5 +++++ 8 files changed, 75 insertions(+), 13 deletions(-) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotRateEvent.java b/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotRateEvent.java index 29aef2de8..2c7bcb230 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotRateEvent.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotRateEvent.java @@ -3,13 +3,15 @@ package com.plotsquared.bukkit.events; import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.Rating; +import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -public class PlotRateEvent extends PlotEvent { +public class PlotRateEvent extends PlotEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private final PlotPlayer rater; private Rating rating; + private boolean cancelled = false; public PlotRateEvent(PlotPlayer rater, Rating rating, Plot plot) { super(plot); @@ -38,4 +40,13 @@ public class PlotRateEvent extends PlotEvent { return handlers; } + @Override + public boolean isCancelled() { + return this.cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java index b004e6ff4..0a0a6c644 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java @@ -31,6 +31,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.UUID; @@ -124,10 +125,13 @@ public class BukkitEventUtil extends EventUtil { } @Override + @Nullable public Rating callRating(PlotPlayer player, Plot plot, Rating rating) { PlotRateEvent event = new PlotRateEvent(player, rating, plot); Bukkit.getServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + return null; + } return event.getRating(); } - } diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Rate.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Rate.java index 3121f5c21..2c9090e68 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Rate.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Rate.java @@ -122,12 +122,15 @@ public class Rate extends SubCommand { if (index.getValue() >= Settings.Ratings.CATEGORIES.size()) { int rV = rating.getValue(); Rating result = EventUtil.manager.callRating(this.player, plot, new Rating(rV)); - plot.addRating(this.player.getUUID(), result); - sendMessage(this.player, C.RATING_APPLIED, plot.getId().toString()); - if (Permissions.hasPermission(this.player, C.PERMISSION_COMMENT)) { - Command command = MainCommand.getInstance().getCommand(Comment.class); - if (command != null) { - MainUtil.sendMessage(this.player, C.COMMENT_THIS, command.getUsage()); + if (result != null) { + plot.addRating(this.player.getUUID(), result); + sendMessage(this.player, C.RATING_APPLIED, plot.getId().toString()); + if (Permissions.hasPermission(this.player, C.PERMISSION_COMMENT)) { + Command command = MainCommand.getInstance().getCommand(Comment.class); + if (command != null) { + MainUtil.sendMessage(this.player, C.COMMENT_THIS, + command.getUsage()); + } } } return false; @@ -189,8 +192,10 @@ public class Rate extends SubCommand { return; } Rating result = EventUtil.manager.callRating(player, plot, new Rating(rating)); - plot.addRating(uuid, result); - sendMessage(player, C.RATING_APPLIED, plot.getId().toString()); + if (result != null) { + plot.addRating(uuid, result); + sendMessage(player, C.RATING_APPLIED, plot.getId().toString()); + } } }; if (plot.getSettings().ratings == null) { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java b/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java index 33759c4cf..c1117c5a0 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java @@ -18,6 +18,7 @@ import com.intellectualcrafters.plot.object.Rating; import com.intellectualcrafters.plot.util.expiry.ExpireManager; import com.plotsquared.listener.PlayerBlockEventType; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.HashSet; import java.util.UUID; @@ -26,6 +27,14 @@ public abstract class EventUtil { public static EventUtil manager = null; + /** + * Submit a plot rate event and return the updated rating + * @param player Player that rated the plot + * @param plot Plot that was rated + * @param rating Rating given to the plot + * @return Updated rating or null if the event was cancelled + */ + @Nullable public abstract Rating callRating(PlotPlayer player, Plot plot, Rating rating); public abstract boolean callClaim(PlotPlayer player, Plot plot, boolean auto); diff --git a/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotRateEvent.java b/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotRateEvent.java index de9a9f0b5..b9d048635 100644 --- a/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotRateEvent.java +++ b/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotRateEvent.java @@ -1,15 +1,17 @@ package com.plotsquared.nukkit.events; +import cn.nukkit.event.Cancellable; import cn.nukkit.event.HandlerList; import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.Rating; -public class PlotRateEvent extends PlotEvent { +public class PlotRateEvent extends PlotEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private final PlotPlayer rater; private Rating rating; + private boolean cancelled = false; public PlotRateEvent(PlotPlayer rater, Rating rating, Plot plot) { super(plot); @@ -33,4 +35,11 @@ public class PlotRateEvent extends PlotEvent { this.rating = rating; } + @Override public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } + + @Override public boolean isCancelled() { + return this.cancelled; + } } diff --git a/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java b/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java index fdb1135ea..0168f63db 100644 --- a/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java +++ b/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java @@ -30,6 +30,8 @@ import com.plotsquared.nukkit.events.PlotMergeEvent; import com.plotsquared.nukkit.events.PlotRateEvent; import com.plotsquared.nukkit.events.PlotUnlinkEvent; import com.plotsquared.nukkit.object.NukkitPlayer; + +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.UUID; @@ -129,9 +131,13 @@ public class NukkitEventUtil extends EventUtil { } @Override + @Nullable public Rating callRating(PlotPlayer player, Plot plot, Rating rating) { PlotRateEvent event = new PlotRateEvent(player, rating, plot); plugin.getServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + return null; + } return event.getRating(); } diff --git a/Sponge/src/main/java/com/plotsquared/sponge/events/PlotRateEvent.java b/Sponge/src/main/java/com/plotsquared/sponge/events/PlotRateEvent.java index 7c90f346b..5f576c24b 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/events/PlotRateEvent.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/events/PlotRateEvent.java @@ -3,11 +3,14 @@ package com.plotsquared.sponge.events; import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.Rating; +import org.spongepowered.api.event.Cancellable; + +public class PlotRateEvent extends PlotEvent implements Cancellable { -public class PlotRateEvent extends PlotEvent { private final PlotPlayer rater; private Rating rating; - + private boolean cancelled = false; + public PlotRateEvent(final PlotPlayer rater, final Rating rating, final Plot plot) { super(plot); this.rater = rater; @@ -25,4 +28,14 @@ public class PlotRateEvent extends PlotEvent { public Rating getRating() { return rating; } + + @Override + public boolean isCancelled() { + return this.cancelled; + } + + @Override + public void setCancelled(boolean cancel) { + this.cancelled = cancel; + } } diff --git a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java index 48dfde521..5ef1a95d0 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java @@ -29,6 +29,7 @@ import com.plotsquared.sponge.events.PlotUnlinkEvent; import org.spongepowered.api.event.Event; import org.spongepowered.api.event.EventManager; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.UUID; @@ -120,9 +121,13 @@ public class SpongeEventUtil extends EventUtil { } @Override + @Nullable public Rating callRating(PlotPlayer player, Plot plot, Rating rating) { PlotRateEvent event = new PlotRateEvent(player, rating, plot); this.events.post(event); + if (event.isCancelled()) { + return null; + } return event.getRating(); } From f5a981fda7c34b132dc1898bb70c2cb433dabc0c Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Fri, 24 Aug 2018 06:46:53 +1000 Subject: [PATCH 10/29] Fix plot visit sorting --- Core/src/main/java/com/intellectualcrafters/plot/PS.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index a2f842f94..93d63bc4a 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -829,8 +829,12 @@ public class PS{ Collections.sort(areas, new Comparator() { @Override public int compare(PlotArea a, PlotArea b) { - if (priorityArea != null && StringMan.isEqual(a.toString(), b.toString())) { - return -1; + if (priorityArea != null) { + if (a.equals(priorityArea)) { + return -1; + } else if (b.equals(priorityArea)) { + return 1; + } } return a.hashCode() - b.hashCode(); } From f001eebad4620edaa3e221729a20901a5a35f5a9 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Sun, 2 Sep 2018 23:51:45 +0200 Subject: [PATCH 11/29] Update Settings.java --- .../java/com/intellectualcrafters/plot/config/Settings.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/config/Settings.java b/Core/src/main/java/com/intellectualcrafters/plot/config/Settings.java index 6ca69efd2..b99997785 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/config/Settings.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/config/Settings.java @@ -14,10 +14,12 @@ public class Settings extends Config { NOTE: Fields are saved in declaration order, classes in reverse order */ - @Comment("These first 4 aren't configurable") // This is a comment + @Comment("These first 7 aren't configurable") // This is a comment @Final // Indicates that this value isn't configurable public static final String ISSUES = "https://github.com/IntellectualSites/PlotSquared/issues"; @Final + public static final String SUGGESTION = "https://github.com/IntellectualSites/PlotSquaredSuggestions"; + @Final public static final String WIKI = "https://github.com/IntellectualSites/PlotSquared/wiki"; @Final public static String DATE; // These values are set from P2 before loading From 5b2428559ae35c5a6b6e5c4b3e79f629a9c81903 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Mon, 3 Sep 2018 00:02:07 +0200 Subject: [PATCH 12/29] Bridge template from the spigot page --- Core/src/main/resources/bridge.template | Bin 0 -> 5325 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Core/src/main/resources/bridge.template diff --git a/Core/src/main/resources/bridge.template b/Core/src/main/resources/bridge.template new file mode 100644 index 0000000000000000000000000000000000000000..d5f9ccd933cdd4107dc56b07265ed7bc13946f00 GIT binary patch literal 5325 zcmbVQWl$W-vR>TX9fAf35-hm8yDp0c7TvH|a0r^x{#o647<3DfU_z?ylXg;9+@1G|r zT~4VIxS{>ZbJ&{L*93RlX+DP(wRU;bM%NQ^Xl>aEy@mD0U(<5Myv(_|Qn{YbQ1b-C zth&a%3?BVIvsCqv-GQ8wCWTZsjd321hB-YvmROns32D?g1r*bICvVt=#gLw$$uc-^ z8W)578h*B65=Dy3eTTga6xcteEs^VAE7=OW6I(@8j~<<6f?Uw4NCo_$A&u&cJ#iEr zvM!*TKX+|?;(L4O<0JoA@b;uHqD)si!+!iZ9X(Xl_bCBM&{Qcqn;cnUin?Ky)~*m5 z@#ZKBnJw&5DWX}tafn^AZN6G(sL2pTrQYyW~2aXRBCMi&qL!
    Hdo-ZylD|?nmfcnL?+{6OE-_KSoWiA~*=g69Ry!`cF!R<{eV_r4KIJm$x<6TY!BrZle>rk+b{$gdvEb)vF&U4`n6;KYrJrDI9Rt@C9!xXX6gzB2i-W%s7^mu zCym&td^taii`5K5af0+^?@(3$)%WxIJy)Grv-(HZ-`gO8HLi)jFQ!->d%LqL3-^u|M~-a=W~ku;#q>_>)&B0f8cF$GRC2Vp1uqA77ccDQZ|0_9enmJHP6kD zz3Q5->#?WORJjF2I_Mj6V38j2IBAU`Y6rZU&YeV36NbghiE3X@>CV2@R}=PS!SaXe zYpRG{Rt5kxlu=N@bDEvP2mk>8FV*;4lnVYcltO;F^$&zv>v@O}K2qpwY3a$hx8pNw z#mDImjI53g4XnzajtPRW*xroA@u<02rKb}$N7hsecyPE_jZa%&ZOvz{-R@=X!TiKC z$B*7-jEl!;h|sTqO7RR4Ua=!`I?VlK8h$})JrO}PA?`KEfc#9{O8qC=?KvWQVTg6u zenGPr6OV@`caZwfGvSbh@wUf|yIsM+xWU6I!>Xh9TqQL^OIwL;@o{=X+8~^aOh#8C zu7^~==_4?-)z=INe{>tKBqIi2@COZ~%zg|UV==Ca zoqsusG^iBa^-(HeRpmrj;{DKLCkM_{ZTw=Z<%_QOFMGjL!UWpFgH8eaC(2Vvwud2V zdbaQvi&$RLp zWB1kOf)2?DaVa=MVR*62O(z)s@y!aig*jR6+A?WPlMX3FZEwO$(?l#=Buk3NF~6a+ zO`AGYER%qWJCg}t72I7@f=i{VtCwRMf}W~!2yQDT4A4Mw5>6oi3{LxHw8HYq5xbkE z+^OP=aXC?ff?G>8A8?3S-u3do0M`y7DmNl4|gKWGyF zun1L-6mH3BKSpXQv?78t7CawTT$&K8NH@p&J!-UTg~&Ze@=^;2G*pW;s! zZ>I}wuA3E%POhlV8s-k08D;K-wHRuPQJKi^7+2k{2hpALbIPAY$qabHZ_8 zYLSp=P}wK%cV?79YA+tC__A4&DE;wi3rsmOa{oC{eUbnB)cuLw(BT}!@_Q+MMXBUy z?SXxAzHTQOJ>pNLlc`A~Y1&4m-fi0G{NYvn;$$60+9*#37tD>DlpO(#6F6_y?UjVx z-P;9?ax7*|G3)%0bF^Z_4eX;2kzLp3Csui4w?YP8@7Q$SxKmffxx0ntU1%dE_9fXR z&Q8!Cot8J1dr!Djie^S4D3H_)yy*@Voj(!wmPw_ZOc&K&Rk2jPvZKkqAt=TX3h>QL z2%0lF>(okW?E`y~v%)FXpDz_vOI~Q%os9t4-P`#B$Yy+W>GKRE)Cw}>IW`79EN~Da zY_#ta_!Q*YU809m=2f=nU5*g0{+zMBobCF8*Lsc+T8tUV#U>xILl|aR*l19jPt798 zH4ar`;@Mb?HUH_Rna0pQJ`^n;{z~viC&k=WxucxU-1$;C#JA&Bn?aV6XsfS3Nahx- zT%T6j(D@}%%4mgmpl++=C4``;IaPeX(J= z6H}P@_2moGAH6-#GQKx&#$>vIk>6bgBYN5ll>A7|K_@cgVmu4QWyGe+d_-_E*;VSq zV7bUw|L&{ut)O#$j)~fT_`2TQNXXY{w8gyT9fJ75KCH94UVvbu7QN|M&um$hmC*SG z3m$AaoIh$I<9Sc|J^$QTKkQ_FpWR%A;iv3*MN@V!H&na`E!ypIW|p{Xi~jC-2XFK% zjogI8{wmMc9?p;`#j+aqj$l5+J4iFIj+bw;p?(5QiMyF&%-F$}_D~&d$}kH#v2)|Q z2t0`runir_PbQOuT-cTBhu~HKi{u`W)~P#h!_#n8O;`6~nigY)eu96=mr~O77hG4_ zZA!UL-uW!znDOU+86!wekvF8KEu#%|v;zAfGkjEB%@zxV{S%1lPGaN>%!=Q{OcNYQ zNxUUrc6Se3$WFv#Cw$;1E$dL0#(pp2!Xa@1<_pm1hq?QWAunq7&kIDk8>-R750?Wz zmGV&~S58mEP}+-(C`0DebA^Jjhg^n_O20pn2{ngFw5Bt_zvpw;!w~xZY}k_5(FF?P zHzF#^&{BroU=-n-q7#!IeeRxfY;EVo{EyK-Aih79N5r zyX^(hf35qzUp_+gVtWEGnG?!bAbbzBklGSapJTk0nQ7L!E05B{Na!j zNAziTW}u>!84W~V<(O*1sxGIg88WAm!eh$KL>#G}|0*USjj@*bmc|jEGb5T>g3l{0 zdNRwcWS6HI4d~R$_Jws@i}fp1F|<2W2*Uc<4n`IpWOKWlbx9KV6gR|*M&Q@2W^r$a zwca-O@*KGMoGK`NtHSE;snk-j)w$s=nXy?{m>5Jz)nSu6rJ3hAIQfB@<6AXlhSLpc zB#>jjhL}6d?L02tm3Q#{1M@28^sM-G%%Kq>^g@5MzB@h|`2@&lr3J6X&QDAuKYkRR zqjpK?TVY*-EeD+^a039j%ULsSZeuE(X=5q09jthPq_NRgN)2P#;1YyY80;XpU`{C_6qY;@tzpKPot{|Q zJXp0suMA(GG`+m{)qFybRyen{qE1I#@k?4NzU3;&Xcg0MajVH*3ch>ykiQbNOH=Q! z*Kym-yeFbq_iB8WZT5oig0AvwclDq~+W|Ut_wSw%gnOMCV-U9`UVi zhq-0^e~)s9GF9b#@BjeUFa7%*CH|G8uGWqa2Xj|zD5t9<Ft2xJ8M+a*y)tVVv z+}2Armtk<3mHlOHB8_tYu9t?D^X4b+NlD?rU<`2(Q<0$=BCLHEdaIEduE zc;&r$;g!HN(9T~F`a+h?FSa35xPJgg5i1%{%&KV_&4~&y?rQT5a^Ad%Lq)J@m6}NfQ>-1zzTZ@Oso-_qP zRLZiB6BAZBIFAP0POuMfN=1HfIm31KhNpEIkUgYf7r194}+$m{8v+d zu64f$|39SQ7fJ9BO#PJx_-`|RPS@Xs^A8!t{zqp1?=t$|=Kk#5-x&Bq-r)TmA~ckd TkbmDp{Ix=U1?DBe@6-PPqm#)9 literal 0 HcmV?d00001 From 979b3c040839c16225ae0a4abcfb5bc1d276b7f6 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Mon, 3 Sep 2018 00:04:32 +0200 Subject: [PATCH 13/29] Added bridge template and korean translation --- Core/src/main/java/com/intellectualcrafters/plot/PS.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index 93d63bc4a..37988f865 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -294,10 +294,12 @@ public class PS{ copyFile("automerge.js", Settings.Paths.SCRIPTS); copyFile("town.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); + copyFile("bridge.template", Settings.Paths.TEMPLATES); copyFile("german.yml", Settings.Paths.TRANSLATIONS); copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS); copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS); copyFile("italian.yml", Settings.Paths.TRANSLATIONS); + copyFile("Ko-kr.yml", Settings.Paths.TRANSLATIONS); showDebug(); } catch (Throwable e) { e.printStackTrace(); From 906f16d07570baf47ea6305d3977494233e51082 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Mon, 10 Sep 2018 06:38:22 +1000 Subject: [PATCH 14/29] Fixes #2092 --- .../plotsquared/sponge/util/block/SpongeLocalQueue.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Sponge/src/main/java/com/plotsquared/sponge/util/block/SpongeLocalQueue.java b/Sponge/src/main/java/com/plotsquared/sponge/util/block/SpongeLocalQueue.java index b74b9f8d8..ed1c664dd 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/util/block/SpongeLocalQueue.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/util/block/SpongeLocalQueue.java @@ -434,6 +434,7 @@ public class SpongeLocalQueue extends BasicLocalBlockQueue { public void setBlocks(LocalChunk lc) { World worldObj = getSpongeWorld(); + net.minecraft.world.World nmsWorld = ((net.minecraft.world.World) worldObj); org.spongepowered.api.world.Chunk spongeChunk = (org.spongepowered.api.world.Chunk) getChunk(worldObj, lc.getX(), lc.getZ()); Chunk nmsChunk = (Chunk) spongeChunk; char[][] ids = ((CharLocalChunk) lc).blocks; @@ -442,7 +443,12 @@ public class SpongeLocalQueue extends BasicLocalBlockQueue { if (array == null) { continue; } - ExtendedBlockStorage section = nmsChunk.getBlockStorageArray()[layer]; + ExtendedBlockStorage[] sections = nmsChunk.getBlockStorageArray(); + ExtendedBlockStorage section = sections[layer]; + if (section == null) { + section = sections[layer] = new ExtendedBlockStorage(layer << 4, nmsWorld.provider.hasSkyLight()); + } + short[] cacheX = MainUtil.x_loc[0]; short[] cacheY = MainUtil.y_loc[0]; short[] cacheZ = MainUtil.z_loc[0]; From 2e7d95f5a6be26388e149abb305cd4d3a0de1b06 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Mon, 10 Sep 2018 07:45:00 +1000 Subject: [PATCH 15/29] Fix sponge schem save --- .../com/plotsquared/sponge/util/SpongeSchematicHandler.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java index 022e4146e..9c1c81f56 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java @@ -123,11 +123,11 @@ public class SpongeSchematicHandler extends SchematicHandler { ChunkLoc chunk = chunks.remove(0); int X = chunk.x; int Z = chunk.z; - int xxb = X << 4; - int zzb = Z << 4; - if (!worldObj.getChunk(xxb, 1, zzb).isPresent() && !worldObj.loadChunk(xxb, 1, zzb, false).isPresent()) { + if (!worldObj.getChunk(X, 0, Z).isPresent() && !worldObj.loadChunk(X, 0, Z, false).isPresent()) { continue; } + int xxb = X << 4; + int zzb = Z << 4; int xxt = xxb + 15; int zzt = zzb + 15; From eab918bcd456dcdd404f14acc0f71096f401b284 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Mon, 10 Sep 2018 07:46:56 +1000 Subject: [PATCH 16/29] minor sponge cleanup --- .../com/plotsquared/sponge/util/SpongeSchematicHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java index 9c1c81f56..4bc55fd47 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeSchematicHandler.java @@ -147,10 +147,10 @@ public class SpongeSchematicHandler extends SchematicHandler { int ry = y - sy; int i1 = ry * width * length; for (int z = zzb; z <= zzt; z++) { - int rz = z - p1z; + int rz = z - bz; int i2 = i1 + rz * width; for (int x = xxb; x <= xxt; x++) { - int rx = x - p1x; + int rx = x - bx; int index = i2 + rx; BlockState state = worldObj.getBlock(x, y, z); From 9e9b21779c91c414d8be9d7c05f91415a28c06f1 Mon Sep 17 00:00:00 2001 From: dordsor21 Date: Wed, 19 Sep 2018 16:57:33 +0100 Subject: [PATCH 17/29] Add PlotChangeOwner Event --- .../bukkit/events/PlotChangeOwnerEvent.java | 107 +++++++++++++++++ .../bukkit/util/BukkitEventUtil.java | 22 +--- .../plot/commands/Owner.java | 25 ++-- .../intellectualcrafters/plot/config/C.java | 1 + .../plot/object/Plot.java | 31 +++++ .../plot/util/EventUtil.java | 2 + .../plot/util/EventUtilTest.java | 2 + .../nukkit/events/PlotChangeOwnerEvent.java | 108 ++++++++++++++++++ .../nukkit/util/NukkitEventUtil.java | 22 +--- .../sponge/events/PlotChangeOwnerEvent.java | 97 ++++++++++++++++ .../sponge/util/SpongeEventUtil.java | 24 ++-- 11 files changed, 379 insertions(+), 62 deletions(-) create mode 100644 Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotChangeOwnerEvent.java create mode 100644 Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotChangeOwnerEvent.java create mode 100644 Sponge/src/main/java/com/plotsquared/sponge/events/PlotChangeOwnerEvent.java diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotChangeOwnerEvent.java b/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotChangeOwnerEvent.java new file mode 100644 index 000000000..81dea45a3 --- /dev/null +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/events/PlotChangeOwnerEvent.java @@ -0,0 +1,107 @@ +package com.plotsquared.bukkit.events; + +import com.intellectualcrafters.plot.object.Plot; +import com.intellectualcrafters.plot.object.PlotId; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; + +import java.util.UUID; + +public class PlotChangeOwnerEvent extends PlotEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + private final Player initiator; + private final UUID newOwner; + private final UUID oldOwner; + private boolean hasOldOwner; + private boolean cancelled; + + /** + * PlotChangeOwnerEvent: Called when a plot's owner is change. + * + * @param newOwner The new owner of the plot + * @param oldOwner The old owner of the plot + * @param plot The plot having its owner changed + */ + public PlotChangeOwnerEvent(Player initiator, Plot plot, UUID oldOwner, UUID newOwner, boolean hasOldOwner) { + super(plot); + this.initiator = initiator; + this.newOwner = newOwner; + this.oldOwner = oldOwner; + this.hasOldOwner = hasOldOwner; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + /** + * Get the PlotId. + * + * @return PlotId + */ + public PlotId getPlotId() { + return getPlot().getId(); + } + + /** + * Get the world name. + * + * @return String + */ + public String getWorld() { + return getPlot().getWorldName(); + } + + /** + * Get the change-owner initator + * + * @return Player + */ + public Player getInitiator() { + return this.initiator; + } + + /** + * Get the old owner of the plot. Null if not exists. + * + * @return UUID + */ + public UUID getOldOwner() { + return this.oldOwner; + } + + /** + * Get the new owner of the plot + * + * @return UUID + */ + public UUID getNewOwner() { + return this.newOwner; + } + + /** + * Get if the plot had an old owner + * + * @return boolean + */ + public boolean hasOldOwner() { + return this.hasOldOwner; + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + + @Override + public boolean isCancelled() { + return this.cancelled; + } + + @Override + public void setCancelled(boolean b) { + this.cancelled = b; + } +} diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java index 0a0a6c644..6564c6dc7 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java @@ -9,22 +9,7 @@ import com.intellectualcrafters.plot.object.PlotId; import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.Rating; import com.intellectualcrafters.plot.util.EventUtil; -import com.plotsquared.bukkit.events.ClusterFlagRemoveEvent; -import com.plotsquared.bukkit.events.PlayerClaimPlotEvent; -import com.plotsquared.bukkit.events.PlayerEnterPlotEvent; -import com.plotsquared.bukkit.events.PlayerLeavePlotEvent; -import com.plotsquared.bukkit.events.PlayerPlotDeniedEvent; -import com.plotsquared.bukkit.events.PlayerPlotHelperEvent; -import com.plotsquared.bukkit.events.PlayerPlotTrustedEvent; -import com.plotsquared.bukkit.events.PlayerTeleportToPlotEvent; -import com.plotsquared.bukkit.events.PlotClearEvent; -import com.plotsquared.bukkit.events.PlotComponentSetEvent; -import com.plotsquared.bukkit.events.PlotDeleteEvent; -import com.plotsquared.bukkit.events.PlotFlagAddEvent; -import com.plotsquared.bukkit.events.PlotFlagRemoveEvent; -import com.plotsquared.bukkit.events.PlotMergeEvent; -import com.plotsquared.bukkit.events.PlotRateEvent; -import com.plotsquared.bukkit.events.PlotUnlinkEvent; +import com.plotsquared.bukkit.events.*; import com.plotsquared.bukkit.object.BukkitPlayer; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -119,6 +104,11 @@ public class BukkitEventUtil extends EventUtil { callEvent(new PlayerPlotHelperEvent(getPlayer(initiator), plot, player, added)); } + @Override + public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID oldOwner, UUID newOwner, boolean hasOldOwner) { + return callEvent(new PlotChangeOwnerEvent(getPlayer(initiator), plot, oldOwner, newOwner, hasOldOwner)); + } + @Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) { return callEvent(new ClusterFlagRemoveEvent(flag, cluster)); diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Owner.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Owner.java index f73cb5c61..26a4e413f 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Owner.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Owner.java @@ -4,11 +4,7 @@ import com.intellectualcrafters.plot.config.C; import com.intellectualcrafters.plot.config.Settings; import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.PlotPlayer; -import com.intellectualcrafters.plot.util.CmdConfirm; -import com.intellectualcrafters.plot.util.MainUtil; -import com.intellectualcrafters.plot.util.Permissions; -import com.intellectualcrafters.plot.util.TaskManager; -import com.intellectualcrafters.plot.util.UUIDHandler; +import com.intellectualcrafters.plot.util.*; import com.plotsquared.general.commands.CommandDeclaration; import java.util.Set; @@ -34,7 +30,8 @@ public class Owner extends SetCommand { try { uuid = UUID.fromString(value); name = MainUtil.getName(uuid); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } else { uuid = UUIDHandler.getUUID(value, null); name = UUIDHandler.getName(uuid); @@ -80,13 +77,15 @@ public class Owner extends SetCommand { Runnable run = new Runnable() { @Override public void run() { - if (removeDenied) plot.removeDenied(finalUUID); - plot.setOwner(finalUUID); - plot.setSign(finalName); - MainUtil.sendMessage(player, C.SET_OWNER); - if (other != null) { - MainUtil.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId()); - } + if (plot.setOwner(finalUUID, player)) { + if (removeDenied) plot.removeDenied(finalUUID); + plot.setSign(finalName); + MainUtil.sendMessage(player, C.SET_OWNER); + if (other != null) { + MainUtil.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId()); + } + } else + MainUtil.sendMessage(player, C.SET_OWNER_CANCELLED); } }; if (hasConfirmation(player)) { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/config/C.java b/Core/src/main/java/com/intellectualcrafters/plot/config/C.java index e7d84ff5e..8027ea622 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/config/C.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/config/C.java @@ -692,6 +692,7 @@ public enum C { * Set Owner */ SET_OWNER("$4You successfully set the plot owner", "Owner"), + SET_OWNER_CANCELLED("$2The setowner action was cancelled", "Owner"), NOW_OWNER("$4You are now owner of plot %s", "Owner"), /* * Signs diff --git a/Core/src/main/java/com/intellectualcrafters/plot/object/Plot.java b/Core/src/main/java/com/intellectualcrafters/plot/object/Plot.java index e67a98ce3..658613dbc 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/object/Plot.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/object/Plot.java @@ -746,6 +746,37 @@ public class Plot { } } + /** + * Set the plot owner (and update the database) + * @param owner + * @param initiator + * @return boolean + */ + public boolean setOwner(UUID owner, PlotPlayer initiator) { + boolean result = EventUtil.manager.callOwnerChange(initiator, this, owner, hasOwner() ? this.owner : null, hasOwner()); + if(!result) + return false; + if (!hasOwner()) { + this.owner = owner; + create(); + return true; + } + if (!isMerged()) { + if (!this.owner.equals(owner)) { + this.owner = owner; + DBFunc.setOwner(this, owner); + } + return true; + } + for (Plot current : getConnectedPlots()) { + if (!owner.equals(current.owner)) { + current.owner = owner; + DBFunc.setOwner(current, owner); + } + } + return true; + } + /** * Clear a plot. * @see this#clear(boolean, boolean, Runnable) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java b/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java index c1117c5a0..b832e3f82 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/util/EventUtil.java @@ -67,6 +67,8 @@ public abstract class EventUtil { public abstract void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added); + public abstract boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID newOwner, UUID oldOwner, boolean hasOldOwner); + public void doJoinTask(final PlotPlayer player) { if (player == null) { return; //possible future warning message to figure out where we are retrieving null diff --git a/Core/src/test/java/com/intellectualcrafters/plot/util/EventUtilTest.java b/Core/src/test/java/com/intellectualcrafters/plot/util/EventUtilTest.java index 314f7572a..a8b83c2b5 100644 --- a/Core/src/test/java/com/intellectualcrafters/plot/util/EventUtilTest.java +++ b/Core/src/test/java/com/intellectualcrafters/plot/util/EventUtilTest.java @@ -63,4 +63,6 @@ public class EventUtilTest extends EventUtil { @Override public void callTrusted(PlotPlayer initiator, Plot plot, UUID player, boolean added) {} @Override public void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added) {} + + @Override public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID newOwner, UUID oldOwner, boolean hasOldOwner) {return false;} } diff --git a/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotChangeOwnerEvent.java b/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotChangeOwnerEvent.java new file mode 100644 index 000000000..e2988519e --- /dev/null +++ b/Nukkit/src/main/java/com/plotsquared/nukkit/events/PlotChangeOwnerEvent.java @@ -0,0 +1,108 @@ +package com.plotsquared.nukkit.events; + +import cn.nukkit.Player; +import cn.nukkit.event.Cancellable; +import cn.nukkit.event.HandlerList; +import com.intellectualcrafters.plot.object.Plot; +import com.intellectualcrafters.plot.object.PlotId; + +import java.util.UUID; + +public class PlotChangeOwnerEvent extends PlotEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + private final Plot plot; + private final Player initiator; + private final UUID newOwner; + private final UUID oldOwner; + private final boolean hasOldOwner; + private boolean cancelled; + + /** + * PlotChangeOwnerEvent: Called when a plot's owner is change. + * + * @param newOwner The new owner of the plot + * @param oldOwner The old owner of the plot + * @param plot The plot having its owner changed + */ + public PlotChangeOwnerEvent(Player initiator, Plot plot, UUID oldOwner, UUID newOwner, boolean hasOldOwner) { + super(plot); + this.plot = plot; + this.initiator = initiator; + this.newOwner = newOwner; + this.hasOldOwner = hasOldOwner; + this.oldOwner = oldOwner; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + /** + * Get the PlotId. + * + * @return PlotId + */ + public PlotId getPlotId() { + return getPlot().getId(); + } + + /** + * Get the world name. + * + * @return String + */ + public String getWorld() { + return getPlot().getWorldName(); + } + + /** + * Get the change-owner initator + * + * @return Player + */ + public Player getInitiator() { + return this.initiator; + } + + /** + * Get the old owner of the plot + * + * @return UUID + */ + public UUID getOldOwner() { + return this.oldOwner; + } + + /** + * Get the new owner of the plot + * + * @return UUID + */ + public UUID getNewOwner() { + return this.newOwner; + } + + /** + * Get if the plot had an old owner + * + * @return boolean + */ + public boolean hasOldOwner() { + return this.hasOldOwner; + } + + public HandlerList getHandlers() { + return handlers; + } + + @Override + public boolean isCancelled() { + return this.cancelled; + } + + @Override + public void setCancelled(boolean b) { + this.cancelled = b; + } +} diff --git a/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java b/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java index 0168f63db..c8be83cef 100644 --- a/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java +++ b/Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java @@ -13,22 +13,7 @@ import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.Rating; import com.intellectualcrafters.plot.util.EventUtil; import com.plotsquared.nukkit.NukkitMain; -import com.plotsquared.nukkit.events.ClusterFlagRemoveEvent; -import com.plotsquared.nukkit.events.PlayerClaimPlotEvent; -import com.plotsquared.nukkit.events.PlayerEnterPlotEvent; -import com.plotsquared.nukkit.events.PlayerLeavePlotEvent; -import com.plotsquared.nukkit.events.PlayerPlotDeniedEvent; -import com.plotsquared.nukkit.events.PlayerPlotHelperEvent; -import com.plotsquared.nukkit.events.PlayerPlotTrustedEvent; -import com.plotsquared.nukkit.events.PlayerTeleportToPlotEvent; -import com.plotsquared.nukkit.events.PlotClearEvent; -import com.plotsquared.nukkit.events.PlotComponentSetEvent; -import com.plotsquared.nukkit.events.PlotDeleteEvent; -import com.plotsquared.nukkit.events.PlotFlagAddEvent; -import com.plotsquared.nukkit.events.PlotFlagRemoveEvent; -import com.plotsquared.nukkit.events.PlotMergeEvent; -import com.plotsquared.nukkit.events.PlotRateEvent; -import com.plotsquared.nukkit.events.PlotUnlinkEvent; +import com.plotsquared.nukkit.events.*; import com.plotsquared.nukkit.object.NukkitPlayer; import javax.annotation.Nullable; @@ -125,6 +110,11 @@ public class NukkitEventUtil extends EventUtil { callEvent(new PlayerPlotHelperEvent(getPlayer(initiator), plot, player, added)); } + @Override + public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID oldOwner, UUID newOwner, boolean hasOldOwner) { + return callEvent(new PlotChangeOwnerEvent(getPlayer(initiator), plot, oldOwner, newOwner, hasOldOwner)); + } + @Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) { return callEvent(new ClusterFlagRemoveEvent(flag, cluster)); diff --git a/Sponge/src/main/java/com/plotsquared/sponge/events/PlotChangeOwnerEvent.java b/Sponge/src/main/java/com/plotsquared/sponge/events/PlotChangeOwnerEvent.java new file mode 100644 index 000000000..34b721498 --- /dev/null +++ b/Sponge/src/main/java/com/plotsquared/sponge/events/PlotChangeOwnerEvent.java @@ -0,0 +1,97 @@ +package com.plotsquared.sponge.events; + +import com.intellectualcrafters.plot.object.Plot; +import com.intellectualcrafters.plot.object.PlotId; +import org.spongepowered.api.entity.living.player.Player; +import org.spongepowered.api.event.Cancellable; + +import java.util.UUID; + +public class PlotChangeOwnerEvent extends PlotEvent implements Cancellable { + + private final Player initiator; + private final UUID newOwner; + private final UUID oldOwner; + private final boolean hasOldOwner; + private boolean cancelled; + + /** + * PlotChangeOwnerEvent: Called when a plot's owner is change. + * + * @param newOwner The new owner of the plot + * @param oldOwner The old owner of the plot + * @param plot The plot having its owner changed + */ + public PlotChangeOwnerEvent(Player initiator, Plot plot, UUID oldOwner, UUID newOwner, boolean hasOldOwner) { + super(plot); + this.initiator = initiator; + this.newOwner = newOwner; + this.oldOwner = oldOwner; + this.hasOldOwner = hasOldOwner; + } + + + /** + * Get the PlotId. + * + * @return PlotId + */ + public PlotId getPlotId() { + return getPlot().getId(); + } + + /** + * Get the world name. + * + * @return String + */ + public String getWorld() { + return getPlot().getWorldName(); + } + + /** + * Get the change-owner initator + * + * @return Player + */ + public Player getInitiator() { + return this.initiator; + } + + /** + * Get the old owner of the plot. Null if not exists. + * + * @return UUID + */ + public UUID getOldOwner() { + return this.oldOwner; + } + + /** + * Get the new owner of the plot + * + * @return UUID + */ + public UUID getNewOwner() { + return this.newOwner; + } + + /** + * Get if the plot had an old owner + * + * @return boolean + */ + public boolean hasOldOwner() { + return this.hasOldOwner; + } + + @Override + public boolean isCancelled() { + return this.cancelled; + } + + @Override + public void setCancelled(boolean b) { + this.cancelled = b; + } +} diff --git a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java index 5ef1a95d0..a6b13e85f 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java @@ -10,22 +10,7 @@ import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.Rating; import com.intellectualcrafters.plot.util.EventUtil; import com.plotsquared.sponge.SpongeMain; -import com.plotsquared.sponge.events.ClusterFlagRemoveEvent; -import com.plotsquared.sponge.events.PlayerClaimPlotEvent; -import com.plotsquared.sponge.events.PlayerEnterPlotEvent; -import com.plotsquared.sponge.events.PlayerLeavePlotEvent; -import com.plotsquared.sponge.events.PlayerPlotDeniedEvent; -import com.plotsquared.sponge.events.PlayerPlotHelperEvent; -import com.plotsquared.sponge.events.PlayerPlotTrustedEvent; -import com.plotsquared.sponge.events.PlayerTeleportToPlotEvent; -import com.plotsquared.sponge.events.PlotClearEvent; -import com.plotsquared.sponge.events.PlotComponentSetEvent; -import com.plotsquared.sponge.events.PlotDeleteEvent; -import com.plotsquared.sponge.events.PlotFlagAddEvent; -import com.plotsquared.sponge.events.PlotFlagRemoveEvent; -import com.plotsquared.sponge.events.PlotMergeEvent; -import com.plotsquared.sponge.events.PlotRateEvent; -import com.plotsquared.sponge.events.PlotUnlinkEvent; +import com.plotsquared.sponge.events.*; import org.spongepowered.api.event.Event; import org.spongepowered.api.event.EventManager; @@ -114,7 +99,12 @@ public class SpongeEventUtil extends EventUtil { public void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added) { callEvent(new PlayerPlotHelperEvent(SpongeUtil.getPlayer(initiator), plot, player, added)); } - + + @Override + public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID oldOwner, UUID newOwner, boolean hasOldOwner) { + return callEvent(new PlotChangeOwnerEvent(SpongeUtil.getPlayer(initiator), plot, oldOwner, newOwner, hasOldOwner)); + } + @Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) { return callEvent(new ClusterFlagRemoveEvent(flag, cluster)); From 88e80f54f7e6c012930dbb4d719fa041d2cc8e34 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:30:38 +0200 Subject: [PATCH 18/29] Updating locale names --- .../main/java/com/intellectualcrafters/plot/PS.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index a2f842f94..e2bc5cc2e 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -294,10 +294,12 @@ public class PS{ copyFile("automerge.js", Settings.Paths.SCRIPTS); copyFile("town.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); - copyFile("german.yml", Settings.Paths.TRANSLATIONS); - copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS); - copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS); - copyFile("italian.yml", Settings.Paths.TRANSLATIONS); + copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); + copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); + copyFile("it-IT.yml", Settings.Paths.TRANSLATIONS); + copyFile("ko-KR.yml", Settings.Paths.TRANSLATIONS); + copyFile("zh-CN.yml", Settings.Paths.TRANSLATIONS); + copyFile("chinese.yml", Settings.Paths.TRANSLATIONS); showDebug(); } catch (Throwable e) { e.printStackTrace(); From b6303a76152e9b77c0d33408ef2d1435b8c6dce1 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:33:03 +0200 Subject: [PATCH 19/29] Update PS.java --- Core/src/main/java/com/intellectualcrafters/plot/PS.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index e2bc5cc2e..147d332de 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -293,6 +293,7 @@ public class PS{ // Copy files copyFile("automerge.js", Settings.Paths.SCRIPTS); copyFile("town.template", Settings.Paths.TEMPLATES); + copyFile("bridge.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); From 11e2777f605119e9b30f7a71540f49fdce5fcda4 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:36:14 +0200 Subject: [PATCH 20/29] Update PS.java --- Core/src/main/java/com/intellectualcrafters/plot/PS.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index 147d332de..e2bc5cc2e 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -293,7 +293,6 @@ public class PS{ // Copy files copyFile("automerge.js", Settings.Paths.SCRIPTS); copyFile("town.template", Settings.Paths.TEMPLATES); - copyFile("bridge.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); From 70584a338ccd2c5e2594c116d8e2f09ea10c1a07 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:38:01 +0200 Subject: [PATCH 21/29] Update PS.java --- .../main/java/com/intellectualcrafters/plot/PS.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index e2bc5cc2e..a2f842f94 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -294,12 +294,10 @@ public class PS{ copyFile("automerge.js", Settings.Paths.SCRIPTS); copyFile("town.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); - copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); - copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); - copyFile("it-IT.yml", Settings.Paths.TRANSLATIONS); - copyFile("ko-KR.yml", Settings.Paths.TRANSLATIONS); - copyFile("zh-CN.yml", Settings.Paths.TRANSLATIONS); - copyFile("chinese.yml", Settings.Paths.TRANSLATIONS); + copyFile("german.yml", Settings.Paths.TRANSLATIONS); + copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS); + copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS); + copyFile("italian.yml", Settings.Paths.TRANSLATIONS); showDebug(); } catch (Throwable e) { e.printStackTrace(); From 765db2df0c1085dad4bcfc5c4888420126e1f4e1 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:49:31 +0200 Subject: [PATCH 22/29] Added languages 'back' --- .../main/java/com/intellectualcrafters/plot/PS.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index 37988f865..26564f8f7 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -295,11 +295,12 @@ public class PS{ copyFile("town.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); copyFile("bridge.template", Settings.Paths.TEMPLATES); - copyFile("german.yml", Settings.Paths.TRANSLATIONS); - copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS); - copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS); - copyFile("italian.yml", Settings.Paths.TRANSLATIONS); - copyFile("Ko-kr.yml", Settings.Paths.TRANSLATIONS); + copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); + copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); + copyFile("chinese.yml", Settings.Paths.TRANSLATIONS); + copyFile("zh-CN.yml", Settings.Paths.TRANSLATIONS); + copyFile("it-IT.yml", Settings.Paths.TRANSLATIONS); + copyFile("ko-KR.yml", Settings.Paths.TRANSLATIONS); showDebug(); } catch (Throwable e) { e.printStackTrace(); From e2e34f24d6cd9ade09d08e6b2541f157126db930 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:51:43 +0200 Subject: [PATCH 23/29] Rename zh_CN.yml to zh-CN.yml --- Core/src/main/resources/{zh_CN.yml => zh-CN.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Core/src/main/resources/{zh_CN.yml => zh-CN.yml} (100%) diff --git a/Core/src/main/resources/zh_CN.yml b/Core/src/main/resources/zh-CN.yml similarity index 100% rename from Core/src/main/resources/zh_CN.yml rename to Core/src/main/resources/zh-CN.yml From 1734c0e357c9d31ff32f5a8014a28a3fb59923a1 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 16:52:35 +0200 Subject: [PATCH 24/29] Rename ko_KR.yml to ko-KR.yml --- Core/src/main/resources/{ko_KR.yml => ko-KR.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Core/src/main/resources/{ko_KR.yml => ko-KR.yml} (100%) diff --git a/Core/src/main/resources/ko_KR.yml b/Core/src/main/resources/ko-KR.yml similarity index 100% rename from Core/src/main/resources/ko_KR.yml rename to Core/src/main/resources/ko-KR.yml From ba6818a5bd69b77ab04ad80ff9668f9a5ec9b519 Mon Sep 17 00:00:00 2001 From: Leomixer17 Date: Wed, 10 Oct 2018 17:27:29 +0200 Subject: [PATCH 25/29] Delete chinese.yml --- chinese.yml | 407 ---------------------------------------------------- 1 file changed, 407 deletions(-) delete mode 100644 chinese.yml diff --git a/chinese.yml b/chinese.yml deleted file mode 100644 index 4afc3564a..000000000 --- a/chinese.yml +++ /dev/null @@ -1,407 +0,0 @@ -# This file is translated by c7w, w/1345979462 and 佛壁灯(f0rb1d) -# Translation Guide -# 1. 句子与变量、命令、数字之间保留空隙,全角符号除外 -# 2. 使用已成功/已复制/正在/未启用/已启用/请使用开头 -# 3. 使用阁下(其实好像也无所谓) -# 4. 失败/成功/无效应放在句末 -# 就差不多这些 -confirm: - expired_confirm: $2确认已过期,请重新执行命令! - failed_confirm: $2阁下没有待确认的操作! - requires_confirm: '$2阁下是否确定执行:$1%s$2?&-$2此操作无法恢复!若阁下确定,请输入:$1/plot confirm' -move: - move_success: $4已成功移除地皮。 - copy_success: $4已成功复制地皮。 - requires_unowned: $2指定地点已被占用。 -set: - set_attribute: $4已成功设置 %s0 为 %s1 -web: - generating_link: $1正在处理地皮··· - generating_link_failed: $2生成下载链接失败! - save_failed: $2保存失败 - load_null: $2请使用 $4/plot load$2 获取布局列表 - load_failed: $2载入布局失败 - load_list: '$2要载入布局,请使用 $1/plot load #' - save_success: $1已成功保存! -compass: - compass_target: $4已成功将指南针指向地皮 -cluster: - cluster_available_args: '$1以下子指令可用:$4list$2, $4create$2, - $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, - $4tp$2, $4sethome' - cluster_list_heading: $2此世界中有 $1%s$2 个群集 - cluster_list_element: $2 - $1%s&- - cluster_intersection: '$计划的区域与%s0重叠' - cluster_outside: '$2计划的区域在地皮区域%s0外' - cluster_added: $4已成功创建群集。 - cluster_deleted: $4已成功删除群集。 - cluster_resized: $4已成功调整群集尺寸。 - cluster_added_user: $4已成功将玩家添加到群集。 - cannot_kick_player: $2阁下无法踢出此玩家 - cluster_invited: '$1阁下已被邀请至群集 $2%s' - cluster_removed: '$1阁下已被群集 $2%s $1移除' - cluster_kicked_user: $4已成功踢出此玩家 - invalid_cluster: '$1群集名 $2%s 无效' - cluster_not_added: $2此玩家未被添加至地皮群集 - cluster_cannot_leave: $1阁下必须在离开前先删除群集或转移所有权 - cluster_added_helper: $4已成功将帮手添加到群集 - cluster_removed_helper: $4已成功将帮手从群集移除 - cluster_regenerated: $4已成功开始群集重生 - cluster_teleporting: $4正在传送··· - cluster_info: '$1当前群集:$2%id%&-$1名称:$2%name%&-$1所有者:$2%owner%&-$1大小: - $2%size%&-$1权限:$2%rights%' -border: - border: $2阁下处于当前地图边界外 -unclaim: - unclaim_success: $4阁下已成功解除认领地皮。 - unclaim_failed: $2无法解除认领地皮 -worldedit masks: - worldedit_delayed: $2请在我们处理阁下的WorldEdit操作时稍等片刻··· - worldedit_run: '$2很抱歉造成了延迟。现正执行:%s' - require_selection_in_mask: $2选中的 %s 不在阁下的地皮覆盖范围内。 - 阁下仅可对自己的地皮做出修改。 - worldedit_volume: $2阁下无法选择 %current% 体积。阁下可编辑的最大 - 体积为 %max%。 - worldedit_iterations: $2阁下无法重复 %current% 次。容许的最大 - 重复次数为 %max%。 - worldedit_unsafe: $2已禁止对此命令的访问 - worldedit_bypass: $2&o要绕过对阁下的限制,请使用 $4/plot wea - worldedit_bypassed: $2当前正绕过WorldEdit功能限制。 - worldedit_unmasked: $1阁下的WorldEdit功能现已解除限制。 - worldedit_restricted: $1阁下的WorldEdit功能现已受限制。 -gamemode: - gamemode_was_bypassed: $1阁下绕过了为 $2{plot} $1设置的游戏模式($2{gamemode}$1)限制 -height limit: - height_limit: $1此地皮拥有高度 $2{limit} 的限制 -records: - record_play: $2%player $2已开始游玩记录 $1%name - notify_enter: $2%player $2已进入阁下的地皮($1%plot$2) - notify_leave: $2%player $2已离开阁下的地皮($1%plot$2) -swap: - swap_overlap: $2计划的区域不允许重叠 - swap_dimensions: $2计划的区域必须有可对比的维度 - swap_syntax: $2/plot swap <编号> - swap_success: $4已成功交换地皮 - started_swap: $2已开始地皮交换任务。阁下将会在完成时收到提醒 -comment: - inbox_notification: '%s 条未读消息。请使用 /plot inbox 阅读' - not_valid_inbox_index: $2索引 %s 处无评论 - inbox_item: $2 - $4%s - comment_syntax: $2请使用 /plot comment [X;Z] <%s> <评论> - invalid_inbox: '$2此收件箱无效。&-$1接受的值:%s' - no_perm_inbox: $2阁下没有此收件箱的权限 - no_perm_inbox_modify: $2阁下没有编辑此收件箱的权限 - no_plot_inbox: $2阁下必须站在地皮内或提供地皮参数 - comment_removed: $4已成功删除评论$2 - '$3%s$2' - comment_added: $4有玩家留下了一条评论 - comment_header: $2&m---------&r $1评论 $2&m---------&r - inbox_empty: $2无评论 -console: - not_console: $2由于安全考虑,此命令只可由控制台执行。 - is_console: $2此命令只可被玩家执行。 -inventory: - inventory_usage: '&c用法:&6{usage}' - inventory_desc: '&c描述:&6{desc}' - inventory_category: '&c分类:&6{category}' -clipboard: - clipboard_set: $2当前地皮已复制到阁下的剪贴板,请使用 $1/plot paste$2 粘贴 - pasted: $4已成功粘贴选择项并已从剪贴板中清除。 - paste_failed: '$2无法粘贴选择项。理由:$2%s' - no_clipboard: $2阁下的剪贴板内无选择项 - clipboard_info: '$2当前选择项 - 地皮编号:$1%id$2, 宽度:$1%width$2, 方块 - 总数: $1%total$2' -toggle: - toggle_enabled: '$2已启用设置:%s' - toggle_disabled: '$2已禁用设置:%s' -blocked command: - command_blocked: $2此地皮中不允许使用此命令 -done: - done_already_done: $2此地皮已被标记为已完成 - done_not_done: $2此地皮未标记为已完成。 - done_insufficient_complexity: $2此地皮过于简单。请在使用此命令前添加更多的细节。 - done_success: $1已成功标记此地皮为已完成。 - done_removed: $1阁下现在可以在此地皮中继续建造了。 -ratings: - ratings_purged: $2已清除此地皮的评分 - rating_not_valid: $2阁下需要指定介于 1 到 10 之间的数字 - rating_already_exists: $2阁下已评价过地皮 $2%s - rating_applied: $4阁下已成功评价地皮 $2%s - rating_not_your_own: $2阁下无法评价自己的地皮 - rating_not_done: $2阁下仅可评价已完成的地皮。 - rating_not_owned: $2阁下无法评价尚未被任何玩家拥有的地皮 -tutorial: - rate_this: $2评价此地皮! - comment_this: '$2请为地皮 %s 留下反馈' -economy: - econ_disabled: $2未启用经济系统 - cannot_afford_plot: $2阁下无法购买此地皮。此地皮价值 $1%s - not_for_sale: $2此地皮恕不出售 - cannot_buy_own: $2阁下无法购买自己的地皮 - plot_sold: $4阁下的地皮 $1%s0$4 已以 $1$%s2$4 的价格售给了 $1%s1 - cannot_afford_merge: $2阁下无法合并地皮。此操作花费 $1%s - added_balance: $1%s $2已转入您的余额 - removed_balance: $1%s $2已从您的余额中转出 - removed_granted_plot: $2阁下已使用了授予的 %s 块地皮,剩余 $1%s $2块 -setup: - setup_init: '$1用法:$2/plot setup <值>' - setup_step: '$3[$1步骤 %s0$3] $1%s1 $2- $1预期值:$2%s2 $1默认值:$2%s3' - setup_invalid_arg: '$2%s0 不是步骤 %s1 的有效参数。要取消配置 - 请使用:$1/plot setup cancel' - setup_valid_arg: $2值 $1%s0 $2已设置为 %s1 - setup_finished: $4阁下应已被传送至新建的世界。否则阁下将需 - 在 bukkit.yml 或世界管理插件中手动设置生成器。 - setup_world_taken: $2%s 已是一个世界 - setup_missing_world: $2阁下需要指定世界名($1/plot setup &l<世界名>$1 - <生成器>$2)&-$1附加指令:&-$2 - $1/plot setup <值>&-$2 - $1/plot - setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2阁下需要指定生成器($1/plot setup <世界名> - &l<生成器>&r$2)&-$1附加指令&-$2 - $1/plot setup <值>&-$2 - $1/plot - setup back&-$2 - $1/plot setup cancel - setup_invalid_generator: '$2无效的生成器。可能选项:%s' -schematics: - schematic_too_large: $2此地皮过大无法进行此操作! - schematic_missing_arg: '$2阁下需要指定参数。可能的值:$1test - <名称>$2 , $1save$2 , $1paste $2, $1exportall' - schematic_invalid: '$2布局无效。理由:$2%s' - schematic_valid: $2布局无效 - schematic_paste_failed: $2粘贴布局失败 - schematic_paste_success: $4已成功粘贴布局 -titles: - title_entered_plot: '$1地皮:%world%;%x%;%z%' - title_entered_plot_sub: $4由 %s 所有 - prefix_greeting: '$1%id%$2> ' - prefix_farewell: '$1%id%$2> ' -core: - task_start: 正在启动任务··· - prefix: $3[$1P2$3] $2 - enabled: $1%s0 现已启用 -reload: - reloaded_configs: $1已重载翻译及世界设置 - reload_failed: $2重载文件配置失败 -desc: - desc_set: $2已设置地皮描述 - desc_unset: $2已重置地皮描述 - missing_desc: $2阁下需要指定描述 -alias: - alias_set_to: $2地皮别名已设置为 $1%alias% - alias_removed: $2已移除地皮别名 - missing_alias: $2阁下需要指定别名 - alias_too_long: $2别名长度必须小于 50 个字符 - alias_is_taken: $2此别名已被占用 -position: - missing_position: '$2阁下需要指定位置。可能的值:$1none' - position_set: $1已设置家为阁下的当前位置 - position_unset: $1已重置家为默认位置 - home_argument: $2使用 /plot set home [无] - invalid_position: $2位置值无效 -cap: - entity_cap: $2阁下被禁止生成更多怪物 -time: - time_format: $1%hours%, %min%, %sec% -permission: - no_schematic_permission: $2阁下没有使用布局的所需权限 - $1%s - no_permission: '$2阁下缺少权限节点:$1%s' - no_permission_event: '$2阁下缺少权限节点:$1%s' - no_plot_perms: $2阁下必须为地皮所有者才能执行此操作 - cant_claim_more_plots: $2阁下无法拥有更多地皮。 - cant_claim_more_clusters: $2阁下无法拥有更多群集。 - cant_transfer_more_plots: $2阁下无法赠予此用户更多地皮 - cant_claim_more_plots_num: $2阁下无法同时拥有多于 $1%s $2块地皮 - you_be_denied: $2阁下被禁止进入此地皮 - merge_request_confirm: 来自 %s 的合并请求 -merge: - merge_not_valid: $2此合并请求已不再可用。 - merge_accepted: $2此合并请求已被接受 - success_merge: $2已合并地皮! - merge_requested: $2已成功发送合并请求 - no_perm_merge: '$2阁下不是地皮 $1%plot% $2的所有者' - no_available_automerge: $2阁下在指定方向不拥有任何相邻的地皮 - 或阁下被禁止合并所需的大小。 - unlink_required: $2需要解除关联才能执行此操作。 - unlink_impossible: $2阁下只能解除关联大地皮 - unlink_success: $2已成功将地皮解除关联。 -commandconfig: - not_valid_subcommand: $2此子命令无效 - did_you_mean: '$2阁下的意思是否是:$1%s' - name_little: $2%s0 名称过短,$1%s1$2<$1%s3 - no_commands: $2很抱歉,但阁下无法使用任何子命令。 - subcommand_set_options_header: '$2可能的值:' - command_syntax: '$1用法:$2%s' - flag_tutorial_usage: '$1请让管理员设置标记:$2%s' -errors: - invalid_player_wait: '$2未找到玩家:$1%s$2,正在获取。请稍后再试。' - invalid_player: '$2未找到玩家:$1%s$2.' - invalid_player_offline: '$2玩家 $1%s $2必须在线。' - invalid_command_flag: '$2无效的命令标记:%s0' - error: '$2发生了 %s 错误' - command_went_wrong: $2执行此命令时发生错误··· - no_free_plots: $2无可用的免费地皮 - not_in_plot: $2阁下不在地皮上 - not_loaded: $2无法加载地皮 - not_in_cluster: $2阁下必须在地皮群集上以进行此操作 - not_in_plot_world: $2阁下不在地皮区域上 - plotworld_incompatible: $2两个世界必须相互兼容 - not_valid_world: $2世界无效(大小写敏感) - not_valid_plot_world: $2地皮区域无效(大小写敏感) - no_plots: $2阁下不拥有任何地皮 - wait_for_timer: $2一个设置方块计时器已关联到当前地皮或阁下上。请等待此操作完成 -paste: - debug_report_created: '$1已上传完整调试日志至:$1%url%' -purge: - purge_success: $4已成功清除了 %s 块地皮 -trim: - trim_in_progress: 世界修整任务正在进行中! - not_valid_hybrid_plot_world: 需要混合地皮管理以执行此操作 -block list: - block_list_separater: '$1,$2 ' -biome: - need_biome: $2阁下需要指定一个有效的生态群落。 - biome_set_to: $2地皮生态群落被设置为 $2 -teleport: - teleported_to_plot: $1阁下已被传送 - teleported_to_road: $2阁下已被传送到道路上 - teleport_in_seconds: $1%s 秒后传送。请勿移动··· - teleport_failed: $2传送由于移动或伤害取消 -set block: - set_block_action_finished: $1已完成最后一个设置方块操作。 -unsafe: - debugallowunsafe_on: $2已允许不安全的操作 - debugallowunsafe_off: $2已禁用不安全的操作 -debug: - debug_header: $1调试信息&- - debug_section: $2>> $1&l%val% - debug_line: $2>> $1%var%$2:$1 %val%&- -invalid: - not_valid_data: $2数据编号无效。 - not_valid_block: '$2%s 不是有效的方块。' - not_allowed_block: '$2方块 %s 被禁止' - not_valid_number: '$2%s 不是区间内的有效数字' - not_valid_plot_id: $2地皮编号无效。 - plot_id_form: '$2地皮编号必须为 $1X;Y 形式 $2例如:$1-5;7' - not_your_plot: $2此地皮不为阁下拥有 - no_such_plot: $2没有此地皮 - player_has_not_been_on: $2此玩家从未进入过地皮世界 - found_no_plots: $2阁下的搜索查询未找到地皮 - found_no_plots_for_player: '$2未找到玩家 %s 的地皮' -camera: - camera_started: $2阁下已进入地皮 $1%s 的摄像模式 - camera_stopped: $2阁下已不再处于摄像模式 -need: - need_plot_number: $2阁下必须指定地皮数字或别名 - need_block: $2阁下必须指定方块 - need_plot_id: $2阁下必须指定地皮编号。 - need_plot_world: $2阁下必须指定地皮区域。 - need_user: $2阁下必须指定用户名 -near: - plot_near: '$1玩家:%s0' -info: - none: 无 - now: 现在 - never: 从不 - unknown: 未知 - everyone: 所有人 - plot_unowned: $2当前地皮必须有所有者才能执行此操作 - plot_info_unclaimed: $2地皮 $1%s$2 尚未被领取 - plot_info_header: $3&m---------&r $1信息 $3&m--------- - plot_info: '$1编号:$2%id%$1&-$1别名:$2%alias%$1&-$1所有者:$2%owner%$1&-$1生态群落: - $2%biome%$1&-$1可以建造:$2%build%$1&-$1评分:$2%rating%&-$1可见:$2%seen%&-$1受信: - $2%trusted%$1&-$1成员:$2%members%$1&-$1拒绝:$2%denied%$1&-$1标记:$2%flags%' - plot_info_footer: $3&m---------&r $1信息 $3&m--------- - plot_info_trusted: $1受信:$2 %trusted% - plot_info_members: $1成员:$2 %members% - plot_info_denied: $1拒绝:$2 %denied% - plot_info_flags: $1标记:$2 %flags% - plot_info_biome: $1生态群落:$2 %biome% - plot_info_rating: $1评分:$2 %rating% - plot_info_owner: $1所有者:$2 %owner% - plot_info_id: $1编号:$2 %id% - plot_info_alias: $1别名:$2 %alias% - plot_info_size: $1大小:$2 %size% - plot_info_seen: $1可见:$2 %seen% - plot_user_list: ' $1%user%$2,' - plot_flag_list: $1%s0:%s1$2 - info_syntax_console: $2/plot info X;Y -working: - generating_component: $1已开始从阁下的设置中生成元件 - clearing_plot: $2正在清除地皮异步。 - clearing_done: $4已清除!此操作花费了 %s 毫秒。 - deleting_done: $4已删除!此操作花费了 %s 毫秒。 - plot_not_claimed: $2地皮未领取 - plot_is_claimed: $2此地皮已被领取 - claimed: $4阁下已成功领取地皮 -list: - comment_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 条评论 - clickable: '(可交互)' - area_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块区域 - plot_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块地皮 - plot_list_header: $1共计 %word% 块地皮 - plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner - plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner - plot_list_footer: $2>> $1%word% 共计 $2%num% $1领取了地皮 %plot%。 -left: - left_plot: $2阁下已离开地皮 -chat: - plot_chat_spy_format: '$2[$1地皮间谍$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' - plot_chat_format: '$2[$1地皮老铁$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' - plot_chat_forced: $2此世界强制所有人使用地皮聊天。 - plot_chat_on: $4已启用地皮聊天。 - plot_chat_off: $4已禁用地皮聊天。 -deny: - denied_removed: $4阁下已成功解禁此玩家进入地皮 - denied_added: $4阁下已成功禁止此玩家进入地皮 - denied_need_argument: $2缺少参数。$1/plot denied add <名称> $2或 $1/plot - denied remove <名称> - was_not_denied: $2此玩家未被此地皮封禁 - you_got_denied: $4阁下已被禁止进入先前所在的地皮并已被传送至出生点 -kick: - you_got_kicked: $4阁下已被踢出! -rain: - need_on_off: '$2阁下需要指定值。可能的值:$1on$2, $1off' - setting_updated: $4阁下已成功更新设置 -flag: - flag_key: '$2关键词:%s' - flag_type: '$2类型:%s' - flag_desc: '$2描述:%s' - not_valid_flag: $2标记无效 - not_valid_flag_suggested: '$2标记无效。阁下的意思是否是:$1%s' - not_valid_value: $2标记值必须为字母数字混合编制 - flag_not_in_plot: $2此地皮不拥有此标记 - flag_not_removed: $2无法移除此标记 - flag_not_added: $2无法添加此标记 - flag_removed: $4已成功移除标记 - flag_added: $4已成功添加标记 -trusted: - trusted_added: $4阁下已成功将用户添加到地皮受信列表 - trusted_removed: $4阁下已成功将用户从地皮受信列表中移除 - was_not_added: $2此用户在此地皮上不受信任 - plot_removed_user: $1阁下所添加至的地皮 %s 由于所有者不活跃已被删除 -member: - removed_players: $2已从此地皮中移除了 %s 位玩家。 - already_owner: '$2此玩家已是地皮所有者:%s0' - already_added: '$2此玩家已被添加到此分类:%s0' - member_added: $4此用户现已可以在地皮所有者在线时建造 - member_removed: $1阁下已成功从此地皮中移除了用户 - member_was_not_added: $2此玩家并未被添加到此地皮的用户列表 - plot_max_members: $2阁下被禁止添加更多玩家至此地皮 -owner: - set_owner: $4阁下已成功设置地皮所有者 - now_owner: $4阁下现在是地皮 %s 的所有者 -signs: - owner_sign_line_1: '$1编号:$1%id%' - owner_sign_line_2: '$1所有者:' - owner_sign_line_3: $2%plr% - owner_sign_line_4: $3已被领取 -help: - help_header: $3&m---------&r $1Plot² 帮助 $3&m--------- - help_page_header: '$1分类:$2%category%$2,$1 页面:$2%current%$3/$2%max%$2' - help_footer: $3&m---------&r $1Plot² 帮助 $3&m--------- - help_info_item: $1/plot help %category% $3- $2%category_desc% - help_item: $1%usage% [%alias%]&- $3- $2%desc%&- - direction: '$1当前方向:%dir%' -grants: - granted_plots: '$1结果:剩余 $2%s $1次授权' - granted_plot: $1阁下授权了 %s0 地皮至 $2%s1 - granted_plot_failed: '$1授权失败:$2%s' -'-': - custom_string: '-' From 4b7ca2ff370581eed8634aca051496030b5090ca Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 10 Oct 2018 18:29:21 +0200 Subject: [PATCH 26/29] Minor cleanup --- Core/src/main/java/com/intellectualcrafters/plot/PS.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/PS.java b/Core/src/main/java/com/intellectualcrafters/plot/PS.java index 26564f8f7..003b6804e 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/PS.java @@ -297,7 +297,6 @@ public class PS{ copyFile("bridge.template", Settings.Paths.TEMPLATES); copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); - copyFile("chinese.yml", Settings.Paths.TRANSLATIONS); copyFile("zh-CN.yml", Settings.Paths.TRANSLATIONS); copyFile("it-IT.yml", Settings.Paths.TRANSLATIONS); copyFile("ko-KR.yml", Settings.Paths.TRANSLATIONS); From 302051a6ca09db5574bd3064669fe588ffbe243f Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Sat, 20 Oct 2018 14:03:21 +0200 Subject: [PATCH 27/29] Minor cleanup --- .../intellectualcrafters/plot/commands/Add.java | 2 +- .../plot/commands/Clear.java | 2 +- .../plot/commands/Delete.java | 7 +++++-- .../plot/commands/Kick.java | 2 +- .../plot/commands/Load.java | 2 +- .../plot/commands/Music.java | 2 +- .../plot/commands/PluginCmd.java | 1 + .../plot/commands/Relight.java | 5 ++++- .../plot/commands/Reload.java | 3 ++- .../plot/commands/SchematicCmd.java | 2 +- .../plot/commands/SetHome.java | 3 ++- .../plot/commands/Trust.java | 2 +- .../plot/flag/GameModeFlag.java | 2 +- .../plot/flag/IntegerListFlag.java | 2 +- .../plot/flag/PlotWeatherFlag.java | 2 +- README.md | 17 ++++++++++------- 16 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Add.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Add.java index 956bd0f01..4f0aabf80 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Add.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Add.java @@ -18,7 +18,7 @@ import java.util.UUID; @CommandDeclaration( command = "add", - description = "Allow a user to build while you are online", + description = "Allow a user to build in a plot while you are online", usage = "/plot add ", category = CommandCategory.SETTINGS, permission = "plots.add", diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Clear.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Clear.java index 375d408c6..d3d2e8385 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Clear.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Clear.java @@ -15,7 +15,7 @@ import com.plotsquared.general.commands.Command; import com.plotsquared.general.commands.CommandDeclaration; @CommandDeclaration(command = "clear", - description = "Clear a plot", + description = "Clear the plot you stand on", permission = "plots.clear", category = CommandCategory.APPEARANCE, usage = "/plot clear", diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Delete.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Delete.java index 9ebc7a058..b84b50a1d 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Delete.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Delete.java @@ -17,14 +17,17 @@ import com.plotsquared.general.commands.CommandDeclaration; @CommandDeclaration( command = "delete", permission = "plots.delete", - description = "Delete a plot", + description = "Delete the plot you stand on", usage = "/plot delete", - aliases = {"dispose", "del", "reset"}, + aliases = {"dispose", "del"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true) public class Delete extends SubCommand { + // Note: To delete a specific plot use /plot delete + // The syntax also works with any command: /plot + @Override public boolean onCommand(final PlotPlayer player, String[] args) { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Kick.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Kick.java index 18a7af200..f637c83b7 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Kick.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Kick.java @@ -21,7 +21,7 @@ import java.util.UUID; aliases = {"k"}, description = "Kick a player from your plot", permission = "plots.kick", - usage = "", + usage = "/plot kick ", category = CommandCategory.TELEPORT, requiredType = RequiredType.NONE) public class Kick extends SubCommand { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Load.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Load.java index c5309ba80..238c3631f 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Load.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Load.java @@ -25,7 +25,7 @@ import java.util.List; requiredType = RequiredType.NONE, description = "Load your plot", permission = "plots.load", - usage = "/plot restore") + usage = "/plot load") public class Load extends SubCommand { @Override diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Music.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Music.java index 5f3a12dc9..47f47fb48 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Music.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Music.java @@ -14,7 +14,7 @@ import com.plotsquared.general.commands.CommandDeclaration; @CommandDeclaration( command = "music", permission = "plots.music", - description = "Player music in a plot", + description = "Play music in your plot", usage = "/plot music", category = CommandCategory.APPEARANCE, requiredType = RequiredType.PLAYER) diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/PluginCmd.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/PluginCmd.java index 0938c42f1..ca79585f1 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/PluginCmd.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/PluginCmd.java @@ -11,6 +11,7 @@ import com.plotsquared.general.commands.CommandDeclaration; @CommandDeclaration(command = "plugin", permission = "plots.use", description = "Show plugin information", + usage = "/plot plugin", aliases = "version", category = CommandCategory.INFO) public class PluginCmd extends SubCommand { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Relight.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Relight.java index 4b20ca2c6..5226dd15e 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Relight.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Relight.java @@ -13,7 +13,10 @@ import com.plotsquared.general.commands.Command; import com.plotsquared.general.commands.CommandDeclaration; import java.util.HashSet; -@CommandDeclaration(command = "relight", description = "Relight your plot", category = CommandCategory.DEBUG) +@CommandDeclaration(command = "relight", + description = "Relight your plot", + usage = "/plot relight", + category = CommandCategory.DEBUG) public class Relight extends Command { public Relight() { super(MainCommand.getInstance(), true); diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Reload.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Reload.java index 37092ac9c..58d447337 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Reload.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Reload.java @@ -14,8 +14,9 @@ import java.io.IOException; import java.util.Objects; @CommandDeclaration(command = "reload", + aliases = "rl", permission = "plots.admin.command.reload", - description = "Reload configurations", + description = "Reload translations and world settings", usage = "/plot reload", category = CommandCategory.ADMINISTRATION) public class Reload extends SubCommand { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/SchematicCmd.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/SchematicCmd.java index 644a040ae..b190de880 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/SchematicCmd.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/SchematicCmd.java @@ -25,7 +25,7 @@ import java.util.UUID; command = "schematic", permission = "plots.schematic", description = "Schematic command", - aliases = {"sch"}, + aliases = {"sch", "schem"}, category = CommandCategory.SCHEMATIC, usage = "/plot schematic ") public class SchematicCmd extends SubCommand { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/SetHome.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/SetHome.java index 5ae2647c3..de5a11f97 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/SetHome.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/SetHome.java @@ -11,7 +11,7 @@ import com.plotsquared.general.commands.CommandDeclaration; @CommandDeclaration( command = "sethome", permission = "plots.set.home", - description = "Set the plot home", + description = "Set the plot home to your current position", usage = "/plot sethome [none]", aliases = {"sh", "seth"}, category = CommandCategory.SETTINGS, @@ -22,6 +22,7 @@ public class SetHome extends SetCommand { public boolean set(PlotPlayer player, Plot plot, String value) { switch (value.toLowerCase()) { case "unset": + case "reset": case "remove": case "none": { Plot base = plot.getBasePlot(false); diff --git a/Core/src/main/java/com/intellectualcrafters/plot/commands/Trust.java b/Core/src/main/java/com/intellectualcrafters/plot/commands/Trust.java index 768b2b09a..194bc27a1 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/commands/Trust.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/commands/Trust.java @@ -21,7 +21,7 @@ import java.util.UUID; aliases = {"t"}, requiredType = RequiredType.NONE, usage = "/plot trust ", - description = "Allow a player to build in a plot", + description = "Allow a user to build in a plot while you are offline", category = CommandCategory.SETTINGS) public class Trust extends Command { diff --git a/Core/src/main/java/com/intellectualcrafters/plot/flag/GameModeFlag.java b/Core/src/main/java/com/intellectualcrafters/plot/flag/GameModeFlag.java index d7c0ccec0..983149342 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/flag/GameModeFlag.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/flag/GameModeFlag.java @@ -38,6 +38,6 @@ public class GameModeFlag extends Flag { @Override public String getValueDescription() { - return "Flag value must be a gamemode: 'creative' , 'survival', 'adventure' or 'spectator'"; + return "Flag value must be a gamemode: 'survival', 'creative', 'adventure' or 'spectator'"; } } diff --git a/Core/src/main/java/com/intellectualcrafters/plot/flag/IntegerListFlag.java b/Core/src/main/java/com/intellectualcrafters/plot/flag/IntegerListFlag.java index 9667269c1..aa4bb3fb1 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/flag/IntegerListFlag.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/flag/IntegerListFlag.java @@ -26,6 +26,6 @@ public class IntegerListFlag extends ListFlag> { } @Override public String getValueDescription() { - return "Flag value must be a integer list"; + return "Flag value must be an integer list"; } } diff --git a/Core/src/main/java/com/intellectualcrafters/plot/flag/PlotWeatherFlag.java b/Core/src/main/java/com/intellectualcrafters/plot/flag/PlotWeatherFlag.java index b3ff8f7ce..63b849b5b 100644 --- a/Core/src/main/java/com/intellectualcrafters/plot/flag/PlotWeatherFlag.java +++ b/Core/src/main/java/com/intellectualcrafters/plot/flag/PlotWeatherFlag.java @@ -31,6 +31,6 @@ public class PlotWeatherFlag extends Flag { } @Override public String getValueDescription() { - return ""; + return "Flag must be a weather: 'rain' or 'sun'"; } } diff --git a/README.md b/README.md index 84e60b9ae..ca61ee768 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ -# PlotSquared [![forthebadge](http://forthebadge.com/images/badges/built-by-developers.svg)](http://forthebadge.com) +

    + +

    + +--- -[![Join the chat at https://gitter.im/PlotSquared/Lobby](https://badges.gitter.im/PlotSquared/Lobby.svg)](https://gitter.im/PlotSquared/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) For the end user, PlotSquared is packed with a tonne of cool features. It allows you to merge plots, and build together with your friends. You can also change a lot of plot specific settings in the form of @@ -11,15 +14,15 @@ is to provide a lag-free and smooth experience. ## Links -### Server Owner +* [Download](https://github.com/IntellectualSites/PlotSquared/releases/tag/dev) +* [Jenkins](https://ci.athion.net/job/PlotSquared/) * [Spigot Page](https://www.spigotmc.org/resources/plotsquared.1177/) * [WebChat/IRC]: #IntellectualCrafters on irc.esper.net +* [Discord](https://discord.gg/ngZCzbU) * [Wiki](https://github.com/intellectualcrafters/plotsquared/wiki) -* [Website](http://plotsquared.com) ### Developer Resources -* [JavaDocs] Link Temporarily Unavailable -* [Build Server] [![Build Status](http://ci.plotsquared.com/buildStatus/icon?job=PlotSquared)](http://ci.athion.net/job/PlotSquared/) +* [JavaDocs] Link Temporarily Unavailable * [Maven Repo] Link Temporarily Unavailable # Building @@ -43,4 +46,4 @@ Suggestions are welcome! We have a separate issue tracker for suggestions, that * [BasicPlots](https://www.spigotmc.org/resources/basicplots.6901/) * [HoloPlots](https://www.spigotmc.org/resources/holoplots.4880/) -[WebChat/IRC]: http://webchat.esper.net/?nick=&channels=IntellectualCrafters&fg_color=000&fg_sec_color=000&bg_color=FFF +[WebChat/IRC]: https://webchat.esper.net/?nick=&channels=IntellectualCrafters \ No newline at end of file From ea5ffbeb77971b90d9664093f1b1ef9f433ace1d Mon Sep 17 00:00:00 2001 From: dordsor21 Date: Thu, 25 Oct 2018 10:51:18 +0100 Subject: [PATCH 28/29] Cancel plot chat if message event is cancelled to allow for swear block/etc --- .../java/com/plotsquared/bukkit/listeners/PlayerEvents.java | 5 ++++- .../java/com/plotsquared/nukkit/listeners/PlayerEvents.java | 5 ++++- .../java/com/plotsquared/sponge/listener/MainListener.java | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java index fa4577e26..972c26dfe 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java @@ -757,8 +757,11 @@ public class PlayerEvents extends PlotListener implements Listener { } } - @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) + @EventHandler(priority = EventPriority.LOW) public void onChat(AsyncPlayerChatEvent event) { + if (event.isCancelled()) + return; + PlotPlayer plotPlayer = BukkitUtil.getPlayer(event.getPlayer()); Location location = plotPlayer.getLocation(); PlotArea area = location.getPlotArea(); diff --git a/Nukkit/src/main/java/com/plotsquared/nukkit/listeners/PlayerEvents.java b/Nukkit/src/main/java/com/plotsquared/nukkit/listeners/PlayerEvents.java index 0fef4ef4d..ec00e0691 100644 --- a/Nukkit/src/main/java/com/plotsquared/nukkit/listeners/PlayerEvents.java +++ b/Nukkit/src/main/java/com/plotsquared/nukkit/listeners/PlayerEvents.java @@ -553,8 +553,11 @@ public class PlayerEvents extends PlotListener implements Listener { } } - @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) + @EventHandler(priority = EventPriority.LOW) public void onChat(PlayerChatEvent event) { + if (event.isCancelled()) + return; + PlotPlayer plotPlayer = NukkitUtil.getPlayer(event.getPlayer()); Location location = plotPlayer.getLocation(); PlotArea area = location.getPlotArea(); diff --git a/Sponge/src/main/java/com/plotsquared/sponge/listener/MainListener.java b/Sponge/src/main/java/com/plotsquared/sponge/listener/MainListener.java index 47e570682..693709e8c 100644 --- a/Sponge/src/main/java/com/plotsquared/sponge/listener/MainListener.java +++ b/Sponge/src/main/java/com/plotsquared/sponge/listener/MainListener.java @@ -86,6 +86,9 @@ public class MainListener { @Listener public void onChat(MessageEvent event) { // TODO + if (event.isMessageCancelled()) + return; + Player player = SpongeUtil.getCause(event.getCause(), Player.class); if (player == null) { return; From ae2869a29b6b7ab5552d696d67d33a6b4a5a4684 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Mon, 5 Nov 2018 16:00:44 +0100 Subject: [PATCH 29/29] Translation update and fixing wrong lines --- Core/src/main/resources/es-ES.yml | 111 ++++++++++++++-------- Core/src/main/resources/it-IT.yml | 35 ++++--- Core/src/main/resources/ko-KR.yml | 152 ++++++++++++++++++------------ 3 files changed, 182 insertions(+), 116 deletions(-) diff --git a/Core/src/main/resources/es-ES.yml b/Core/src/main/resources/es-ES.yml index 0102805c8..f4459649d 100644 --- a/Core/src/main/resources/es-ES.yml +++ b/Core/src/main/resources/es-ES.yml @@ -1,6 +1,7 @@ confirm: failed_confirm: $2No tienes acciones pendientes por confirmar. requires_confirm: '$2¿Estas seguro de realizar este comando?: $1%s$2?&-$2¡No hay vuelta atras! Si estas seguro escribe: $1/plot confirm' + expired_confirm: $2La confirmación ha expirado, por favor ejecute el comando otra vez! move: move_success: $4La parcela fue movida correctamente. copy_success: $4La parcela fue copiada correctamente. @@ -16,27 +17,30 @@ web: compass: compass_target: $4Parcela seleccionada con la brujula completada. cluster: - cluster_available_args: '$1Los siguientes subcomandos estan disponibles: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome' + cluster_available_args: '$1Los siguientes subcomandos estan disponibles: $4list$2, + $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, + $4info$2, $4tp$2, $4sethome' cluster_list_heading: $2Hay $1%s$2 agrupaciones en este mundo. cluster_list_element: $2 - $1%s&- cluster_intersection: $2El area propuesta se solapa con $1%s$2 de la parcela existente. - cluster_added: $4Creacion de agrupaciones completado. - cluster_deleted: $4Borrado de agrupaciones completado. - cluster_resized: $4Reescalado de agrupaciones completado. + cluster_added: $4Creacion de agrupaciones completado. + cluster_deleted: $4Borrado de agrupaciones completado. + cluster_resized: $4Reescalado de agrupaciones completado. cluster_added_user: $4Añadido usuario a la agrupacion con exito. - cannot_kick_player: $2Tu no puedes expulsar a este jugador. + cannot_kick_player: $2Tu no puedes expulsar a este jugador. cluster_invited: '$1Has sido invitado a la siguiente agrupacion: $2%s' cluster_removed: '$1Has sido eliminado de la agrupacion: $2%s' - cluster_kicked_user: $4Usuario expulsado con exito. + cluster_kicked_user: $4Usuario expulsado con exito. invalid_cluster: '$1Nombre de agrupacion invalido: $2%s' cluster_not_added: $2Este jugador no fue añadido a la agrupacion de parcelas. - cluster_cannot_leave: $1Debes eliminar o transferir el dueño antes de salir. + cluster_cannot_leave: $1Debes eliminar o transferir el dueño antes de salir. cluster_added_helper: $4Ayudante añadido a la agrupacion con exito. cluster_removed_helper: $4Ayudante eliminado de la agrupacion con exito. cluster_regenerated: $4Regeneracion de la agrupacion comenzada con exito. cluster_teleporting: $4Teletransportando... - cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño: $2%size%&-$1Derechos: $2%rights%' - cluster_current_plotid: '$1Parcela actual: $2%s' + cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño: + $2%size%&-$1Derechos: $2%rights%' + cluster_outside: '$2El área propuesta está fuera del área de la parcela: %s0' border: border: $2Estas en las afueras del borde del mapa. unclaim: @@ -63,7 +67,7 @@ records: notify_leave: $2%player $2abandona tu parcela ($1%plot$2) swap: swap_overlap: $2Las áreas propuestas no pueden superponerse. - swap_dimensions: $2El area propuesta debe tener dimensiones comparables. + swap_dimensions: $2El area propuesta debe tener dimensiones comparables. swap_syntax: $2/plot swap swap_success: $4Intercambio de parcelas completado started_swap: $2 Intercambiando las tareas de las parcelas. Serás notificado cuando el proceso haya terminado. @@ -77,7 +81,7 @@ comment: no_perm_inbox_modify: $2No tienes permisos para modificar esta bandeja de entrada. no_plot_inbox: $2Debes permanecer en la parcela para poder escribir el comentario. comment_removed: $4Comentario eliminado satisfactoriamente/s:n$2 - '$3%s$2' - comment_added: $4Te han dejado un comentario. + comment_added: $4Te han dejado un comentario. comment_header: $2&m---------&r $1Comentarios $2&m---------&r inbox_empty: $2No hay comentarios. console: @@ -100,7 +104,7 @@ blocked command: command_blocked: $2El comando no esta permitido en esta parcela. done: done_already_done: $2Esta parcela esta finalizada. - done_not_done: $2Esta parcela no esta finalizada. + done_not_done: $2Esta parcela no esta finalizada. done_insufficient_complexity: $2Esta parcela es muy simple. Porfavor añade mas detalles antes de usar este comando. done_success: $1Parcela finalizada con exito. done_removed: $1Ya puedes continuar construyendo en esta parcela. @@ -111,6 +115,7 @@ ratings: rating_not_your_own: $2No puedes valorar tu propia parcela. rating_not_done: $2Solo puedes valorar parcelas terminadas. rating_not_owned: $2No puedes valorar una parcela que no pertenece a nadie. + ratings_purged: $2Calificaciones purgadas para esta parcela tutorial: rate_this: $2¡Valora esta parcela! comment_this: '$2Deja tu opinion de esta parcela: %s' @@ -121,8 +126,9 @@ economy: cannot_buy_own: $2No puedes comprar tu propia parcela. plot_sold: $4Tu parcela; $1%s0$4, se ha vendido por $1%s1$4 para $1$%s2 cannot_afford_merge: $2Tu no puedes permitirte combinar las parcelas. Cuesta $1%s - added_balance: $1%s $2 fue añadido a tu fondo de dinero. - removed_balance: $1%s $2 fue removido de tu fondo de dinero. + added_balance: $1%s $2 fue añadido a tu fondo de dinero. + removed_balance: $1%s $2 fue removido de tu fondo de dinero. + removed_granted_plot: $2Usaste %s concesiones de trama, te quedan 5 $1%s setup: setup_init: '$1Uso: $2/plot setup ' setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Espectando: $2%s2 $1Default: $2%s3' @@ -130,15 +136,21 @@ setup: setup_valid_arg: $2Valor $1%s0 $2ajustado a %s1 setup_finished: $4Deberias haber sido teletransportado al mundo creado, sino tendras que generarlo manualmente usando el bukkit.yml setup_world_taken: $2%s este mundo ya esta registrado. - setup_missing_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup &l$1 $2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2Tienes que especificar un generador ($1/plot setup &l&r$2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel + setup_missing_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup + &l$1 $2)&-$1Comandos adicionales:&-$2 - $1/plot setup &-$2 + - $1/plot setup back&-$2 - $1/plot setup cancel + setup_missing_generator: $2Tienes que especificar un generador ($1/plot setup + &l&r$2)&-$1Comandos adicionales:&-$2 - $1/plot setup &-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel setup_invalid_generator: '$2Generador inválido. Opciones posibles: %s' schematics: - schematic_missing_arg: '$2Necesitas especificar un argumento. Valores posibles: $1test $2 , $1save$2 , $1paste $2, $1exportall' + schematic_missing_arg: '$2Necesitas especificar un argumento. Valores posibles: + $1test $2 , $1save$2 , $1paste $2, $1exportall' schematic_invalid: '$2Este no es un schematic valido. Razon: $2%s' schematic_valid: $2Este es un schematic valido. schematic_paste_failed: $2Fallo al pegar el schematic. schematic_paste_success: $4El schematic ha sido copiado correctamente. + schematic_too_large: $2¡La trama es demasiado grande para esta acción! titles: title_entered_plot: '$1Parcela: %world%;%x%;%z%' title_entered_plot_sub: $4Propiedad de %s @@ -148,12 +160,9 @@ core: task_start: Comenzando la tarea... prefix: $3[$1P2$3] $2 enabled: $1PlotSquared esta activado. - example_message: $2Esto es un ejemplo de mensaje &k!!! reload: reloaded_configs: $1Las traducciones y opciones del mundo han sido cargados. reload_failed: $2Fallo al cargar las configuraciones de los archivos. -bar api: - bossbar_clearing: '$2Limpiando parcela: $1%id%' desc: desc_set: $2Descripcion de la parcela. desc_unset: $2Descripcion de la parcela no especificada. @@ -163,6 +172,7 @@ alias: missing_alias: $2Necesitas especificar un alias. alias_too_long: $2El alias debe ser < de 50 caracteres alias_is_taken: $2Ese alias ya ha sido utilizado. + alias_removed: $2Parcela alias eliminado position: missing_position: '$2Necesitas especificar una posicion. Valores posibles: $1none' position_set: $1Hogar establecido en tu posicion actual. @@ -181,6 +191,7 @@ permission: cant_claim_more_plots_num: $2No puedes claimear mas de $1%s $2parcelas a la vez. you_be_denied: $2No tienes permitido entrar en esta parcela. merge_request_confirm: Peticion de agrupamiento de %s + cant_claim_more_clusters: $2No puedes reclamar más grupos. merge: merge_not_valid: $2La peticion de agrupacion ya no es valida. merge_accepted: $2La peticion de agrupacion ha sido aceptada. @@ -191,14 +202,6 @@ merge: unlink_required: $2Se requiere una desconexion para hacer esto. unlink_impossible: $2Solo puedes desconectar una mega-parcela. unlink_success: $2Se han desconectado las parcelas. -commands: - not_valid_subcommand: $2No es un subcomando valido. - did_you_mean: '$2Quisiste decir: $1%s' - name_little: $2%s0 el nombre es muy corto, $1%s1$2<$1%s3 - no_commands: $2No tienes permitido utilizar cualquier subcomando. - subcommand_set_options_header: '$2Valores posibles: ' - command_syntax: '$1Usos: $2%s' - flag_tutorial_usage: '$1Haz que un administrador coloque la bandera: $2%s' errors: invalid_player_wait: '$2Jugador no encontrado: $1%s$2, buscando. Prueba mas tarde.' invalid_player: '$2Jugador no encontrado: $1%s$2.' @@ -212,15 +215,15 @@ errors: not_valid_world: $2Esto no es un mundo valido. (caso sensitivo) not_valid_plot_world: $2Esta no es una parcela valida. (caso sensitivo) no_plots: $2No tienes ninguna parcela. - not_using_plotme: $2Este server utiliza el $1PlotSquared $2plot sistema de mantenimiento. Utilice el $1/ps $2o $1/p2 $2o $1/plot $2en vez. wait_for_timer: $2El temporizador del selector de bloque esta ligado a ti o a la parcela actual. Por favor espere a que termine. + invalid_command_flag: '$2Indicador de comando no válido: %s0' + error: '$2Ocurrió un error: %s' + not_loaded: $2No se pudo cargar la trama paste: debug_report_created: '$1Se ha enviado una depuracion a: $1%url%' purge: - purge_syntax: Usa /plot purge purge_success: $4Se ha limpiado %s parcelas. trim: - trim_syntax: Usa /plot trim trim_in_progress: La tarea de recorte esta en proceso! not_valid_hybrid_plot_world: Es necesario el dueño de las parcelas para realizar esta accion. block list: @@ -253,6 +256,7 @@ invalid: no_such_plot: $2No existe dicha parcela. player_has_not_been_on: $2Este usuario no ha estado en el mundo de parcelas. found_no_plots: $2No se ha encontrado parcelas con esta informacion. + found_no_plots_for_player: '$2No se encontraron parcelas para jugador: %s' camera: camera_started: $2Has entrado en modo camara para la parcela $1%s camera_stopped: $2Ya no estas en modo camara. @@ -263,13 +267,16 @@ need: need_plot_world: $2Necesitas especificar un mundo de parcelas. need_user: $2Necesitas especificar un usuario. info: - none: Ninguno. - unknown: Desconocido. - everyone: Todos. + none: Ninguno + unknown: Desconocido + everyone: Todos plot_unowned: $2La parcela actual tiene que tener un propietario para ejecutar esa accion. plot_info_unclaimed: $2Parcela $1%s$2 aun no esta claimeada. plot_info_header: $3&m---------&r $1INFO $3&m--------- - plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Propietario: $2%owner%$1&-$1Bioma: $2%biome%$1&-$1Puede construir: $2%build%$1&-$1Clasificacion: $2%rating%&-$1Confianza: $2%trusted%$1&-$1Miembros: $2%members%$1&-$1Denegados: $2%denied%$1&-$1Flags: $2%flags%' + plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Propietario: $2%owner%$1&-$1Bioma: + $2%biome%$1&-$1Puede construir: $2%build%$1&-$1Clasificacion: $2%rating%&-$1Confianza: + $2%trusted%$1&-$1Miembros: $2%members%$1&-$1Denegados: $2%denied%$1&-$1Flags: + $2%flags%' plot_info_footer: $3&m---------&r $1INFO $3&m--------- plot_info_trusted: $1Confianza:$2 %trusted% plot_info_members: $1Miembros:$2 %members% @@ -283,6 +290,10 @@ info: plot_info_size: $1Tamaño:$2 %size% plot_user_list: ' $1%user%$2,' info_syntax_console: $2/plot info X;Y + now: Ahora + never: Nunca + plot_info_seen: $1Seen:$2 %seen% + plot_flag_list: $1%s0:%s1$2 working: generating_component: $1Empezando a generar componentes desde tus opciones. clearing_plot: $2Limpiando parcela async. @@ -290,6 +301,7 @@ working: plot_not_claimed: $2Parcela no reclamada. plot_is_claimed: $2Esta parcela ya esta reclamada. claimed: $4Has reclamado con exito esta parcela. + deleting_done: $4Eliminar completado! Tomó %sms. list: comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1Lista de %amount% comentarios. clickable: ' (interactive)' @@ -298,6 +310,7 @@ list: plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner. plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner. plot_list_footer: $2>> $1%word% un total $2%num% $1claimeado %plot%. + area_list_header_paged: $2(Página $1%cur$2/$1%max$2) $1lista de %amount% areas left: left_plot: $2Has abandonado una parcela. chat: @@ -305,6 +318,7 @@ chat: plot_chat_forced: $2Este mundo obliga a usar el chat de parcela. plot_chat_on: $4Chat de parcela activado. plot_chat_off: $4Chat de parcela desactivado. + plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' deny: denied_removed: $4Este usuario ya no esta denegado en esta parcela. denied_added: $4Has denegado este usuario de tu parcela. @@ -325,6 +339,7 @@ flag: flag_not_added: $2La flag no se ha podido añadir. flag_removed: $4Flag removida con exito. flag_added: $4Flag añadida con exito. + not_valid_flag_suggested: '$2Eso no es una bandera válida. Querías decir: $1%s' trusted: trusted_added: $4Has añadido un usuario de confianza en esta parcela. trusted_removed: $4Has removido un usuario de confianza en esta parcela. @@ -341,17 +356,39 @@ member: owner: set_owner: $4Has añadido con exito el dueño de la parcela. now_owner: $4Ahora eres dueño de esta parcela %s + set_owner_cancelled: $2La setowner la acción fue cancelada signs: owner_sign_line_1: '$1ID: $1%id%' owner_sign_line_2: '$1Propietario:' owner_sign_line_3: $2%plr% owner_sign_line_4: $3Claimeado help: - help_header: "$3&m---------&r $1Plot\xb2 Ayuda $3&m---------" + help_header: $3&m---------&r $1Plot² Ayuda $3&m--------- help_page_header: '$1Categoria: $2%category%$2,$1 Página: $2%current%$3/$2%max%$2' - help_footer: "$3&m---------&r $1Plot\xb2 Ayuda $3&m---------" + help_footer: $3&m---------&r $1Plot² Ayuda $3&m--------- help_info_item: $1/plot help %category% $3- $2%category_desc% help_item: $1%usage% [%alias%]&- $3- $2%desc%&- direction: '$1Direccion actual: %dir%' '-': custom_string: '-' +commandconfig: + not_valid_subcommand: $2No es un subcomando valido. + did_you_mean: '$2Quisiste decir: $1%s' + name_little: $2%s0 el nombre es muy corto, $1%s1$2<$1%s3 + no_commands: $2No tienes permitido utilizar cualquier subcomando. + subcommand_set_options_header: '$2Valores posibles: ' + command_syntax: '$1Usos: $2%s' + flag_tutorial_usage: '$1Haz que un administrador coloque la bandera: $2%s' +bar api: {} +set: + set_attribute: $4Establecer con éxito %s0 ajustado a %s1 +cap: + entity_cap: $2No tienes permitido engendrar más mobs +near: + plot_near: '$1Jugadores: %s0' +kick: + you_got_kicked: $4Te patearon! +grants: + granted_plots: '$1Resultado: $2%s $1grants left' + granted_plot: $1You granted %s0 plot to $2%s1 + granted_plot_failed: '$1Subvención fallida: $2%s' diff --git a/Core/src/main/resources/it-IT.yml b/Core/src/main/resources/it-IT.yml index a57515825..6419a2234 100644 --- a/Core/src/main/resources/it-IT.yml +++ b/Core/src/main/resources/it-IT.yml @@ -19,9 +19,9 @@ web: compass: compass_target: $4Lotto mirato con successo con la bussola cluster: - cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2, $4create$2, - $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, - $4tp$2, $4sethome' + cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2, + $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, + $4info$2, $4tp$2, $4sethome' cluster_list_heading: $2Ci sono $1%s$2 cluster in questo mondo cluster_list_element: $2 - $1%s&- cluster_intersection: '$2L''area proposta si sovrappone a: %s0' @@ -50,12 +50,9 @@ unclaim: worldedit masks: worldedit_delayed: $2Attendi durante l'elaborazione della tua azione WorldEdit... worldedit_run: '$2Scuse per il ritardo. Ora in esecuzione: %s' - require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto. - Puoi apportare modifiche solo dentro il tuo lotto. - worldedit_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo - che puoi modificare è %max%. - worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di - iterazioni consentite è %max%. + require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto. Puoi apportare modifiche solo dentro il tuo lotto. + worldedit_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo che puoi modificare è %max%. + worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di iterazioni consentite è %max%. worldedit_unsafe: $2L'accesso a quel comando è stato bloccato worldedit_bypass: $2&oPer bypassare le tue restrizioni usa $4/plot wea worldedit_bypassed: $2Attualmente bypassando le restrizioni di WorldEdit. @@ -139,15 +136,15 @@ setup: setup_invalid_arg: '$2%s0 non è un argomento valido per il passaggio %s1. Per cancellare il setup usa: $1/plot setup cancel' setup_valid_arg: $2Valore $1%s0 $2impostato a %s1 setup_finished: $4Dovresti essere stato teletrasportato nel mondo creato. Altrimenti - sarà necessario impostare manualmente il generatore usando il file bukkit.yml o il tuo plugin - di gestione dei mondi scelto. + sarà necessario impostare manualmente il generatore usando il file bukkit.yml + o il tuo plugin di gestione dei mondi scelto. setup_world_taken: $2%s è già un mondo lotti setup_missing_world: $2Devi specificare un nome per il mondo ($1/plot setup &l$1 $2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel setup_missing_generator: $2Devi specificare un generatore ($1/plot setup - &l&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup &-$2 - $1/plot - setup back&-$2 - $1/plot setup cancel + &l&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup &-$2 - + $1/plot setup back&-$2 - $1/plot setup cancel setup_invalid_generator: '$2Generatore non valido. Opzioni possibili: %s' schematics: schematic_too_large: $2Il lotto è troppo grande per questa azione! @@ -271,7 +268,7 @@ invalid: no_such_plot: $2Quel lotto non esiste player_has_not_been_on: $2Quel giocatore non è mai stato nel mondo lotti found_no_plots: $2Non sono stati trovati lotti con la tua ricerca - found_no_plots_for_player: $2Nessun lotto trovato per il giocatore: %s + found_no_plots_for_player: '$2Nessun lotto trovato per il giocatore: %s' camera: camera_started: $2Hai inserito la modalità telecamera per il lotto $1%s camera_stopped: $2Non sei più in modalità telecamera @@ -293,8 +290,9 @@ info: plot_info_unclaimed: $2Il lotto $1%s$2 non è ancora claimato plot_info_header: $3&m---------&r $1INFO $3&m--------- plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Proprietario: $2%owner%$1&-$1Bioma: - $2%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto: $2%seen%&-$1Membri fidati: - $2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati: $2%denied%$1&-$1Flag: $2%flags%' + $2%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto: + $2%seen%&-$1Membri fidati: $2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati: + $2%denied%$1&-$1Flag: $2%flags%' plot_info_footer: $3&m---------&r $1INFO $3&m--------- plot_info_trusted: $1Membri fidati:$2 %trusted% plot_info_members: $1Membri:$2 %members% @@ -365,8 +363,8 @@ trusted: plot_removed_user: $1Il lotto %s in cui eri aggiunto è stato eliminato a causa dell'inattività del proprietario member: removed_players: $2Rimossi %s giocatori dal lotto. - already_owner: '$2L''utente %s0 è già il proprietario di questo lotto.' - already_added: '$2L''utente %s0 è già aggiunto a quella categoria.' + already_owner: $2L'utente %s0 è già il proprietario di questo lotto. + already_added: $2L'utente %s0 è già aggiunto a quella categoria. member_added: $4Quell'utente ora può costruire quando il proprietario è online member_removed: $1Hai rimosso con successo un utente dal lotto member_was_not_added: $2Quel giocatore non è aggiunto a questo lotto @@ -374,6 +372,7 @@ member: owner: set_owner: $4Hai impostato correttamente il proprietario del lotto now_owner: $4Sei ora proprietario del lotto %s + set_owner_cancelled: $2L'azione del proprietario è stata annullata signs: owner_sign_line_1: '$1ID: $1%id%' owner_sign_line_2: '$1Proprietario:' diff --git a/Core/src/main/resources/ko-KR.yml b/Core/src/main/resources/ko-KR.yml index ab6bec1d7..07d6caca5 100644 --- a/Core/src/main/resources/ko-KR.yml +++ b/Core/src/main/resources/ko-KR.yml @@ -1,12 +1,12 @@ -# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Translate by Protocodyne Korean Translate team # First Author , 2015. confirm: failed_confirm: $2이 작업이 완료되기 위한 행동이 당신에게 존재하지 않습니다! - requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수 - 없습니다! 확실하다면 다음 명령어를 입력하세요: $1/plot confirm' + requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수 없습니다! 확실하다면 다음 명령어를 입력하세요: + $1/plot confirm' + expired_confirm: $2확인이 만료되었습니다. 명령을 다시 실행하십시오.! move: move_success: $4성공적으로 땅이 옮겨졌습니다. copy_success: $4성공적으로 땅이 복사되었습니다. @@ -20,14 +20,13 @@ web: load_list: '$2schematic로드를 원한다면, 다음명령어를 사용하세요 $1/plot load #' save_success: $1성공적으로 저장되었습니다! compass: - compass_target: $4Successfully targeted plot with compass + compass_target: $4나침반과 함께 음모를 성공적으로 지정했습니다. cluster: - cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2, - $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, - $4tp$2, $4sethome' + cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2, $4delete$2, + $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome' cluster_list_heading: $2이 월드에 $1%s$2 cluster가 있습니다 cluster_list_element: $2 - $1%s&- - cluster_intersection: $2The proposed area overlaps with $1%s$2 existing cluster/s + cluster_intersection: $2제안 된 영역이 겹칩니다 와 $1%s$2 기존의 cluster cluster_added: $4cluster가 성공적으로 생성되었습니다. cluster_deleted: $4cluster가 성공적으로 삭제되었습니다. cluster_resized: $4cluster가 성공적으로 재조정 되었습니다. @@ -43,9 +42,9 @@ cluster: cluster_removed_helper: $4helper가 성공적으로 cluster에서 제거되었습니다 cluster_regenerated: $4성공적으로 cluster가 재생성 되었습니다 cluster_teleporting: $4이동중... - cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기: - $2%size%&-$1Rights: $2%rights%' - cluster_current_plotid: '$1현재 땅: $2%s' + cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기: $2%size%&-$1Rights: + $2%rights%' + cluster_outside: '$2제안 된 영역이 플롯 영역 밖에 있습니다: %s0' border: border: $2당신은 현재 지도의 경계 밖에 있습니다 unclaim: @@ -54,7 +53,8 @@ unclaim: worldedit masks: worldedit_delayed: $2당신의 WorldEdit 행동을 처리중이니 기다려주시기 바랍니다... worldedit_run: '$2처리가 지연되어 죄송합니다. 해당 명령어를 실행합니다: %s' - require_selection_in_mask: $2%s of your selection is not within your plot mask. You can only make edits within your plot. + require_selection_in_mask: $2%s 선택한 마스크가 플롯 마스크 안에 있지 않습니다.. + 플롯 내에서만 편집 할 수 있습니다.. worldedit_volume: $2당신은 a volume of %current%를 선택 할 수 없습니다. 당신이 수정할 수 있는 최대부피는 %max% 입니다. worldedit_iterations: $2당신은 %current%번 반복 적용시킬 수 없습니다. 당신이 수정가능한 최대 부피는 %max% 입니다. worldedit_unsafe: $2해당 명령어는 실행 될 수 없습니다. @@ -84,10 +84,10 @@ comment: invalid_inbox: '$2올바르지 않은 메일함 입니다..&-$1Accepted values: %s' no_perm_inbox: $2당신은 해당 메일함에 권한이 없습니다 no_perm_inbox_modify: $2당신은 해당 메일함을 수정할 권한이 없습니다 - no_plot_inbox: $2You must stand in or supply a plot argument + no_plot_inbox: $2당신은 서 있거나 줄거리를 제공해야합니다 comment_removed: $4comment가 성공적으로 삭제되었습니다/s:n$2 - '$3%s$2' comment_added: $4A comment가 남아있습니다 - comment_header: $2&m---------&r $1Comments $2&m---------&r + comment_header: $2&m---------&r $1댓글 $2&m---------&r inbox_empty: $2comment가 없습니다 console: not_console: $2보안상의 이유로, 이 명령어는 Console에서만 입력 가능합니다. @@ -101,8 +101,7 @@ clipboard: pasted: $4해당 땅은 성공적으로 붙여넣어졌습니다. 해당 땅은 클립보드로부터 제거됩니다. paste_failed: '$2선택된 땅의 복사가 실패했습니다. 사유: $2%s' no_clipboard: $2클립보드에 복사된 땅이 존재하지 않습니다 - clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total - Blocks: $1%total$2' + clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total Blocks: $1%total$2' toggle: toggle_enabled: '$2가능한 세팅: %s' toggle_disabled: '$2불가능한 세팅: %s' @@ -121,6 +120,7 @@ ratings: rating_not_your_own: $2당신은 자신의 땅에 투표 할 수 없습니다 rating_not_done: $2당신은 완료된 땅에만 투표 할 수 있습니다. rating_not_owned: $2당신은 소유자가 없는 땅에 투표 할 수 없습니다 + ratings_purged: $2Purged ratings for this plot tutorial: rate_this: $2이 땅에 투표해보세요! comment_this: '$2이땅에 피드백을 남겨보세요: %s' @@ -129,43 +129,47 @@ economy: cannot_afford_plot: $2당신은 이 땅을 구입 할 수 없습니다. 이 땅의 가격은 $1%s 입니다 not_for_sale: $2이 땅은 판매 불가능합니다 cannot_buy_own: $2당신은 본인의 땅을 구입 불가능 합니다 - plot_sold: $4당신의 땅; $1%s0$4, has been sold to $1%s1$4 for $1$%s2 + plot_sold: $4당신의 땅; $1%s0$4, 판매 된 $1%s1$4 에 대한 $1$%s2 cannot_afford_merge: $2당신은 이 땅을 함칠 수 없습니다. 이 땅의 가격은 $1%s 입니다 added_balance: $1%s $2이 당신의 통장에 추가되었습니다 removed_balance: $1%s $2이 당신의 통장에서 빠져나갔습니다 + removed_granted_plot: $2너는 사용했다 %s 계획 교부금 (들), 당신이있어 $1%s $2왼쪽 setup: - setup_init: '$1Usage: $2/plot setup ' - setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Expecting: $2%s2 $1Default: $2%s3' - setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면 - 다음 명령어를 사용하십시오: $1/plot setup cancel' + setup_init: '$1용법: $2/plot setup ' + setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1기대: $2%s2 $1태만: $2%s3' + setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면 다음 명령어를 사용하십시오: $1/plot + setup cancel' setup_valid_arg: $2Value $1%s0 $2set to %s1 - setup_finished: $4당신은 만들어진 World로 이동되있어야 합니다. 그렇지 않으면 당신은 bukkit.yml를 통하여 워드를 설정하거나 다중월드 플러그인을 사용하여 월드를 생성하여야 합니다. + setup_finished: $4당신은 만들어진 World로 이동되있어야 합니다. 그렇지 않으면 당신은 bukkit.yml를 통하여 워드를 설정하거나 + 다중월드 플러그인을 사용하여 월드를 생성하여야 합니다. setup_world_taken: $2%s 는 이미 등록된 Plot World 입니다 - setup_missing_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l$1 $2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2당신은 생성기를 지정해야 합니다 ($1/plot setup &l&r$2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel + setup_missing_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l$1 $2)&-$1Additional + commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup + cancel + setup_missing_generator: $2당신은 생성기를 지정해야 합니다 ($1/plot setup &l&r$2)&-$1Additional + commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup + cancel setup_invalid_generator: '$2올바르지 않은 생성기 입니다. 가능한 옵션: %s' schematics: - schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test - $2 , $1save$2 , $1paste $2, $1exportall' + schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test $2 , $1save$2 , + $1paste $2, $1exportall' schematic_invalid: '$2이것은 올바르지 않은 schematic파일 입니다. 사유: $2%s' schematic_valid: $2이것은 올바른 schematic파일 입니다 schematic_paste_failed: $2schematic 적용에 실패하엿습니다 schematic_paste_success: $4schematic이 성공적으로 적용되었습니다 + schematic_too_large: $2플롯이 너무 커서이 작업을 수행 할 수 없습니다! titles: title_entered_plot: '$1Plot: %world%;%x%;%z%' - title_entered_plot_sub: $4Owned by %s + title_entered_plot_sub: $4에게 소유 된 %s prefix_greeting: '$1%id%$2> ' prefix_farewell: '$1%id%$2> ' core: task_start: 작업을 시작합니다... prefix: $3[$1P2$3] $2 enabled: $1PlotSquared 가 실행됩니다 - example_message: $2This Korean Translation Make by Protocodyne &k!!! reload: reloaded_configs: $1번역 파일 및 월드 설정 파일이 성공적으로 리로드 되었습니다 reload_failed: $2설정파일의 리로드에 실패하였습니다 -bar api: - bossbar_clearing: '$2Clearing plot: $1%id%' desc: desc_set: $2Plot 설명 설정 desc_unset: $2Plot 설명 설정취소 @@ -175,6 +179,7 @@ alias: missing_alias: $2당신은 별명을 설정해야 합니다 alias_too_long: $2별명은 50자 이내여야 합니다 alias_is_taken: $2이 별명은 이미 존재합니다 + alias_removed: $2플롯 별칭이 제거되었습니다 position: missing_position: '$2당신은 위치를 지정해야합니다. 가능한 값: $1none' position_set: $1Home 위치를 현재 위치로 지정합니다 @@ -193,24 +198,18 @@ permission: cant_claim_more_plots_num: $2당신은 한번에 $1%s $2plots보다 더 많이 소유할 수 없습니다 you_be_denied: $2당신은 이 땅에 들어갈 수 없습니다 merge_request_confirm: 병합요청이 들어왔습니다 %s + cant_claim_more_clusters: $2더 많은 클러스터를 청구 할 수 없습니다. merge: merge_not_valid: $2이 병합 요청은 더이상 유효하지 않습니다 merge_accepted: $2병합 요청이 수락되었습니다 success_merge: $2땅이 병합되었습니다 merge_requested: $2병합요청이 성공적으로 전송되었습니다 no_perm_merge: '$2당신은 이 땅의 소유자가 아닙니다: $1%plot%' - no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할 수 없습니다. + no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할 + 수 없습니다. unlink_required: $2An unlink는 이것을 하는데 요구 됩니다. unlink_impossible: $2당신은 오직 mega-plot만 unlink 할 수 있습니다 unlink_success: $2성공적으로 plots을 unlink 하였습니다. -commands: - not_valid_subcommand: $2이것은 유효하지 않은 하위 명령어 입니다 - did_you_mean: '$2이것을 명령어를 의미하나요: $1%s' - name_little: $2%s0 아름이 너무 짧습니다, $1%s1$2<$1%s3 - no_commands: $2죄송합니다 당신은 하위명령어 사용을 허가받지 못했습니다. - subcommand_set_options_header: '$2Possible Values: ' - command_syntax: '$1Usage: $2%s' - flag_tutorial_usage: '$1Have an admin set the flag: $2%s' errors: invalid_player_wait: '$2플레이어를 찾지 못했습니다: $1%s$2, fetching it. 잠시 후 시도해주세요.' invalid_player_offline: '$2플레이어는 반드시 접속 중이어야 합니다: $1%s.' @@ -224,22 +223,22 @@ errors: not_valid_world: $2옳바르지 않은 World 입니다 not_valid_plot_world: $2올바르지 않은 plot world 입니다 (case sensitive) no_plots: $2당신은 어떤 땅도 가지고 있지 않습니다 - not_using_plotme: $2이 서버는 상위버전의 $1PlotSquared $2plot 관리 시스템을 사용합니다. Please use the $1/ps $2or $1/p2 $2or $1/plot $2instead wait_for_timer: $2A setblock 타이머는 현재의 땅 또는 당신에게 묶여있습니다. 완료까지 잠시 기다려주시기 바랍니다 + invalid_command_flag: '$2잘못된 명령 플래그: %s0' + error: '$2오류가 발생했습니다: %s' + not_loaded: $2플롯을로드 할 수 없습니다 paste: - debug_report_created: '$1Uploaded a full debug to: $1%url%' + debug_report_created: '$1전체 디버그를에 업로드했습니다.: $1%url%' purge: - purge_syntax: Use /plot purge purge_success: $4%s 땅들을 성공적으로 제거하였습니다 trim: - trim_syntax: Use /plot trim trim_in_progress: 최적화 작업이 이미 진행중입니다! not_valid_hybrid_plot_world: 이 행동을 위하여 hybrid plot manager가 필요합니다. block list: block_list_separater: '$1,$2 ' biome: need_biome: $2당신은 유효한 생태계를 지정해야 합니다. - biome_set_to: $2Plot biome set to $2 + biome_set_to: $2플롯 생물 설정 $2 teleport: teleported_to_plot: $1당신은 이동 되었습니다. teleported_to_road: $2당신은 길로 이동 되었습니다. @@ -258,13 +257,14 @@ invalid: not_valid_data: $2그것은 유효한 데이터 ID가 아닙니다. not_valid_block: '$2그것은 유효한 블록이 아닙니다.: %s 그것은 유효한 블록이 아닙니다.' not_allowed_block: '$2그 블록은 허락되지 않았습니다 : %s' - not_valid_number: '$2그것은 %s범위내에서 유효하지 않은 숫자입니다.' + not_valid_number: $2그것은 %s범위내에서 유효하지 않은 숫자입니다. not_valid_plot_id: $2그 땅의 ID는 유효하지 않습니다. - plot_id_form: '$2땅의 ID는 반드시 형식에 있어야 합니다: $1X;Y $2e.g. $1-5;7' + plot_id_form: '$2땅의 ID는 반드시 형식에 있어야 합니다: $1X;Y $2e.g. $1-5;7' not_your_plot: $2그것은 당신의 땅이 아닙니다. no_such_plot: $2거기엔 어떤 땅도 없습니다. player_has_not_been_on: $2해당 플레이어는 plotworld에 없습니다. found_no_plots: $2당신의 검색에서 아무 땅도 발견하지 못했습니다 + found_no_plots_for_player: '$2No plots found for player: %s' camera: camera_started: $2당신은 땅을 위한 카메라 모드에 입장했습니다 $1%s camera_stopped: $2카메라 모드를 종료합니다 @@ -297,32 +297,40 @@ info: plot_info_size: $1Size:$2 %size% plot_user_list: ' $1%user%$2,' info_syntax_console: $2/plot info X;Y + now: 지금 + never: 못 + plot_info_seen: $1Seen:$2 %seen% + plot_flag_list: $1%s0:%s1$2 working: generating_component: $1당신의 설정값으로부터 component 생성을 시작합니다 - clearing_plot: $2Clearing plot async. - clearing_done: $4Clear completed! Took %sms. + clearing_plot: $2플롯 비동기 지우기. + clearing_done: $4명확한 완료. 했다 %sms. plot_not_claimed: $2땅이 판매되지 않았습니다 plot_is_claimed: $2이 땅은 이미 판매되었습니다 claimed: $4성공적으로 땅을 판매하였습니다 + deleting_done: $4삭제가 완료되었습니다! 가져왔다 %sms. list: - comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% comments - clickable: ' (interactive)' - plot_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% plots - plot_list_header: $1List of %word% plots + comment_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% 코멘트 + clickable: ' (상호 작용하는)' + plot_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% plots + plot_list_header: $1목록 %word% plots plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner - plot_list_footer: $2>> $1%word% a total of $2%num% $1claimed %plot%. + plot_list_footer: $2>> $1%word% 총 $2%num% $1claimed %plot%. + area_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록f %amount% areas left: left_plot: $2당신은 땅을 떠났습니다. chat: plot_chat_format: '$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' plot_chat_forced: $이 월드는 모두가 plot chat을 쓰도록 강제합니다 - plot_chat_on: $4Plot chat enabled. - plot_chat_off: $4Plot chat disabled. + plot_chat_on: $4플롯 채팅 사용 설정 됨. + plot_chat_off: $4플롯 채팅 사용 중지됨. + plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' deny: denied_removed: $4당신은 이 땅으로부터 플레이어를 차단 해제 했습니다. denied_added: $4당신은 이 땅으로부터 플레이어를 성공적으로 차단 했습니다. - denied_need_argument: $2변수가 빠졌습니다. $1/plot denied add $2or $1/plot denied remove + denied_need_argument: $2변수가 빠졌습니다. $1/plot denied add $2or $1/plot denied + remove was_not_denied: $2해당 플레이어는 이 땅에서 차단되지 않았습니다. you_got_denied: $4당신은 해당 땅으로부터 차단되었습니다 따라서 spawn으로 자동 이동 되었습니다. rain: @@ -339,6 +347,7 @@ flag: flag_not_added: $2그 깃발은 추가될 수 없습니다 flag_removed: $4깃발이 성공적으로 제거되었습니다 flag_added: $4깃발이 성공적으로 추가되었습니다 + not_valid_flag_suggested: '$2That is not a valid flag. Did you mean: $1%s' trusted: trusted_added: $4당신은 그 땅에 유저를 성공적으로 위탁했습니다 trusted_removed: $4당신은 그 땅으로부터 신용(위탁)받은 유저를 성공적으로 제거했습니다. @@ -355,18 +364,39 @@ member: owner: set_owner: $4당신은 땅의 소유자를 성공적으로 설정했습니다 now_owner: $4당신은 이제 %s땅의 소유자입니다 + set_owner_cancelled: $2The setowner action was cancelled signs: owner_sign_line_1: '$1ID: $1%id%' owner_sign_line_2: '$1소유자:' owner_sign_line_3: $2%plr% owner_sign_line_4: $3Claimed help: - help_header: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------" - help_page_header: '$1Category: $2%category%$2,$1 Page: $2%current%$3/$2%max%$2' - help_footer: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------" + help_header: $3&m---------&r $1Plot² 도움말 $3&m--------- + help_page_header: '$1범주: $2%category%$2,$1 페이지: $2%current%$3/$2%max%$2' + help_footer: $3&m---------&r $1Plot² 도움말 $3&m--------- help_info_item: $1/plot help %category% $3- $2%category_desc% help_item: $1%usage% [%alias%]&- $3- $2%desc%&- - direction: '$1Current direction: %dir%' + direction: '$1현재 방향: %dir%' '-': custom_string: '-' - +commandconfig: + not_valid_subcommand: $2이것은 유효하지 않은 하위 명령어 입니다 + did_you_mean: '$2이것을 명령어를 의미하나요: $1%s' + name_little: $2%s0 아름이 너무 짧습니다, $1%s1$2<$1%s3 + no_commands: $2죄송합니다 당신은 하위명령어 사용을 허가받지 못했습니다. + subcommand_set_options_header: '$2Possible Values: ' + command_syntax: '$1Usage: $2%s' + flag_tutorial_usage: '$1관리자에게 국기를 설정하게하십시오: $2%s' +bar api: {} +set: + set_attribute: $4설정 완료 %s0 로 설정 %s1 +cap: + entity_cap: $2더 많은 몹을 스폰하는 것은 허용되지 않습니다. +near: + plot_near: '$1선수: %s0' +kick: + you_got_kicked: $4너는 쫓겨났다 +grants: + granted_plots: '$1결과: $2%s $1grants left' + granted_plot: $1You granted %s0 plot to $2%s1 + granted_plot_failed: '$1Grant failed: $2%s'