mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-08-31 08:29:33 +02:00
Make some ingame messages more consistent with the LP theme, general cleanup
This commit is contained in:
parent
f3251e9407
commit
a14a416193
|
@ -3,50 +3,46 @@
|
||||||
# Author: Luck
|
# Author: Luck
|
||||||
|
|
||||||
prefix: "&7&l[&b&lL&3&lP&7&l] &c"
|
prefix: "&7&l[&b&lL&3&lP&7&l] &c"
|
||||||
log-info: "&7&l[&bL&3P&7&l] &3{0}"
|
|
||||||
log-warn: "&7&l[&bLuck&3Perms&7&l] &c[WARN] {0}"
|
|
||||||
log-error: "&7&l[&bLuck&3Perms&7&l] &4[ERROR] {0}"
|
|
||||||
empty: "{0}"
|
empty: "{0}"
|
||||||
player-online: "&aOnline"
|
player-online: "&aOnline"
|
||||||
player-offline: "&cOffline"
|
player-offline: "&cOffline"
|
||||||
loading-error: "Permissions data could not be loaded. Please try again later."
|
loading-error: "&cPermissions data could not be loaded. Please try again later."
|
||||||
op-disabled: "&bThe vanilla OP system is disabled on this server."
|
op-disabled: "&bThe vanilla OP system is disabled on this server."
|
||||||
op-disabled-sponge: "&2Server Operator status has no effect when a permission plugin is installed. Please edit user data directly."
|
op-disabled-sponge: "&2Please note that Server Operator status has no effect on Sponge permission checks when a permission plugin is installed. Please edit user data directly."
|
||||||
|
log-info: "&7&l[&bL&3P&7&l] &3{0}"
|
||||||
|
log-warn: "&7&l[&bLuck&3Perms&7&l] &c[WARN] {0}"
|
||||||
|
log-error: "&7&l[&bLuck&3Perms&7&l] &4[ERROR] {0}"
|
||||||
log: "&3LOG &3&l> {0}"
|
log: "&3LOG &3&l> {0}"
|
||||||
verbose-log: "&3VERBOSE &3&l> {0}"
|
verbose-log: "&3VB &3&l> {0}"
|
||||||
export-log: "&3EXPORT &3&l> &f{0}"
|
export-log: "&3EXPORT &3&l> &f{0}"
|
||||||
export-log-progress: "&3EXPORT &3&l> &7{0}"
|
export-log-progress: "&3EXPORT &3&l> &7{0}"
|
||||||
migration-log: "&3MIGRATION &7[&3{0}&7] &3&l> &f{1}"
|
migration-log: "&3MIGRATION &7[&3{0}&7] &3&l> &f{1}"
|
||||||
migration-log-progress: "&3MIGRATION &7[&3{0}&7] &3&l> &7{1}"
|
migration-log-progress: "&3MIGRATION &7[&3{0}&7] &3&l> &7{1}"
|
||||||
command-not-recognised: "Command not recognised."
|
command-not-recognised: "&cCommand not recognised."
|
||||||
command-no-permission: "You do not have permission to use this command!"
|
command-no-permission: "&cYou do not have permission to use this command!"
|
||||||
already-haspermission: "{0} already has this permission!"
|
user-not-found: "&cA user for &4{0}&c could not be found."
|
||||||
does-not-havepermission: "{0} does not have this permission set."
|
user-not-online: "&aUser &b{0}&a is not online."
|
||||||
already-has-temp-permission: "{0} already has this permission set temporarily!"
|
user-save-error: "&cThere was an error whilst saving user data for &4{0}&c."
|
||||||
does-not-have-temp-permission: "{0} does not have this permission set temporarily."
|
group-not-found: "&cA group named &4{0}&c could not be found."
|
||||||
user-not-found: "&bUser could not be found."
|
group-save-error: "&cThere was an error whilst saving group data for &4{0}&c."
|
||||||
user-not-online: "&bUser &a{0}&b is not online."
|
track-not-found: "&cA track named &4{0}&c could not be found."
|
||||||
user-save-error: "There was an error whilst saving the user."
|
track-save-error: "&cThere was an error whilst saving track data for &4{0}&c."
|
||||||
group-not-found: "&bGroup could not be found."
|
user-invalid-entry: "&4{0}&c is not a valid username/uuid."
|
||||||
group-save-error: "There was an error whilst saving the group."
|
group-invalid-entry: "&4{0}&c is not a valid group name."
|
||||||
track-not-found: "&bTrack could not be found."
|
track-invalid-entry: "&4{0}&c is not a valid track name."
|
||||||
track-save-error: "There was an error whilst saving the track."
|
server-world-invalid-entry: "&cServer/world names can only contain alphanumeric characters and cannot exceed 36 characters in length."
|
||||||
user-invalid-entry: "&d{0}&c is not a valid username/uuid."
|
use-inherit-command: "&cUse the 'parent add' and 'parent remove' commands instead of specifying the node."
|
||||||
group-invalid-entry: "Group names can only contain alphanumeric characters."
|
verbose-invalid-filter: "&4{0}&c is not a valid verbose filter."
|
||||||
track-invalid-entry: "Track names can only contain alphanumeric characters."
|
verbose-on: "&bVerbose logging &aenabled &bfor checks matching &aANY&b."
|
||||||
server-world-invalid-entry: "Server/world names can only contain alphanumeric characters and cannot exceed 36 characters in length."
|
verbose-on-query: "&bVerbose logging &aenabled &bfor checks matching &a{0}&b."
|
||||||
use-inherit-command: "Use the 'parent add' and 'parent remove' commands instead of specifying the node."
|
verbose-off: "&bVerbose logging &cdisabled&b."
|
||||||
verbose-invalid-filter: "&cInvalid verbose filter: &f{0}"
|
verbose-recording-on: "&bVerbose recording &aenabled &bfor checks matching &aANY&b."
|
||||||
verbose-on: "&bVerbose checking output set to &aTRUE &bfor all permissions."
|
verbose-recording-on-query: "&bVerbose recording &aenabled &bfor checks matching &a{0}&b."
|
||||||
verbose-on-query: "&bVerbose checking output set to &aTRUE &bfor permissions matching filter: &f{0}"
|
verbose-upload-start: "&bVerbose logging &cdisabled&b. Uploading results..."
|
||||||
verbose-off: "&bVerbose checking output set to &cFALSE&b."
|
verbose-results-url: "&aVerbose results URL:"
|
||||||
verbose-recording-on: "&bVerbose recording set to &aTRUE &bfor all permissions."
|
|
||||||
verbose-recording-on-query: "&bVerbose recording set to &aTRUE &bfor permissions matching filter: &f{0}"
|
|
||||||
verbose-recording-upload-start: "&bVerbose recording was disabled. Uploading results..."
|
|
||||||
verbose-recording-url: "&aVerbose results URL:"
|
|
||||||
tree-upload-start: "&bGenerating permission tree..."
|
tree-upload-start: "&bGenerating permission tree..."
|
||||||
tree-empty: "&aUnable to generate tree. No results were found."
|
tree-empty: "&cUnable to generate tree. No results were found."
|
||||||
tree-url: "&aPermission Tree URL:"
|
tree-url: "&aPermission tree URL:"
|
||||||
search-searching: "&aSearching for users and groups with &b{0}&a..."
|
search-searching: "&aSearching for users and groups with &b{0}&a..."
|
||||||
search-searching-members: "&aSearching for users and groups who inherit from &b{0}&a..."
|
search-searching-members: "&aSearching for users and groups who inherit from &b{0}&a..."
|
||||||
search-result: "&aFound &b{0}&a entries from &b{1}&a users and &b{2}&a groups."
|
search-result: "&aFound &b{0}&a entries from &b{1}&a users and &b{2}&a groups."
|
||||||
|
@ -54,13 +50,13 @@ search-showing-users: "&bShowing user entries:"
|
||||||
search-showing-groups: "&bShowing group entries:"
|
search-showing-groups: "&bShowing group entries:"
|
||||||
search-showing-users-with-page: "&bShowing user entries: {0}"
|
search-showing-users-with-page: "&bShowing user entries: {0}"
|
||||||
search-showing-groups-with-page: "&bShowing group entries: {0}"
|
search-showing-groups-with-page: "&bShowing group entries: {0}"
|
||||||
apply-edits-invalid-code: "&aInvalid code. &7({0})"
|
apply-edits-invalid-code: "&cInvalid code. &7({0})"
|
||||||
apply-edits-unable-to-read: "&aUnable to read data using the given code. &7({0})"
|
apply-edits-unable-to-read: "&cUnable to read data using the given code. &7({0})"
|
||||||
apply-edits-no-target: "&aUnable to parse the target of the edit. Please supply it as an extra argument."
|
apply-edits-no-target: "&cUnable to parse the target of the edit. Please supply it as an extra argument."
|
||||||
apply-edits-target-group-not-exists: "&aTarget group &b{0}&a does not exist."
|
apply-edits-target-group-not-exists: "&cTarget group &4{0}&c does not exist."
|
||||||
apply-edits-target-user-not-uuid: "&aTarget user &b{0}&a is not a valid uuid."
|
apply-edits-target-user-not-uuid: "&cTarget user &4{0}&c is not a valid uuid."
|
||||||
apply-edits-target-user-unable-to-load: "&aUnable to load target user &b{0}&a."
|
apply-edits-target-user-unable-to-load: "&cUnable to load target user &4{0}&c."
|
||||||
apply-edits-target-unknown: "&aInvalid target. &7({0})"
|
apply-edits-target-unknown: "&cInvalid target. &7({0})"
|
||||||
apply-edits-success: "&aSuccessfully applied &b{0}&a nodes to &b{1}&a."
|
apply-edits-success: "&aSuccessfully applied &b{0}&a nodes to &b{1}&a."
|
||||||
editor-upload-failure: "&cUnable to upload permission data to the editor."
|
editor-upload-failure: "&cUnable to upload permission data to the editor."
|
||||||
editor-url: "&aEditor URL:"
|
editor-url: "&aEditor URL:"
|
||||||
|
@ -69,29 +65,27 @@ create-success: "&b{0}&a was successfully created."
|
||||||
delete-success: "&b{0}&a was successfully deleted."
|
delete-success: "&b{0}&a was successfully deleted."
|
||||||
rename-success: "&b{0}&a was successfully renamed to &b{1}&a."
|
rename-success: "&b{0}&a was successfully renamed to &b{1}&a."
|
||||||
clone-success: "&b{0}&a was successfully cloned onto &b{1}&a."
|
clone-success: "&b{0}&a was successfully cloned onto &b{1}&a."
|
||||||
already-inherits: "{0} already inherits '{1}'."
|
already-inherits: "&b{0}&a already inherits from &b{1}&a in context {2}&a."
|
||||||
does-not-inherit: "{0} does not inherit '{1}'."
|
does-not-inherit: "&b{0}&a does not inherit from &b{1}&a in context {2}&a."
|
||||||
already-temp-inherits: "{0} already temporarily inherits '{1}'."
|
already-temp-inherits: "&b{0}&a already temporarily inherits from &b{1}&a in context {2}&a."
|
||||||
does-not-temp-inherit: "{0} does not temporarily inherit '{1}'."
|
does-not-temp-inherit: "&b{0}&a does not temporarily inherit from &b{1}&a in context {2}&a."
|
||||||
track-already-contains: "Track {0} already contains the group '{1}'."
|
track-already-contains: "&b{0}&a already contains &b{1}&a."
|
||||||
track-does-not-contain: "Track {0} does not contain the group '{1}'."
|
track-does-not-contain: "&b{0}&a doesn't contain &b{1}&a."
|
||||||
track-ambiguous-call: "The user specified is a member of multiple groups on this track. Unable to determine their location."
|
track-ambiguous-call: "&4{0}&c is a member of multiple groups on this track. Unable to determine their location."
|
||||||
group-already-exists: "That group already exists!"
|
already-exists: "&4{0}&c already exists!"
|
||||||
group-does-not-exist: "That group does not exist!"
|
does-not-exist: "&4{0}&c does not exist!"
|
||||||
group-load-error: "An unexpected error occurred. Group not loaded."
|
group-load-error: "&cAn unexpected error occurred. Group not loaded."
|
||||||
groups-load-error: "An unexpected error occurred. Unable to load all groups."
|
groups-load-error: "&cAn unexpected error occurred. Unable to load all groups."
|
||||||
track-already-exists: "That track already exists!"
|
track-load-error: "&cAn unexpected error occurred. Track not loaded."
|
||||||
track-does-not-exist: "That track does not exist!"
|
tracks-load-error: "&cAn unexpected error occurred. Unable to load all tracks."
|
||||||
track-load-error: "An unexpected error occurred. Track not loaded."
|
track-empty: "&4{0}&c cannot be used as it is empty or contains only one group."
|
||||||
tracks-load-error: "An unexpected error occurred. Unable to load all tracks."
|
update-task-request: "&bAn update task has been requested. Please wait..."
|
||||||
track-empty: "The track cannot be used as it is empty or contains only one group."
|
update-task-complete: "&aUpdate task complete."
|
||||||
update-task-request: "&bUpdate task scheduled."
|
update-task-complete-network: "&aUpdate task complete. Now attempting to push to other servers."
|
||||||
update-task-complete: "&aUpdate task finished."
|
|
||||||
update-task-complete-network: "&aUpdate task finished. Now attempting to push to other servers."
|
|
||||||
update-task-push-success: "&aOther servers were notified via &b{0} Messaging &asuccessfully."
|
update-task-push-success: "&aOther servers were notified via &b{0} Messaging &asuccessfully."
|
||||||
update-task-push-failure: "&cError whilst pushing changes to other servers."
|
update-task-push-failure: "&cError whilst pushing changes to other servers."
|
||||||
update-task-push-failure-not-setup: "&cError whilst pushing changes to other servers. A messaging service has not been configured."
|
update-task-push-failure-not-setup: "&cError whilst pushing changes to other servers. &7(a messaging service has not been configured)"
|
||||||
reload-config-success: "&aThe configuration file was reloaded. &7(some options will only apply after the server has restarted.)"
|
reload-config-success: "&aThe configuration file was reloaded. &7(some options will only apply after the server has restarted)"
|
||||||
info-top: >
|
info-top: >
|
||||||
{PREFIX}&2Running &bLuckPerms v{0}&2 by &bLuck&2.\n
|
{PREFIX}&2Running &bLuckPerms v{0}&2 by &bLuck&2.\n
|
||||||
{PREFIX}&f- &3Platform: &f{1}\n
|
{PREFIX}&f- &3Platform: &f{1}\n
|
||||||
|
@ -108,25 +102,23 @@ info-middle: >
|
||||||
{PREFIX}&f- &3Context Calculators: &a{8}\n
|
{PREFIX}&f- &3Context Calculators: &a{8}\n
|
||||||
{PREFIX}&f- &3Known permissions: &a{9}\n
|
{PREFIX}&f- &3Known permissions: &a{9}\n
|
||||||
{PREFIX}&f- &3Active processors: &7{10}
|
{PREFIX}&f- &3Active processors: &7{10}
|
||||||
create-group-error: "There was an error whilst creating the group."
|
create-error: "&cThere was an error whilst creating &4{0}&c."
|
||||||
delete-group-error: "There was an error whilst deleting the group."
|
delete-error: "&cThere was an error whilst deleting &4{0}&c."
|
||||||
delete-group-error-default: "You cannot delete the default group."
|
delete-group-error-default: "&cYou cannot delete the default group."
|
||||||
groups-list: "&aGroups: &7(name, weight, tracks)"
|
groups-list: "&aGroups: &7(name, weight, tracks)"
|
||||||
groups-list-entry: "&f- &3{0} &7- &b{1}"
|
groups-list-entry: "&f- &3{0} &7- &b{1}"
|
||||||
groups-list-entry-with-tracks: "&f- &3{0} &7- &b{1} &7- [&3{2}&7]"
|
groups-list-entry-with-tracks: "&f- &3{0} &7- &b{1} &7- [&3{2}&7]"
|
||||||
create-track-error: "There was an error whilst creating the track."
|
|
||||||
delete-track-error: "There was an error whilst deleting the track."
|
|
||||||
tracks-list: "&aTracks: {0}"
|
tracks-list: "&aTracks: {0}"
|
||||||
listnodes: "&b{0}'s Nodes:"
|
listnodes: "&b{0}'s Permissions:"
|
||||||
listnodes-with-page: "&b{0}'s Nodes: {1}"
|
listnodes-with-page: "&b{0}'s Permissions: {1}"
|
||||||
listnodes-temp: "&b{0}'s Temporary Nodes:"
|
listnodes-temp: "&b{0}'s Temporary Permissions:"
|
||||||
listnodes-temp-with-page: "&b{0}'s Temporary Nodes: {1}"
|
listnodes-temp-with-page: "&b{0}'s Temporary Permissions: {1}"
|
||||||
listparents: "&b{0}'s Parent Groups:"
|
listparents: "&b{0}'s Parent Groups:"
|
||||||
listparents-temp: "&b{0}'s Temporary Parent Groups:"
|
listparents-temp: "&b{0}'s Temporary Parent Groups:"
|
||||||
list-tracks: >
|
list-tracks: >
|
||||||
&b{0}'s Tracks:\n
|
&b{0}'s Tracks:\n
|
||||||
{1}
|
{1}
|
||||||
list-tracks-empty: "{0} is not on any tracks."
|
list-tracks-empty: "&b{0}&a is not on any tracks."
|
||||||
context-pair-inline: "&3{0}=&b{1}"
|
context-pair-inline: "&3{0}=&b{1}"
|
||||||
context-pair--global-inline: "&eglobal"
|
context-pair--global-inline: "&eglobal"
|
||||||
context-pair-sep: "&a, "
|
context-pair-sep: "&a, "
|
||||||
|
@ -134,9 +126,13 @@ context-pair: "&8(&7{0}=&f{1}&8)"
|
||||||
check-permission: "&b{0}&a has permission &b{1}&a set to {2}&a in context {3}&a."
|
check-permission: "&b{0}&a has permission &b{1}&a set to {2}&a in context {3}&a."
|
||||||
check-inherits-permission: "&b{0}&a has permission &b{1}&a set to {2}&a in context {3}&a. &7(inherited from &a{4}&7)"
|
check-inherits-permission: "&b{0}&a has permission &b{1}&a set to {2}&a in context {3}&a. &7(inherited from &a{4}&7)"
|
||||||
setpermission-success: "&aSet &b{0}&a to &b{1}&a for &b{2}&a in context {3}&a."
|
setpermission-success: "&aSet &b{0}&a to &b{1}&a for &b{2}&a in context {3}&a."
|
||||||
|
already-haspermission: "&b{0}&a already has &b{1}&a set in context {2}&a."
|
||||||
setpermission-temp-success: "&aSet &b{0}&a to &b{1}&a for &b{2}&a for a duration of &b{3}&a in context {4}&a."
|
setpermission-temp-success: "&aSet &b{0}&a to &b{1}&a for &b{2}&a for a duration of &b{3}&a in context {4}&a."
|
||||||
|
already-has-temp-permission: "&b{0}&a already has &b{1}&a set temporarily in context {2}&a."
|
||||||
unsetpermission-success: "&aUnset &b{0}&a for &b{1}&a in context {2}&a."
|
unsetpermission-success: "&aUnset &b{0}&a for &b{1}&a in context {2}&a."
|
||||||
|
does-not-have-permission: "&b{0}&a does not have &b{1}&a set in context {2}&a."
|
||||||
unset-temp-permission-success: "&aUnset temporary permission &b{0}&a for &b{1}&a in context {2}&a."
|
unset-temp-permission-success: "&aUnset temporary permission &b{0}&a for &b{1}&a in context {2}&a."
|
||||||
|
does-not-have-temp-permission: "&b{0}&a does not have &b{1}&a set temporarily in context {2}&a."
|
||||||
set-inherit-success: "&b{0}&a now inherits permissions from &b{1}&a in context {2}&a."
|
set-inherit-success: "&b{0}&a now inherits permissions from &b{1}&a in context {2}&a."
|
||||||
set-temp-inherit-success: "&b{0}&a now inherits permissions from &b{1}&a for a duration of &b{2}&a in context {3}&a."
|
set-temp-inherit-success: "&b{0}&a now inherits permissions from &b{1}&a for a duration of &b{2}&a in context {3}&a."
|
||||||
set-parent-success: "&b{0}&a had their existing parent groups cleared, and now only inherits &b{1}&a in context {2}&a."
|
set-parent-success: "&b{0}&a had their existing parent groups cleared, and now only inherits &b{1}&a in context {2}&a."
|
||||||
|
@ -151,35 +147,40 @@ parent-clear-track-success: "&b{0}&a's parents on track &b{1}&a were cleared in
|
||||||
parent-clear-track-success-singular: "&b{0}&a's parents on track &b{1}&a were cleared in context {2}&a. (&b{3}&a node was removed.)"
|
parent-clear-track-success-singular: "&b{0}&a's parents on track &b{1}&a were cleared in context {2}&a. (&b{3}&a node was removed.)"
|
||||||
meta-clear-success: "&b{0}&a's meta matching type &b{1}&a was cleared in context {2}&a. (&b{3}&a nodes were removed.)"
|
meta-clear-success: "&b{0}&a's meta matching type &b{1}&a was cleared in context {2}&a. (&b{3}&a nodes were removed.)"
|
||||||
meta-clear-success-singular: "&b{0}&a's meta matching type &b{1}&a was cleared in context {2}&a. (&b{3}&a node was removed.)"
|
meta-clear-success-singular: "&b{0}&a's meta matching type &b{1}&a was cleared in context {2}&a. (&b{3}&a node was removed.)"
|
||||||
illegal-date-error: "Could not parse date '{0}'."
|
illegal-date-error: "&cCould not parse date &4{0}&c."
|
||||||
past-date-error: "You cannot set a date in the past!"
|
past-date-error: "&cYou cannot set a date in the past!"
|
||||||
chat-meta-prefix-header: "&b{0}'s Prefixes"
|
chat-meta-prefix-header: "&b{0}'s Prefixes"
|
||||||
chat-meta-suffix-header: "&b{0}'s Suffixes"
|
chat-meta-suffix-header: "&b{0}'s Suffixes"
|
||||||
meta-header: "&b{0}'s Meta"
|
meta-header: "&b{0}'s Meta"
|
||||||
chat-meta-entry: "&b-> {0} &f- &f\"{1}&f\" &8(&7inherited from &a{2}&8)"
|
chat-meta-entry: "&b-> {0} &f- &f'{1}&f' &8(&7inherited from &a{2}&8)"
|
||||||
chat-meta-entry-with-context: "&b-> {0} &f- &f\"{1}&f\" &8(&7inherited from &a{2}&8){3}"
|
chat-meta-entry-with-context: "&b-> {0} &f- &f'{1}&f' &8(&7inherited from &a{2}&8){3}"
|
||||||
meta-entry: "&b-> &a{0} &f= &f\"{1}&f\" &8(&7inherited from &a{2}&8)"
|
meta-entry: "&b-> &a{0} &f= &f'{1}&f' &8(&7inherited from &a{2}&8)"
|
||||||
meta-entry-with-context: "&b-> &a{0} &f= &f\"{1}&f\" &8(&7inherited from &a{2}&8){3}"
|
meta-entry-with-context: "&b-> &a{0} &f= &f'{1}&f' &8(&7inherited from &a{2}&8){3}"
|
||||||
chat-meta-prefix-none: "&b{0} has no prefixes."
|
chat-meta-prefix-none: "&b{0} has no prefixes."
|
||||||
chat-meta-suffix-none: "&b{0} has no suffixes."
|
chat-meta-suffix-none: "&b{0} has no suffixes."
|
||||||
meta-none: "&b{0} has no meta."
|
meta-none: "&b{0} has no meta."
|
||||||
meta-invalid-priority: "Invalid priority '{0}'. Expected a number."
|
meta-invalid-priority: "&cInvalid priority &4{0}&c. Expected a number."
|
||||||
already-has-chat-meta: "{0} already has that {1} set."
|
already-has-chat-meta: "&b{0}&a already has {1} &f'{2}&f'&a set at a priority of &b{3}&a in context {4}&a."
|
||||||
does-not-have-chat-meta: "{0} doesn't have that {1} set."
|
already-has-temp-chat-meta: "&b{0}&a already has {1} &f'{2}&f'&a set temporarily at a priority of &b{3}&a in context {4}&a."
|
||||||
add-chatmeta-success: "&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a in context {4}&a."
|
does-not-have-chat-meta: "&b{0}&a doesn't have {1} &f'{2}&f'&a set at a priority of &b{3}&a in context {4}&a."
|
||||||
add-temp-chatmeta-success: "&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a for a duration of &b{4}&a in context {5}&a."
|
does-not-have-temp-chat-meta: "&b{0}&a doesn't have {1} &f'{2}&f'&a set temporarily at a priority of &b{3}&a in context {4}&a."
|
||||||
remove-chatmeta-success: "&b{0}&a had {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a."
|
add-chatmeta-success: "&b{0}&a had {1} &f'{2}&f'&a set at a priority of &b{3}&a in context {4}&a."
|
||||||
|
add-temp-chatmeta-success: "&b{0}&a had {1} &f'{2}&f'&a set at a priority of &b{3}&a for a duration of &b{4}&a in context {5}&a."
|
||||||
|
remove-chatmeta-success: "&b{0}&a had {1} &f'{2}&f'&a at priority &b{3}&a removed in context {4}&a."
|
||||||
bulk-remove-chatmeta-success: "&b{0}&a had all {1}es at priority &b{2}&a removed in context {3}&a."
|
bulk-remove-chatmeta-success: "&b{0}&a had all {1}es at priority &b{2}&a removed in context {3}&a."
|
||||||
remove-temp-chatmeta-success: "&b{0}&a had temporary {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a."
|
remove-temp-chatmeta-success: "&b{0}&a had temporary {1} &f'{2}&f'&a at priority &b{3}&a removed in context {4}&a."
|
||||||
bulk-remove-temp-chatmeta-success: "&b{0}&a had all temporary {1}es at priority &b{2}&a removed in context {3}&a."
|
bulk-remove-temp-chatmeta-success: "&b{0}&a had all temporary {1}es at priority &b{2}&a removed in context {3}&a."
|
||||||
already-has-meta: "{0} already has that meta key value pair set."
|
already-has-meta: "&b{0}&a already has meta key &f'{1}&f'&a set to &f'{2}&f'&a in context {3}&a."
|
||||||
set-meta-success: "&aSet meta value for key &f\"{0}&f\"&a to &f\"{1}&f\"&a for &b{2}&a in context {3}&a."
|
already-has-temp-meta: "&b{0}&a already has meta key &f'{1}&f'&a temporarily set to &f'{2}&f'&a in context {3}&a."
|
||||||
set-meta-temp-success: "&aSet meta value for key &f\"{0}&f\"&a to &f\"{1}&f\"&a for &b{2}&a for a duration of &b{3}&a in context {4}&a."
|
doesnt-have-meta: "&b{0}&a doesn't have meta key &f'{1}&f'&a set in context {2}&a."
|
||||||
unset-meta-success: "&aUnset meta value with key &f\"{0}&f\"&a for &b{1}&a in context {2}&a."
|
doesnt-have-temp-meta: "&b{0}&a doesn't have meta key &f'{1}&f'&a set temporarily in context {2}&a."
|
||||||
unset-meta-temp-success: "&aUnset temporary meta value with key &f\"{0}&f\"&a for &b{1}&a in context {2}&a."
|
set-meta-success: "&aSet meta key &f'{0}&f'&a to &f'{1}&f'&a for &b{2}&a in context {3}&a."
|
||||||
bulk-update-invalid-data-type: "Invalid type. Was expecting 'all', 'users' or 'groups'."
|
set-meta-temp-success: "&aSet meta key &f'{0}&f'&a to &f'{1}&f'&a for &b{2}&a for a duration of &b{3}&a in context {4}&a."
|
||||||
bulk-update-invalid-constraint: "Invalid constraint &4{0}&c. Constraints should be in the format '&f<field> <comparison operator> <value>&c'."
|
unset-meta-success: "&aUnset meta key &f'{0}&f'&a for &b{1}&a in context {2}&a."
|
||||||
bulk-update-invalid-comparison: "Invalid comparison operator '&4{0}&c'. Expected one of the following: &f== != ~~ ~!"
|
unset-meta-temp-success: "&aUnset temporary meta key &f'{0}&f'&a for &b{1}&a in context {2}&a."
|
||||||
|
bulk-update-invalid-data-type: "&cInvalid type. Was expecting 'all', 'users' or 'groups'."
|
||||||
|
bulk-update-invalid-constraint: "&cInvalid constraint &4{0}&c. Constraints should be in the format '&f<field> <comparison operator> <value>&c'."
|
||||||
|
bulk-update-invalid-comparison: "&cInvalid comparison operator '&4{0}&c'. Expected one of the following: &f== != ~~ ~!"
|
||||||
bulk-update-queued: "&aBulk update operation was queued. &7(&f{0}&7)"
|
bulk-update-queued: "&aBulk update operation was queued. &7(&f{0}&7)"
|
||||||
bulk-update-confirm: "&aRun &b/{0} bulkupdate confirm {1} &ato execute the update."
|
bulk-update-confirm: "&aRun &b/{0} bulkupdate confirm {1} &ato execute the update."
|
||||||
bulk-update-unknown-id: "&aOperation with id &b{0}&a does not exist or has expired."
|
bulk-update-unknown-id: "&aOperation with id &b{0}&a does not exist or has expired."
|
||||||
|
@ -192,8 +193,8 @@ user-info-general: >
|
||||||
{PREFIX}&f- &3Status: {2}\n
|
{PREFIX}&f- &3Status: {2}\n
|
||||||
{PREFIX}&f- &3Primary Group: &f{3}\n
|
{PREFIX}&f- &3Primary Group: &f{3}\n
|
||||||
{PREFIX}&f- &aCounts:\n
|
{PREFIX}&f- &aCounts:\n
|
||||||
{PREFIX}&f- &3Permissions: &a{4}\n
|
{PREFIX}&f- &3Nodes: &a{4}\n
|
||||||
{PREFIX}&f- &3Temporary Permissions: &a{5}\n
|
{PREFIX}&f- &3Permissions: &a{5}\n
|
||||||
{PREFIX}&f- &3Prefixes: &a{6}\n
|
{PREFIX}&f- &3Prefixes: &a{6}\n
|
||||||
{PREFIX}&f- &3Suffixes: &a{7}\n
|
{PREFIX}&f- &3Suffixes: &a{7}\n
|
||||||
{PREFIX}&f- &3Meta: &a{8}
|
{PREFIX}&f- &3Meta: &a{8}
|
||||||
|
@ -205,30 +206,30 @@ user-info-data: >
|
||||||
{PREFIX}&f- &3Current Suffix: {3}
|
{PREFIX}&f- &3Current Suffix: {3}
|
||||||
info-parent-header: "&f- &aParent Groups:"
|
info-parent-header: "&f- &aParent Groups:"
|
||||||
info-temp-parent-header: "&f- &aTemporary Parent Groups:"
|
info-temp-parent-header: "&f- &aTemporary Parent Groups:"
|
||||||
user-removegroup-error-primary: "You cannot remove a user from their primary group."
|
user-removegroup-error-primary: "&aYou cannot remove a user from their primary group."
|
||||||
user-primarygroup-success: "&b{0}&a's primary group was set to &b{1}&a."
|
user-primarygroup-success: "&b{0}&a's primary group was set to &b{1}&a."
|
||||||
user-primarygroup-warn-option: "&cWarning: The primary group calculation method being used by this server &7({0}) &cmay not reflect this change."
|
user-primarygroup-warn-option: "&aWarning: The primary group calculation method being used by this server &7({0}) &amay not reflect this change."
|
||||||
user-primarygroup-error-alreadyhas: "The user already has this group set as their primary group."
|
user-primarygroup-error-alreadyhas: "&b{0}&a already has &b{1}&a set as their primary group."
|
||||||
user-primarygroup-error-notmember: "&b{0}&a was not already a member of &b{1}&a, adding them now."
|
user-primarygroup-error-notmember: "&b{0}&a was not already a member of &b{1}&a, adding them now."
|
||||||
user-track-error-not-contain-group: "The user specified isn't already in any groups on this track."
|
user-track-error-not-contain-group: "&b{0}&a isn't already in any groups on &b{1}&a."
|
||||||
user-track-added-to-first: "&b{0}&a isn't in any groups on this track, so they were added to the first group, &b{1}&a in context {2}&a."
|
user-track-added-to-first: "&b{0}&a isn't in any groups on this track, so they were added to the first group, &b{1}&a in context {2}&a."
|
||||||
user-promote-success: "&aPromoting user along track &b{0}&a from &b{1}&a to &b{2}&a in context {3}&a."
|
user-promote-success: "&aPromoting &b{0}&a along track &b{1}&a from &b{2}&a to &b{3}&a in context {4}&a."
|
||||||
user-promote-error-endoftrack: "The end of track &4{0}&c was reached. Unable to promote user."
|
user-promote-error-endoftrack: "&aThe end of track &b{0}&a was reached. Unable to promote &b{1}&a."
|
||||||
user-promote-error-malformed: >
|
user-promote-error-malformed: >
|
||||||
{PREFIX}The next group on the track, {0}, no longer exists. Unable to promote user.\n
|
{PREFIX}&aThe next group on the track, &b{0}&a, no longer exists. Unable to promote user.\n
|
||||||
{PREFIX}Either create the group, or remove it from the track and try again.
|
{PREFIX}&aEither create the group, or remove it from the track and try again.
|
||||||
user-demote-success: "&aDemoting user along track &b{0}&a from &b{1}&a to &b{2}&a in context {3}&a."
|
user-demote-success: "&aDemoting &b{0}&a along track &b{1}&a from &b{2}&a to &b{3}&a in context {4}&a."
|
||||||
user-demote-endoftrack: "The end of track &4{0}&c was reached, so &4{1}&c was removed from &4{2}&c."
|
user-demote-endoftrack: "&aThe end of track &b{0}&a was reached, so &b{1}&a was removed from &b{2}&a."
|
||||||
user-demote-error-malformed: >
|
user-demote-error-malformed: >
|
||||||
{PREFIX}The previous group on the track, {0}, no longer exists. Unable to demote user.\n
|
{PREFIX}&aThe previous group on the track, &b{0}&a, no longer exists. Unable to demote user.\n
|
||||||
{PREFIX}Either create the group, or remove it from the track and try again.
|
{PREFIX}&aEither create the group, or remove it from the track and try again.
|
||||||
group-info-general: >
|
group-info-general: >
|
||||||
{PREFIX}&b&l> &bGroup Info: &f{0}\n
|
{PREFIX}&b&l> &bGroup Info: &f{0}\n
|
||||||
{PREFIX}&f- &3Display Name: &f{1}\n
|
{PREFIX}&f- &3Display Name: &f{1}\n
|
||||||
{PREFIX}&f- &3Weight: &f{2}\n
|
{PREFIX}&f- &3Weight: &f{2}\n
|
||||||
{PREFIX}&f- &aCounts:\n
|
{PREFIX}&f- &aCounts:\n
|
||||||
{PREFIX}&f- &3Permissions: &a{3}\n
|
{PREFIX}&f- &3Nodes: &a{3}\n
|
||||||
{PREFIX}&f- &3Temporary Permissions: &a{4}\n
|
{PREFIX}&f- &3Permissions: &a{4}\n
|
||||||
{PREFIX}&f- &3Prefixes: &a{5}\n
|
{PREFIX}&f- &3Prefixes: &a{5}\n
|
||||||
{PREFIX}&f- &3Suffixes: &a{6}\n
|
{PREFIX}&f- &3Suffixes: &a{6}\n
|
||||||
{PREFIX}&f- &3Meta: &a{7}
|
{PREFIX}&f- &3Meta: &a{7}
|
||||||
|
@ -237,40 +238,40 @@ track-info: >
|
||||||
{PREFIX}&b&l> &bShowing Track: &f{0}\n
|
{PREFIX}&b&l> &bShowing Track: &f{0}\n
|
||||||
{PREFIX}&f- &7Path: &f{1}
|
{PREFIX}&f- &7Path: &f{1}
|
||||||
track-clear: "&b{0}&a's groups track was cleared."
|
track-clear: "&b{0}&a's groups track was cleared."
|
||||||
track-append-success: "&aGroup &b{0}&a was successfully appended to track &b{1}&a."
|
track-append-success: "&aGroup &b{0}&a was appended to track &b{1}&a."
|
||||||
track-insert-success: "&aGroup &b{0}&a was successfully inserted into track &b{1}&a at position &b{2}&a."
|
track-insert-success: "&aGroup &b{0}&a was inserted into track &b{1}&a at position &b{2}&a."
|
||||||
track-insert-error-number: "Expected number but instead received: {0}"
|
track-insert-error-number: "&cExpected number but instead received: {0}"
|
||||||
track-insert-error-invalid-pos: "Unable to insert at position {0}. Index out of bounds."
|
track-insert-error-invalid-pos: "&cUnable to insert at position &4{0}&c. &7(invalid position)"
|
||||||
track-remove-success: "&aGroup &b{0}&a was successfully removed from track &b{1}&a."
|
track-remove-success: "&aGroup &b{0}&a was removed from track &b{1}&a."
|
||||||
log-load-error: "The log could not be loaded."
|
log-load-error: "&cThe log could not be loaded."
|
||||||
log-invalid-page: "Invalid page number."
|
log-invalid-page: "&cInvalid page number."
|
||||||
log-invalid-page-range: "Invalid page number. Please enter a value between 1 and {0}."
|
log-invalid-page-range: "&cInvalid page number. Please enter a value between &41&c and &4{0}&c."
|
||||||
log-no-entries: "&bNo log entries to show."
|
log-no-entries: "&bNo log entries to show."
|
||||||
log-entry: "&b#{0} -> &8(&7{1} ago&8) {2}"
|
log-entry: "&b#{0} -> &8(&7{1} ago&8) {2}"
|
||||||
log-notify-console: "&cCannot toggle notifications for console."
|
log-notify-console: "&cCannot toggle notifications for console."
|
||||||
log-notify-toggle-on: "&aEnabled&b logging output."
|
log-notify-toggle-on: "&aEnabled&b logging output."
|
||||||
log-notify-toggle-off: "&cDisabled&b logging output."
|
log-notify-toggle-off: "&cDisabled&b logging output."
|
||||||
log-notify-already-on: "You are already receiving notifications."
|
log-notify-already-on: "&cYou are already receiving notifications."
|
||||||
log-notify-already-off: "You aren't currently receiving notifications."
|
log-notify-already-off: "&cYou aren't currently receiving notifications."
|
||||||
log-notify-unknown: "State unknown. Expecting \"on\" or \"off\"."
|
log-notify-unknown: "&cState unknown. Expecting \"on\" or \"off\"."
|
||||||
log-search-header: "&aShowing recent actions for query &b{0} &a(page &f{1}&a of &f{2}&a)"
|
log-search-header: "&aShowing recent actions for query &b{0} &a(page &f{1}&a of &f{2}&a)"
|
||||||
log-recent-header: "&aShowing recent actions (page &f{0}&a of &f{1}&a)"
|
log-recent-header: "&aShowing recent actions (page &f{0}&a of &f{1}&a)"
|
||||||
log-recent-by-header: "&aShowing recent actions by &b{0} &a(page &f{1}&a of &f{2}&a)"
|
log-recent-by-header: "&aShowing recent actions by &b{0} &a(page &f{1}&a of &f{2}&a)"
|
||||||
log-history-user-header: "&aShowing history for user &b{0} &a(page &f{1}&a of &f{2}&a)"
|
log-history-user-header: "&aShowing history for user &b{0} &a(page &f{1}&a of &f{2}&a)"
|
||||||
log-history-group-header: "&aShowing history for group &b{0} &a(page &f{1}&a of &f{2}&a)"
|
log-history-group-header: "&aShowing history for group &b{0} &a(page &f{1}&a of &f{2}&a)"
|
||||||
log-history-track-header: "&aShowing history for track &b{0} &a(page &f{1}&a of &f{2}&a)"
|
log-history-track-header: "&aShowing history for track &b{0} &a(page &f{1}&a of &f{2}&a)"
|
||||||
log-export-already-exists: "Error: File {0} already exists."
|
log-export-already-exists: "&cError: File &4{0}&c already exists."
|
||||||
log-export-not-writable: "Error: File {0} is not writable."
|
log-export-not-writable: "&cError: File &4{0}&c is not writable."
|
||||||
log-export-empty: "The log is empty and therefore cannot be exported."
|
log-export-empty: "&cThe log is empty and therefore cannot be exported."
|
||||||
log-export-failure: "An unexpected error occured whilst writing to the file."
|
log-export-failure: "&cAn unexpected error occured whilst writing to the file."
|
||||||
log-export-success: "&aSuccessfully exported the log to &b{0}&a."
|
log-export-success: "&aSuccessfully exported the log to &b{0}&a."
|
||||||
import-already-running: "Another import process is already running. Please wait for it to finish and try again."
|
import-already-running: "&cAnother import process is already running. Please wait for it to finish and try again."
|
||||||
export-already-running: "Another export process is already running. Please wait for it to finish and try again."
|
export-already-running: "&cAnother export process is already running. Please wait for it to finish and try again."
|
||||||
import-log-doesnt-exist: "Error: File {0} does not exist."
|
import-log-doesnt-exist: "&cError: File &4{0}&c does not exist."
|
||||||
import-log-not-readable: "Error: File {0} is not readable."
|
import-log-not-readable: "&cError: File &4{0}&c is not readable."
|
||||||
import-log-failure: "An unexpected error occured whilst reading from the log file."
|
import-log-failure: "&cAn unexpected error occured whilst reading from the log file."
|
||||||
import-progress: "&b(Import) &b-> &f{0} &fpercent complete &7- &b{1}&f/&b{2} &foperations complete with &c{3} &ferrors."
|
import-progress: "&b(Import) &b-> &f{0}&f% complete &7- &b{1}&f/&b{2} &foperations complete with &c{3} &ferrors."
|
||||||
import-progress-sin: "&b(Import) &b-> &f{0} &fpercent complete &7- &b{1}&f/&b{2} &foperations complete with &c{3} &ferror."
|
import-progress-sin: "&b(Import) &b-> &f{0}&f% complete &7- &b{1}&f/&b{2} &foperations complete with &c{3} &ferror."
|
||||||
import-start: "&b(Import) &b-> &fStarting import process."
|
import-start: "&b(Import) &b-> &fStarting import process."
|
||||||
import-end-complete: "&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &7No errors."
|
import-end-complete: "&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &7No errors."
|
||||||
import-end-complete-err: "&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &c{1} errors."
|
import-end-complete-err: "&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &c{1} errors."
|
||||||
|
@ -309,6 +310,7 @@ command-specs:
|
||||||
args:
|
args:
|
||||||
"on|record|off|paste": "whether to enable/disable logging, or to paste the logged output"
|
"on|record|off|paste": "whether to enable/disable logging, or to paste the logged output"
|
||||||
"filter": "the filter to match entries against"
|
"filter": "the filter to match entries against"
|
||||||
|
"--slim": "add \"--slim\" to exclude trace data from the pasted output"
|
||||||
tree:
|
tree:
|
||||||
description: "Generate a tree view of permissions"
|
description: "Generate a tree view of permissions"
|
||||||
usage: "/%s tree [selection] [max level] [player]"
|
usage: "/%s tree [selection] [max level] [player]"
|
||||||
|
|
|
@ -189,7 +189,7 @@ public abstract class SubCommand<T> extends Command<T, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
Message.USER_SAVE_ERROR.send(sender);
|
Message.USER_SAVE_ERROR.send(sender, user.getFriendlyName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ public abstract class SubCommand<T> extends Command<T, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
Message.GROUP_SAVE_ERROR.send(sender);
|
Message.GROUP_SAVE_ERROR.send(sender, group.getFriendlyName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ public abstract class SubCommand<T> extends Command<T, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
Message.TRACK_SAVE_ERROR.send(sender);
|
Message.TRACK_SAVE_ERROR.send(sender, track.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class MetaAddChatMeta extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.ALREADY_HAS_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase());
|
Message.ALREADY_HAS_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase(), meta, priority, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ public class MetaAddTempChatMeta extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.ALREADY_HAS_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase());
|
Message.ALREADY_HAS_TEMP_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase(), meta, priority, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,7 @@ public class MetaRemoveChatMeta extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOES_NOT_HAVE_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase());
|
Message.DOES_NOT_HAVE_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase(), meta, priority, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,7 @@ public class MetaRemoveTempChatMeta extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOES_NOT_HAVE_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase());
|
Message.DOES_NOT_HAVE_TEMP_CHAT_META.send(sender, holder.getFriendlyName(), type.name().toLowerCase(), meta, priority, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class MetaSet extends SharedSubCommand {
|
||||||
Node n = NodeFactory.makeMetaNode(key, value).withExtraContext(context).build();
|
Node n = NodeFactory.makeMetaNode(key, value).withExtraContext(context).build();
|
||||||
|
|
||||||
if (holder.hasPermission(n).asBoolean()) {
|
if (holder.hasPermission(n).asBoolean()) {
|
||||||
Message.ALREADY_HAS_META.send(sender, holder.getFriendlyName());
|
Message.ALREADY_HAS_META.send(sender, holder.getFriendlyName(), key, value, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class MetaSetTemp extends SharedSubCommand {
|
||||||
Node n = NodeFactory.makeMetaNode(key, value).withExtraContext(context).setExpiry(duration).build();
|
Node n = NodeFactory.makeMetaNode(key, value).withExtraContext(context).setExpiry(duration).build();
|
||||||
|
|
||||||
if (holder.hasPermission(n).asBoolean()) {
|
if (holder.hasPermission(n).asBoolean()) {
|
||||||
Message.ALREADY_HAS_META.send(sender, holder.getFriendlyName());
|
Message.ALREADY_HAS_TEMP_META.send(sender, holder.getFriendlyName(), key, value, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class MetaUnset extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOESNT_HAVE_META.send(sender, holder.getFriendlyName());
|
Message.DOESNT_HAVE_META.send(sender, holder.getFriendlyName(), key, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class MetaUnsetTemp extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOESNT_HAVE_META.send(sender, holder.getFriendlyName());
|
Message.DOESNT_HAVE_TEMP_META.send(sender, holder.getFriendlyName(), key, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,13 +65,13 @@ public class ParentAdd extends SharedSubCommand {
|
||||||
MutableContextSet context = ArgumentUtils.handleContext(1, args, plugin);
|
MutableContextSet context = ArgumentUtils.handleContext(1, args, plugin);
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ public class ParentAdd extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.ALREADY_INHERITS.send(sender, holder.getFriendlyName(), group.getDisplayName());
|
Message.ALREADY_INHERITS.send(sender, holder.getFriendlyName(), group.getDisplayName(), Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,13 +73,13 @@ public class ParentAddTemp extends SharedSubCommand {
|
||||||
TemporaryModifier modifier = plugin.getConfiguration().get(ConfigKeys.TEMPORARY_ADD_BEHAVIOUR);
|
TemporaryModifier modifier = plugin.getConfiguration().get(ConfigKeys.TEMPORARY_ADD_BEHAVIOUR);
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ public class ParentAddTemp extends SharedSubCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (group.getName().equalsIgnoreCase(holder.getObjectName())) {
|
if (group.getName().equalsIgnoreCase(holder.getObjectName())) {
|
||||||
Message.ALREADY_TEMP_INHERITS.send(sender, holder.getFriendlyName(), group.getDisplayName());
|
Message.ALREADY_TEMP_INHERITS.send(sender, holder.getFriendlyName(), group.getDisplayName(), Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ public class ParentAddTemp extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.ALREADY_TEMP_INHERITS.send(sender, holder.getFriendlyName(), group.getDisplayName());
|
Message.ALREADY_TEMP_INHERITS.send(sender, holder.getFriendlyName(), group.getDisplayName(), Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,23 +64,23 @@ public class ParentClearTrack extends SharedSubCommand {
|
||||||
|
|
||||||
final String trackName = args.get(0).toLowerCase();
|
final String trackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (track.getSize() <= 1) {
|
if (track.getSize() <= 1) {
|
||||||
Message.TRACK_EMPTY.send(sender);
|
Message.TRACK_EMPTY.send(sender, track.getName());
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,11 +71,11 @@ public class ParentInfo extends SharedSubCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
Component ent = permGroupsToMessage(holder.getOwnNodesSorted(), holder, label);
|
Component ent = permGroupsToMessage(holder.getOwnNodesSorted(), holder, label);
|
||||||
Message.LISTNODES.send(sender, holder.getFriendlyName());
|
Message.LISTPARENTS.send(sender, holder.getFriendlyName());
|
||||||
sender.sendMessage(ent);
|
sender.sendMessage(ent);
|
||||||
|
|
||||||
Component tempEnt = tempGroupsToMessage(holder.getOwnNodesSorted(), holder, label);
|
Component tempEnt = tempGroupsToMessage(holder.getOwnNodesSorted(), holder, label);
|
||||||
Message.LISTNODES_TEMP.send(sender, holder.getFriendlyName());
|
Message.LISTPARENTS_TEMP.send(sender, holder.getFriendlyName());
|
||||||
sender.sendMessage(tempEnt);
|
sender.sendMessage(tempEnt);
|
||||||
|
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
|
|
|
@ -105,7 +105,7 @@ public class ParentRemove extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOES_NOT_INHERIT.send(sender, holder.getFriendlyName(), groupName);
|
Message.DOES_NOT_INHERIT.send(sender, holder.getFriendlyName(), groupName, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class ParentRemoveTemp extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOES_NOT_TEMP_INHERIT.send(sender, holder.getFriendlyName(), groupName);
|
Message.DOES_NOT_TEMP_INHERIT.send(sender, holder.getFriendlyName(), groupName, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,13 +65,13 @@ public class ParentSet extends SharedSubCommand {
|
||||||
MutableContextSet context = ArgumentUtils.handleContext(1, args, plugin);
|
MutableContextSet context = ArgumentUtils.handleContext(1, args, plugin);
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,23 +65,23 @@ public class ParentSetTrack extends SharedSubCommand {
|
||||||
|
|
||||||
final String trackName = args.get(0).toLowerCase();
|
final String trackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (track.getSize() <= 1) {
|
if (track.getSize() <= 1) {
|
||||||
Message.TRACK_EMPTY.send(sender);
|
Message.TRACK_EMPTY.send(sender, track.getName());
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ public class ParentSetTrack extends SharedSubCommand {
|
||||||
if (index > 0) {
|
if (index > 0) {
|
||||||
List<String> trackGroups = track.getGroups();
|
List<String> trackGroups = track.getGroups();
|
||||||
if ((index - 1) >= trackGroups.size()) {
|
if ((index - 1) >= trackGroups.size()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, index);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
groupName = track.getGroups().get(index - 1);
|
groupName = track.getGroups().get(index - 1);
|
||||||
|
@ -105,13 +105,13 @@ public class ParentSetTrack extends SharedSubCommand {
|
||||||
MutableContextSet context = ArgumentUtils.handleContext(2, args, plugin);
|
MutableContextSet context = ArgumentUtils.handleContext(2, args, plugin);
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -140,13 +140,11 @@ public class PermissionInfo extends SharedSubCommand {
|
||||||
|
|
||||||
List<Node> l = new ArrayList<>();
|
List<Node> l = new ArrayList<>();
|
||||||
for (Node node : nodes) {
|
for (Node node : nodes) {
|
||||||
if (nodeFilter != null && !node.getPermission().startsWith(nodeFilter)) {
|
if (node.isGroupNode() || node.isPrefix() || node.isSuffix() || node.isMeta()) continue;
|
||||||
continue;
|
if (nodeFilter != null && !node.getPermission().startsWith(nodeFilter)) continue;
|
||||||
}
|
if (contextFilter != null && !node.getFullContexts().hasIgnoreCase(contextFilter.getKey(), contextFilter.getValue())) continue;
|
||||||
if (contextFilter != null && !node.getFullContexts().hasIgnoreCase(contextFilter.getKey(), contextFilter.getValue())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (temp != node.isTemporary()) continue;
|
if (temp != node.isTemporary()) continue;
|
||||||
|
|
||||||
l.add(node);
|
l.add(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class PermissionSet extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.ALREADY_HASPERMISSION.send(sender, holder.getFriendlyName());
|
Message.ALREADY_HASPERMISSION.send(sender, holder.getFriendlyName(), node, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class PermissionSetTemp extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.ALREADY_HAS_TEMP_PERMISSION.send(sender, holder.getFriendlyName());
|
Message.ALREADY_HAS_TEMP_PERMISSION.send(sender, holder.getFriendlyName(), node, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ public class PermissionUnset extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOES_NOT_HAVEPERMISSION.send(sender, holder.getFriendlyName());
|
Message.DOES_NOT_HAVE_PERMISSION.send(sender, holder.getFriendlyName(), node, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class PermissionUnsetTemp extends SharedSubCommand {
|
||||||
save(holder, sender, plugin);
|
save(holder, sender, plugin);
|
||||||
return CommandResult.SUCCESS;
|
return CommandResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
Message.DOES_NOT_HAVE_TEMP_PERMISSION.send(sender, holder.getFriendlyName());
|
Message.DOES_NOT_HAVE_TEMP_PERMISSION.send(sender, holder.getFriendlyName(), node, Util.contextSetToString(context));
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,17 +54,17 @@ public class CreateGroup extends SingleCommand {
|
||||||
|
|
||||||
String groupName = args.get(0).toLowerCase();
|
String groupName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.GROUP_NAME_TEST.test(groupName)) {
|
if (!DataConstraints.GROUP_NAME_TEST.test(groupName)) {
|
||||||
Message.GROUP_INVALID_ENTRY.send(sender);
|
Message.GROUP_INVALID_ENTRY.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getStorage().loadGroup(groupName).join()) {
|
if (plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_ALREADY_EXISTS.send(sender);
|
Message.ALREADY_EXISTS.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().createAndLoadGroup(groupName, CreationCause.COMMAND).join()) {
|
if (!plugin.getStorage().createAndLoadGroup(groupName, CreationCause.COMMAND).join()) {
|
||||||
Message.CREATE_GROUP_ERROR.send(sender);
|
Message.CREATE_ERROR.send(sender, groupName);
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class DeleteGroup extends SingleCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ public class DeleteGroup extends SingleCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().deleteGroup(group, DeletionCause.COMMAND).join()) {
|
if (!plugin.getStorage().deleteGroup(group, DeletionCause.COMMAND).join()) {
|
||||||
Message.DELETE_GROUP_ERROR.send(sender);
|
Message.DELETE_ERROR.send(sender, group.getFriendlyName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class GroupClone extends SubCommand<Group> {
|
||||||
|
|
||||||
String newGroupName = args.get(0).toLowerCase();
|
String newGroupName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.GROUP_NAME_TEST.test(newGroupName)) {
|
if (!DataConstraints.GROUP_NAME_TEST.test(newGroupName)) {
|
||||||
Message.GROUP_INVALID_ENTRY.send(sender);
|
Message.GROUP_INVALID_ENTRY.send(sender, newGroupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,8 +61,8 @@ public class GroupInfo extends SubCommand<Group> {
|
||||||
group.getId(),
|
group.getId(),
|
||||||
group.getDisplayName(),
|
group.getDisplayName(),
|
||||||
group.getWeight().isPresent() ? group.getWeight().getAsInt() : "None",
|
group.getWeight().isPresent() ? group.getWeight().getAsInt() : "None",
|
||||||
group.getPermanentNodes().size(),
|
group.getOwnNodes().size(),
|
||||||
group.getTemporaryNodes().size(),
|
group.getOwnNodes().stream().filter(n -> !(n.isGroupNode() || n.isPrefix() || n.isSuffix() || n.isMeta())).mapToInt(n -> 1).sum(),
|
||||||
group.getPrefixNodes().size(),
|
group.getPrefixNodes().size(),
|
||||||
group.getSuffixNodes().size(),
|
group.getSuffixNodes().size(),
|
||||||
group.getMetaNodes().size()
|
group.getMetaNodes().size()
|
||||||
|
|
|
@ -84,13 +84,13 @@ public class GroupMainCommand extends MainCommand<Group, String> {
|
||||||
@Override
|
@Override
|
||||||
protected Group getTarget(String target, LuckPermsPlugin plugin, Sender sender) {
|
protected Group getTarget(String target, LuckPermsPlugin plugin, Sender sender) {
|
||||||
if (!plugin.getStorage().loadGroup(target).join()) {
|
if (!plugin.getStorage().loadGroup(target).join()) {
|
||||||
Message.GROUP_NOT_FOUND.send(sender);
|
Message.GROUP_NOT_FOUND.send(sender, target);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(target);
|
Group group = plugin.getGroupManager().getIfLoaded(target);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_NOT_FOUND.send(sender);
|
Message.GROUP_NOT_FOUND.send(sender, target);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,17 +52,17 @@ public class GroupRename extends SubCommand<Group> {
|
||||||
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Group group, List<String> args, String label) throws CommandException {
|
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Group group, List<String> args, String label) throws CommandException {
|
||||||
String newGroupName = args.get(0).toLowerCase();
|
String newGroupName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.GROUP_NAME_TEST.test(newGroupName)) {
|
if (!DataConstraints.GROUP_NAME_TEST.test(newGroupName)) {
|
||||||
Message.GROUP_INVALID_ENTRY.send(sender);
|
Message.GROUP_INVALID_ENTRY.send(sender, newGroupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getStorage().loadGroup(newGroupName).join()) {
|
if (plugin.getStorage().loadGroup(newGroupName).join()) {
|
||||||
Message.GROUP_ALREADY_EXISTS.send(sender);
|
Message.ALREADY_EXISTS.send(sender, newGroupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().createAndLoadGroup(newGroupName, CreationCause.COMMAND).join()) {
|
if (!plugin.getStorage().createAndLoadGroup(newGroupName, CreationCause.COMMAND).join()) {
|
||||||
Message.CREATE_GROUP_ERROR.send(sender);
|
Message.CREATE_ERROR.send(sender, newGroupName);
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ public class GroupRename extends SubCommand<Group> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().deleteGroup(group, DeletionCause.COMMAND).join()) {
|
if (!plugin.getStorage().deleteGroup(group, DeletionCause.COMMAND).join()) {
|
||||||
Message.DELETE_GROUP_ERROR.send(sender);
|
Message.DELETE_ERROR.send(sender, group.getFriendlyName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class LogGroupHistory extends SubCommand<Log> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DataConstraints.GROUP_NAME_TEST.test(group)) {
|
if (!DataConstraints.GROUP_NAME_TEST.test(group)) {
|
||||||
Message.GROUP_INVALID_ENTRY.send(sender);
|
Message.GROUP_INVALID_ENTRY.send(sender, group);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import me.lucko.luckperms.common.commands.CommandResult;
|
||||||
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
|
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
|
||||||
import me.lucko.luckperms.common.commands.sender.Sender;
|
import me.lucko.luckperms.common.commands.sender.Sender;
|
||||||
import me.lucko.luckperms.common.commands.utils.Util;
|
import me.lucko.luckperms.common.commands.utils.Util;
|
||||||
|
import me.lucko.luckperms.common.config.ConfigKeys;
|
||||||
import me.lucko.luckperms.common.constants.CommandPermission;
|
import me.lucko.luckperms.common.constants.CommandPermission;
|
||||||
import me.lucko.luckperms.common.constants.DataConstraints;
|
import me.lucko.luckperms.common.constants.DataConstraints;
|
||||||
import me.lucko.luckperms.common.locale.CommandSpec;
|
import me.lucko.luckperms.common.locale.CommandSpec;
|
||||||
|
@ -69,51 +70,37 @@ public class LogRecent extends SubCommand<Log> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// User and possibly page
|
// User and possibly page
|
||||||
final String s = args.get(0);
|
final String target = args.get(0);
|
||||||
UUID u;
|
UUID uuid = Util.parseUuid(target.toLowerCase());
|
||||||
|
if (uuid == null) {
|
||||||
u = Util.parseUuid(s);
|
if (!DataConstraints.PLAYER_USERNAME_TEST.test(target)) {
|
||||||
if (u == null) {
|
Message.USER_INVALID_ENTRY.send(sender, target);
|
||||||
if (s.length() <= 16) {
|
return CommandResult.INVALID_ARGS;
|
||||||
if (!DataConstraints.PLAYER_USERNAME_TEST.test(s)) {
|
|
||||||
Message.USER_INVALID_ENTRY.send(sender, s);
|
|
||||||
return CommandResult.INVALID_ARGS;
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = plugin.getStorage().getUUID(s).join();
|
|
||||||
|
|
||||||
if (uuid == null) {
|
|
||||||
Message.USER_NOT_FOUND.send(sender);
|
|
||||||
return CommandResult.INVALID_ARGS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.size() != 2) {
|
|
||||||
// Just user
|
|
||||||
return showLog(log.getRecentMaxPages(uuid), uuid, sender, log);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
int p = Integer.parseInt(args.get(1));
|
|
||||||
// User and page
|
|
||||||
return showLog(p, uuid, sender, log);
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
// Invalid page
|
|
||||||
return showLog(-1, null, sender, log);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Message.USER_INVALID_ENTRY.send(sender, s);
|
uuid = plugin.getStorage().getUUID(target.toLowerCase()).join();
|
||||||
return CommandResult.INVALID_ARGS;
|
if (uuid == null) {
|
||||||
|
if (!plugin.getConfiguration().get(ConfigKeys.USE_SERVER_UUID_CACHE)) {
|
||||||
|
Message.USER_NOT_FOUND.send(sender, target);
|
||||||
|
return CommandResult.INVALID_ARGS;
|
||||||
|
}
|
||||||
|
|
||||||
|
uuid = plugin.lookupUuid(target).orElse(null);
|
||||||
|
if (uuid == null) {
|
||||||
|
Message.USER_NOT_FOUND.send(sender, target);
|
||||||
|
return CommandResult.INVALID_ARGS;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.size() != 2) {
|
if (args.size() != 2) {
|
||||||
// Just user
|
// Just user
|
||||||
return showLog(log.getRecentMaxPages(u), u, sender, log);
|
return showLog(log.getRecentMaxPages(uuid), uuid, sender, log);
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
int p = Integer.parseInt(args.get(1));
|
int p = Integer.parseInt(args.get(1));
|
||||||
// User and page
|
// User and page
|
||||||
return showLog(p, u, sender, log);
|
return showLog(p, uuid, sender, log);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
// Invalid page
|
// Invalid page
|
||||||
return showLog(-1, null, sender, log);
|
return showLog(-1, null, sender, log);
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class LogTrackHistory extends SubCommand<Log> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(track)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(track)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, track);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import me.lucko.luckperms.common.commands.CommandResult;
|
||||||
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
|
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
|
||||||
import me.lucko.luckperms.common.commands.sender.Sender;
|
import me.lucko.luckperms.common.commands.sender.Sender;
|
||||||
import me.lucko.luckperms.common.commands.utils.Util;
|
import me.lucko.luckperms.common.commands.utils.Util;
|
||||||
|
import me.lucko.luckperms.common.config.ConfigKeys;
|
||||||
import me.lucko.luckperms.common.constants.CommandPermission;
|
import me.lucko.luckperms.common.constants.CommandPermission;
|
||||||
import me.lucko.luckperms.common.constants.DataConstraints;
|
import me.lucko.luckperms.common.constants.DataConstraints;
|
||||||
import me.lucko.luckperms.common.locale.CommandSpec;
|
import me.lucko.luckperms.common.locale.CommandSpec;
|
||||||
|
@ -53,7 +54,7 @@ public class LogUserHistory extends SubCommand<Log> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Log log, List<String> args, String label) throws CommandException {
|
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Log log, List<String> args, String label) throws CommandException {
|
||||||
String user = args.get(0);
|
String target = args.get(0);
|
||||||
int page = -999;
|
int page = -999;
|
||||||
|
|
||||||
if (args.size() == 2) {
|
if (args.size() == 2) {
|
||||||
|
@ -65,37 +66,33 @@ public class LogUserHistory extends SubCommand<Log> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UUID uuid = Util.parseUuid(user);
|
UUID uuid = Util.parseUuid(target.toLowerCase());
|
||||||
if (uuid != null) {
|
if (uuid == null) {
|
||||||
if (page == -999) {
|
if (!DataConstraints.PLAYER_USERNAME_TEST.test(target)) {
|
||||||
page = log.getUserHistoryMaxPages(uuid);
|
Message.USER_INVALID_ENTRY.send(sender, target);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return showLog(page, uuid, sender, log);
|
uuid = plugin.getStorage().getUUID(target.toLowerCase()).join();
|
||||||
|
if (uuid == null) {
|
||||||
|
if (!plugin.getConfiguration().get(ConfigKeys.USE_SERVER_UUID_CACHE)) {
|
||||||
|
Message.USER_NOT_FOUND.send(sender, target);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
uuid = plugin.lookupUuid(target).orElse(null);
|
||||||
|
if (uuid == null) {
|
||||||
|
Message.USER_NOT_FOUND.send(sender, target);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.length() <= 16) {
|
if (page == -999) {
|
||||||
if (!DataConstraints.PLAYER_USERNAME_TEST.test(user)) {
|
page = log.getUserHistoryMaxPages(uuid);
|
||||||
Message.USER_INVALID_ENTRY.send(sender, user);
|
|
||||||
return CommandResult.INVALID_ARGS;
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid1 = plugin.getStorage().getUUID(user).join();
|
|
||||||
|
|
||||||
if (uuid1 == null) {
|
|
||||||
Message.USER_NOT_FOUND.send(sender);
|
|
||||||
return CommandResult.INVALID_ARGS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (page == -999) {
|
|
||||||
page = log.getUserHistoryMaxPages(uuid1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return showLog(page, uuid1, sender, log);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Message.USER_INVALID_ENTRY.send(sender, user);
|
return showLog(page, uuid, sender, log);
|
||||||
return CommandResult.INVALID_ARGS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CommandResult showLog(int page, UUID user, Sender sender, Log log) {
|
private static CommandResult showLog(int page, UUID user, Sender sender, Log log) {
|
||||||
|
|
|
@ -64,6 +64,7 @@ public class VerboseCommand extends SingleCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean noTraces = args.remove("--notrace") || args.remove("--notraces") || args.remove("--slim") || args.remove("-s");
|
boolean noTraces = args.remove("--notrace") || args.remove("--notraces") || args.remove("--slim") || args.remove("-s");
|
||||||
|
boolean attachRaw = args.remove("--raw");
|
||||||
String mode = args.get(0).toLowerCase();
|
String mode = args.get(0).toLowerCase();
|
||||||
|
|
||||||
if (mode.equals("on") || mode.equals("true") || mode.equals("record")) {
|
if (mode.equals("on") || mode.equals("true") || mode.equals("record")) {
|
||||||
|
@ -107,14 +108,14 @@ public class VerboseCommand extends SingleCommand {
|
||||||
if (listener == null) {
|
if (listener == null) {
|
||||||
Message.VERBOSE_OFF.send(sender);
|
Message.VERBOSE_OFF.send(sender);
|
||||||
} else {
|
} else {
|
||||||
Message.VERBOSE_RECORDING_UPLOAD_START.send(sender);
|
Message.VERBOSE_UPLOAD_START.send(sender);
|
||||||
|
|
||||||
String url = listener.uploadPasteData(!noTraces);
|
String url = listener.uploadPasteData(!noTraces, attachRaw);
|
||||||
if (url == null) {
|
if (url == null) {
|
||||||
url = "null";
|
url = "null";
|
||||||
}
|
}
|
||||||
|
|
||||||
Message.VERBOSE_RECORDING_URL.send(sender);
|
Message.VERBOSE_RESULTS_URL.send(sender);
|
||||||
|
|
||||||
Component message = TextComponent.builder(url).color(TextColor.AQUA)
|
Component message = TextComponent.builder(url).color(TextColor.AQUA)
|
||||||
.clickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url))
|
.clickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url))
|
||||||
|
|
|
@ -54,17 +54,17 @@ public class CreateTrack extends SingleCommand {
|
||||||
|
|
||||||
String trackName = args.get(0).toLowerCase();
|
String trackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getStorage().loadTrack(trackName).join()) {
|
if (plugin.getStorage().loadTrack(trackName).join()) {
|
||||||
Message.TRACK_ALREADY_EXISTS.send(sender);
|
Message.ALREADY_EXISTS.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().createAndLoadTrack(trackName, CreationCause.COMMAND).join()) {
|
if (!plugin.getStorage().createAndLoadTrack(trackName, CreationCause.COMMAND).join()) {
|
||||||
Message.CREATE_TRACK_ERROR.send(sender);
|
Message.CREATE_ERROR.send(sender, trackName);
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class DeleteTrack extends SingleCommand {
|
||||||
|
|
||||||
String trackName = args.get(0).toLowerCase();
|
String trackName = args.get(0).toLowerCase();
|
||||||
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ public class DeleteTrack extends SingleCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().deleteTrack(track, DeletionCause.COMMAND).join()) {
|
if (!plugin.getStorage().deleteTrack(track, DeletionCause.COMMAND).join()) {
|
||||||
Message.DELETE_TRACK_ERROR.send(sender);
|
Message.DELETE_ERROR.send(sender, track.getName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,13 +58,13 @@ public class TrackAppend extends SubCommand<Track> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class TrackClone extends SubCommand<Track> {
|
||||||
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track track, List<String> args, String label) throws CommandException {
|
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track track, List<String> args, String label) throws CommandException {
|
||||||
String newTrackName = args.get(0).toLowerCase();
|
String newTrackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(newTrackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(newTrackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, newTrackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,13 +66,13 @@ public class TrackInsert extends SubCommand<Track> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
if (!plugin.getStorage().loadGroup(groupName).join()) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, groupName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,13 +74,13 @@ public class TrackMainCommand extends MainCommand<Track, String> {
|
||||||
@Override
|
@Override
|
||||||
protected Track getTarget(String target, LuckPermsPlugin plugin, Sender sender) {
|
protected Track getTarget(String target, LuckPermsPlugin plugin, Sender sender) {
|
||||||
if (!plugin.getStorage().loadTrack(target).join()) {
|
if (!plugin.getStorage().loadTrack(target).join()) {
|
||||||
Message.TRACK_NOT_FOUND.send(sender);
|
Message.TRACK_NOT_FOUND.send(sender, target);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = plugin.getTrackManager().getIfLoaded(target);
|
Track track = plugin.getTrackManager().getIfLoaded(target);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
Message.TRACK_NOT_FOUND.send(sender);
|
Message.TRACK_NOT_FOUND.send(sender, target);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,17 +52,17 @@ public class TrackRename extends SubCommand<Track> {
|
||||||
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track track, List<String> args, String label) throws CommandException {
|
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track track, List<String> args, String label) throws CommandException {
|
||||||
String newTrackName = args.get(0).toLowerCase();
|
String newTrackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(newTrackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(newTrackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, newTrackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getStorage().loadTrack(newTrackName).join()) {
|
if (plugin.getStorage().loadTrack(newTrackName).join()) {
|
||||||
Message.TRACK_ALREADY_EXISTS.send(sender);
|
Message.ALREADY_EXISTS.send(sender, newTrackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().createAndLoadTrack(newTrackName, CreationCause.COMMAND).join()) {
|
if (!plugin.getStorage().createAndLoadTrack(newTrackName, CreationCause.COMMAND).join()) {
|
||||||
Message.CREATE_TRACK_ERROR.send(sender);
|
Message.CREATE_ERROR.send(sender, newTrackName);
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ public class TrackRename extends SubCommand<Track> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().deleteTrack(track, DeletionCause.COMMAND).join()) {
|
if (!plugin.getStorage().deleteTrack(track, DeletionCause.COMMAND).join()) {
|
||||||
Message.DELETE_TRACK_ERROR.send(sender);
|
Message.DELETE_ERROR.send(sender, track.getName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,23 +68,23 @@ public class UserDemote extends SubCommand<User> {
|
||||||
|
|
||||||
final String trackName = args.get(0).toLowerCase();
|
final String trackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (track.getSize() <= 1) {
|
if (track.getSize() <= 1) {
|
||||||
Message.TRACK_EMPTY.send(sender);
|
Message.TRACK_EMPTY.send(sender, track.getName());
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,12 +106,12 @@ public class UserDemote extends SubCommand<User> {
|
||||||
nodes.removeIf(g -> !track.containsGroup(g.getGroupName()));
|
nodes.removeIf(g -> !track.containsGroup(g.getGroupName()));
|
||||||
|
|
||||||
if (nodes.isEmpty()) {
|
if (nodes.isEmpty()) {
|
||||||
Message.USER_TRACK_ERROR_NOT_CONTAIN_GROUP.send(sender);
|
Message.USER_TRACK_ERROR_NOT_CONTAIN_GROUP.send(sender, user.getFriendlyName(), track.getName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodes.size() != 1) {
|
if (nodes.size() != 1) {
|
||||||
Message.TRACK_AMBIGUOUS_CALL.send(sender);
|
Message.TRACK_AMBIGUOUS_CALL.send(sender, user.getFriendlyName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,8 +65,8 @@ public class UserInfo extends SubCommand<User> {
|
||||||
user.getUuid(),
|
user.getUuid(),
|
||||||
plugin.getPlayerStatus(user.getUuid()).asString(plugin.getLocaleManager()),
|
plugin.getPlayerStatus(user.getUuid()).asString(plugin.getLocaleManager()),
|
||||||
user.getPrimaryGroup().getValue(),
|
user.getPrimaryGroup().getValue(),
|
||||||
user.getPermanentNodes().size(),
|
user.getOwnNodes().size(),
|
||||||
user.getTemporaryNodes().size(),
|
user.getOwnNodes().stream().filter(n -> !(n.isGroupNode() || n.isPrefix() || n.isSuffix() || n.isMeta())).mapToInt(n -> 1).sum(),
|
||||||
user.getPrefixNodes().size(),
|
user.getPrefixNodes().size(),
|
||||||
user.getSuffixNodes().size(),
|
user.getSuffixNodes().size(),
|
||||||
user.getMetaNodes().size()
|
user.getMetaNodes().size()
|
||||||
|
|
|
@ -91,13 +91,13 @@ public class UserMainCommand extends MainCommand<User, UserIdentifier> {
|
||||||
uuid = plugin.getStorage().getUUID(target.toLowerCase()).join();
|
uuid = plugin.getStorage().getUUID(target.toLowerCase()).join();
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
if (!plugin.getConfiguration().get(ConfigKeys.USE_SERVER_UUID_CACHE)) {
|
if (!plugin.getConfiguration().get(ConfigKeys.USE_SERVER_UUID_CACHE)) {
|
||||||
Message.USER_NOT_FOUND.send(sender);
|
Message.USER_NOT_FOUND.send(sender, target);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
uuid = plugin.lookupUuid(target).orElse(null);
|
uuid = plugin.lookupUuid(target).orElse(null);
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
Message.USER_NOT_FOUND.send(sender);
|
Message.USER_NOT_FOUND.send(sender, target);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,23 +66,23 @@ public class UserPromote extends SubCommand<User> {
|
||||||
|
|
||||||
final String trackName = args.get(0).toLowerCase();
|
final String trackName = args.get(0).toLowerCase();
|
||||||
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
if (!DataConstraints.TRACK_NAME_TEST.test(trackName)) {
|
||||||
Message.TRACK_INVALID_ENTRY.send(sender);
|
Message.TRACK_INVALID_ENTRY.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
if (!plugin.getStorage().loadTrack(trackName).join()) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, trackName);
|
||||||
return CommandResult.LOADING_ERROR;
|
return CommandResult.LOADING_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (track.getSize() <= 1) {
|
if (track.getSize() <= 1) {
|
||||||
Message.TRACK_EMPTY.send(sender);
|
Message.TRACK_EMPTY.send(sender, track.getName());
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ public class UserPromote extends SubCommand<User> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodes.size() != 1) {
|
if (nodes.size() != 1) {
|
||||||
Message.TRACK_AMBIGUOUS_CALL.send(sender);
|
Message.TRACK_AMBIGUOUS_CALL.send(sender, user.getFriendlyName());
|
||||||
return CommandResult.FAILURE;
|
return CommandResult.FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ public class UserPromote extends SubCommand<User> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (next == null) {
|
if (next == null) {
|
||||||
Message.USER_PROMOTE_ERROR_ENDOFTRACK.send(sender, track.getName());
|
Message.USER_PROMOTE_ERROR_ENDOFTRACK.send(sender, track.getName(), user.getFriendlyName());
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ public class UserPromote extends SubCommand<User> {
|
||||||
user.getPrimaryGroup().setStoredValue(nextGroup.getName());
|
user.getPrimaryGroup().setStoredValue(nextGroup.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
Message.USER_PROMOTE_SUCCESS.send(sender, track.getName(), old, nextGroup.getDisplayName(), Util.contextSetToString(context));
|
Message.USER_PROMOTE_SUCCESS.send(sender, user.getFriendlyName(), track.getName(), old, nextGroup.getDisplayName(), Util.contextSetToString(context));
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
Message.EMPTY.send(sender, Util.listToArrowSep(track.getGroups(), old, nextGroup.getDisplayName(), false));
|
Message.EMPTY.send(sender, Util.listToArrowSep(track.getGroups(), old, nextGroup.getDisplayName(), false));
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,12 +63,12 @@ public class UserSwitchPrimaryGroup extends SubCommand<User> {
|
||||||
|
|
||||||
Group group = plugin.getGroupManager().getIfLoaded(args.get(0).toLowerCase());
|
Group group = plugin.getGroupManager().getIfLoaded(args.get(0).toLowerCase());
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
Message.DOES_NOT_EXIST.send(sender, args.get(0).toLowerCase());
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.getPrimaryGroup().getStoredValue().equalsIgnoreCase(group.getName())) {
|
if (user.getPrimaryGroup().getStoredValue().equalsIgnoreCase(group.getName())) {
|
||||||
Message.USER_PRIMARYGROUP_ERROR_ALREADYHAS.send(sender);
|
Message.USER_PRIMARYGROUP_ERROR_ALREADYHAS.send(sender, user.getFriendlyName(), group.getFriendlyName());
|
||||||
return CommandResult.STATE_ERROR;
|
return CommandResult.STATE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,11 +25,11 @@
|
||||||
|
|
||||||
package me.lucko.luckperms.common.locale;
|
package me.lucko.luckperms.common.locale;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
import me.lucko.luckperms.common.commands.sender.Sender;
|
import me.lucko.luckperms.common.commands.sender.Sender;
|
||||||
import me.lucko.luckperms.common.commands.utils.Util;
|
import me.lucko.luckperms.common.commands.utils.Util;
|
||||||
|
import me.lucko.luckperms.common.utils.TextUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An enumeration of some of the messages used within the plugin.
|
* An enumeration of some of the messages used within the plugin.
|
||||||
|
@ -38,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.Util;
|
||||||
* {@link LocaleManager}.</p>
|
* {@link LocaleManager}.</p>
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("SpellCheckingInspection")
|
@SuppressWarnings("SpellCheckingInspection")
|
||||||
@AllArgsConstructor
|
|
||||||
public enum Message {
|
public enum Message {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -46,371 +45,383 @@ public enum Message {
|
||||||
*/
|
*/
|
||||||
PREFIX("&7&l[&b&lL&3&lP&7&l] &c", false),
|
PREFIX("&7&l[&b&lL&3&lP&7&l] &c", false),
|
||||||
|
|
||||||
LOG_INFO("&7&l[&bL&3P&7&l] &3{0}", false),
|
EMPTY("{}", true),
|
||||||
LOG_WARN("&7&l[&bLuck&3Perms&7&l] &c[WARN] {0}", false),
|
|
||||||
LOG_ERROR("&7&l[&bLuck&3Perms&7&l] &4[ERROR] {0}", false),
|
|
||||||
|
|
||||||
EMPTY("{0}", true),
|
|
||||||
PLAYER_ONLINE("&aOnline", false),
|
PLAYER_ONLINE("&aOnline", false),
|
||||||
PLAYER_OFFLINE("&cOffline", false),
|
PLAYER_OFFLINE("&cOffline", false),
|
||||||
LOADING_ERROR("Permissions data could not be loaded. Please try again later.", true),
|
LOADING_ERROR("&cPermissions data could not be loaded. Please try again later.", true),
|
||||||
OP_DISABLED("&bThe vanilla OP system is disabled on this server.", false),
|
OP_DISABLED("&bThe vanilla OP system is disabled on this server.", false),
|
||||||
OP_DISABLED_SPONGE("&2Server Operator status has no effect when a permission plugin is installed. Please edit user data directly.", true),
|
OP_DISABLED_SPONGE("&2Please note that Server Operator status has no effect on Sponge permission checks when a permission plugin is installed. Please edit user data directly.", true),
|
||||||
LOG("&3LOG &3&l> {0}", true),
|
|
||||||
VERBOSE_LOG("&3VB &3&l> {0}", true),
|
|
||||||
|
|
||||||
EXPORT_LOG("&3EXPORT &3&l> &f{0}", true),
|
|
||||||
EXPORT_LOG_PROGRESS("&3EXPORT &3&l> &7{0}", true),
|
|
||||||
|
|
||||||
MIGRATION_LOG("&3MIGRATION &7[&3{0}&7] &3&l> &f{1}", true),
|
/*
|
||||||
MIGRATION_LOG_PROGRESS("&3MIGRATION &7[&3{0}&7] &3&l> &7{1}", true),
|
* Logging
|
||||||
|
*/
|
||||||
|
LOG_INFO("&7&l[&bL&3P&7&l] &3{}", false),
|
||||||
|
LOG_WARN("&7&l[&bLuck&3Perms&7&l] &c[WARN] {}", false),
|
||||||
|
LOG_ERROR("&7&l[&bLuck&3Perms&7&l] &4[ERROR] {}", false),
|
||||||
|
LOG("&3LOG &3&l> {}", true),
|
||||||
|
VERBOSE_LOG("&3VB &3&l> {}", true),
|
||||||
|
EXPORT_LOG("&3EXPORT &3&l> &f{}", true),
|
||||||
|
EXPORT_LOG_PROGRESS("&3EXPORT &3&l> &7{}", true),
|
||||||
|
MIGRATION_LOG("&3MIGRATION &7[&3{}&7] &3&l> &f{}", true),
|
||||||
|
MIGRATION_LOG_PROGRESS("&3MIGRATION &7[&3{}&7] &3&l> &7{}", true),
|
||||||
|
|
||||||
COMMAND_NOT_RECOGNISED("Command not recognised.", true),
|
|
||||||
COMMAND_NO_PERMISSION("You do not have permission to use this command!", true),
|
|
||||||
|
|
||||||
ALREADY_HASPERMISSION("{0} already has this permission!", true),
|
/*
|
||||||
DOES_NOT_HAVEPERMISSION("{0} does not have this permission set.", true),
|
* Misc commands
|
||||||
ALREADY_HAS_TEMP_PERMISSION("{0} already has this permission set temporarily!", true),
|
*/
|
||||||
DOES_NOT_HAVE_TEMP_PERMISSION("{0} does not have this permission set temporarily.", true),
|
COMMAND_NOT_RECOGNISED("&cCommand not recognised.", true),
|
||||||
|
COMMAND_NO_PERMISSION("&cYou do not have permission to use this command!", true),
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loading / Saving
|
* Loading / Saving
|
||||||
*/
|
*/
|
||||||
USER_NOT_FOUND("&bUser could not be found.", true),
|
USER_NOT_FOUND("&cA user for &4{}&c could not be found.", true),
|
||||||
USER_NOT_ONLINE("&bUser &a{0}&b is not online.", true),
|
USER_NOT_ONLINE("&aUser &b{}&a is not online.", true),
|
||||||
USER_SAVE_ERROR("There was an error whilst saving the user.", true),
|
USER_SAVE_ERROR("&cThere was an error whilst saving user data for &4{}&c.", true),
|
||||||
|
|
||||||
GROUP_NOT_FOUND("&bGroup could not be found.", true),
|
GROUP_NOT_FOUND("&cA group named &4{}&c could not be found.", true),
|
||||||
GROUP_SAVE_ERROR("There was an error whilst saving the group.", true),
|
GROUP_SAVE_ERROR("&cThere was an error whilst saving group data for &4{}&c.", true),
|
||||||
|
|
||||||
TRACK_NOT_FOUND("&bTrack could not be found.", true),
|
TRACK_NOT_FOUND("&cA track named &4{}&c could not be found.", true),
|
||||||
TRACK_SAVE_ERROR("There was an error whilst saving the track.", true),
|
TRACK_SAVE_ERROR("&cThere was an error whilst saving track data for &4{}&c.", true),
|
||||||
|
|
||||||
|
USER_INVALID_ENTRY("&4{}&c is not a valid username/uuid.", true),
|
||||||
/*
|
GROUP_INVALID_ENTRY("&4{}&c is not a valid group name.", true),
|
||||||
* Command Syntax
|
TRACK_INVALID_ENTRY("&4{}&c is not a valid track name.", true),
|
||||||
*/
|
SERVER_WORLD_INVALID_ENTRY("&cServer/world names can only contain alphanumeric characters and cannot exceed 36 characters in length.", true),
|
||||||
USER_INVALID_ENTRY("&d{0}&c is not a valid username/uuid.", true),
|
USE_INHERIT_COMMAND("&cUse the 'parent add' and 'parent remove' commands instead of specifying the node.", true),
|
||||||
GROUP_INVALID_ENTRY("Group names can only contain alphanumeric characters.", true),
|
|
||||||
TRACK_INVALID_ENTRY("Track names can only contain alphanumeric characters.", true),
|
|
||||||
SERVER_WORLD_INVALID_ENTRY("Server/world names can only contain alphanumeric characters and cannot exceed 36 characters in length.", true),
|
|
||||||
USE_INHERIT_COMMAND("Use the 'parent add' and 'parent remove' commands instead of specifying the node.", true),
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Commands
|
* Commands
|
||||||
*/
|
*/
|
||||||
VERBOSE_INVALID_FILTER("&cInvalid verbose filter: &f{0}", true),
|
VERBOSE_INVALID_FILTER("&4{}&c is not a valid verbose filter.", true),
|
||||||
VERBOSE_ON("&bVerbose checking output set to &aTRUE &bfor all permissions.", true),
|
VERBOSE_ON("&bVerbose logging &aenabled &bfor checks matching &aANY&b.", true),
|
||||||
VERBOSE_ON_QUERY("&bVerbose checking output set to &aTRUE &bfor permissions matching filter: &f{0}", true),
|
VERBOSE_ON_QUERY("&bVerbose logging &aenabled &bfor checks matching &a{}&b.", true),
|
||||||
VERBOSE_OFF("&bVerbose checking output set to &cFALSE&b.", true),
|
VERBOSE_OFF("&bVerbose logging &cdisabled&b.", true),
|
||||||
|
|
||||||
VERBOSE_RECORDING_ON("&bVerbose recording set to &aTRUE &bfor all permissions.", true),
|
VERBOSE_RECORDING_ON("&bVerbose recording &aenabled &bfor checks matching &aANY&b.", true),
|
||||||
VERBOSE_RECORDING_ON_QUERY("&bVerbose recording set to &aTRUE &bfor permissions matching filter: &f{0}", true),
|
VERBOSE_RECORDING_ON_QUERY("&bVerbose recording &aenabled &bfor checks matching &a{}&b.", true),
|
||||||
VERBOSE_RECORDING_UPLOAD_START("&bVerbose recording was disabled. Uploading results...", true),
|
VERBOSE_UPLOAD_START("&bVerbose logging &cdisabled&b. Uploading results...", true),
|
||||||
VERBOSE_RECORDING_URL("&aVerbose results URL:", true),
|
VERBOSE_RESULTS_URL("&aVerbose results URL:", true),
|
||||||
|
|
||||||
TREE_UPLOAD_START("&bGenerating permission tree...", true),
|
TREE_UPLOAD_START("&bGenerating permission tree...", true),
|
||||||
TREE_EMPTY("&aUnable to generate tree. No results were found.", true),
|
TREE_EMPTY("&cUnable to generate tree. No results were found.", true),
|
||||||
TREE_URL("&aPermission Tree URL:", true),
|
TREE_URL("&aPermission tree URL:", true),
|
||||||
|
|
||||||
SEARCH_SEARCHING("&aSearching for users and groups with &b{0}&a...", true),
|
SEARCH_SEARCHING("&aSearching for users and groups with &b{}&a...", true),
|
||||||
SEARCH_SEARCHING_MEMBERS("&aSearching for users and groups who inherit from &b{0}&a...", true),
|
SEARCH_SEARCHING_MEMBERS("&aSearching for users and groups who inherit from &b{}&a...", true),
|
||||||
SEARCH_RESULT("&aFound &b{0}&a entries from &b{1}&a users and &b{2}&a groups.", true),
|
SEARCH_RESULT("&aFound &b{}&a entries from &b{}&a users and &b{}&a groups.", true),
|
||||||
SEARCH_SHOWING_USERS("&bShowing user entries:", true),
|
SEARCH_SHOWING_USERS("&bShowing user entries:", true),
|
||||||
SEARCH_SHOWING_GROUPS("&bShowing group entries:", true),
|
SEARCH_SHOWING_GROUPS("&bShowing group entries:", true),
|
||||||
SEARCH_SHOWING_USERS_WITH_PAGE("&bShowing user entries: {0}", true),
|
SEARCH_SHOWING_USERS_WITH_PAGE("&bShowing user entries: {}", true),
|
||||||
SEARCH_SHOWING_GROUPS_WITH_PAGE("&bShowing group entries: {0}", true),
|
SEARCH_SHOWING_GROUPS_WITH_PAGE("&bShowing group entries: {}", true),
|
||||||
|
|
||||||
APPLY_EDITS_INVALID_CODE("&aInvalid code. &7({0})", true),
|
APPLY_EDITS_INVALID_CODE("&cInvalid code. &7({})", true),
|
||||||
APPLY_EDITS_UNABLE_TO_READ("&aUnable to read data using the given code. &7({0})", true),
|
APPLY_EDITS_UNABLE_TO_READ("&cUnable to read data using the given code. &7({})", true),
|
||||||
APPLY_EDITS_NO_TARGET("&aUnable to parse the target of the edit. Please supply it as an extra argument.", true),
|
APPLY_EDITS_NO_TARGET("&cUnable to parse the target of the edit. Please supply it as an extra argument.", true),
|
||||||
APPLY_EDITS_TARGET_GROUP_NOT_EXISTS("&aTarget group &b{0}&a does not exist.", true),
|
APPLY_EDITS_TARGET_GROUP_NOT_EXISTS("&cTarget group &4{}&c does not exist.", true),
|
||||||
APPLY_EDITS_TARGET_USER_NOT_UUID("&aTarget user &b{0}&a is not a valid uuid.", true),
|
APPLY_EDITS_TARGET_USER_NOT_UUID("&cTarget user &4{}&c is not a valid uuid.", true),
|
||||||
APPLY_EDITS_TARGET_USER_UNABLE_TO_LOAD("&aUnable to load target user &b{0}&a.", true),
|
APPLY_EDITS_TARGET_USER_UNABLE_TO_LOAD("&cUnable to load target user &4{}&c.", true),
|
||||||
APPLY_EDITS_TARGET_UNKNOWN("&aInvalid target. &7({0})", true),
|
APPLY_EDITS_TARGET_UNKNOWN("&cInvalid target. &7({})", true),
|
||||||
APPLY_EDITS_SUCCESS("&aSuccessfully applied &b{0}&a nodes to &b{1}&a.", true),
|
APPLY_EDITS_SUCCESS("&aSuccessfully applied &b{}&a nodes to &b{}&a.", true),
|
||||||
|
|
||||||
EDITOR_UPLOAD_FAILURE("&cUnable to upload permission data to the editor.", true),
|
EDITOR_UPLOAD_FAILURE("&cUnable to upload permission data to the editor.", true),
|
||||||
EDITOR_URL("&aEditor URL:", true),
|
EDITOR_URL("&aEditor URL:", true),
|
||||||
|
|
||||||
CHECK_RESULT("&aPermission check result on user &b{0}&a for permission &b{1}&a: &f{2}", true),
|
CHECK_RESULT("&aPermission check result on user &b{}&a for permission &b{}&a: &f{}", true),
|
||||||
|
|
||||||
CREATE_SUCCESS("&b{0}&a was successfully created.", true),
|
CREATE_SUCCESS("&b{}&a was successfully created.", true),
|
||||||
DELETE_SUCCESS("&b{0}&a was successfully deleted.", true),
|
DELETE_SUCCESS("&b{}&a was successfully deleted.", true),
|
||||||
RENAME_SUCCESS("&b{0}&a was successfully renamed to &b{1}&a.", true),
|
RENAME_SUCCESS("&b{}&a was successfully renamed to &b{}&a.", true),
|
||||||
CLONE_SUCCESS("&b{0}&a was successfully cloned onto &b{1}&a.", true),
|
CLONE_SUCCESS("&b{}&a was successfully cloned onto &b{}&a.", true),
|
||||||
|
|
||||||
ALREADY_INHERITS("{0} already inherits '{1}'.", true),
|
ALREADY_INHERITS("&b{}&a already inherits from &b{}&a in context {}&a.", true),
|
||||||
DOES_NOT_INHERIT("{0} does not inherit '{1}'.", true),
|
DOES_NOT_INHERIT("&b{}&a does not inherit from &b{}&a in context {}&a.", true),
|
||||||
ALREADY_TEMP_INHERITS("{0} already temporarily inherits '{1}'.", true),
|
ALREADY_TEMP_INHERITS("&b{}&a already temporarily inherits from &b{}&a in context {}&a.", true),
|
||||||
DOES_NOT_TEMP_INHERIT("{0} does not temporarily inherit '{1}'.", true),
|
DOES_NOT_TEMP_INHERIT("&b{}&a does not temporarily inherit from &b{}&a in context {}&a.", true),
|
||||||
|
|
||||||
TRACK_ALREADY_CONTAINS("Track {0} already contains the group '{1}'.", true),
|
TRACK_ALREADY_CONTAINS("&b{}&a already contains &b{}&a.", true),
|
||||||
TRACK_DOES_NOT_CONTAIN("Track {0} does not contain the group '{1}'.", true),
|
TRACK_DOES_NOT_CONTAIN("&b{}&a doesn't contain &b{}&a.", true),
|
||||||
TRACK_AMBIGUOUS_CALL("The user specified is a member of multiple groups on this track. Unable to determine their location.", true),
|
TRACK_AMBIGUOUS_CALL("&4{}&c is a member of multiple groups on this track. Unable to determine their location.", true),
|
||||||
|
|
||||||
GROUP_ALREADY_EXISTS("That group already exists!", true),
|
ALREADY_EXISTS("&4{}&c already exists!", true),
|
||||||
GROUP_DOES_NOT_EXIST("That group does not exist!", true),
|
DOES_NOT_EXIST("&4{}&c does not exist!", true),
|
||||||
GROUP_LOAD_ERROR("An unexpected error occurred. Group not loaded.", true),
|
|
||||||
GROUPS_LOAD_ERROR("An unexpected error occurred. Unable to load all groups.", true),
|
|
||||||
|
|
||||||
TRACK_ALREADY_EXISTS("That track already exists!", true),
|
GROUP_LOAD_ERROR("&cAn unexpected error occurred. Group not loaded.", true),
|
||||||
TRACK_DOES_NOT_EXIST("That track does not exist!", true),
|
GROUPS_LOAD_ERROR("&cAn unexpected error occurred. Unable to load all groups.", true),
|
||||||
TRACK_LOAD_ERROR("An unexpected error occurred. Track not loaded.", true),
|
|
||||||
TRACKS_LOAD_ERROR("An unexpected error occurred. Unable to load all tracks.", true),
|
|
||||||
TRACK_EMPTY("The track cannot be used as it is empty or contains only one group.", true),
|
|
||||||
|
|
||||||
UPDATE_TASK_REQUEST("&bUpdate task scheduled.", true),
|
TRACK_LOAD_ERROR("&cAn unexpected error occurred. Track not loaded.", true),
|
||||||
UPDATE_TASK_COMPLETE("&aUpdate task finished.", true),
|
TRACKS_LOAD_ERROR("&cAn unexpected error occurred. Unable to load all tracks.", true),
|
||||||
UPDATE_TASK_COMPLETE_NETWORK("&aUpdate task finished. Now attempting to push to other servers.", true),
|
TRACK_EMPTY("&4{}&c cannot be used as it is empty or contains only one group.", true),
|
||||||
UPDATE_TASK_PUSH_SUCCESS("&aOther servers were notified via &b{0} Messaging &asuccessfully.", true),
|
|
||||||
|
UPDATE_TASK_REQUEST("&bAn update task has been requested. Please wait...", true),
|
||||||
|
UPDATE_TASK_COMPLETE("&aUpdate task complete.", true),
|
||||||
|
UPDATE_TASK_COMPLETE_NETWORK("&aUpdate task complete. Now attempting to push to other servers.", true),
|
||||||
|
UPDATE_TASK_PUSH_SUCCESS("&aOther servers were notified via &b{} Messaging &asuccessfully.", true),
|
||||||
UPDATE_TASK_PUSH_FAILURE("&cError whilst pushing changes to other servers.", true),
|
UPDATE_TASK_PUSH_FAILURE("&cError whilst pushing changes to other servers.", true),
|
||||||
UPDATE_TASK_PUSH_FAILURE_NOT_SETUP("&cError whilst pushing changes to other servers. A messaging service has not been configured.", true),
|
UPDATE_TASK_PUSH_FAILURE_NOT_SETUP("&cError whilst pushing changes to other servers. &7(a messaging service has not been configured)", true),
|
||||||
RELOAD_CONFIG_SUCCESS("&aThe configuration file was reloaded. &7(some options will only apply after the server has restarted.)", true),
|
RELOAD_CONFIG_SUCCESS("&aThe configuration file was reloaded. &7(some options will only apply after the server has restarted)", true),
|
||||||
INFO_TOP(
|
INFO_TOP(
|
||||||
"{PREFIX}&2Running &bLuckPerms v{0}&2 by &bLuck&2." + "\n" +
|
"{PREFIX}&2Running &bLuckPerms v{}&2 by &bLuck&2." + "\n" +
|
||||||
"{PREFIX}&f- &3Platform: &f{1}" + "\n" +
|
"{PREFIX}&f- &3Platform: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Server Brand: &f{2}" + "\n" +
|
"{PREFIX}&f- &3Server Brand: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Server Version: &f{3}",
|
"{PREFIX}&f- &3Server Version: &f{}",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
INFO_MIDDLE(
|
INFO_MIDDLE(
|
||||||
"{PREFIX}&f- &bMessaging Type: &f{0}" + "\n" +
|
"{PREFIX}&f- &bMessaging Type: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &bInstance:" + "\n" +
|
"{PREFIX}&f- &bInstance:" + "\n" +
|
||||||
"{PREFIX}&f- &3Server Name: &f{1}" + "\n" +
|
"{PREFIX}&f- &3Server Name: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Online Players: &a{2}" + "\n" +
|
"{PREFIX}&f- &3Online Players: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Unique Connections: &a{3}" + "\n" +
|
"{PREFIX}&f- &3Unique Connections: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Uptime: &7{4}" + "\n" +
|
"{PREFIX}&f- &3Uptime: &7{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Local Data: &a{5} &7users, &a{6} &7groups, &a{7} &7tracks" + "\n" +
|
"{PREFIX}&f- &3Local Data: &a{} &7users, &a{} &7groups, &a{} &7tracks" + "\n" +
|
||||||
"{PREFIX}&f- &3Context Calculators: &a{8}" + "\n" +
|
"{PREFIX}&f- &3Context Calculators: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Known permissions: &a{9}" + "\n" +
|
"{PREFIX}&f- &3Known permissions: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Active processors: &7{10}",
|
"{PREFIX}&f- &3Active processors: &7{10}",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
CREATE_GROUP_ERROR("There was an error whilst creating the group.", true),
|
|
||||||
DELETE_GROUP_ERROR("There was an error whilst deleting the group.", true),
|
CREATE_ERROR("&cThere was an error whilst creating &4{}&c.", true),
|
||||||
DELETE_GROUP_ERROR_DEFAULT("You cannot delete the default group.", true),
|
DELETE_ERROR("&cThere was an error whilst deleting &4{}&c.", true),
|
||||||
|
|
||||||
|
DELETE_GROUP_ERROR_DEFAULT("&cYou cannot delete the default group.", true),
|
||||||
|
|
||||||
GROUPS_LIST("&aGroups: &7(name, weight, tracks)", true),
|
GROUPS_LIST("&aGroups: &7(name, weight, tracks)", true),
|
||||||
GROUPS_LIST_ENTRY("&f- &3{0} &7- &b{1}", true),
|
GROUPS_LIST_ENTRY("&f- &3{} &7- &b{}", true),
|
||||||
GROUPS_LIST_ENTRY_WITH_TRACKS("&f- &3{0} &7- &b{1} &7- [&3{2}&7]", true),
|
GROUPS_LIST_ENTRY_WITH_TRACKS("&f- &3{} &7- &b{} &7- [&3{}&7]", true),
|
||||||
|
|
||||||
CREATE_TRACK_ERROR("There was an error whilst creating the track.", true),
|
TRACKS_LIST("&aTracks: {}", true),
|
||||||
DELETE_TRACK_ERROR("There was an error whilst deleting the track.", true),
|
|
||||||
TRACKS_LIST("&aTracks: {0}", true),
|
|
||||||
|
|
||||||
LISTNODES("&b{0}'s Nodes:", true),
|
LISTNODES("&b{}'s Permissions:", true),
|
||||||
LISTNODES_WITH_PAGE("&b{0}'s Nodes: {1}", true),
|
LISTNODES_WITH_PAGE("&b{}'s Permissions: {}", true),
|
||||||
LISTNODES_TEMP("&b{0}'s Temporary Nodes:", true),
|
LISTNODES_TEMP("&b{}'s Temporary Permissions:", true),
|
||||||
LISTNODES_TEMP_WITH_PAGE("&b{0}'s Temporary Nodes: {1}", true),
|
LISTNODES_TEMP_WITH_PAGE("&b{}'s Temporary Permissions: {}", true),
|
||||||
LISTPARENTS("&b{0}'s Parent Groups:", true),
|
|
||||||
LISTPARENTS_TEMP("&b{0}'s Temporary Parent Groups:", true),
|
|
||||||
LIST_TRACKS("&b{0}'s Tracks:" + "\n" + "{1}", true),
|
|
||||||
LIST_TRACKS_EMPTY("{0} is not on any tracks.", true),
|
|
||||||
|
|
||||||
CONTEXT_PAIR_INLINE("&3{0}=&b{1}", false),
|
LISTPARENTS("&b{}'s Parent Groups:", true),
|
||||||
|
LISTPARENTS_TEMP("&b{}'s Temporary Parent Groups:", true),
|
||||||
|
LIST_TRACKS("&b{}'s Tracks:" + "\n" + "{}", true),
|
||||||
|
LIST_TRACKS_EMPTY("&b{}&a is not on any tracks.", true),
|
||||||
|
|
||||||
|
CONTEXT_PAIR_INLINE("&3{}=&b{}", false),
|
||||||
CONTEXT_PAIR__GLOBAL_INLINE("&eglobal", false),
|
CONTEXT_PAIR__GLOBAL_INLINE("&eglobal", false),
|
||||||
CONTEXT_PAIR_SEP("&a, ", false),
|
CONTEXT_PAIR_SEP("&a, ", false),
|
||||||
|
|
||||||
CONTEXT_PAIR("&8(&7{0}=&f{1}&8)", false),
|
CONTEXT_PAIR("&8(&7{}=&f{}&8)", false),
|
||||||
|
|
||||||
CHECK_PERMISSION("&b{0}&a has permission &b{1}&a set to {2}&a in context {3}&a.", true),
|
CHECK_PERMISSION("&b{}&a has permission &b{}&a set to {}&a in context {}&a.", true),
|
||||||
CHECK_INHERITS_PERMISSION("&b{0}&a has permission &b{1}&a set to {2}&a in context {3}&a. &7(inherited from &a{4}&7)", true),
|
CHECK_INHERITS_PERMISSION("&b{}&a has permission &b{}&a set to {}&a in context {}&a. &7(inherited from &a{}&7)", true),
|
||||||
SETPERMISSION_SUCCESS("&aSet &b{0}&a to &b{1}&a for &b{2}&a in context {3}&a.", true),
|
|
||||||
SETPERMISSION_TEMP_SUCCESS("&aSet &b{0}&a to &b{1}&a for &b{2}&a for a duration of &b{3}&a in context {4}&a.", true),
|
|
||||||
UNSETPERMISSION_SUCCESS("&aUnset &b{0}&a for &b{1}&a in context {2}&a.", true),
|
|
||||||
UNSET_TEMP_PERMISSION_SUCCESS("&aUnset temporary permission &b{0}&a for &b{1}&a in context {2}&a.", true),
|
|
||||||
SET_INHERIT_SUCCESS("&b{0}&a now inherits permissions from &b{1}&a in context {2}&a.", true),
|
|
||||||
SET_TEMP_INHERIT_SUCCESS("&b{0}&a now inherits permissions from &b{1}&a for a duration of &b{2}&a in context {3}&a.", true),
|
|
||||||
SET_PARENT_SUCCESS("&b{0}&a had their existing parent groups cleared, and now only inherits &b{1}&a in context {2}&a.", true),
|
|
||||||
SET_TRACK_PARENT_SUCCESS("&b{0}&a had their existing parent groups on track &b{1}&a cleared, and now only inherits &b{2}&a in context {3}&a.", true),
|
|
||||||
UNSET_INHERIT_SUCCESS("&b{0}&a no longer inherits permissions from &b{1}&a in context {2}&a.", true),
|
|
||||||
UNSET_TEMP_INHERIT_SUCCESS("&b{0}&a no longer temporarily inherits permissions from &b{1}&a in context {2}&a.", true),
|
|
||||||
|
|
||||||
CLEAR_SUCCESS("&b{0}&a's permissions were cleared in context {1}&a. (&b{2}&a nodes were removed.)", true),
|
SETPERMISSION_SUCCESS("&aSet &b{}&a to &b{}&a for &b{}&a in context {}&a.", true),
|
||||||
CLEAR_SUCCESS_SINGULAR("&b{0}&a's permissions were cleared in context {1}&a. (&b{2}&a node was removed.)", true),
|
ALREADY_HASPERMISSION("&b{}&a already has &b{}&a set in context {}&a.", true),
|
||||||
PARENT_CLEAR_SUCCESS("&b{0}&a's parents were cleared in context {1}&a. (&b{2}&a nodes were removed.)", true),
|
|
||||||
PARENT_CLEAR_SUCCESS_SINGULAR("&b{0}&a's parents were cleared in context {1}&a. (&b{2}&a node was removed.)", true),
|
|
||||||
|
|
||||||
PARENT_CLEAR_TRACK_SUCCESS("&b{0}&a's parents on track &b{1}&a were cleared in context {2}&a. (&b{3}&a nodes were removed.)", true),
|
SETPERMISSION_TEMP_SUCCESS("&aSet &b{}&a to &b{}&a for &b{}&a for a duration of &b{}&a in context {}&a.", true),
|
||||||
PARENT_CLEAR_TRACK_SUCCESS_SINGULAR("&b{0}&a's parents on track &b{1}&a were cleared in context {2}&a. (&b{3}&a node was removed.)", true),
|
ALREADY_HAS_TEMP_PERMISSION("&b{}&a already has &b{}&a set temporarily in context {}&a.", true),
|
||||||
|
|
||||||
META_CLEAR_SUCCESS("&b{0}&a's meta matching type &b{1}&a was cleared in context {2}&a. (&b{3}&a nodes were removed.)", true),
|
UNSETPERMISSION_SUCCESS("&aUnset &b{}&a for &b{}&a in context {}&a.", true),
|
||||||
META_CLEAR_SUCCESS_SINGULAR("&b{0}&a's meta matching type &b{1}&a was cleared in context {2}&a. (&b{3}&a node was removed.)", true),
|
DOES_NOT_HAVE_PERMISSION("&b{}&a does not have &b{}&a set in context {}&a.", true),
|
||||||
|
|
||||||
ILLEGAL_DATE_ERROR("Could not parse date '{0}'.", true),
|
UNSET_TEMP_PERMISSION_SUCCESS("&aUnset temporary permission &b{}&a for &b{}&a in context {}&a.", true),
|
||||||
PAST_DATE_ERROR("You cannot set a date in the past!", true),
|
DOES_NOT_HAVE_TEMP_PERMISSION("&b{}&a does not have &b{}&a set temporarily in context {}&a.", true),
|
||||||
|
|
||||||
CHAT_META_PREFIX_HEADER("&b{0}'s Prefixes", true),
|
SET_INHERIT_SUCCESS("&b{}&a now inherits permissions from &b{}&a in context {}&a.", true),
|
||||||
CHAT_META_SUFFIX_HEADER("&b{0}'s Suffixes", true),
|
SET_TEMP_INHERIT_SUCCESS("&b{}&a now inherits permissions from &b{}&a for a duration of &b{}&a in context {}&a.", true),
|
||||||
META_HEADER("&b{0}'s Meta", true),
|
SET_PARENT_SUCCESS("&b{}&a had their existing parent groups cleared, and now only inherits &b{}&a in context {}&a.", true),
|
||||||
CHAT_META_ENTRY("&b-> {0} &f- &f\"{1}&f\" &8(&7inherited from &a{2}&8)", true),
|
SET_TRACK_PARENT_SUCCESS("&b{}&a had their existing parent groups on track &b{}&a cleared, and now only inherits &b{}&a in context {}&a.", true),
|
||||||
CHAT_META_ENTRY_WITH_CONTEXT("&b-> {0} &f- &f\"{1}&f\" &8(&7inherited from &a{2}&8){3}", true),
|
UNSET_INHERIT_SUCCESS("&b{}&a no longer inherits permissions from &b{}&a in context {}&a.", true),
|
||||||
META_ENTRY("&b-> &a{0} &f= &f\"{1}&f\" &8(&7inherited from &a{2}&8)", true),
|
UNSET_TEMP_INHERIT_SUCCESS("&b{}&a no longer temporarily inherits permissions from &b{}&a in context {}&a.", true),
|
||||||
META_ENTRY_WITH_CONTEXT("&b-> &a{0} &f= &f\"{1}&f\" &8(&7inherited from &a{2}&8){3}", true),
|
|
||||||
CHAT_META_PREFIX_NONE("&b{0} has no prefixes.", true),
|
|
||||||
CHAT_META_SUFFIX_NONE("&b{0} has no suffixes.", true),
|
|
||||||
META_NONE("&b{0} has no meta.", true),
|
|
||||||
|
|
||||||
META_INVALID_PRIORITY("Invalid priority '{0}'. Expected a number.", true),
|
CLEAR_SUCCESS("&b{}&a's permissions were cleared in context {}&a. (&b{}&a nodes were removed.)", true),
|
||||||
|
CLEAR_SUCCESS_SINGULAR("&b{}&a's permissions were cleared in context {}&a. (&b{}&a node was removed.)", true),
|
||||||
|
PARENT_CLEAR_SUCCESS("&b{}&a's parents were cleared in context {}&a. (&b{}&a nodes were removed.)", true),
|
||||||
|
PARENT_CLEAR_SUCCESS_SINGULAR("&b{}&a's parents were cleared in context {}&a. (&b{}&a node was removed.)", true),
|
||||||
|
|
||||||
ALREADY_HAS_CHAT_META("{0} already has that {1} set.", true),
|
PARENT_CLEAR_TRACK_SUCCESS("&b{}&a's parents on track &b{}&a were cleared in context {}&a. (&b{}&a nodes were removed.)", true),
|
||||||
DOES_NOT_HAVE_CHAT_META("{0} doesn't have that {1} set.", true),
|
PARENT_CLEAR_TRACK_SUCCESS_SINGULAR("&b{}&a's parents on track &b{}&a were cleared in context {}&a. (&b{}&a node was removed.)", true),
|
||||||
|
|
||||||
ADD_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a in context {4}&a.", true),
|
META_CLEAR_SUCCESS("&b{}&a's meta matching type &b{}&a was cleared in context {}&a. (&b{}&a nodes were removed.)", true),
|
||||||
ADD_TEMP_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a for a duration of &b{4}&a in context {5}&a.", true),
|
META_CLEAR_SUCCESS_SINGULAR("&b{}&a's meta matching type &b{}&a was cleared in context {}&a. (&b{}&a node was removed.)", true),
|
||||||
REMOVE_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a.", true),
|
|
||||||
BULK_REMOVE_CHATMETA_SUCCESS("&b{0}&a had all {1}es at priority &b{2}&a removed in context {3}&a.", true),
|
|
||||||
REMOVE_TEMP_CHATMETA_SUCCESS("&b{0}&a had temporary {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a.", true),
|
|
||||||
BULK_REMOVE_TEMP_CHATMETA_SUCCESS("&b{0}&a had all temporary {1}es at priority &b{2}&a removed in context {3}&a.", true),
|
|
||||||
|
|
||||||
ALREADY_HAS_META("{0} already has that meta pair set.", true),
|
ILLEGAL_DATE_ERROR("&cCould not parse date &4{}&c.", true),
|
||||||
|
PAST_DATE_ERROR("&cYou cannot set a date in the past!", true),
|
||||||
|
|
||||||
SET_META_SUCCESS("&aSet meta value for key &f\"{0}&f\"&a to &f\"{1}&f\"&a for &b{2}&a in context {3}&a.", true),
|
CHAT_META_PREFIX_HEADER("&b{}'s Prefixes", true),
|
||||||
SET_META_TEMP_SUCCESS("&aSet meta value for key &f\"{0}&f\"&a to &f\"{1}&f\"&a for &b{2}&a for a duration of &b{3}&a in context {4}&a.", true),
|
CHAT_META_SUFFIX_HEADER("&b{}'s Suffixes", true),
|
||||||
UNSET_META_SUCCESS("&aUnset meta value with key &f\"{0}&f\"&a for &b{1}&a in context {2}&a.", true),
|
META_HEADER("&b{}'s Meta", true),
|
||||||
UNSET_META_TEMP_SUCCESS("&aUnset temporary meta value with key &f\"{0}&f\"&a for &b{1}&a in context {2}&a.", true),
|
CHAT_META_ENTRY("&b-> {} &f- &f'{}&f' &8(&7inherited from &a{}&8)", true),
|
||||||
|
CHAT_META_ENTRY_WITH_CONTEXT("&b-> {} &f- &f'{}&f' &8(&7inherited from &a{}&8){}", true),
|
||||||
|
META_ENTRY("&b-> &a{} &f= &f'{}&f' &8(&7inherited from &a{}&8)", true),
|
||||||
|
META_ENTRY_WITH_CONTEXT("&b-> &a{} &f= &f'{}&f' &8(&7inherited from &a{}&8){}", true),
|
||||||
|
CHAT_META_PREFIX_NONE("&b{} has no prefixes.", true),
|
||||||
|
CHAT_META_SUFFIX_NONE("&b{} has no suffixes.", true),
|
||||||
|
META_NONE("&b{} has no meta.", true),
|
||||||
|
|
||||||
DOESNT_HAVE_META("{0} does not have that meta pair set.", true),
|
META_INVALID_PRIORITY("&cInvalid priority &4{}&c. Expected a number.", true),
|
||||||
|
|
||||||
BULK_UPDATE_INVALID_DATA_TYPE("Invalid type. Was expecting 'all', 'users' or 'groups'.", true),
|
ALREADY_HAS_CHAT_META("&b{}&a already has {} &f'{}&f'&a set at a priority of &b{}&a in context {}&a.", true),
|
||||||
BULK_UPDATE_INVALID_CONSTRAINT("Invalid constraint &4{0}&c. Constraints should be in the format '&f<field> <comparison operator> <value>&c'.", true),
|
ALREADY_HAS_TEMP_CHAT_META("&b{}&a already has {} &f'{}&f'&a set temporarily at a priority of &b{}&a in context {}&a.", true),
|
||||||
BULK_UPDATE_INVALID_COMPARISON("Invalid comparison operator '&4{0}&c'. Expected one of the following: &f== != ~~ ~!", true),
|
|
||||||
BULK_UPDATE_QUEUED("&aBulk update operation was queued. &7(&f{0}&7)", true),
|
DOES_NOT_HAVE_CHAT_META("&b{}&a doesn't have {} &f'{}&f'&a set at a priority of &b{}&a in context {}&a.", true),
|
||||||
BULK_UPDATE_CONFIRM("&aRun &b/{0} bulkupdate confirm {1} &ato execute the update.", true),
|
DOES_NOT_HAVE_TEMP_CHAT_META("&b{}&a doesn't have {} &f'{}&f'&a set temporarily at a priority of &b{}&a in context {}&a.", true),
|
||||||
BULK_UPDATE_UNKNOWN_ID("&aOperation with id &b{0}&a does not exist or has expired.", true),
|
|
||||||
|
ADD_CHATMETA_SUCCESS("&b{}&a had {} &f'{}&f'&a set at a priority of &b{}&a in context {}&a.", true),
|
||||||
|
ADD_TEMP_CHATMETA_SUCCESS("&b{}&a had {} &f'{}&f'&a set at a priority of &b{}&a for a duration of &b{}&a in context {}&a.", true),
|
||||||
|
REMOVE_CHATMETA_SUCCESS("&b{}&a had {} &f'{}&f'&a at priority &b{}&a removed in context {}&a.", true),
|
||||||
|
BULK_REMOVE_CHATMETA_SUCCESS("&b{}&a had all {}es at priority &b{}&a removed in context {}&a.", true),
|
||||||
|
REMOVE_TEMP_CHATMETA_SUCCESS("&b{}&a had temporary {} &f'{}&f'&a at priority &b{}&a removed in context {}&a.", true),
|
||||||
|
BULK_REMOVE_TEMP_CHATMETA_SUCCESS("&b{}&a had all temporary {}es at priority &b{}&a removed in context {}&a.", true),
|
||||||
|
|
||||||
|
ALREADY_HAS_META("&b{}&a already has meta key &f'{}&f'&a set to &f'{}&f'&a in context {}&a.", true),
|
||||||
|
ALREADY_HAS_TEMP_META("&b{}&a already has meta key &f'{}&f'&a temporarily set to &f'{}&f'&a in context {}&a.", true),
|
||||||
|
|
||||||
|
DOESNT_HAVE_META("&b{}&a doesn't have meta key &f'{}&f'&a set in context {}&a.", true),
|
||||||
|
DOESNT_HAVE_TEMP_META("&b{}&a doesn't have meta key &f'{}&f'&a set temporarily in context {}&a.", true),
|
||||||
|
|
||||||
|
SET_META_SUCCESS("&aSet meta key &f'{}&f'&a to &f'{}&f'&a for &b{}&a in context {}&a.", true),
|
||||||
|
SET_META_TEMP_SUCCESS("&aSet meta key &f'{}&f'&a to &f'{}&f'&a for &b{}&a for a duration of &b{}&a in context {}&a.", true),
|
||||||
|
UNSET_META_SUCCESS("&aUnset meta key &f'{}&f'&a for &b{}&a in context {}&a.", true),
|
||||||
|
UNSET_META_TEMP_SUCCESS("&aUnset temporary meta key &f'{}&f'&a for &b{}&a in context {}&a.", true),
|
||||||
|
|
||||||
|
BULK_UPDATE_INVALID_DATA_TYPE("&cInvalid type. Was expecting 'all', 'users' or 'groups'.", true),
|
||||||
|
BULK_UPDATE_INVALID_CONSTRAINT("&cInvalid constraint &4{}&c. Constraints should be in the format '&f<field> <comparison operator> <value>&c'.", true),
|
||||||
|
BULK_UPDATE_INVALID_COMPARISON("&cInvalid comparison operator '&4{}&c'. Expected one of the following: &f== != ~~ ~!", true),
|
||||||
|
BULK_UPDATE_QUEUED("&aBulk update operation was queued. &7(&f{}&7)", true),
|
||||||
|
BULK_UPDATE_CONFIRM("&aRun &b/{} bulkupdate confirm {} &ato execute the update.", true),
|
||||||
|
BULK_UPDATE_UNKNOWN_ID("&aOperation with id &b{}&a does not exist or has expired.", true),
|
||||||
|
|
||||||
BULK_UPDATE_STARTING("&aRunning bulk update.", true),
|
BULK_UPDATE_STARTING("&aRunning bulk update.", true),
|
||||||
BULK_UPDATE_SUCCESS("&bBulk update completed successfully.", true),
|
BULK_UPDATE_SUCCESS("&bBulk update completed successfully.", true),
|
||||||
BULK_UPDATE_FAILURE("&cBulk update failed. Check the console for errors.", true),
|
BULK_UPDATE_FAILURE("&cBulk update failed. Check the console for errors.", true),
|
||||||
|
|
||||||
USER_INFO_GENERAL(
|
USER_INFO_GENERAL(
|
||||||
"{PREFIX}&b&l> &bUser Info: &f{0}" + "\n" +
|
"{PREFIX}&b&l> &bUser Info: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3UUID: &f{1}" + "\n" +
|
"{PREFIX}&f- &3UUID: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Status: {2}" + "\n" +
|
"{PREFIX}&f- &3Status: {}" + "\n" +
|
||||||
"{PREFIX}&f- &3Primary Group: &f{3}" + "\n" +
|
"{PREFIX}&f- &3Primary Group: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &aCounts:" + "\n" +
|
"{PREFIX}&f- &aCounts:" + "\n" +
|
||||||
"{PREFIX}&f- &3Permissions: &a{4}" + "\n" +
|
"{PREFIX}&f- &3Nodes: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Temporary Permissions: &a{5}" + "\n" +
|
"{PREFIX}&f- &3Permissions: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Prefixes: &a{6}" + "\n" +
|
"{PREFIX}&f- &3Prefixes: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Suffixes: &a{7}" + "\n" +
|
"{PREFIX}&f- &3Suffixes: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Meta: &a{8}",
|
"{PREFIX}&f- &3Meta: &a{}",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
|
|
||||||
USER_INFO_DATA(
|
USER_INFO_DATA(
|
||||||
"{PREFIX}&f- &aCached Data:" + "\n" +
|
"{PREFIX}&f- &aCached Data:" + "\n" +
|
||||||
"{PREFIX}&f- &3Has contextual data: {0}" + "\n" +
|
"{PREFIX}&f- &3Has contextual data: {}" + "\n" +
|
||||||
"{PREFIX}&f- &3Current Contexts: {1}" + "\n" +
|
"{PREFIX}&f- &3Current Contexts: {}" + "\n" +
|
||||||
"{PREFIX}&f- &3Current Prefix: {2}" + "\n" +
|
"{PREFIX}&f- &3Current Prefix: {}" + "\n" +
|
||||||
"{PREFIX}&f- &3Current Suffix: {3}",
|
"{PREFIX}&f- &3Current Suffix: {}",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
|
|
||||||
INFO_PARENT_HEADER("&f- &aParent Groups:", true),
|
INFO_PARENT_HEADER("&f- &aParent Groups:", true),
|
||||||
INFO_TEMP_PARENT_HEADER("&f- &aTemporary Parent Groups:", true),
|
INFO_TEMP_PARENT_HEADER("&f- &aTemporary Parent Groups:", true),
|
||||||
USER_REMOVEGROUP_ERROR_PRIMARY("You cannot remove a user from their primary group.", true),
|
USER_REMOVEGROUP_ERROR_PRIMARY("&aYou cannot remove a user from their primary group.", true),
|
||||||
USER_PRIMARYGROUP_SUCCESS("&b{0}&a's primary group was set to &b{1}&a.", true),
|
USER_PRIMARYGROUP_SUCCESS("&b{}&a's primary group was set to &b{}&a.", true),
|
||||||
USER_PRIMARYGROUP_WARN_OPTION("&cWarning: The primary group calculation method being used by this server &7({0}) &cmay not reflect this change.", true),
|
USER_PRIMARYGROUP_WARN_OPTION("&aWarning: The primary group calculation method being used by this server &7({}) &amay not reflect this change.", true),
|
||||||
USER_PRIMARYGROUP_ERROR_ALREADYHAS("The user already has this group set as their primary group.", true),
|
USER_PRIMARYGROUP_ERROR_ALREADYHAS("&b{}&a already has &b{}&a set as their primary group.", true),
|
||||||
USER_PRIMARYGROUP_ERROR_NOTMEMBER("&b{0}&a was not already a member of &b{1}&a, adding them now.", true),
|
USER_PRIMARYGROUP_ERROR_NOTMEMBER("&b{}&a was not already a member of &b{}&a, adding them now.", true),
|
||||||
USER_TRACK_ERROR_NOT_CONTAIN_GROUP("The user specified isn't already in any groups on this track.", true),
|
USER_TRACK_ERROR_NOT_CONTAIN_GROUP("&b{}&a isn't already in any groups on &b{}&a.", true),
|
||||||
|
|
||||||
USER_TRACK_ADDED_TO_FIRST("&b{0}&a isn't in any groups on this track, so they were added to the first group, &b{1}&a in context {2}&a.", true),
|
USER_TRACK_ADDED_TO_FIRST("&b{}&a isn't in any groups on this track, so they were added to the first group, &b{}&a in context {}&a.", true),
|
||||||
USER_PROMOTE_SUCCESS("&aPromoting user along track &b{0}&a from &b{1}&a to &b{2}&a in context {3}&a.", true),
|
USER_PROMOTE_SUCCESS("&aPromoting &b{}&a along track &b{}&a from &b{}&a to &b{}&a in context {}&a.", true),
|
||||||
|
|
||||||
USER_PROMOTE_ERROR_ENDOFTRACK("The end of track &4{0}&c was reached. Unable to promote user.", true),
|
USER_PROMOTE_ERROR_ENDOFTRACK("&aThe end of track &b{}&a was reached. Unable to promote &b{}&a.", true),
|
||||||
USER_PROMOTE_ERROR_MALFORMED(
|
USER_PROMOTE_ERROR_MALFORMED(
|
||||||
"{PREFIX}The next group on the track, {0}, no longer exists. Unable to promote user." + "\n" +
|
"{PREFIX}&aThe next group on the track, &b{}&a, no longer exists. Unable to promote user." + "\n" +
|
||||||
"{PREFIX}Either create the group, or remove it from the track and try again.",
|
"{PREFIX}&aEither create the group, or remove it from the track and try again.",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
USER_DEMOTE_SUCCESS("&aDemoting user along track &b{0}&a from &b{1}&a to &b{2}&a in context {3}&a.", true),
|
USER_DEMOTE_SUCCESS("&aDemoting &b{}&a along track &b{}&a from &b{}&a to &b{}&a in context {}&a.", true),
|
||||||
USER_DEMOTE_ENDOFTRACK("The end of track &4{0}&c was reached, so &4{1}&c was removed from &4{2}&c.", true),
|
USER_DEMOTE_ENDOFTRACK("&aThe end of track &b{}&a was reached, so &b{}&a was removed from &b{}&a.", true),
|
||||||
USER_DEMOTE_ERROR_MALFORMED(
|
USER_DEMOTE_ERROR_MALFORMED(
|
||||||
"{PREFIX}The previous group on the track, {0}, no longer exists. Unable to demote user." + "\n" +
|
"{PREFIX}&aThe previous group on the track, &b{}&a, no longer exists. Unable to demote user." + "\n" +
|
||||||
"{PREFIX}Either create the group, or remove it from the track and try again.",
|
"{PREFIX}&aEither create the group, or remove it from the track and try again.",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
|
|
||||||
GROUP_INFO_GENERAL(
|
GROUP_INFO_GENERAL(
|
||||||
"{PREFIX}&b&l> &bGroup Info: &f{0}" + "\n" +
|
"{PREFIX}&b&l> &bGroup Info: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Display Name: &f{1}" + "\n" +
|
"{PREFIX}&f- &3Display Name: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Weight: &f{2}" + "\n" +
|
"{PREFIX}&f- &3Weight: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &aCounts:" + "\n" +
|
"{PREFIX}&f- &aCounts:" + "\n" +
|
||||||
"{PREFIX}&f- &3Permissions: &a{3}" + "\n" +
|
"{PREFIX}&f- &3Nodes: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Temporary Permissions: &a{4}" + "\n" +
|
"{PREFIX}&f- &3Permissions: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Prefixes: &a{5}" + "\n" +
|
"{PREFIX}&f- &3Prefixes: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Suffixes: &a{6}" + "\n" +
|
"{PREFIX}&f- &3Suffixes: &a{}" + "\n" +
|
||||||
"{PREFIX}&f- &3Meta: &a{7}",
|
"{PREFIX}&f- &3Meta: &a{}",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
GROUP_SET_WEIGHT("&aSet weight to &b{0}&a for group &b{1}&a.", true),
|
GROUP_SET_WEIGHT("&aSet weight to &b{}&a for group &b{}&a.", true),
|
||||||
|
|
||||||
TRACK_INFO(
|
TRACK_INFO(
|
||||||
"{PREFIX}&b&l> &bShowing Track: &f{0}" + "\n" +
|
"{PREFIX}&b&l> &bShowing Track: &f{}" + "\n" +
|
||||||
"{PREFIX}&f- &7Path: &f{1}",
|
"{PREFIX}&f- &7Path: &f{}",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
TRACK_CLEAR("&b{0}&a's groups track was cleared.", true),
|
TRACK_CLEAR("&b{}&a's groups track was cleared.", true),
|
||||||
TRACK_APPEND_SUCCESS("&aGroup &b{0}&a was successfully appended to track &b{1}&a.", true),
|
TRACK_APPEND_SUCCESS("&aGroup &b{}&a was appended to track &b{}&a.", true),
|
||||||
TRACK_INSERT_SUCCESS("&aGroup &b{0}&a was successfully inserted into track &b{1}&a at position &b{2}&a.", true),
|
TRACK_INSERT_SUCCESS("&aGroup &b{}&a was inserted into track &b{}&a at position &b{}&a.", true),
|
||||||
TRACK_INSERT_ERROR_NUMBER("Expected number but instead received: {0}", true),
|
TRACK_INSERT_ERROR_NUMBER("&cExpected number but instead received: {}", true),
|
||||||
TRACK_INSERT_ERROR_INVALID_POS("Unable to insert at position {0}. Index out of bounds.", true),
|
TRACK_INSERT_ERROR_INVALID_POS("&cUnable to insert at position &4{}&c. &7(invalid position)", true),
|
||||||
TRACK_REMOVE_SUCCESS("&aGroup &b{0}&a was successfully removed from track &b{1}&a.", true),
|
TRACK_REMOVE_SUCCESS("&aGroup &b{}&a was removed from track &b{}&a.", true),
|
||||||
|
|
||||||
LOG_LOAD_ERROR("The log could not be loaded.", true),
|
LOG_LOAD_ERROR("&cThe log could not be loaded.", true),
|
||||||
LOG_INVALID_PAGE("Invalid page number.", true),
|
LOG_INVALID_PAGE("&cInvalid page number.", true),
|
||||||
LOG_INVALID_PAGE_RANGE("Invalid page number. Please enter a value between 1 and {0}.", true),
|
LOG_INVALID_PAGE_RANGE("&cInvalid page number. Please enter a value between &41&c and &4{}&c.", true),
|
||||||
LOG_NO_ENTRIES("&bNo log entries to show.", true),
|
LOG_NO_ENTRIES("&bNo log entries to show.", true),
|
||||||
LOG_ENTRY("&b#{0} -> &8(&7{1} ago&8) {2}", true),
|
LOG_ENTRY("&b#{} -> &8(&7{} ago&8) {}", true),
|
||||||
|
|
||||||
LOG_NOTIFY_CONSOLE("&cCannot toggle notifications for console.", true),
|
LOG_NOTIFY_CONSOLE("&cCannot toggle notifications for console.", true),
|
||||||
LOG_NOTIFY_TOGGLE_ON("&aEnabled&b logging output.", true),
|
LOG_NOTIFY_TOGGLE_ON("&aEnabled&b logging output.", true),
|
||||||
LOG_NOTIFY_TOGGLE_OFF("&cDisabled&b logging output.", true),
|
LOG_NOTIFY_TOGGLE_OFF("&cDisabled&b logging output.", true),
|
||||||
LOG_NOTIFY_ALREADY_ON("You are already receiving notifications.", true),
|
LOG_NOTIFY_ALREADY_ON("&cYou are already receiving notifications.", true),
|
||||||
LOG_NOTIFY_ALREADY_OFF("You aren't currently receiving notifications.", true),
|
LOG_NOTIFY_ALREADY_OFF("&cYou aren't currently receiving notifications.", true),
|
||||||
LOG_NOTIFY_UNKNOWN("State unknown. Expecting \"on\" or \"off\".", true),
|
LOG_NOTIFY_UNKNOWN("&cState unknown. Expecting \"on\" or \"off\".", true),
|
||||||
|
|
||||||
LOG_SEARCH_HEADER("&aShowing recent actions for query &b{0} &a(page &f{1}&a of &f{2}&a)", true),
|
LOG_SEARCH_HEADER("&aShowing recent actions for query &b{} &a(page &f{}&a of &f{}&a)", true),
|
||||||
|
|
||||||
LOG_RECENT_HEADER("&aShowing recent actions (page &f{0}&a of &f{1}&a)", true),
|
LOG_RECENT_HEADER("&aShowing recent actions (page &f{}&a of &f{}&a)", true),
|
||||||
LOG_RECENT_BY_HEADER("&aShowing recent actions by &b{0} &a(page &f{1}&a of &f{2}&a)", true),
|
LOG_RECENT_BY_HEADER("&aShowing recent actions by &b{} &a(page &f{}&a of &f{}&a)", true),
|
||||||
|
|
||||||
LOG_HISTORY_USER_HEADER("&aShowing history for user &b{0} &a(page &f{1}&a of &f{2}&a)", true),
|
LOG_HISTORY_USER_HEADER("&aShowing history for user &b{} &a(page &f{}&a of &f{}&a)", true),
|
||||||
LOG_HISTORY_GROUP_HEADER("&aShowing history for group &b{0} &a(page &f{1}&a of &f{2}&a)", true),
|
LOG_HISTORY_GROUP_HEADER("&aShowing history for group &b{} &a(page &f{}&a of &f{}&a)", true),
|
||||||
LOG_HISTORY_TRACK_HEADER("&aShowing history for track &b{0} &a(page &f{1}&a of &f{2}&a)", true),
|
LOG_HISTORY_TRACK_HEADER("&aShowing history for track &b{} &a(page &f{}&a of &f{}&a)", true),
|
||||||
|
|
||||||
LOG_EXPORT_ALREADY_EXISTS("Error: File {0} already exists.", true),
|
LOG_EXPORT_ALREADY_EXISTS("&cError: File &4{}&c already exists.", true),
|
||||||
LOG_EXPORT_NOT_WRITABLE("Error: File {0} is not writable.", true),
|
LOG_EXPORT_NOT_WRITABLE("&cError: File &4{}&c is not writable.", true),
|
||||||
LOG_EXPORT_EMPTY("The log is empty and therefore cannot be exported.", true),
|
LOG_EXPORT_EMPTY("&cThe log is empty and therefore cannot be exported.", true),
|
||||||
LOG_EXPORT_FAILURE("An unexpected error occured whilst writing to the file.", true),
|
LOG_EXPORT_FAILURE("&cAn unexpected error occured whilst writing to the file.", true),
|
||||||
LOG_EXPORT_SUCCESS("&aSuccessfully exported the log to &b{0}&a.", true),
|
LOG_EXPORT_SUCCESS("&aSuccessfully exported the log to &b{}&a.", true),
|
||||||
|
|
||||||
IMPORT_ALREADY_RUNNING("Another import process is already running. Please wait for it to finish and try again.", true),
|
IMPORT_ALREADY_RUNNING("&cAnother import process is already running. Please wait for it to finish and try again.", true),
|
||||||
EXPORT_ALREADY_RUNNING("Another export process is already running. Please wait for it to finish and try again.", true),
|
EXPORT_ALREADY_RUNNING("&cAnother export process is already running. Please wait for it to finish and try again.", true),
|
||||||
IMPORT_LOG_DOESNT_EXIST("Error: File {0} does not exist.", true),
|
IMPORT_LOG_DOESNT_EXIST("&cError: File &4{}&c does not exist.", true),
|
||||||
IMPORT_LOG_NOT_READABLE("Error: File {0} is not readable.", true),
|
IMPORT_LOG_NOT_READABLE("&cError: File &4{}&c is not readable.", true),
|
||||||
IMPORT_LOG_FAILURE("An unexpected error occured whilst reading from the log file.", true),
|
IMPORT_LOG_FAILURE("&cAn unexpected error occured whilst reading from the log file.", true),
|
||||||
|
|
||||||
IMPORT_PROGRESS("&b(Import) &b-> &f{0}&f% complete &7- &b{1}&f/&b{2} &foperations complete with &c{3} &ferrors.", true),
|
IMPORT_PROGRESS("&b(Import) &b-> &f{}&f% complete &7- &b{}&f/&b{} &foperations complete with &c{} &ferrors.", true),
|
||||||
IMPORT_PROGRESS_SIN("&b(Import) &b-> &f{0}&f% complete &7- &b{1}&f/&b{2} &foperations complete with &c{3} &ferror.", true),
|
IMPORT_PROGRESS_SIN("&b(Import) &b-> &f{}&f% complete &7- &b{}&f/&b{} &foperations complete with &c{} &ferror.", true),
|
||||||
IMPORT_START("&b(Import) &b-> &fStarting import process.", true),
|
IMPORT_START("&b(Import) &b-> &fStarting import process.", true),
|
||||||
|
|
||||||
IMPORT_END_COMPLETE("&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &7No errors.", true),
|
IMPORT_END_COMPLETE("&b(Import) &a&lCOMPLETED &7- took &b{} &7seconds - &7No errors.", true),
|
||||||
IMPORT_END_COMPLETE_ERR("&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &c{1} errors.", true),
|
IMPORT_END_COMPLETE_ERR("&b(Import) &a&lCOMPLETED &7- took &b{} &7seconds - &c{} errors.", true),
|
||||||
IMPORT_END_COMPLETE_ERR_SIN("&b(Import) &a&lCOMPLETED &7- took &b{0} &7seconds - &c{1} error.", true),
|
IMPORT_END_COMPLETE_ERR_SIN("&b(Import) &a&lCOMPLETED &7- took &b{} &7seconds - &c{} error.", true),
|
||||||
IMPORT_END_ERROR_HEADER(
|
IMPORT_END_ERROR_HEADER(
|
||||||
"{PREFIX}&b(Import) &7------------> &fShowing Error #&b{0} &7<------------" + "\n" +
|
"{PREFIX}&b(Import) &7------------> &fShowing Error #&b{} &7<------------" + "\n" +
|
||||||
"{PREFIX}&b(Import) &fWhilst executing: &3Command #{1}" + "\n" +
|
"{PREFIX}&b(Import) &fWhilst executing: &3Command #{}" + "\n" +
|
||||||
"{PREFIX}&b(Import) &fCommand: &7{2}" + "\n" +
|
"{PREFIX}&b(Import) &fCommand: &7{}" + "\n" +
|
||||||
"{PREFIX}&b(Import) &fType: &3{3}" + "\n" +
|
"{PREFIX}&b(Import) &fType: &3{}" + "\n" +
|
||||||
"{PREFIX}&b(Import) &fOutput:",
|
"{PREFIX}&b(Import) &fOutput:",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
|
|
||||||
IMPORT_END_ERROR_CONTENT("&b(Import) &b-> &c{0}", true),
|
IMPORT_END_ERROR_CONTENT("&b(Import) &b-> &c{}", true),
|
||||||
IMPORT_END_ERROR_FOOTER("&b(Import) &7<------------------------------------------>", true);
|
IMPORT_END_ERROR_FOOTER("&b(Import) &7<------------------------------------------>", true);
|
||||||
|
|
||||||
public static final Object SKIP_ELEMENT = new Object();
|
public static final Object SKIP_ELEMENT = new Object();
|
||||||
|
@ -430,6 +441,12 @@ public enum Message {
|
||||||
private String message;
|
private String message;
|
||||||
private boolean showPrefix;
|
private boolean showPrefix;
|
||||||
|
|
||||||
|
Message(String message, boolean showPrefix) {
|
||||||
|
// rewrite hardcoded placeholders according to their position
|
||||||
|
this.message = TextUtils.rewritePlaceholders(message);
|
||||||
|
this.showPrefix = showPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
public String asString(LocaleManager localeManager, Object... objects) {
|
public String asString(LocaleManager localeManager, Object... objects) {
|
||||||
String prefix = null;
|
String prefix = null;
|
||||||
if (localeManager != null) {
|
if (localeManager != null) {
|
||||||
|
|
|
@ -164,7 +164,7 @@ public class NodeFactory {
|
||||||
} else {
|
} else {
|
||||||
sb.append(type.getEntry(node).getValue());
|
sb.append(type.getEntry(node).getValue());
|
||||||
}
|
}
|
||||||
if (node.isTemporary()) {
|
if (set && node.isTemporary()) {
|
||||||
sb.append(" ").append(node.getExpiryUnixTime());
|
sb.append(" ").append(node.getExpiryUnixTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,15 +216,10 @@ public class NodeFactory {
|
||||||
|
|
||||||
private static StringBuilder appendContextToCommand(StringBuilder sb, Node node) {
|
private static StringBuilder appendContextToCommand(StringBuilder sb, Node node) {
|
||||||
if (node.isServerSpecific()) {
|
if (node.isServerSpecific()) {
|
||||||
sb.append(" ").append(node.getServer().get());
|
sb.append(" server=").append(node.getServer().get());
|
||||||
|
}
|
||||||
if (node.isWorldSpecific()) {
|
if (node.isWorldSpecific()) {
|
||||||
sb.append(" ").append(node.getWorld().get());
|
sb.append(" world=").append(node.getWorld().get());
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (node.isWorldSpecific()) {
|
|
||||||
sb.append(" world=").append(node.getWorld().get());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ContextSet contexts = node.getContexts();
|
ContextSet contexts = node.getContexts();
|
||||||
|
|
|
@ -63,4 +63,12 @@ public class TextUtils {
|
||||||
return ComponentSerializers.LEGACY.serialize(component);
|
return ComponentSerializers.LEGACY.serialize(component);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String rewritePlaceholders(String input) {
|
||||||
|
int i = 0;
|
||||||
|
while (input.contains("{}")) {
|
||||||
|
input = input.replaceFirst("\\{\\}", "{" + i++ + "}");
|
||||||
|
}
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ public class VerboseListener {
|
||||||
* @return the url
|
* @return the url
|
||||||
* @see PasteUtils#paste(String, List)
|
* @see PasteUtils#paste(String, List)
|
||||||
*/
|
*/
|
||||||
public String uploadPasteData(boolean showTraces) {
|
public String uploadPasteData(boolean showTraces, boolean attachRaw) {
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
String startDate = DATE_FORMAT.format(new Date(startTime));
|
String startDate = DATE_FORMAT.format(new Date(startTime));
|
||||||
String endDate = DATE_FORMAT.format(new Date(now));
|
String endDate = DATE_FORMAT.format(new Date(now));
|
||||||
|
@ -216,7 +216,7 @@ public class VerboseListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
prettyOutput.add("### Output")
|
prettyOutput.add("### Output")
|
||||||
.add("Format: `<checked>` `<origin>` `<permission>` `<value>`")
|
.add("Format: `<checked>` `<permission>` `<value>`")
|
||||||
.add("")
|
.add("")
|
||||||
.add("___")
|
.add("___")
|
||||||
.add("");
|
.add("");
|
||||||
|
@ -267,14 +267,23 @@ public class VerboseListener {
|
||||||
prettyOutput.add("</pre></p></details>");
|
prettyOutput.add("</pre></p></details>");
|
||||||
}
|
}
|
||||||
|
|
||||||
csvOutput.add(escapeCommas(c.getCheckTarget()) + "," + escapeCommas(c.getPermission()) + "," + c.getResult().name().toLowerCase());
|
if (attachRaw) {
|
||||||
|
csvOutput.add(escapeCommas(c.getCheckTarget()) + "," + escapeCommas(c.getPermission()) + "," + c.getResult().name().toLowerCase());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
results.clear();
|
results.clear();
|
||||||
|
|
||||||
List<Map.Entry<String, String>> content = ImmutableList.of(
|
List<Map.Entry<String, String>> content;
|
||||||
Maps.immutableEntry("luckperms-verbose.md", prettyOutput.build().stream().collect(Collectors.joining("\n"))),
|
if (attachRaw) {
|
||||||
Maps.immutableEntry("raw-data.csv", csvOutput.build().stream().collect(Collectors.joining("\n")))
|
content = ImmutableList.of(
|
||||||
);
|
Maps.immutableEntry("luckperms-verbose.md", prettyOutput.build().stream().collect(Collectors.joining("\n"))),
|
||||||
|
Maps.immutableEntry("raw-data.csv", csvOutput.build().stream().collect(Collectors.joining("\n")))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
content = ImmutableList.of(
|
||||||
|
Maps.immutableEntry("luckperms-verbose.md", prettyOutput.build().stream().collect(Collectors.joining("\n")))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return PasteUtils.paste("LuckPerms Verbose Checking Output", content);
|
return PasteUtils.paste("LuckPerms Verbose Checking Output", content);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user