Make command defintion/usage messages translatable

This commit is contained in:
Luck 2017-06-20 20:20:32 +01:00
parent e50fa17f7c
commit cf5318b92b
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
122 changed files with 1962 additions and 981 deletions

View File

@ -288,3 +288,443 @@ import-end-error-header: >
{PREFIX}&b(Import) &fOutput: {PREFIX}&b(Import) &fOutput:
import-end-error-content: "&b(Import) &b-> &c{0}" import-end-error-content: "&b(Import) &b-> &c{0}"
import-end-error-footer: "&b(Import) &7<------------------------------------------>" import-end-error-footer: "&b(Import) &7<------------------------------------------>"
command-specs:
user:
description: "User commands"
usage: "/%s user <user>"
group:
description: "Group commands"
usage: "/%s group <group>"
track:
description: "Track commands"
usage: "/%s track <track>"
log:
description: "Log commands"
usage: "/%s log"
sync:
description: "Sync changes with the storage"
usage: "/%s sync"
info:
description: "Print general plugin info"
usage: "/%s info"
verbose:
description: "Manage verbose permission checking"
usage: "/%s verbose <true|false> [filter]"
args:
"on|record|off|paste": "whether to enable/disable logging, or to paste the logged output"
"filter": "the filter to match entries against"
tree:
description: "Generate a tree view of permissions"
usage: "/%s tree [selection] [max level] [player]"
args:
"selection": "the root of the tree. specify \".\" to include all permissions"
"max level": "how many branch levels should be returned"
"player": "the name of an online player to check against"
search:
description: "Search for users/groups with a specific permission"
usage: "/%s search <permission>"
args:
"permission": "the permission to search for"
"page": "the page to view"
check:
description: "Perform a standard permission check on an online player"
usage: "/%s check <user> <permission>"
args:
"user": "the user to check"
"permission": "the permission to check for"
network-sync:
description: "Sync changes with the storage and request that all other servers on the network do the same"
usage: "/%s networksync"
import:
description: "Import data from a file"
usage: "/%s import <file>"
args:
"file": "the file to import from"
export:
description: "Export data to a file"
usage: "/%s export <file>"
args:
"file": "the file to export to"
reload-config:
description: "Reload some of the config options"
usage: "/%s reloadconfig"
bulk-update:
description: "Execute bulk change queries on all data"
usage: "/%s bulkupdate"
args:
"data type": "the type of data being changed. ('all', 'users' or 'groups')"
"action": "the action to perform on the data. ('update' or 'delete')"
"action field": "the field to act upon. only required for 'update'. ('permission', 'server' or 'world')"
"action value": "the value to replace with. only required for 'update'."
"constraint...": "the constraints required for the update"
migration:
description: "Migration commands"
usage: "/%s migration"
apply-edits:
description: "Applies permission changes made from the web editor"
usage: "/%s applyedits <code> [target]"
args:
"code": "the unique code for the data"
"target": "who to apply the data to"
create-group:
description: "Create a new group"
usage: "/%s creategroup <group>"
args:
"name": "the name of the group"
delete-group:
description: "Delete a group"
usage: "/%s deletegroup <group>"
args:
"name": "the name of the group"
list-groups:
description: "List all groups on the platform"
usage: "/%s listgroups"
create-track:
description: "Create a new track"
usage: "/%s createtrack <track>"
args:
"name": "the name of the track"
delete-track:
description: "Delete a track"
usage: "/%s deletetrack <track>"
args:
"name": "the name of the track"
list-tracks:
description: "List all tracks on the platform"
usage: "/%s listtracks"
user-info:
description: "Shows info about the user"
user-switchprimarygroup:
description: "Switches the user's primary group"
args:
"group": "the group to switch to"
user-promote:
description: "Promotes the user up a track"
args:
"track": "the track to promote the user up"
"context...": "the contexts to promote the user in"
user-demote:
description: "Demotes the user down a track"
args:
"track": "the track to demote the user down"
"context...": "the contexts to demote the user in"
group-info:
description: "Gives info about the group"
group-listmembers:
description: "Show the users/groups who inherit from this group"
args:
"page": "the page to view"
group-setweight:
description: "Set the groups weight"
args:
"weight": "the weight to set"
group-rename:
description: "Rename the group"
args:
"name": "the new name"
group-clone:
description: "Clone the group"
args:
"name": "the name of the group to clone onto"
holder-editor:
description: "Opens the web permission editor"
holder-showtracks:
description: "Lists the tracks that the object is on"
holder-clear:
description: "Removes all permissions, parents and meta"
args:
"context...": "the contexts to filter by"
permission:
description: "Edit permissions"
parent:
description: "Edit inheritances"
meta:
description: "Edit metadata values"
permission-info:
description: "Lists the permission nodes the object has"
args:
"page": "the page to view"
"filter": "the string to filter by"
permission-set:
description: "Sets a permission for the object"
args:
"node": "the permission node to set"
"true|false": "the value of the node"
"context...": "the contexts to add the permission in"
permission-unset:
description: "Unsets a permission for the object"
args:
"node": "the permission node to unset"
"context...": "the contexts to remove the permission in"
permission-settemp:
description: "Sets a permission for the object temporarily"
args:
"node": "the permission node to set"
"true|false": "the value of the node"
"duration": "the duration until the permission node expires"
"context...": "the contexts to add the permission in"
permission-unsettemp:
description: "Unsets a temporary permission for the object"
args:
"node": "the permission node to unset"
"context...": "the contexts to remove the permission in"
permission-check:
description: "Checks to see if the object has a certain permission node"
args:
"node": "the permission node to check for"
"context...": "the contexts to check in"
permission-check-inherits:
description: "Checks to see if the object inherits a certain permission node"
args:
"node": "the permission node to check for"
"context...": "the contexts to check in"
parent-info:
description: "Lists the groups that this object inherits from"
parent-set:
description: "Removes all other groups the object inherits already and adds them to the one given"
args:
"group": "the group to set to"
"context...": "the contexts to set the group in"
parent-add:
description: "Sets another group for the object to inherit permissions from"
args:
"group": "the group to inherit from"
"context...": "the contexts to inherit the group in"
parent-remove:
description: "Removes a previously set inheritance rule"
args:
"group": "the group to remove"
"context...": "the contexts to remove the group in"
parent-set-track:
description: "Removes all other groups the object inherits from already on the given track and adds them to the one given"
args:
"track": "the track to set on"
"group": "the group to set to, or a number relating to the position of the group on the given track"
"context...": "the contexts to set the group in"
parent-add-temp:
description: "Sets another group for the object to inherit permissions from temporarily"
args:
"group": "the group to inherit from"
"duration": "the duration of the group membership"
"context...": "the contexts to inherit the group in"
parent-remove-temp:
description: "Removes a previously set temporary inheritance rule"
args:
"group": "the group to remove"
"context...": "the contexts to remove the group in"
parent-clear:
description: "Clears all parents"
args:
"context...": "the contexts to filter by"
parent-clear-track:
description: "Clears all parents on a given track"
args:
"track": "the track to remove on"
"context...": "the contexts to filter by"
meta-info:
description: "Shows all chat meta"
meta-set:
description: "Sets a meta value"
args:
"key": "the key to set"
"value": "the value to set"
"context...": "the contexts to add the meta pair in"
meta-unset:
description: "Unsets a meta value"
args:
"key": "the key to unset"
"context...": "the contexts to remove the meta pair in"
meta-settemp:
description: "Sets a meta value temporarily"
args:
"key": "the key to set"
"value": "the value to set"
"duration": "the duration until the meta value expires"
"context...": "the contexts to add the meta pair in"
meta-unsettemp:
description: "Unsets a temporary meta value"
args:
"key": "the key to unset"
"context...": "the contexts to remove the meta pair in"
meta-addprefix:
description: "Adds a prefix"
args:
"priority": "the priority to add the prefix at"
"prefix": "the prefix string"
"context...": "the contexts to add the prefix in"
meta-addsuffix:
description: "Adds a suffix"
args:
"priority": "the priority to add the suffix at"
"suffix": "the suffix string"
"context...": "the contexts to add the suffix in"
meta-removeprefix:
description: "Removes a prefix"
args:
"priority": "the priority to remove the prefix at"
"prefix": "the prefix string"
"context...": "the contexts to remove the prefix in"
meta-removesuffix:
description: "Removes a suffix"
args:
"priority": "the priority to remove the suffix at"
"suffix": "the suffix string"
"context...": "the contexts to remove the suffix in"
meta-addtemp-prefix:
description: "Adds a prefix temporarily"
args:
"priority": "the priority to add the prefix at"
"prefix": "the prefix string"
"duration": "the duration until the prefix expires"
"context...": "the contexts to add the prefix in"
meta-addtemp-suffix:
description: "Adds a suffix temporarily"
args:
"priority": "the priority to add the suffix at"
"suffix": "the suffix string"
"duration": "the duration until the suffix expires"
"context...": "the contexts to add the suffix in"
meta-removetemp-prefix:
description: "Removes a temporary prefix"
args:
"priority": "the priority to remove the prefix at"
"prefix": "the prefix string"
"context...": "the contexts to remove the prefix in"
meta-removetemp-suffix:
description: "Removes a temporary suffix"
args:
"priority": "the priority to remove the suffix at"
"suffix": "the suffix string"
"context...": "the contexts to remove the suffix in"
meta-clear:
description: "Clears all chat meta"
args:
"context...": "the contexts to filter by"
track-info:
description: "Gives info about the track"
track-append:
description: "Appends a group onto the end of the track"
args:
"group": "the group to append"
track-insert:
description: "Inserts a group at a given position along the track"
args:
"group": "the group to insert"
"position": "the position to insert the group at (the first position on the track is 1)"
track-remove:
description: "Removes a group from the track"
args:
"group": "the group to remove"
track-clear:
description: "Clears the groups on the track"
track-rename:
description: "Rename the track"
args:
"name": "the new name"
track-clone:
description: "Clone the track"
args:
"name": "the name of the track to clone onto"
log-recent:
description: "View recent actions"
args:
"user": "the name/uuid of the user to filter by"
"page": "the page number to view"
log-search:
description: "Search the log for an entry"
args:
"query": "the query to search by"
"page": "the page number to view"
log-notify:
description: "Toggle log notifications"
args:
"on|off": "whether to toggle on or off"
log-user-history:
description: "View a user's history"
args:
"user": "the name/uuid of the user"
"page": "the page number to view"
log-group-history:
description: "View an group's history"
args:
"group": "the name of the group"
"page": "the page number to view"
log-track-history:
description: "View a track's history"
args:
"track": "the name of the track"
"page": "the page number to view"
sponge:
description: "Edit extra Sponge data"
usage: "/%s sponge <collection> <subject>"
args:
"collection": "the collection to query"
"subject": "the subject to modify"
sponge-permission-info:
description: "Shows info about the subject's permissions"
args:
"contexts...": "the contexts to filter by"
sponge-permission-set:
description: "Sets a permission for the Subject"
args:
"node": "the permission node to set"
"tristate": "the value to set the permission to"
"contexts...": "the contexts to set the permission in"
sponge-permission-clear:
description: "Clears the Subjects permissions"
args:
"contexts...": "the contexts to clear permissions in"
sponge-parent-info:
description: "Shows info about the subject's parents"
args:
"contexts...": "the contexts to filter by"
sponge-parent-add:
description: "Adds a parent to the Subject"
args:
"collection": "the subject collection where the parent Subject is"
"subject": "the name of the parent Subject"
"contexts...": "the contexts to add the parent in"
sponge-parent-remove:
description: "Removes a parent from the Subject"
args:
"collection": "the subject collection where the parent Subject is"
"subject": "the name of the parent Subject"
"contexts...": "the contexts to remove the parent in"
sponge-parent-clear:
description: "Clears the Subjects parents"
args:
"contexts...": "the contexts to clear parents in"
sponge-option-info:
description: "Shows info about the subject's options"
args:
"contexts...": "the contexts to filter by"
sponge-option-set:
description: "Sets an option for the Subject"
args:
"key": "the key to set"
"value": "the value to set the key to"
"contexts...": "the contexts to set the option in"
sponge-option-unset:
description: "Unsets an option for the Subject"
args:
"key": "the key to unset"
"contexts...": "the contexts to unset the key in"
sponge-option-clear:
description: "Clears the Subjects options"
args:
"contexts...": "the contexts to clear options in"
migration-command:
description: "Migration command"
migration-groupmanager:
description: "Migration command"
args:
"migrate as global": "if world permissions should be ignored, and just migrated as global"
migration-powerfulperms:
description: "Migration command"
args:
"address": "the address of the PP database"
"database": "the name of the PP database"
"username": "the username to log into the DB"
"password": "the password to log into the DB"
"db table": "the name of the PP table where player data is stored"

View File

@ -30,8 +30,8 @@ import lombok.RequiredArgsConstructor;
import me.lucko.luckperms.bukkit.model.Injector; import me.lucko.luckperms.bukkit.model.Injector;
import me.lucko.luckperms.bukkit.model.LPPermissible; import me.lucko.luckperms.bukkit.model.LPPermissible;
import me.lucko.luckperms.common.config.ConfigKeys; import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.utils.LoginHelper; import me.lucko.luckperms.common.utils.LoginHelper;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -42,6 +42,8 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.common.utils.ProgressLogger; import me.lucko.luckperms.common.utils.ProgressLogger;
@ -70,8 +72,8 @@ public class MigrationBPermissions extends SubCommand<Object> {
} }
} }
public MigrationBPermissions() { public MigrationBPermissions(LocaleManager locale) {
super("bpermissions", "Migration from bPermissions", MIGRATION, Predicates.alwaysFalse(), null); super(CommandSpec.MIGRATION_COMMAND.spec(locale), "bpermissions", MIGRATION, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -28,7 +28,6 @@ package me.lucko.luckperms.bukkit.migration;
import me.lucko.luckperms.api.ChatMetaType; import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand; import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@ -36,6 +35,8 @@ import me.lucko.luckperms.common.commands.impl.migration.MigrationUtils;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.common.utils.ProgressLogger; import me.lucko.luckperms.common.utils.ProgressLogger;
@ -60,10 +61,8 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MigrationGroupManager extends SubCommand<Object> { public class MigrationGroupManager extends SubCommand<Object> {
public MigrationGroupManager() { public MigrationGroupManager(LocaleManager locale) {
super("groupmanager", "Migration from GroupManager", Permission.MIGRATION, Predicates.is(0), super(CommandSpec.MIGRATION_GROUPMANAGER.spec(locale), "groupmanager", Permission.MIGRATION, Predicates.is(0));
Arg.list(Arg.create("migrate as global", true, "if world permissions should be ignored, and just migrated as global"))
);
} }
@Override @Override

View File

@ -36,6 +36,8 @@ import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.common.utils.ProgressLogger; import me.lucko.luckperms.common.utils.ProgressLogger;
@ -56,8 +58,8 @@ import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
public class MigrationPermissionsEx extends SubCommand<Object> { public class MigrationPermissionsEx extends SubCommand<Object> {
public MigrationPermissionsEx() { public MigrationPermissionsEx(LocaleManager locale) {
super("permissionsex", "Migration from PermissionsEx", Permission.MIGRATION, Predicates.alwaysFalse(), null); super(CommandSpec.MIGRATION_COMMAND.spec(locale), "permissionsex", Permission.MIGRATION, Predicates.alwaysFalse());
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")

View File

@ -35,7 +35,6 @@ import com.github.cheesesoftware.PowerfulPermsAPI.PowerfulPermsPlugin;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand; import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@ -46,6 +45,8 @@ import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.dependencies.DependencyManager; import me.lucko.luckperms.common.dependencies.DependencyManager;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.storage.StorageType; import me.lucko.luckperms.common.storage.StorageType;
import me.lucko.luckperms.common.utils.HikariSupplier; import me.lucko.luckperms.common.utils.HikariSupplier;
@ -71,16 +72,8 @@ import static me.lucko.luckperms.common.constants.Permission.MIGRATION;
// Only supports the latest versions of the PP API. (it seems to change randomly almost every release) // Only supports the latest versions of the PP API. (it seems to change randomly almost every release)
public class MigrationPowerfulPerms extends SubCommand<Object> { public class MigrationPowerfulPerms extends SubCommand<Object> {
public MigrationPowerfulPerms() { public MigrationPowerfulPerms(LocaleManager locale) {
super("powerfulperms", "Migration from PowerfulPerms", MIGRATION, Predicates.not(5), super(CommandSpec.MIGRATION_POWERFULPERMS.spec(locale), "powerfulperms", MIGRATION, Predicates.not(5));
Arg.list(
Arg.create("address", true, "the address of the PP database"),
Arg.create("database", true, "the name of the PP database"),
Arg.create("username", true, "the username to log into the DB"),
Arg.create("password", true, "the password to log into the DB"),
Arg.create("db table", true, "the name of the PP table where player data is stored")
)
);
} }
@Override @Override

View File

@ -40,6 +40,8 @@ import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.common.utils.ProgressLogger; import me.lucko.luckperms.common.utils.ProgressLogger;
@ -62,8 +64,8 @@ import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
public class MigrationZPermissions extends SubCommand<Object> { public class MigrationZPermissions extends SubCommand<Object> {
public MigrationZPermissions() { public MigrationZPermissions(LocaleManager locale) {
super("zpermissions", "Migration from zPermissions", Permission.MIGRATION, Predicates.alwaysFalse(), null); super(CommandSpec.MIGRATION_COMMAND.spec(locale), "zpermissions", Permission.MIGRATION, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -31,8 +31,8 @@ import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Tristate; import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.config.ConfigKeys; import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.utils.LoginHelper; import me.lucko.luckperms.common.utils.LoginHelper;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;

View File

@ -34,6 +34,8 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.common.utils.ProgressLogger; import me.lucko.luckperms.common.utils.ProgressLogger;
@ -50,8 +52,8 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
public class MigrationBungeePerms extends SubCommand<Object> { public class MigrationBungeePerms extends SubCommand<Object> {
public MigrationBungeePerms() { public MigrationBungeePerms(LocaleManager locale) {
super("bungeeperms", "Migration from BungeePerms", Permission.MIGRATION, Predicates.alwaysFalse(), null); super(CommandSpec.MIGRATION_COMMAND.spec(locale), "bungeeperms", Permission.MIGRATION, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -57,8 +57,9 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Constants; import me.lucko.luckperms.common.constants.Constants;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.TextUtils; import me.lucko.luckperms.common.utils.TextUtils;
@ -92,31 +93,33 @@ public class CommandManager {
this.plugin = plugin; this.plugin = plugin;
this.executor = Executors.newSingleThreadExecutor(); this.executor = Executors.newSingleThreadExecutor();
LocaleManager locale = plugin.getLocaleManager();
mainCommands = ImmutableList.<Command>builder() mainCommands = ImmutableList.<Command>builder()
.add(new UserMainCommand()) .add(new UserMainCommand(locale))
.add(new GroupMainCommand()) .add(new GroupMainCommand(locale))
.add(new TrackMainCommand()) .add(new TrackMainCommand(locale))
.addAll(plugin.getExtraCommands()) .addAll(plugin.getExtraCommands())
.add(new LogMainCommand()) .add(new LogMainCommand(locale))
.add(new SyncCommand()) .add(new SyncCommand(locale))
.add(new InfoCommand()) .add(new InfoCommand(locale))
.add(new VerboseCommand()) .add(new VerboseCommand(locale))
.add(new TreeCommand()) .add(new TreeCommand(locale))
.add(new SearchCommand()) .add(new SearchCommand(locale))
.add(new CheckCommand()) .add(new CheckCommand(locale))
.add(new NetworkSyncCommand()) .add(new NetworkSyncCommand(locale))
.add(new ImportCommand()) .add(new ImportCommand(locale))
.add(new ExportCommand()) .add(new ExportCommand(locale))
.add(new ReloadConfigCommand()) .add(new ReloadConfigCommand(locale))
.add(new BulkUpdateCommand()) .add(new BulkUpdateCommand(locale))
.add(new MigrationMainCommand()) .add(new MigrationMainCommand(locale))
.add(new ApplyEditsCommand()) .add(new ApplyEditsCommand(locale))
.add(new CreateGroup()) .add(new CreateGroup(locale))
.add(new DeleteGroup()) .add(new DeleteGroup(locale))
.add(new ListGroups()) .add(new ListGroups(locale))
.add(new CreateTrack()) .add(new CreateTrack(locale))
.add(new DeleteTrack()) .add(new DeleteTrack(locale))
.add(new ListTracks()) .add(new ListTracks(locale))
.build(); .build();
} }

View File

@ -34,6 +34,7 @@ import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.LocalizedSpec;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.Collections; import java.util.Collections;
@ -49,18 +50,15 @@ import java.util.function.Predicate;
*/ */
public abstract class Command<T, S> { public abstract class Command<T, S> {
@Getter
private final LocalizedSpec spec;
/** /**
* The name of the command. Should be properly capitalised. * The name of the command. Should be properly capitalised.
*/ */
@Getter @Getter
private final String name; private final String name;
/**
* A brief description of this command
*/
@Getter
private final String description;
/** /**
* The permission required to use this command. Nullable. * The permission required to use this command. Nullable.
*/ */
@ -72,32 +70,25 @@ public abstract class Command<T, S> {
@Getter @Getter
private final Predicate<Integer> argumentCheck; private final Predicate<Integer> argumentCheck;
/**
* A list of arguments required for the command. These are just here for informational purposes, and aren't used
* for argument validation.
*/
private final List<Arg> args;
/** /**
* Child commands. Nullable. * Child commands. Nullable.
*/ */
private final List<Command<S, ?>> children; private final List<Command<S, ?>> children;
public Command(String name, String description, Permission permission, Predicate<Integer> argumentCheck, List<Arg> args, List<Command<S, ?>> children) { public Command(LocalizedSpec spec, String name, Permission permission, Predicate<Integer> argumentCheck, List<Command<S, ?>> children) {
this.spec = spec;
this.name = name; this.name = name;
this.description = description;
this.permission = permission; this.permission = permission;
this.argumentCheck = argumentCheck; this.argumentCheck = argumentCheck;
this.args = args == null ? null : ImmutableList.copyOf(args);
this.children = children == null ? null : ImmutableList.copyOf(children); this.children = children == null ? null : ImmutableList.copyOf(children);
} }
public Command(String name, String description, Permission permission, Predicate<Integer> argumentCheck, List<Arg> args) { public Command(LocalizedSpec spec, String name, Permission permission, Predicate<Integer> argumentCheck) {
this(name, description, permission, argumentCheck, args, null); this(spec, name, permission, argumentCheck, null);
} }
public Command(String name, String description, Predicate<Integer> argumentCheck) { public Command(LocalizedSpec spec, String name, Predicate<Integer> argumentCheck) {
this(name, description, null, argumentCheck, null, null); this(spec, name, null, argumentCheck, null);
} }
public abstract CommandResult execute(LuckPermsPlugin plugin, Sender sender, T t, List<String> args, String label) throws CommandException; public abstract CommandResult execute(LuckPermsPlugin plugin, Sender sender, T t, List<String> args, String label) throws CommandException;
@ -147,13 +138,18 @@ public abstract class Command<T, S> {
return true; return true;
} }
public String getDescription() {
return spec.description();
}
/** /**
* Returns the usage of this command. Will only return a non empty result for main commands. * Returns the usage of this command. Will only return a non empty result for main commands.
* *
* @return the usage of this command. * @return the usage of this command.
*/ */
public String getUsage() { public String getUsage() {
return ""; String usage = spec.usage();
return usage == null ? "" : usage;
} }
public Optional<Permission> getPermission() { public Optional<Permission> getPermission() {
@ -161,7 +157,7 @@ public abstract class Command<T, S> {
} }
public Optional<List<Arg>> getArgs() { public Optional<List<Arg>> getArgs() {
return Optional.ofNullable(args); return Optional.ofNullable(spec.args());
} }
public Optional<List<Command<S, ?>>> getChildren() { public Optional<List<Command<S, ?>>> getChildren() {

View File

@ -25,14 +25,13 @@
package me.lucko.luckperms.common.commands.abstraction; package me.lucko.luckperms.common.commands.abstraction;
import lombok.Getter;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandManager; import me.lucko.luckperms.common.commands.CommandManager;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
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.constants.Message; import me.lucko.luckperms.common.locale.LocalizedSpec;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,13 +43,10 @@ import java.util.stream.Collectors;
public abstract class MainCommand<T> extends Command<Void, T> { public abstract class MainCommand<T> extends Command<Void, T> {
@Getter
private final String usage;
private final int minArgs; // equals 1 if the command doesn't take a mid argument, e.g. /lp user <USER> sub-command.... private final int minArgs; // equals 1 if the command doesn't take a mid argument, e.g. /lp user <USER> sub-command....
public MainCommand(String name, String description, String usage, int minArgs, List<Command<T, ?>> children) { public MainCommand(LocalizedSpec spec, String name, int minArgs, List<Command<T, ?>> children) {
super(name, description, null, Predicates.alwaysFalse(), null, children); super(spec, name, null, Predicates.alwaysFalse(), children);
this.usage = usage;
this.minArgs = minArgs; this.minArgs = minArgs;
} }
@ -160,7 +156,7 @@ public abstract class MainCommand<T> extends Command<Void, T> {
.collect(Collectors.toList()); .collect(Collectors.toList());
if (subs.size() > 0) { if (subs.size() > 0) {
Util.sendPluginMessage(sender, "&b" + getName() + " Sub Commands: &7(" + String.format(usage, label) + " ...)"); Util.sendPluginMessage(sender, "&b" + getName() + " Sub Commands: &7(" + String.format(getUsage(), label) + " ...)");
for (Command s : subs) { for (Command s : subs) {
s.sendUsage(sender, label); s.sendUsage(sender, label);

View File

@ -30,8 +30,9 @@ import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.LocalizedSpec;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -55,8 +56,8 @@ public class SharedMainCommand<T extends PermissionHolder> extends SubCommand<T>
*/ */
private boolean user; private boolean user;
public SharedMainCommand(String name, String description, boolean user, List<SharedSubCommand> secondaryCommands) { public SharedMainCommand(LocalizedSpec spec, String name, boolean user, List<SharedSubCommand> secondaryCommands) {
super(name, description, null, Predicates.alwaysFalse(), null); super(spec, name, null, Predicates.alwaysFalse());
this.secondaryCommands = secondaryCommands; this.secondaryCommands = secondaryCommands;
this.user = user; this.user = user;
} }
@ -89,7 +90,7 @@ public class SharedMainCommand<T extends PermissionHolder> extends SubCommand<T>
strippedArgs.addAll(args.subList(1, args.size())); strippedArgs.addAll(args.subList(1, args.size()));
} }
if (sub.getIsArgumentInvalid().test(strippedArgs.size())) { if (sub.getArgumentCheck().test(strippedArgs.size())) {
sub.sendDetailedUsage(sender); sub.sendDetailedUsage(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }

View File

@ -25,11 +25,8 @@
package me.lucko.luckperms.common.commands.abstraction; package me.lucko.luckperms.common.commands.abstraction;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.Arg; import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
@ -39,6 +36,7 @@ import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.LocalizedSpec;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.Collections; import java.util.Collections;
@ -50,19 +48,15 @@ import java.util.function.Predicate;
* This doesn't extend the other Command or SubCommand classes to avoid generics hell. * This doesn't extend the other Command or SubCommand classes to avoid generics hell.
*/ */
@Getter @Getter
@AllArgsConstructor
public abstract class SharedSubCommand { public abstract class SharedSubCommand {
private final LocalizedSpec spec;
/** /**
* The name of the sub command * The name of the sub command
*/ */
private final String name; private final String name;
/**
* A brief description of what the sub command does
*/
private final String description;
/** /**
* The permission needed to use this command * The permission needed to use this command
*/ */
@ -72,8 +66,15 @@ public abstract class SharedSubCommand {
/** /**
* Predicate to test if the argument length given is invalid * Predicate to test if the argument length given is invalid
*/ */
private final Predicate<? super Integer> isArgumentInvalid; private final Predicate<? super Integer> argumentCheck;
private final ImmutableList<Arg> args;
public SharedSubCommand(LocalizedSpec spec, String name, Permission userPermission, Permission groupPermission, Predicate<? super Integer> argumentCheck) {
this.spec = spec;
this.name = name;
this.userPermission = userPermission;
this.groupPermission = groupPermission;
this.argumentCheck = argumentCheck;
}
public abstract CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label) throws CommandException; public abstract CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label) throws CommandException;
@ -83,9 +84,9 @@ public abstract class SharedSubCommand {
public void sendUsage(Sender sender) { public void sendUsage(Sender sender) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (args != null) { if (getArgs() != null) {
sb.append("&3 - &7"); sb.append("&3 - &7");
for (Arg arg : args) { for (Arg arg : getArgs()) {
sb.append(arg.asPrettyString()).append(" "); sb.append(arg.asPrettyString()).append(" ");
} }
} }
@ -96,9 +97,9 @@ public abstract class SharedSubCommand {
public void sendDetailedUsage(Sender sender) { public void sendDetailedUsage(Sender sender) {
Util.sendPluginMessage(sender, "&3&lCommand Usage &3- &b" + getName()); Util.sendPluginMessage(sender, "&3&lCommand Usage &3- &b" + getName());
Util.sendPluginMessage(sender, "&b> &7" + getDescription()); Util.sendPluginMessage(sender, "&b> &7" + getDescription());
if (args != null) { if (getArgs() != null) {
Util.sendPluginMessage(sender, "&3Arguments:"); Util.sendPluginMessage(sender, "&3Arguments:");
for (Arg arg : args) { for (Arg arg : getArgs()) {
Util.sendPluginMessage(sender, "&b- " + arg.asPrettyString() + "&3 -> &7" + arg.getDescription()); Util.sendPluginMessage(sender, "&b- " + arg.asPrettyString() + "&3 -> &7" + arg.getDescription());
} }
} }
@ -108,6 +109,14 @@ public abstract class SharedSubCommand {
return user ? userPermission.isAuthorized(sender) : groupPermission.isAuthorized(sender); return user ? userPermission.isAuthorized(sender) : groupPermission.isAuthorized(sender);
} }
public String getDescription() {
return spec.description();
}
public List<Arg> getArgs() {
return spec.args();
}
public static void save(PermissionHolder holder, Sender sender, LuckPermsPlugin plugin) { public static void save(PermissionHolder holder, Sender sender, LuckPermsPlugin plugin) {
if (holder instanceof User) { if (holder instanceof User) {
User user = ((User) holder); User user = ((User) holder);

View File

@ -25,14 +25,13 @@
package me.lucko.luckperms.common.commands.abstraction; package me.lucko.luckperms.common.commands.abstraction;
import lombok.Getter;
import me.lucko.luckperms.common.commands.Arg; import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
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.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.LocalizedSpec;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.List; import java.util.List;
@ -43,12 +42,8 @@ import java.util.function.Predicate;
*/ */
public abstract class SingleCommand extends Command<Void, Void> { public abstract class SingleCommand extends Command<Void, Void> {
@Getter public SingleCommand(LocalizedSpec spec, String name, Permission permission, Predicate<Integer> argumentCheck) {
private final String usage; super(spec, name, permission, argumentCheck, null);
public SingleCommand(String name, String description, String usage, Permission permission, Predicate<Integer> argumentCheck, List<Arg> args) {
super(name, description, permission, argumentCheck, args, null);
this.usage = usage;
} }
@Override @Override

View File

@ -33,11 +33,12 @@ import me.lucko.luckperms.common.commands.Arg;
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.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.LocalizedSpec;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.messaging.InternalMessagingService; import me.lucko.luckperms.common.messaging.InternalMessagingService;
import me.lucko.luckperms.common.messaging.NoopMessagingService; import me.lucko.luckperms.common.messaging.NoopMessagingService;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
@ -58,8 +59,8 @@ import java.util.stream.Collectors;
@Getter @Getter
public abstract class SubCommand<T> extends Command<T, Void> { public abstract class SubCommand<T> extends Command<T, Void> {
public SubCommand(String name, String description, Permission permission, Predicate<Integer> argumentCheck, List<Arg> args) { public SubCommand(LocalizedSpec spec, String name, Permission permission, Predicate<Integer> argumentCheck) {
super(name, description, permission, argumentCheck, args); super(spec, name, permission, argumentCheck);
} }
/** /**

View File

@ -31,24 +31,26 @@ import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.common.commands.abstraction.SharedMainCommand; import me.lucko.luckperms.common.commands.abstraction.SharedMainCommand;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
public class CommandMeta<T extends PermissionHolder> extends SharedMainCommand<T> { public class CommandMeta<T extends PermissionHolder> extends SharedMainCommand<T> {
public CommandMeta(boolean user) { public CommandMeta(LocaleManager locale, boolean user) {
super("Meta", "Edit metadata values", user, ImmutableList.<SharedSubCommand>builder() super(CommandSpec.META.spec(locale), "Meta", user, ImmutableList.<SharedSubCommand>builder()
.add(new MetaInfo()) .add(new MetaInfo(locale))
.add(new MetaSet()) .add(new MetaSet(locale))
.add(new MetaUnset()) .add(new MetaUnset(locale))
.add(new MetaSetTemp()) .add(new MetaSetTemp(locale))
.add(new MetaUnsetTemp()) .add(new MetaUnsetTemp(locale))
.add(new MetaAddChatMeta(ChatMetaType.PREFIX)) .add(new MetaAddChatMeta(locale, ChatMetaType.PREFIX))
.add(new MetaAddChatMeta(ChatMetaType.SUFFIX)) .add(new MetaAddChatMeta(locale, ChatMetaType.SUFFIX))
.add(new MetaRemoveChatMeta(ChatMetaType.PREFIX)) .add(new MetaRemoveChatMeta(locale, ChatMetaType.PREFIX))
.add(new MetaRemoveChatMeta(ChatMetaType.SUFFIX)) .add(new MetaRemoveChatMeta(locale, ChatMetaType.SUFFIX))
.add(new MetaAddTempChatMeta(ChatMetaType.PREFIX)) .add(new MetaAddTempChatMeta(locale, ChatMetaType.PREFIX))
.add(new MetaAddTempChatMeta(ChatMetaType.SUFFIX)) .add(new MetaAddTempChatMeta(locale, ChatMetaType.SUFFIX))
.add(new MetaRemoveTempChatMeta(ChatMetaType.PREFIX)) .add(new MetaRemoveTempChatMeta(locale, ChatMetaType.PREFIX))
.add(new MetaRemoveTempChatMeta(ChatMetaType.SUFFIX)) .add(new MetaRemoveTempChatMeta(locale, ChatMetaType.SUFFIX))
.add(new MetaClear()) .add(new MetaClear(locale))
.build()); .build());
} }
} }

View File

@ -28,18 +28,19 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.ChatMetaType; import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -49,17 +50,13 @@ import java.util.stream.Collectors;
public class MetaAddChatMeta extends SharedSubCommand { public class MetaAddChatMeta extends SharedSubCommand {
private final ChatMetaType type; private final ChatMetaType type;
public MetaAddChatMeta(ChatMetaType type) { public MetaAddChatMeta(LocaleManager locale, ChatMetaType type) {
super("add" + type.name().toLowerCase(), super(
"Adds a " + type.name().toLowerCase(), type == ChatMetaType.PREFIX ? CommandSpec.META_ADDPREFIX.spec(locale) : CommandSpec.META_ADDSUFFIX.spec(locale),
"add" + type.name().toLowerCase(),
type == ChatMetaType.PREFIX ? Permission.USER_META_ADDPREFIX : Permission.USER_META_ADDSUFFIX, type == ChatMetaType.PREFIX ? Permission.USER_META_ADDPREFIX : Permission.USER_META_ADDSUFFIX,
type == ChatMetaType.PREFIX ? Permission.GROUP_META_ADDPREFIX : Permission.GROUP_META_ADDSUFFIX, type == ChatMetaType.PREFIX ? Permission.GROUP_META_ADDPREFIX : Permission.GROUP_META_ADDSUFFIX,
Predicates.inRange(0, 1), Predicates.inRange(0, 1)
Arg.list(
Arg.create("priority", true, "the priority to add the " + type.name().toLowerCase() + " at"),
Arg.create(type.name().toLowerCase(), true, "the " + type.name().toLowerCase() + " string"),
Arg.create("context...", false, "the contexts to add the " + type.name().toLowerCase() + " in")
)
); );
this.type = type; this.type = type;
} }

View File

@ -29,7 +29,6 @@ import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -37,12 +36,14 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
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.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.TemporaryModifier; import me.lucko.luckperms.common.core.TemporaryModifier;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -54,18 +55,13 @@ import java.util.stream.Collectors;
public class MetaAddTempChatMeta extends SharedSubCommand { public class MetaAddTempChatMeta extends SharedSubCommand {
private final ChatMetaType type; private final ChatMetaType type;
public MetaAddTempChatMeta(ChatMetaType type) { public MetaAddTempChatMeta(LocaleManager locale, ChatMetaType type) {
super("addtemp" + type.name().toLowerCase(), super(
"Adds a " + type.name().toLowerCase() + " temporarily", type == ChatMetaType.PREFIX ? CommandSpec.META_ADDTEMP_PREFIX.spec(locale) : CommandSpec.META_ADDTEMP_SUFFIX.spec(locale),
"addtemp" + type.name().toLowerCase(),
type == ChatMetaType.PREFIX ? Permission.USER_META_ADDTEMP_PREFIX : Permission.USER_META_ADDTEMP_SUFFIX, type == ChatMetaType.PREFIX ? Permission.USER_META_ADDTEMP_PREFIX : Permission.USER_META_ADDTEMP_SUFFIX,
type == ChatMetaType.PREFIX ? Permission.GROUP_META_ADDTEMP_PREFIX : Permission.GROUP_META_ADDTEMP_SUFFIX, type == ChatMetaType.PREFIX ? Permission.GROUP_META_ADDTEMP_PREFIX : Permission.GROUP_META_ADDTEMP_SUFFIX,
Predicates.inRange(0, 2), Predicates.inRange(0, 2)
Arg.list(
Arg.create("priority", true, "the priority to add the " + type.name().toLowerCase() + " at"),
Arg.create(type.name().toLowerCase(), true, "the " + type.name().toLowerCase() + " string"),
Arg.create("duration", true, "the duration until the " + type.name().toLowerCase() + " expires"),
Arg.create("context...", false, "the contexts to add the " + type.name().toLowerCase() + " in")
)
); );
this.type = type; this.type = type;
} }

View File

@ -26,17 +26,18 @@
package me.lucko.luckperms.common.commands.impl.generic.meta; package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,12 +45,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MetaClear extends SharedSubCommand { public class MetaClear extends SharedSubCommand {
public MetaClear() { public MetaClear(LocaleManager locale) {
super("clear", "Clears all chat meta", Permission.USER_META_CLEAR, Permission.GROUP_META_CLEAR, Predicates.alwaysFalse(), super(CommandSpec.META_CLEAR.spec(locale), "clear", Permission.USER_META_CLEAR, Permission.GROUP_META_CLEAR, Predicates.alwaysFalse());
Arg.list(
Arg.create("context...", false, "the contexts to filter by")
)
);
} }
@Override @Override

View File

@ -32,9 +32,11 @@ import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.MetaComparator; import me.lucko.luckperms.common.commands.utils.MetaComparator;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -55,8 +57,8 @@ public class MetaInfo extends SharedSubCommand {
return val.replace("&", "{color char}"); return val.replace("&", "{color char}");
} }
public MetaInfo() { public MetaInfo(LocaleManager locale) {
super("info", "Shows all chat meta", Permission.USER_META_INFO, Permission.GROUP_META_INFO, Predicates.alwaysFalse(), null); super(CommandSpec.META_INFO.spec(locale), "info", Permission.USER_META_INFO, Permission.GROUP_META_INFO, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -28,18 +28,19 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.ChatMetaType; import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -49,17 +50,13 @@ import java.util.stream.Collectors;
public class MetaRemoveChatMeta extends SharedSubCommand { public class MetaRemoveChatMeta extends SharedSubCommand {
private final ChatMetaType type; private final ChatMetaType type;
public MetaRemoveChatMeta(ChatMetaType type) { public MetaRemoveChatMeta(LocaleManager locale, ChatMetaType type) {
super("remove" + type.name().toLowerCase(), super(
"Removes a " + type.name().toLowerCase(), type == ChatMetaType.PREFIX ? CommandSpec.META_REMOVEPREFIX.spec(locale) : CommandSpec.META_REMOVESUFFIX.spec(locale),
"remove" + type.name().toLowerCase(),
type == ChatMetaType.PREFIX ? Permission.USER_META_REMOVEPREFIX : Permission.USER_META_REMOVESUFFIX, type == ChatMetaType.PREFIX ? Permission.USER_META_REMOVEPREFIX : Permission.USER_META_REMOVESUFFIX,
type == ChatMetaType.PREFIX ? Permission.GROUP_META_REMOVEPREFIX : Permission.GROUP_META_REMOVESUFFIX, type == ChatMetaType.PREFIX ? Permission.GROUP_META_REMOVEPREFIX : Permission.GROUP_META_REMOVESUFFIX,
Predicates.is(0), Predicates.is(0)
Arg.list(
Arg.create("priority", true, "the priority to remove the " + type.name().toLowerCase() + " at"),
Arg.create(type.name().toLowerCase(), false, "the " + type.name().toLowerCase() + " string"),
Arg.create("context...", false, "the contexts to remove the " + type.name().toLowerCase() + " in")
)
); );
this.type = type; this.type = type;
} }

View File

@ -28,18 +28,19 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.ChatMetaType; import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -49,17 +50,13 @@ import java.util.stream.Collectors;
public class MetaRemoveTempChatMeta extends SharedSubCommand { public class MetaRemoveTempChatMeta extends SharedSubCommand {
private final ChatMetaType type; private final ChatMetaType type;
public MetaRemoveTempChatMeta(ChatMetaType type) { public MetaRemoveTempChatMeta(LocaleManager locale, ChatMetaType type) {
super("removetemp" +type.name().toLowerCase(), super(
"Removes a temporary " + type.name().toLowerCase(), type == ChatMetaType.PREFIX ? CommandSpec.META_REMOVETEMP_PREFIX.spec(locale) : CommandSpec.META_REMOVETEMP_SUFFIX.spec(locale),
"removetemp" + type.name().toLowerCase(),
type == ChatMetaType.PREFIX ? Permission.USER_META_REMOVETEMP_PREFIX : Permission.USER_META_REMOVETEMP_SUFFIX, type == ChatMetaType.PREFIX ? Permission.USER_META_REMOVETEMP_PREFIX : Permission.USER_META_REMOVETEMP_SUFFIX,
type == ChatMetaType.PREFIX ? Permission.GROUP_META_REMOVETEMP_PREFIX : Permission.GROUP_META_REMOVETEMP_SUFFIX, type == ChatMetaType.PREFIX ? Permission.GROUP_META_REMOVETEMP_PREFIX : Permission.GROUP_META_REMOVETEMP_SUFFIX,
Predicates.is(0), Predicates.is(0)
Arg.list(
Arg.create("priority", true, "the priority to remove the " + type.name().toLowerCase() + " at"),
Arg.create(type.name().toLowerCase(), false, "the " +type.name().toLowerCase() + " string"),
Arg.create("context...", false, "the contexts to remove the " + type.name().toLowerCase() + " in")
)
); );
this.type = type; this.type = type;
} }

View File

@ -27,18 +27,19 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,14 +47,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MetaSet extends SharedSubCommand { public class MetaSet extends SharedSubCommand {
public MetaSet() { public MetaSet(LocaleManager locale) {
super("set", "Sets a meta value", Permission.USER_META_SET, Permission.GROUP_META_SET, Predicates.inRange(0, 1), super(CommandSpec.META_SET.spec(locale), "set", Permission.USER_META_SET, Permission.GROUP_META_SET, Predicates.inRange(0, 1));
Arg.list(
Arg.create("key", true, "the key to set"),
Arg.create("value", true, "the value to set"),
Arg.create("context...", false, "the contexts to add the meta pair in")
)
);
} }
@Override @Override

View File

@ -27,7 +27,6 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -35,12 +34,14 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
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.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.TemporaryModifier; import me.lucko.luckperms.common.core.TemporaryModifier;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -49,15 +50,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MetaSetTemp extends SharedSubCommand { public class MetaSetTemp extends SharedSubCommand {
public MetaSetTemp() { public MetaSetTemp(LocaleManager locale) {
super("settemp", "Sets a meta value temporarily", Permission.USER_META_SETTEMP, Permission.GROUP_META_SETTEMP, Predicates.inRange(0, 2), super(CommandSpec.META_SETTEMP.spec(locale), "settemp", Permission.USER_META_SETTEMP, Permission.GROUP_META_SETTEMP, Predicates.inRange(0, 2));
Arg.list(
Arg.create("key", true, "the key to set"),
Arg.create("value", true, "the value to set"),
Arg.create("duration", true, "the duration until the meta value expires"),
Arg.create("context...", false, "the contexts to add the meta pair in")
)
);
} }
@Override @Override

View File

@ -26,17 +26,18 @@
package me.lucko.luckperms.common.commands.impl.generic.meta; package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,14 +45,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MetaUnset extends SharedSubCommand { public class MetaUnset extends SharedSubCommand {
public MetaUnset() { public MetaUnset(LocaleManager locale) {
super("unset", "Unsets a meta value", Permission.USER_META_UNSET, Permission.GROUP_META_UNSET, super(CommandSpec.META_UNSET.spec(locale), "unset", Permission.USER_META_UNSET, Permission.GROUP_META_UNSET, Predicates.is(0));
Predicates.is(0),
Arg.list(
Arg.create("key", true, "the key to unset"),
Arg.create("context...", false, "the contexts to remove the meta pair in")
)
);
} }
@Override @Override

View File

@ -26,17 +26,18 @@
package me.lucko.luckperms.common.commands.impl.generic.meta; package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,14 +45,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MetaUnsetTemp extends SharedSubCommand { public class MetaUnsetTemp extends SharedSubCommand {
public MetaUnsetTemp() { public MetaUnsetTemp(LocaleManager locale) {
super("unsettemp", "Unsets a temporary meta value", Permission.USER_META_UNSETTEMP, Permission.GROUP_META_UNSETTEMP, super(CommandSpec.META_UNSETTEMP.spec(locale), "unsettemp", Permission.USER_META_UNSETTEMP, Permission.GROUP_META_UNSETTEMP, Predicates.is(0));
Predicates.is(0),
Arg.list(
Arg.create("key", true, "the key to unset"),
Arg.create("context...", false, "the contexts to remove the meta pair in")
)
);
} }
@Override @Override

View File

@ -26,19 +26,20 @@
package me.lucko.luckperms.common.commands.impl.generic.other; package me.lucko.luckperms.common.commands.impl.generic.other;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,13 +47,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class HolderClear<T extends PermissionHolder> extends SubCommand<T> { public class HolderClear<T extends PermissionHolder> extends SubCommand<T> {
public HolderClear(boolean user) { public HolderClear(LocaleManager locale, boolean user) {
super("clear", "Removes all permissions, parents and meta", user ? Permission.USER_CLEAR : Permission.GROUP_CLEAR, super(CommandSpec.HOLDER_CLEAR.spec(locale), "clear", user ? Permission.USER_CLEAR : Permission.GROUP_CLEAR, Predicates.alwaysFalse());
Predicates.alwaysFalse(),
Arg.list(
Arg.create("context...", false, "the contexts to filter by")
)
);
} }
@Override @Override

View File

@ -37,12 +37,14 @@ 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.config.ConfigKeys; import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeModel; import me.lucko.luckperms.common.core.NodeModel;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -68,10 +70,8 @@ public class HolderEditor<T extends PermissionHolder> extends SubCommand<T> {
private static final String GROUP_ID_PATTERN = "group/"; private static final String GROUP_ID_PATTERN = "group/";
private static final String FILE_NAME = "luckperms-data.json"; private static final String FILE_NAME = "luckperms-data.json";
public HolderEditor(boolean user) { public HolderEditor(LocaleManager locale, boolean user) {
super("editor", "Opens the web permission editor", user ? Permission.USER_EDITOR : Permission.GROUP_EDITOR, super(CommandSpec.HOLDER_EDITOR.spec(locale), "editor", user ? Permission.USER_EDITOR : Permission.GROUP_EDITOR, Predicates.alwaysFalse());
Predicates.alwaysFalse(), null
);
} }
@Override @Override

View File

@ -31,9 +31,11 @@ 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -42,9 +44,8 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class HolderShowTracks<T extends PermissionHolder> extends SubCommand<T> { public class HolderShowTracks<T extends PermissionHolder> extends SubCommand<T> {
public HolderShowTracks(boolean user) { public HolderShowTracks(LocaleManager locale, boolean user) {
super("showtracks", "Lists the tracks that the object is on", super(CommandSpec.HOLDER_SHOWTRACKS.spec(locale), "showtracks", user ? Permission.USER_SHOWTRACKS : Permission.GROUP_SHOWTRACKS, Predicates.alwaysFalse());
user ? Permission.USER_SHOWTRACKS : Permission.GROUP_SHOWTRACKS, Predicates.alwaysFalse(), null);
} }
@Override @Override

View File

@ -30,19 +30,21 @@ import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.abstraction.SharedMainCommand; import me.lucko.luckperms.common.commands.abstraction.SharedMainCommand;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
public class CommandParent<T extends PermissionHolder> extends SharedMainCommand<T> { public class CommandParent<T extends PermissionHolder> extends SharedMainCommand<T> {
public CommandParent(boolean user) { public CommandParent(LocaleManager locale, boolean user) {
super("Parent", "Edit inheritances", user, ImmutableList.<SharedSubCommand>builder() super(CommandSpec.PARENT.spec(locale), "Parent", user, ImmutableList.<SharedSubCommand>builder()
.add(new ParentInfo()) .add(new ParentInfo(locale))
.add(new ParentSet()) .add(new ParentSet(locale))
.add(new ParentAdd()) .add(new ParentAdd(locale))
.add(new ParentRemove()) .add(new ParentRemove(locale))
.add(new ParentSetTrack()) .add(new ParentSetTrack(locale))
.add(new ParentAddTemp()) .add(new ParentAddTemp(locale))
.add(new ParentRemoveTemp()) .add(new ParentRemoveTemp(locale))
.add(new ParentClear()) .add(new ParentClear(locale))
.add(new ParentClearTrack()) .add(new ParentClearTrack(locale))
.build()); .build());
} }
} }

View File

@ -27,18 +27,19 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -48,14 +49,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete;
public class ParentAdd extends SharedSubCommand { public class ParentAdd extends SharedSubCommand {
public ParentAdd() { public ParentAdd(LocaleManager locale) {
super("add", "Sets another group for the object to inherit permissions from", Permission.USER_PARENT_ADD, super(CommandSpec.PARENT_ADD.spec(locale), "add", Permission.USER_PARENT_ADD, Permission.GROUP_PARENT_ADD, Predicates.is(0));
Permission.GROUP_PARENT_ADD, Predicates.is(0),
Arg.list(
Arg.create("group", true, "the group to inherit from"),
Arg.create("context...", false, "the contexts to inherit the group in")
)
);
} }
@Override @Override

View File

@ -28,7 +28,6 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -36,13 +35,15 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
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.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.TemporaryModifier; import me.lucko.luckperms.common.core.TemporaryModifier;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -54,15 +55,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete;
public class ParentAddTemp extends SharedSubCommand { public class ParentAddTemp extends SharedSubCommand {
public ParentAddTemp() { public ParentAddTemp(LocaleManager locale) {
super("addtemp", "Sets another group for the object to inherit permissions from temporarily", super(CommandSpec.PARENT_ADD_TEMP.spec(locale), "addtemp", Permission.USER_PARENT_ADDTEMP, Permission.GROUP_PARENT_ADDTEMP, Predicates.inRange(0, 1));
Permission.USER_PARENT_ADDTEMP, Permission.GROUP_PARENT_ADDTEMP, Predicates.inRange(0, 1),
Arg.list(
Arg.create("group", true, "the group to inherit from"),
Arg.create("duration", true, "the duration of the group membership"),
Arg.create("context...", false, "the contexts to inherit the group in")
)
);
} }
@Override @Override

View File

@ -26,17 +26,18 @@
package me.lucko.luckperms.common.commands.impl.generic.parent; package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,12 +45,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ParentClear extends SharedSubCommand { public class ParentClear extends SharedSubCommand {
public ParentClear() { public ParentClear(LocaleManager locale) {
super("clear", "Clears all parents", Permission.USER_PARENT_CLEAR, Permission.GROUP_PARENT_CLEAR, Predicates.alwaysFalse(), super(CommandSpec.PARENT_CLEAR.spec(locale), "clear", Permission.USER_PARENT_CLEAR, Permission.GROUP_PARENT_CLEAR, Predicates.alwaysFalse());
Arg.list(
Arg.create("context...", false, "the contexts to filter by")
)
);
} }
@Override @Override

View File

@ -26,7 +26,6 @@
package me.lucko.luckperms.common.commands.impl.generic.parent; package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -34,12 +33,14 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -49,13 +50,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getTrackTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getTrackTabComplete;
public class ParentClearTrack extends SharedSubCommand { public class ParentClearTrack extends SharedSubCommand {
public ParentClearTrack() { public ParentClearTrack(LocaleManager locale) {
super("cleartrack", "Clears all parents on a given track", Permission.USER_PARENT_CLEAR_TRACK, Permission.GROUP_PARENT_CLEAR_TRACK, Predicates.is(0), super(CommandSpec.PARENT_CLEAR_TRACK.spec(locale), "cleartrack", Permission.USER_PARENT_CLEAR_TRACK, Permission.GROUP_PARENT_CLEAR_TRACK, Predicates.is(0));
Arg.list(
Arg.create("track", true, "the track to remove on"),
Arg.create("context...", false, "the contexts to filter by")
)
);
} }
@Override @Override

View File

@ -32,9 +32,11 @@ import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -43,9 +45,8 @@ import java.util.List;
import java.util.SortedSet; import java.util.SortedSet;
public class ParentInfo extends SharedSubCommand { public class ParentInfo extends SharedSubCommand {
public ParentInfo() { public ParentInfo(LocaleManager locale) {
super("info", "Lists the groups that this object inherits from", super(CommandSpec.PARENT_INFO.spec(locale), "info", Permission.USER_PARENT_INFO, Permission.GROUP_PARENT_INFO, Predicates.alwaysFalse());
Permission.USER_PARENT_INFO, Permission.GROUP_PARENT_INFO, Predicates.alwaysFalse(), null);
} }
@Override @Override

View File

@ -27,7 +27,6 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -35,12 +34,14 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
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.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -50,14 +51,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete;
public class ParentRemove extends SharedSubCommand { public class ParentRemove extends SharedSubCommand {
public ParentRemove() { public ParentRemove(LocaleManager locale) {
super("remove", "Removes a previously set inheritance rule", Permission.USER_PARENT_REMOVE, super(CommandSpec.PARENT_REMOVE.spec(locale), "remove", Permission.USER_PARENT_REMOVE, Permission.GROUP_PARENT_REMOVE, Predicates.is(0));
Permission.GROUP_PARENT_REMOVE, Predicates.is(0),
Arg.list(
Arg.create("group", true, "the group to remove"),
Arg.create("context...", false, "the contexts to remove the group in")
)
);
} }
@Override @Override

View File

@ -27,18 +27,19 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -48,14 +49,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete;
public class ParentRemoveTemp extends SharedSubCommand { public class ParentRemoveTemp extends SharedSubCommand {
public ParentRemoveTemp() { public ParentRemoveTemp(LocaleManager locale) {
super("removetemp", "Removes a previously set temporary inheritance rule", super(CommandSpec.PARENT_REMOVE_TEMP.spec(locale), "removetemp", Permission.USER_PARENT_REMOVETEMP, Permission.GROUP_PARENT_REMOVETEMP, Predicates.is(0));
Permission.USER_PARENT_REMOVETEMP, Permission.GROUP_PARENT_REMOVETEMP, Predicates.is(0),
Arg.list(
Arg.create("group", true, "the group to remove"),
Arg.create("context...", false, "the contexts to remove the group in")
)
);
} }
@Override @Override

View File

@ -26,19 +26,20 @@
package me.lucko.luckperms.common.commands.impl.generic.parent; package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -48,14 +49,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroupTabComplete;
public class ParentSet extends SharedSubCommand { public class ParentSet extends SharedSubCommand {
public ParentSet() { public ParentSet(LocaleManager locale) {
super("set", "Removes all other groups the object inherits already and adds them to the one given", super(CommandSpec.PARENT_SET.spec(locale), "set", Permission.USER_PARENT_SET, Permission.GROUP_PARENT_SET, Predicates.is(0));
Permission.USER_PARENT_SET, Permission.GROUP_PARENT_SET, Predicates.is(0),
Arg.list(
Arg.create("group", true, "the group to set to"),
Arg.create("context...", false, "the contexts to set the group in")
)
);
} }
@Override @Override

View File

@ -26,7 +26,6 @@
package me.lucko.luckperms.common.commands.impl.generic.parent; package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -34,12 +33,14 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -50,15 +51,8 @@ import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getGroup
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getTrackTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getTrackTabComplete;
public class ParentSetTrack extends SharedSubCommand { public class ParentSetTrack extends SharedSubCommand {
public ParentSetTrack() { public ParentSetTrack(LocaleManager locale) {
super("settrack", "Removes all other groups the object inherits from already on the given track and adds them to the one given", super(CommandSpec.PARENT_SET_TRACK.spec(locale), "settrack", Permission.USER_PARENT_SET_TRACK, Permission.GROUP_PARENT_SET_TRACK, Predicates.inRange(0, 1));
Permission.USER_PARENT_SET_TRACK, Permission.GROUP_PARENT_SET_TRACK, Predicates.inRange(0, 1),
Arg.list(
Arg.create("track", true, "the track to set on"),
Arg.create("group", true, "the group to set to, or a number relating to the position of the group on the given track"),
Arg.create("context...", false, "the contexts to set the group in")
)
);
} }
@Override @Override

View File

@ -30,17 +30,19 @@ import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.abstraction.SharedMainCommand; import me.lucko.luckperms.common.commands.abstraction.SharedMainCommand;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
public class CommandPermission<T extends PermissionHolder> extends SharedMainCommand<T> { public class CommandPermission<T extends PermissionHolder> extends SharedMainCommand<T> {
public CommandPermission(boolean user) { public CommandPermission(LocaleManager locale, boolean user) {
super("Permission", "Edit permissions", user, ImmutableList.<SharedSubCommand>builder() super(CommandSpec.PERMISSION.spec(locale), "Permission", user, ImmutableList.<SharedSubCommand>builder()
.add(new PermissionInfo()) .add(new PermissionInfo(locale))
.add(new PermissionSet()) .add(new PermissionSet(locale))
.add(new PermissionUnset()) .add(new PermissionUnset(locale))
.add(new PermissionSetTemp()) .add(new PermissionSetTemp(locale))
.add(new PermissionUnsetTemp()) .add(new PermissionUnsetTemp(locale))
.add(new PermissionCheck()) .add(new PermissionCheck(locale))
.add(new PermissionCheckInherits()) .add(new PermissionCheckInherits(locale))
.build()); .build());
} }
} }

View File

@ -27,17 +27,18 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.Tristate; import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,14 +47,8 @@ import java.util.List;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete;
public class PermissionCheck extends SharedSubCommand { public class PermissionCheck extends SharedSubCommand {
public PermissionCheck() { public PermissionCheck(LocaleManager locale) {
super("check", "Checks to see if the object has a certain permission node", Permission.USER_PERM_CHECK, super(CommandSpec.PERMISSION_CHECK.spec(locale), "check", Permission.USER_PERM_CHECK, Permission.GROUP_PERM_CHECK, Predicates.is(0));
Permission.GROUP_PERM_CHECK, Predicates.is(0),
Arg.list(
Arg.create("node", true, "the permission node to check for"),
Arg.create("context...", false, "the contexts to check in")
)
);
} }
@Override @Override

View File

@ -26,18 +26,19 @@
package me.lucko.luckperms.common.commands.impl.generic.permission; package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.InheritanceInfo; import me.lucko.luckperms.common.core.InheritanceInfo;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,14 +47,8 @@ import java.util.List;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete;
public class PermissionCheckInherits extends SharedSubCommand { public class PermissionCheckInherits extends SharedSubCommand {
public PermissionCheckInherits() { public PermissionCheckInherits(LocaleManager locale) {
super("checkinherits", "Checks to see if the object inherits a certain permission node", super(CommandSpec.PERMISSION_CHECK_INHERITS.spec(locale), "checkinherits", Permission.USER_PERM_CHECK_INHERITS, Permission.GROUP_PERM_CHECK_INHERITS, Predicates.is(0));
Permission.USER_PERM_CHECK_INHERITS, Permission.GROUP_PERM_CHECK_INHERITS, Predicates.is(0),
Arg.list(
Arg.create("node", true, "the permission node to check for"),
Arg.create("context...", false, "the contexts to check in")
)
);
} }
@Override @Override

View File

@ -29,7 +29,6 @@ import com.google.common.collect.Maps;
import me.lucko.luckperms.api.LocalizedNode; import me.lucko.luckperms.api.LocalizedNode;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -37,11 +36,13 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Constants; import me.lucko.luckperms.common.constants.Constants;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -60,14 +61,8 @@ import java.util.SortedSet;
import java.util.function.Consumer; import java.util.function.Consumer;
public class PermissionInfo extends SharedSubCommand { public class PermissionInfo extends SharedSubCommand {
public PermissionInfo() { public PermissionInfo(LocaleManager locale) {
super("info", "Lists the permission nodes the object has", Permission.USER_PERM_INFO, super(CommandSpec.PERMISSION_INFO.spec(locale), "info", Permission.USER_PERM_INFO, Permission.GROUP_PERM_INFO, Predicates.notInRange(0, 2));
Permission.GROUP_PERM_INFO, Predicates.notInRange(0, 2),
Arg.list(
Arg.create("page", false, "the page to view"),
Arg.create("filter", false, "the string to filter by")
)
);
} }
@Override @Override

View File

@ -27,18 +27,19 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -49,15 +50,8 @@ import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getBoolT
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete;
public class PermissionSet extends SharedSubCommand { public class PermissionSet extends SharedSubCommand {
public PermissionSet() { public PermissionSet(LocaleManager locale) {
super("set", "Sets a permission for the object", Permission.USER_PERM_SET, Permission.GROUP_PERM_SET, super(CommandSpec.PERMISSION_SET.spec(locale), "set", Permission.USER_PERM_SET, Permission.GROUP_PERM_SET, Predicates.is(0));
Predicates.is(0),
Arg.list(
Arg.create("node", true, "the permission node to set"),
Arg.create("true|false", false, "the value of the node"),
Arg.create("context...", false, "the contexts to add the permission in")
)
);
} }
@Override @Override

View File

@ -28,7 +28,6 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
@ -36,12 +35,14 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
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.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.TemporaryModifier; import me.lucko.luckperms.common.core.TemporaryModifier;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -54,16 +55,8 @@ import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getBoolT
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete;
public class PermissionSetTemp extends SharedSubCommand { public class PermissionSetTemp extends SharedSubCommand {
public PermissionSetTemp() { public PermissionSetTemp(LocaleManager locale) {
super("settemp", "Sets a permission for the object temporarily", Permission.USER_PERM_SETTEMP, super(CommandSpec.PERMISSION_SETTEMP.spec(locale), "settemp", Permission.USER_PERM_SETTEMP, Permission.GROUP_PERM_SETTEMP, Predicates.inRange(0, 1));
Permission.GROUP_PERM_SETTEMP, Predicates.inRange(0, 1),
Arg.list(
Arg.create("node", true, "the permission node to set"),
Arg.create("true|false", false, "the value of the node"),
Arg.create("duration", true, "the duration until the permission node expires"),
Arg.create("context...", false, "the contexts to add the permission in")
)
);
} }
@Override @Override

View File

@ -27,18 +27,19 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -48,14 +49,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete;
public class PermissionUnset extends SharedSubCommand { public class PermissionUnset extends SharedSubCommand {
public PermissionUnset() { public PermissionUnset(LocaleManager locale) {
super("unset", "Unsets a permission for the object", Permission.USER_PERM_UNSET, Permission.GROUP_PERM_UNSET, super(CommandSpec.PERMISSION_UNSET.spec(locale), "unset", Permission.USER_PERM_UNSET, Permission.GROUP_PERM_UNSET, Predicates.is(0));
Predicates.is(0),
Arg.list(
Arg.create("node", true, "the permission node to unset"),
Arg.create("context...", false, "the contexts to remove the permission in")
)
);
} }
@Override @Override

View File

@ -27,18 +27,19 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult; import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -48,14 +49,8 @@ import java.util.stream.Collectors;
import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete; import static me.lucko.luckperms.common.commands.abstraction.SubCommand.getPermissionTabComplete;
public class PermissionUnsetTemp extends SharedSubCommand { public class PermissionUnsetTemp extends SharedSubCommand {
public PermissionUnsetTemp() { public PermissionUnsetTemp(LocaleManager locale) {
super("unsettemp", "Unsets a temporary permission for the object", Permission.USER_PERM_UNSETTEMP, super(CommandSpec.PERMISSION_UNSETTEMP.spec(locale), "unsettemp", Permission.USER_PERM_UNSETTEMP, Permission.GROUP_PERM_UNSETTEMP, Predicates.is(0));
Permission.GROUP_PERM_UNSETTEMP, Predicates.is(0),
Arg.list(
Arg.create("node", true, "the permission node to unset"),
Arg.create("context...", false, "the contexts to remove the permission in")
)
);
} }
@Override @Override

View File

@ -26,26 +26,23 @@
package me.lucko.luckperms.common.commands.impl.group; package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class CreateGroup extends SingleCommand { public class CreateGroup extends SingleCommand {
public CreateGroup() { public CreateGroup(LocaleManager locale) {
super("CreateGroup", "Create a new group", "/%s creategroup <group>", Permission.CREATE_GROUP, Predicates.not(1), super(CommandSpec.CREATE_GROUP.spec(locale), "CreateGroup", Permission.CREATE_GROUP, Predicates.not(1));
Arg.list(
Arg.create("name", true, "the name of the group")
)
);
} }
@Override @Override

View File

@ -26,31 +26,25 @@
package me.lucko.luckperms.common.commands.impl.group; package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.DeletionCause; import me.lucko.luckperms.api.event.cause.DeletionCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
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.config.ConfigKeys; import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
public class DeleteGroup extends SingleCommand { public class DeleteGroup extends SingleCommand {
public DeleteGroup() { public DeleteGroup(LocaleManager locale) {
super("DeleteGroup", "Delete a group", "/%s deletegroup <group>", Permission.DELETE_GROUP, Predicates.not(1), super(CommandSpec.DELETE_GROUP.spec(locale), "DeleteGroup", Permission.DELETE_GROUP, Predicates.not(1));
Arg.list(
Arg.create("name", true, "the name of the group")
)
);
} }
@Override @Override

View File

@ -26,26 +26,25 @@
package me.lucko.luckperms.common.commands.impl.group; package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class GroupClone extends SubCommand<Group> { public class GroupClone extends SubCommand<Group> {
public GroupClone() { public GroupClone(LocaleManager locale) {
super("clone", "Clone the group", Permission.GROUP_CLONE, Predicates.not(1), super(CommandSpec.GROUP_CLONE.spec(locale), "clone", Permission.GROUP_CLONE, Predicates.not(1));
Arg.list(Arg.create("name", true, "the name of the group to clone onto"))
);
} }
@Override @Override

View File

@ -31,9 +31,11 @@ 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -43,8 +45,8 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class GroupInfo extends SubCommand<Group> { public class GroupInfo extends SubCommand<Group> {
public GroupInfo() { public GroupInfo(LocaleManager locale) {
super("info", "Gives info about the group", Permission.GROUP_INFO, Predicates.alwaysFalse(), null); super(CommandSpec.GROUP_INFO.spec(locale), "info", Permission.GROUP_INFO, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -29,7 +29,6 @@ import com.google.common.collect.Maps;
import me.lucko.luckperms.api.HeldPermission; import me.lucko.luckperms.api.HeldPermission;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand; import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@ -37,10 +36,12 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Constants; import me.lucko.luckperms.common.constants.Constants;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -63,13 +64,8 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class GroupListMembers extends SubCommand<Group> { public class GroupListMembers extends SubCommand<Group> {
public GroupListMembers() { public GroupListMembers(LocaleManager locale) {
super("listmembers", "Show the users/groups who inherit from this group", super(CommandSpec.GROUP_LISTMEMBERS.spec(locale), "listmembers", Permission.GROUP_LISTMEMBERS, Predicates.notInRange(0, 1));
Permission.GROUP_LISTMEMBERS, Predicates.notInRange(0, 1),
Arg.list(
Arg.create("page", false, "the page to view")
)
);
} }
@Override @Override

View File

@ -36,27 +36,29 @@ import me.lucko.luckperms.common.commands.impl.generic.other.HolderShowTracks;
import me.lucko.luckperms.common.commands.impl.generic.parent.CommandParent; import me.lucko.luckperms.common.commands.impl.generic.parent.CommandParent;
import me.lucko.luckperms.common.commands.impl.generic.permission.CommandPermission; import me.lucko.luckperms.common.commands.impl.generic.permission.CommandPermission;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class GroupMainCommand extends MainCommand<Group> { public class GroupMainCommand extends MainCommand<Group> {
public GroupMainCommand() { public GroupMainCommand(LocaleManager locale) {
super("Group", "Group commands", "/%s group <group>", 2, ImmutableList.<Command<Group, ?>>builder() super(CommandSpec.GROUP.spec(locale), "Group", 2, ImmutableList.<Command<Group, ?>>builder()
.add(new GroupInfo()) .add(new GroupInfo(locale))
.add(new CommandPermission<>(false)) .add(new CommandPermission<>(locale, false))
.add(new CommandParent<>(false)) .add(new CommandParent<>(locale, false))
.add(new CommandMeta<>(false)) .add(new CommandMeta<>(locale, false))
.add(new HolderEditor<>(false)) .add(new HolderEditor<>(locale, false))
.add(new GroupListMembers()) .add(new GroupListMembers(locale))
.add(new GroupSetWeight()) .add(new GroupSetWeight(locale))
.add(new HolderShowTracks<>(false)) .add(new HolderShowTracks<>(locale, false))
.add(new HolderClear<>(false)) .add(new HolderClear<>(locale, false))
.add(new GroupRename()) .add(new GroupRename(locale))
.add(new GroupClone()) .add(new GroupClone(locale))
.build() .build()
); );
} }

View File

@ -27,26 +27,25 @@ package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.api.event.cause.DeletionCause; import me.lucko.luckperms.api.event.cause.DeletionCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class GroupRename extends SubCommand<Group> { public class GroupRename extends SubCommand<Group> {
public GroupRename() { public GroupRename(LocaleManager locale) {
super("rename", "Rename the group", Permission.GROUP_RENAME, Predicates.not(1), super(CommandSpec.GROUP_RENAME.spec(locale), "rename", Permission.GROUP_RENAME, Predicates.not(1));
Arg.list(Arg.create("name", true, "the new name"))
);
} }
@Override @Override

View File

@ -25,26 +25,25 @@
package me.lucko.luckperms.common.commands.impl.group; package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class GroupSetWeight extends SubCommand<Group> { public class GroupSetWeight extends SubCommand<Group> {
public GroupSetWeight() { public GroupSetWeight(LocaleManager locale) {
super("setweight", "Set the groups weight", Permission.GROUP_SETWEIGHT, Predicates.not(1), super(CommandSpec.GROUP_SETWEIGHT.spec(locale), "setweight", Permission.GROUP_SETWEIGHT, Predicates.not(1));
Arg.list(Arg.create("weight", true, "the weight to set"))
);
} }
@Override @Override

View File

@ -29,9 +29,11 @@ import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -39,8 +41,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ListGroups extends SingleCommand { public class ListGroups extends SingleCommand {
public ListGroups() { public ListGroups(LocaleManager locale) {
super("ListGroups", "List all groups on the platform", "/%s listgroups", Permission.LIST_GROUPS, Predicates.alwaysFalse(), null); super(CommandSpec.LIST_GROUPS.spec(locale), "ListGroups", Permission.LIST_GROUPS, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -23,18 +23,19 @@
* SOFTWARE. * SOFTWARE.
*/ */
package me.lucko.luckperms.common.commands.impl.log.subcommands; package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry; import me.lucko.luckperms.api.LogEntry;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,13 +45,8 @@ import java.util.Map;
import java.util.SortedMap; import java.util.SortedMap;
public class LogGroupHistory extends SubCommand<Log> { public class LogGroupHistory extends SubCommand<Log> {
public LogGroupHistory() { public LogGroupHistory(LocaleManager locale) {
super("grouphistory", "View an group's history", Permission.LOG_GROUP_HISTORY, Predicates.notInRange(1, 2), super(CommandSpec.LOG_GROUP_HISTORY.spec(locale), "grouphistory", Permission.LOG_GROUP_HISTORY, Predicates.notInRange(1, 2));
Arg.list(
Arg.create("group", true, "the name of the group"),
Arg.create("page", false, "the page number to view")
)
);
} }
@Override @Override

View File

@ -29,15 +29,11 @@ import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.abstraction.Command; import me.lucko.luckperms.common.commands.abstraction.Command;
import me.lucko.luckperms.common.commands.abstraction.MainCommand; import me.lucko.luckperms.common.commands.abstraction.MainCommand;
import me.lucko.luckperms.common.commands.impl.log.subcommands.LogGroupHistory;
import me.lucko.luckperms.common.commands.impl.log.subcommands.LogNotify;
import me.lucko.luckperms.common.commands.impl.log.subcommands.LogRecent;
import me.lucko.luckperms.common.commands.impl.log.subcommands.LogSearch;
import me.lucko.luckperms.common.commands.impl.log.subcommands.LogTrackHistory;
import me.lucko.luckperms.common.commands.impl.log.subcommands.LogUserHistory;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.Collections; import java.util.Collections;
@ -46,14 +42,14 @@ import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class LogMainCommand extends MainCommand<Log> { public class LogMainCommand extends MainCommand<Log> {
public LogMainCommand() { public LogMainCommand(LocaleManager locale) {
super("Log", "Log commands", "/%s log", 1, ImmutableList.<Command<Log, ?>>builder() super(CommandSpec.LOG.spec(locale), "Log", 1, ImmutableList.<Command<Log, ?>>builder()
.add(new LogRecent()) .add(new LogRecent(locale))
.add(new LogSearch()) .add(new LogSearch(locale))
.add(new LogNotify()) .add(new LogNotify(locale))
.add(new LogUserHistory()) .add(new LogUserHistory(locale))
.add(new LogGroupHistory()) .add(new LogGroupHistory(locale))
.add(new LogTrackHistory()) .add(new LogTrackHistory(locale))
.build() .build()
); );
} }

View File

@ -23,16 +23,17 @@
* SOFTWARE. * SOFTWARE.
*/ */
package me.lucko.luckperms.common.commands.impl.log.subcommands; package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -41,10 +42,8 @@ import java.util.Set;
import java.util.UUID; import java.util.UUID;
public class LogNotify extends SubCommand<Log> { public class LogNotify extends SubCommand<Log> {
public LogNotify() { public LogNotify(LocaleManager locale) {
super("notify", "Toggle notifications", Permission.LOG_NOTIFY, Predicates.notInRange(0, 1), super(CommandSpec.LOG_NOTIFY.spec(locale), "notify", Permission.LOG_NOTIFY, Predicates.notInRange(0, 1));
Arg.list(Arg.create("on|off", false, "whether to toggle on or off"))
);
} }
@Override @Override

View File

@ -23,19 +23,20 @@
* SOFTWARE. * SOFTWARE.
*/ */
package me.lucko.luckperms.common.commands.impl.log.subcommands; package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry; import me.lucko.luckperms.api.LogEntry;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,39 +47,8 @@ import java.util.SortedMap;
import java.util.UUID; import java.util.UUID;
public class LogRecent extends SubCommand<Log> { public class LogRecent extends SubCommand<Log> {
private static CommandResult showLog(int page, UUID filter, Sender sender, Log log) { public LogRecent(LocaleManager locale) {
int maxPage = (filter != null) ? log.getRecentMaxPages(filter) : log.getRecentMaxPages(); super(CommandSpec.LOG_RECENT.spec(locale), "recent", Permission.LOG_RECENT, Predicates.notInRange(0, 2));
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
}
if (page < 1 || page > maxPage) {
Message.LOG_INVALID_PAGE_RANGE.send(sender, maxPage);
return CommandResult.INVALID_ARGS;
}
SortedMap<Integer, LogEntry> entries = (filter != null) ? log.getRecent(page, filter) : log.getRecent(page);
if (filter != null) {
String name = entries.values().stream().findAny().get().getActorName();
Message.LOG_RECENT_BY_HEADER.send(sender, name, page, maxPage);
} else {
Message.LOG_RECENT_HEADER.send(sender, page, maxPage);
}
for (Map.Entry<Integer, LogEntry> e : entries.entrySet()) {
Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted());
}
return CommandResult.SUCCESS;
}
public LogRecent() {
super("recent", "View recent actions", Permission.LOG_RECENT, Predicates.notInRange(0, 2),
Arg.list(
Arg.create("user", false, "the name/uuid of the user to filter by"),
Arg.create("page", false, "the page number to view")
)
);
} }
@Override @Override
@ -150,4 +120,30 @@ public class LogRecent extends SubCommand<Log> {
} }
} }
} }
private static CommandResult showLog(int page, UUID filter, Sender sender, Log log) {
int maxPage = (filter != null) ? log.getRecentMaxPages(filter) : log.getRecentMaxPages();
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
}
if (page < 1 || page > maxPage) {
Message.LOG_INVALID_PAGE_RANGE.send(sender, maxPage);
return CommandResult.INVALID_ARGS;
}
SortedMap<Integer, LogEntry> entries = (filter != null) ? log.getRecent(page, filter) : log.getRecent(page);
if (filter != null) {
String name = entries.values().stream().findAny().get().getActorName();
Message.LOG_RECENT_BY_HEADER.send(sender, name, page, maxPage);
} else {
Message.LOG_RECENT_HEADER.send(sender, page, maxPage);
}
for (Map.Entry<Integer, LogEntry> e : entries.entrySet()) {
Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted());
}
return CommandResult.SUCCESS;
}
} }

View File

@ -23,17 +23,18 @@
* SOFTWARE. * SOFTWARE.
*/ */
package me.lucko.luckperms.common.commands.impl.log.subcommands; package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry; import me.lucko.luckperms.api.LogEntry;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,13 +45,8 @@ import java.util.SortedMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class LogSearch extends SubCommand<Log> { public class LogSearch extends SubCommand<Log> {
public LogSearch() { public LogSearch(LocaleManager locale) {
super("search", "Search the log for an entry", Permission.LOG_SEARCH, Predicates.is(0), super(CommandSpec.LOG_SEARCH.spec(locale), "search", Permission.LOG_SEARCH, Predicates.is(0));
Arg.list(
Arg.create("query", true, "the query to search by"),
Arg.create("page", false, "the page number to view")
)
);
} }
@Override @Override

View File

@ -23,18 +23,19 @@
* SOFTWARE. * SOFTWARE.
*/ */
package me.lucko.luckperms.common.commands.impl.log.subcommands; package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry; import me.lucko.luckperms.api.LogEntry;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,13 +45,8 @@ import java.util.Map;
import java.util.SortedMap; import java.util.SortedMap;
public class LogTrackHistory extends SubCommand<Log> { public class LogTrackHistory extends SubCommand<Log> {
public LogTrackHistory() { public LogTrackHistory(LocaleManager locale) {
super("trackhistory", "View a track's history", Permission.LOG_TRACK_HISTORY, Predicates.notInRange(1, 2), super(CommandSpec.LOG_TRACK_HISTORY.spec(locale), "trackhistory", Permission.LOG_TRACK_HISTORY, Predicates.notInRange(1, 2));
Arg.list(
Arg.create("track", true, "the name of the track"),
Arg.create("page", false, "the page number to view")
)
);
} }
@Override @Override

View File

@ -23,19 +23,20 @@
* SOFTWARE. * SOFTWARE.
*/ */
package me.lucko.luckperms.common.commands.impl.log.subcommands; package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry; import me.lucko.luckperms.api.LogEntry;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Log; import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,36 +47,8 @@ import java.util.SortedMap;
import java.util.UUID; import java.util.UUID;
public class LogUserHistory extends SubCommand<Log> { public class LogUserHistory extends SubCommand<Log> {
private static CommandResult showLog(int page, UUID user, Sender sender, Log log) { public LogUserHistory(LocaleManager locale) {
int maxPage = log.getUserHistoryMaxPages(user); super(CommandSpec.LOG_USER_HISTORY.spec(locale), "userhistory", Permission.LOG_USER_HISTORY, Predicates.notInRange(1, 2));
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
}
if (page < 1 || page > maxPage) {
Message.LOG_INVALID_PAGE_RANGE.send(sender, maxPage);
return CommandResult.INVALID_ARGS;
}
SortedMap<Integer, LogEntry> entries = log.getUserHistory(page, user);
String name = entries.values().stream().findAny().get().getActedName();
Message.LOG_HISTORY_USER_HEADER.send(sender, name, page, maxPage);
for (Map.Entry<Integer, LogEntry> e : entries.entrySet()) {
Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted());
}
return CommandResult.SUCCESS;
}
public LogUserHistory() {
super("userhistory", "View a user's history", Permission.LOG_USER_HISTORY, Predicates.notInRange(1, 2),
Arg.list(
Arg.create("user", true, "the name/uuid of the user"),
Arg.create("page", false, "the page number to view")
)
);
} }
@Override @Override
@ -99,7 +72,6 @@ public class LogUserHistory extends SubCommand<Log> {
} }
return showLog(page, uuid, sender, log); return showLog(page, uuid, sender, log);
} }
if (user.length() <= 16) { if (user.length() <= 16) {
@ -125,4 +97,27 @@ public class LogUserHistory extends SubCommand<Log> {
Message.USER_INVALID_ENTRY.send(sender, user); Message.USER_INVALID_ENTRY.send(sender, user);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
private static CommandResult showLog(int page, UUID user, Sender sender, Log log) {
int maxPage = log.getUserHistoryMaxPages(user);
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
}
if (page < 1 || page > maxPage) {
Message.LOG_INVALID_PAGE_RANGE.send(sender, maxPage);
return CommandResult.INVALID_ARGS;
}
SortedMap<Integer, LogEntry> entries = log.getUserHistory(page, user);
String name = entries.values().stream().findAny().get().getActedName();
Message.LOG_HISTORY_USER_HEADER.send(sender, name, page, maxPage);
for (Map.Entry<Integer, LogEntry> e : entries.entrySet()) {
Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted());
}
return CommandResult.SUCCESS;
}
} }

View File

@ -34,6 +34,8 @@ import me.lucko.luckperms.common.commands.abstraction.MainCommand;
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.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -58,19 +60,19 @@ public class MigrationMainCommand extends MainCommand<Object> {
private List<Command<Object, ?>> commands = null; private List<Command<Object, ?>> commands = null;
private boolean display = true; private boolean display = true;
public MigrationMainCommand() { public MigrationMainCommand(LocaleManager locale) {
super("Migration", "Migration commands", "/%s migration", 1, null); super(CommandSpec.MIGRATION.spec(locale), "Migration", 1, null);
} }
@Override @Override
public synchronized Optional<List<Command<Object, ?>>> getChildren() { public synchronized Optional<List<Command<Object, ?>>> getChildren() {
if (commands == null) { if (commands == null) {
commands = getAvailableCommands(); commands = getAvailableCommands(getSpec().getLocaleManager());
// Add dummy command to show in the list. // Add dummy command to show in the list.
if (commands.isEmpty()) { if (commands.isEmpty()) {
display = false; display = false;
commands.add(new SubCommand<Object>("No available plugins to migrate from", "No available plugins to migrate from.", Permission.MIGRATION, Predicates.alwaysFalse(), null) { commands.add(new SubCommand<Object>(CommandSpec.MIGRATION_COMMAND.spec(getSpec().getLocaleManager()), "No available plugins to migrate from", Permission.MIGRATION, Predicates.alwaysFalse()) {
@Override @Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) throws CommandException { public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) throws CommandException {
return CommandResult.SUCCESS; return CommandResult.SUCCESS;
@ -94,13 +96,13 @@ public class MigrationMainCommand extends MainCommand<Object> {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static List<Command<Object, ?>> getAvailableCommands() { private static List<Command<Object, ?>> getAvailableCommands(LocaleManager locale) {
List<Command<Object, ?>> l = new ArrayList<>(); List<Command<Object, ?>> l = new ArrayList<>();
for (Map.Entry<String, String> plugin : PLUGINS.entrySet()) { for (Map.Entry<String, String> plugin : PLUGINS.entrySet()) {
try { try {
Class.forName(plugin.getKey()); Class.forName(plugin.getKey());
l.add((SubCommand<Object>) Class.forName(plugin.getValue()).newInstance()); l.add((SubCommand<Object>) Class.forName(plugin.getValue()).getConstructor(LocaleManager.class).newInstance(locale));
} catch (Throwable ignored) {} } catch (Throwable ignored) {}
} }

View File

@ -32,17 +32,18 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import me.lucko.luckperms.api.context.ImmutableContextSet; import me.lucko.luckperms.api.context.ImmutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand; import me.lucko.luckperms.common.commands.abstraction.SharedSubCommand;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeModel; import me.lucko.luckperms.common.core.NodeModel;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -59,14 +60,8 @@ import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ApplyEditsCommand extends SingleCommand { public class ApplyEditsCommand extends SingleCommand {
public ApplyEditsCommand() { public ApplyEditsCommand(LocaleManager locale) {
super("ApplyEdits", "Applies permission changes made from the web editor", super(CommandSpec.APPLY_EDITS.spec(locale), "ApplyEdits", Permission.APPLY_EDITS, Predicates.notInRange(1, 2));
"/%s applyedits <code> [target]", Permission.APPLY_EDITS, Predicates.notInRange(1, 2),
Arg.list(
Arg.create("code", true, "the unique code for the data"),
Arg.create("target", false, "who to apply the data to")
)
);
} }
@Override @Override

View File

@ -36,14 +36,15 @@ import me.lucko.luckperms.common.bulkupdate.action.UpdateAction;
import me.lucko.luckperms.common.bulkupdate.comparisons.ComparisonType; import me.lucko.luckperms.common.bulkupdate.comparisons.ComparisonType;
import me.lucko.luckperms.common.bulkupdate.constraint.Constraint; import me.lucko.luckperms.common.bulkupdate.constraint.Constraint;
import me.lucko.luckperms.common.bulkupdate.constraint.QueryField; import me.lucko.luckperms.common.bulkupdate.constraint.QueryField;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -54,16 +55,8 @@ import java.util.concurrent.TimeUnit;
public class BulkUpdateCommand extends SingleCommand { public class BulkUpdateCommand extends SingleCommand {
private final Cache<String, BulkUpdate> pendingOperations = Caffeine.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build(); private final Cache<String, BulkUpdate> pendingOperations = Caffeine.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build();
public BulkUpdateCommand() { public BulkUpdateCommand(LocaleManager locale) {
super("BulkUpdate", "Execute bulk change queries on all data", "/%s bulkupdate", Permission.BULK_UPDATE, Predicates.alwaysFalse(), super(CommandSpec.BULK_UPDATE.spec(locale), "BulkUpdate", Permission.BULK_UPDATE, Predicates.alwaysFalse());
Arg.list(
Arg.create("data type", true, "the type of data being changed. ('all', 'users' or 'groups')"),
Arg.create("action", true, "the action to perform on the data. ('update' or 'delete')"),
Arg.create("action field", false, "the field to act upon. only required for 'update'. ('permission', 'server' or 'world')"),
Arg.create("action value", false, "the value to replace with. only required for 'update'."),
Arg.create("constraint...", false, "the constraints required for the update")
)
);
} }
@Override @Override

View File

@ -26,16 +26,17 @@
package me.lucko.luckperms.common.commands.impl.misc; package me.lucko.luckperms.common.commands.impl.misc;
import me.lucko.luckperms.api.Tristate; import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,14 +45,8 @@ import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class CheckCommand extends SingleCommand { public class CheckCommand extends SingleCommand {
public CheckCommand() { public CheckCommand(LocaleManager locale) {
super("Check", "Perform a standard permission check on an online player", super(CommandSpec.CHECK.spec(locale), "Check", Permission.CHECK, Predicates.not(2));
"/%s check <user> <permission>", Permission.CHECK, Predicates.not(2),
Arg.list(
Arg.create("user", true, "the user to check"),
Arg.create("permission", true, "the permission to check for")
)
);
} }
@Override @Override

View File

@ -25,13 +25,14 @@
package me.lucko.luckperms.common.commands.impl.misc; package me.lucko.luckperms.common.commands.impl.misc;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Exporter; import me.lucko.luckperms.common.data.Exporter;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -45,12 +46,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class ExportCommand extends SingleCommand { public class ExportCommand extends SingleCommand {
private AtomicBoolean running = new AtomicBoolean(false); private AtomicBoolean running = new AtomicBoolean(false);
public ExportCommand() { public ExportCommand(LocaleManager locale) {
super("Export", "Export data to a file", "/%s export <file>", Permission.EXPORT, Predicates.not(1), super(CommandSpec.EXPORT.spec(locale), "Export", Permission.EXPORT, Predicates.not(1));
Arg.list(
Arg.create("file", true, "the file to export to")
)
);
} }
@Override @Override

View File

@ -25,13 +25,14 @@
package me.lucko.luckperms.common.commands.impl.misc; package me.lucko.luckperms.common.commands.impl.misc;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.Importer; import me.lucko.luckperms.common.data.Importer;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -46,12 +47,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class ImportCommand extends SingleCommand { public class ImportCommand extends SingleCommand {
private AtomicBoolean running = new AtomicBoolean(false); private AtomicBoolean running = new AtomicBoolean(false);
public ImportCommand() { public ImportCommand(LocaleManager locale) {
super("Import", "Import data from a file", "/%s import <file>", Permission.IMPORT, Predicates.not(1), super(CommandSpec.IMPORT.spec(locale), "Import", Permission.IMPORT, Predicates.not(1));
Arg.list(
Arg.create("file", true, "the file to import from")
)
);
} }
@Override @Override

View File

@ -31,8 +31,10 @@ 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.config.ConfigKeys;
import me.lucko.luckperms.common.config.LuckPermsConfiguration; import me.lucko.luckperms.common.config.LuckPermsConfiguration;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.messaging.NoopMessagingService; import me.lucko.luckperms.common.messaging.NoopMessagingService;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -44,21 +46,8 @@ import java.util.Map;
import static me.lucko.luckperms.common.commands.utils.Util.formatBoolean; import static me.lucko.luckperms.common.commands.utils.Util.formatBoolean;
public class InfoCommand extends SingleCommand { public class InfoCommand extends SingleCommand {
private static String formatValue(String value) { public InfoCommand(LocaleManager locale) {
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) { super(CommandSpec.INFO.spec(locale), "Info", Permission.INFO, Predicates.alwaysFalse());
return Util.formatBoolean(Boolean.parseBoolean(value));
}
try {
int i = Integer.parseInt(value);
return "&a" + i;
} catch (NumberFormatException ignored) {}
return "&f" + value;
}
public InfoCommand() {
super("Info", "Print general plugin info", "/%s info", Permission.INFO, Predicates.alwaysFalse(), null);
} }
@Override @Override
@ -103,4 +92,17 @@ public class InfoCommand extends SingleCommand {
return CommandResult.SUCCESS; return CommandResult.SUCCESS;
} }
private static String formatValue(String value) {
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) {
return Util.formatBoolean(Boolean.parseBoolean(value));
}
try {
int i = Integer.parseInt(value);
return "&a" + i;
} catch (NumberFormatException ignored) {}
return "&f" + value;
}
} }

View File

@ -28,8 +28,10 @@ package me.lucko.luckperms.common.commands.impl.misc;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.messaging.InternalMessagingService; import me.lucko.luckperms.common.messaging.InternalMessagingService;
import me.lucko.luckperms.common.messaging.NoopMessagingService; import me.lucko.luckperms.common.messaging.NoopMessagingService;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
@ -38,9 +40,8 @@ import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class NetworkSyncCommand extends SingleCommand { public class NetworkSyncCommand extends SingleCommand {
public NetworkSyncCommand() { public NetworkSyncCommand(LocaleManager locale) {
super("NetworkSync", "Sync changes with the storage and request that all other servers on the network do the same", super(CommandSpec.NETWORK_SYNC.spec(locale), "NetworkSync", Permission.SYNC, Predicates.alwaysFalse());
"/%s networksync", Permission.SYNC, Predicates.alwaysFalse(), null);
} }
@Override @Override

View File

@ -29,16 +29,18 @@ import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class ReloadConfigCommand extends SingleCommand { public class ReloadConfigCommand extends SingleCommand {
public ReloadConfigCommand() { public ReloadConfigCommand(LocaleManager locale) {
super("ReloadConfig", "Reload some of the config options", "/%s reloadconfig", Permission.RELOAD_CONFIG, Predicates.alwaysFalse(), null); super(CommandSpec.RELOAD_CONFIG.spec(locale), "ReloadConfig", Permission.RELOAD_CONFIG, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -29,7 +29,6 @@ import com.google.common.collect.Maps;
import me.lucko.luckperms.api.HeldPermission; import me.lucko.luckperms.api.HeldPermission;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
@ -38,9 +37,11 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Constants; import me.lucko.luckperms.common.constants.Constants;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -63,14 +64,8 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class SearchCommand extends SingleCommand { public class SearchCommand extends SingleCommand {
public SearchCommand() { public SearchCommand(LocaleManager locale) {
super("Search", "Search for users/groups with a specific permission", super(CommandSpec.SEARCH.spec(locale), "Search", Permission.SEARCH, Predicates.notInRange(1, 2));
"/%s search <permission>", Permission.SEARCH, Predicates.notInRange(1, 2),
Arg.list(
Arg.create("permission", true, "the permission to search for"),
Arg.create("page", false, "the page to view")
)
);
} }
@Override @Override

View File

@ -28,16 +28,18 @@ package me.lucko.luckperms.common.commands.impl.misc;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class SyncCommand extends SingleCommand { public class SyncCommand extends SingleCommand {
public SyncCommand() { public SyncCommand(LocaleManager locale) {
super("Sync", "Sync changes with the storage", "/%s sync", Permission.SYNC, Predicates.alwaysFalse(), null); super(CommandSpec.SYNC.spec(locale), "Sync", Permission.SYNC, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -26,16 +26,17 @@
package me.lucko.luckperms.common.commands.impl.misc; package me.lucko.luckperms.common.commands.impl.misc;
import me.lucko.luckperms.api.caching.PermissionData; import me.lucko.luckperms.api.caching.PermissionData;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.treeview.TreeView; import me.lucko.luckperms.common.treeview.TreeView;
import me.lucko.luckperms.common.treeview.TreeViewBuilder; import me.lucko.luckperms.common.treeview.TreeViewBuilder;
@ -50,15 +51,8 @@ import java.util.List;
import java.util.UUID; import java.util.UUID;
public class TreeCommand extends SingleCommand { public class TreeCommand extends SingleCommand {
public TreeCommand() { public TreeCommand(LocaleManager locale) {
super("Tree", "Generate a tree view of permissions", super(CommandSpec.TREE.spec(locale), "Tree", Permission.TREE, Predicates.alwaysFalse());
"/%s tree [selection] [max level] [player]", Permission.TREE, Predicates.alwaysFalse(),
Arg.list(
Arg.create("selection", false, "the root of the tree. specify \".\" to include all permissions"),
Arg.create("max level", false, "how many branch levels should be returned"),
Arg.create("player", false, "the name of an online player to check against")
)
);
} }
@Override @Override

View File

@ -27,12 +27,13 @@ package me.lucko.luckperms.common.commands.impl.misc;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.common.verbose.VerboseListener; import me.lucko.luckperms.common.verbose.VerboseListener;
@ -49,13 +50,8 @@ import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
public class VerboseCommand extends SingleCommand { public class VerboseCommand extends SingleCommand {
public VerboseCommand() { public VerboseCommand(LocaleManager locale) {
super("Verbose", "Manage verbose permission checking", "/%s verbose <true|false> [filter]", Permission.VERBOSE, Predicates.is(0), super(CommandSpec.VERBOSE.spec(locale), "Verbose", Permission.VERBOSE, Predicates.is(0));
Arg.list(
Arg.create("on|record|off|paste", true, "whether to enable/disable logging, or to paste the logged output"),
Arg.create("filter", false, "the filter to match entries against")
)
);
} }
@Override @Override

View File

@ -26,26 +26,23 @@
package me.lucko.luckperms.common.commands.impl.track; package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class CreateTrack extends SingleCommand { public class CreateTrack extends SingleCommand {
public CreateTrack() { public CreateTrack(LocaleManager locale) {
super("CreateTrack", "Create a new track", "/%s createtrack <track>", Permission.CREATE_TRACK, Predicates.not(1), super(CommandSpec.CREATE_TRACK.spec(locale), "CreateTrack", Permission.CREATE_TRACK, Predicates.not(1));
Arg.list(
Arg.create("name", true, "the name of the track")
)
);
} }
@Override @Override

View File

@ -26,28 +26,24 @@
package me.lucko.luckperms.common.commands.impl.track; package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.api.event.cause.DeletionCause; import me.lucko.luckperms.api.event.cause.DeletionCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class DeleteTrack extends SingleCommand { public class DeleteTrack extends SingleCommand {
public DeleteTrack() { public DeleteTrack(LocaleManager locale) {
super("DeleteTrack", "Delete a track", "/%s deletetrack <track>", Permission.DELETE_TRACK, Predicates.not(1), super(CommandSpec.DELETE_TRACK.spec(locale), "DeleteTrack", Permission.DELETE_TRACK, Predicates.not(1));
Arg.list(
Arg.create("name", true, "the name of the track")
)
);
} }
@Override @Override

View File

@ -29,8 +29,10 @@ import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand; import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -38,8 +40,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ListTracks extends SingleCommand { public class ListTracks extends SingleCommand {
public ListTracks() { public ListTracks(LocaleManager locale) {
super("ListTracks", "List all tracks on the platform", "/%s listtracks", Permission.LIST_TRACKS, Predicates.alwaysFalse(), null); super(CommandSpec.LIST_TRACKS.spec(locale), "ListTracks", Permission.LIST_TRACKS, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -25,18 +25,19 @@
package me.lucko.luckperms.common.commands.impl.track; package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException; import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
@ -44,10 +45,8 @@ import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
import java.util.List; import java.util.List;
public class TrackAppend extends SubCommand<Track> { public class TrackAppend extends SubCommand<Track> {
public TrackAppend() { public TrackAppend(LocaleManager locale) {
super("append", "Appends a group onto the end of the track", Permission.TRACK_APPEND, Predicates.not(1), super(CommandSpec.TRACK_APPEND.spec(locale), "append", Permission.TRACK_APPEND, Predicates.not(1));
Arg.list(Arg.create("group", true, "the group to append"))
);
} }
@Override @Override

View File

@ -29,18 +29,20 @@ import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class TrackClear extends SubCommand<Track> { public class TrackClear extends SubCommand<Track> {
public TrackClear() { public TrackClear(LocaleManager locale) {
super("clear", "Clears the groups on the track", Permission.TRACK_CLEAR, Predicates.alwaysFalse(), null); super(CommandSpec.TRACK_CLEAR.spec(locale), "clear", Permission.TRACK_CLEAR, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -26,26 +26,25 @@
package me.lucko.luckperms.common.commands.impl.track; package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class TrackClone extends SubCommand<Track> { public class TrackClone extends SubCommand<Track> {
public TrackClone() { public TrackClone(LocaleManager locale) {
super("clone", "Clone the track", Permission.TRACK_CLONE, Predicates.not(1), super(CommandSpec.TRACK_CLONE.spec(locale), "clone", Permission.TRACK_CLONE, Predicates.not(1));
Arg.list(Arg.create("name", true, "the name of the track to clone onto"))
);
} }
@Override @Override

View File

@ -30,17 +30,19 @@ 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class TrackInfo extends SubCommand<Track> { public class TrackInfo extends SubCommand<Track> {
public TrackInfo() { public TrackInfo(LocaleManager locale) {
super("info", "Gives info about the track", Permission.TRACK_INFO, Predicates.alwaysFalse(), null); super(CommandSpec.TRACK_INFO.spec(locale), "info", Permission.TRACK_INFO, Predicates.alwaysFalse());
} }
@Override @Override

View File

@ -25,18 +25,19 @@
package me.lucko.luckperms.common.commands.impl.track; package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException; import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
@ -44,13 +45,8 @@ import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
import java.util.List; import java.util.List;
public class TrackInsert extends SubCommand<Track> { public class TrackInsert extends SubCommand<Track> {
public TrackInsert() { public TrackInsert(LocaleManager locale) {
super("insert", "Inserts a group at a given position along the track", Permission.TRACK_INSERT, Predicates.not(2), super(CommandSpec.TRACK_INSERT.spec(locale), "insert", Permission.TRACK_INSERT, Predicates.not(2));
Arg.list(
Arg.create("group", true, "the group to insert"),
Arg.create("position", true, "the position to insert the group at (the first position on the track is 1)")
)
);
} }
@Override @Override

View File

@ -30,23 +30,25 @@ import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.abstraction.Command; import me.lucko.luckperms.common.commands.abstraction.Command;
import me.lucko.luckperms.common.commands.abstraction.MainCommand; import me.lucko.luckperms.common.commands.abstraction.MainCommand;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class TrackMainCommand extends MainCommand<Track> { public class TrackMainCommand extends MainCommand<Track> {
public TrackMainCommand() { public TrackMainCommand(LocaleManager locale) {
super("Track", "Track commands", "/%s track <track>", 2, ImmutableList.<Command<Track, ?>>builder() super(CommandSpec.TRACK.spec(locale), "Track", 2, ImmutableList.<Command<Track, ?>>builder()
.add(new TrackInfo()) .add(new TrackInfo(locale))
.add(new TrackAppend()) .add(new TrackAppend(locale))
.add(new TrackInsert()) .add(new TrackInsert(locale))
.add(new TrackRemove()) .add(new TrackRemove(locale))
.add(new TrackClear()) .add(new TrackClear(locale))
.add(new TrackRename()) .add(new TrackRename(locale))
.add(new TrackClone()) .add(new TrackClone(locale))
.build() .build()
); );
} }

View File

@ -25,17 +25,18 @@
package me.lucko.luckperms.common.commands.impl.track; package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.exceptions.ObjectLacksException; import me.lucko.luckperms.exceptions.ObjectLacksException;
@ -43,10 +44,8 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import java.util.List; import java.util.List;
public class TrackRemove extends SubCommand<Track> { public class TrackRemove extends SubCommand<Track> {
public TrackRemove() { public TrackRemove(LocaleManager locale) {
super("remove", "Removes a group from the track", Permission.TRACK_REMOVE, Predicates.not(1), super(CommandSpec.TRACK_REMOVE.spec(locale), "remove", Permission.TRACK_REMOVE, Predicates.not(1));
Arg.list(Arg.create("group", true, "the group to remove"))
);
} }
@Override @Override

View File

@ -27,26 +27,25 @@ package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.api.event.cause.CreationCause; import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.api.event.cause.DeletionCause; import me.lucko.luckperms.api.event.cause.DeletionCause;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class TrackRename extends SubCommand<Track> { public class TrackRename extends SubCommand<Track> {
public TrackRename() { public TrackRename(LocaleManager locale) {
super("rename", "Rename the track", Permission.TRACK_RENAME, Predicates.not(1), super(CommandSpec.TRACK_RENAME.spec(locale), "rename", Permission.TRACK_RENAME, Predicates.not(1));
Arg.list(Arg.create("name", true, "the new name"))
);
} }
@Override @Override

View File

@ -27,7 +27,6 @@ package me.lucko.luckperms.common.commands.impl.user;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand; import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@ -35,13 +34,15 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.exceptions.ObjectLacksException; import me.lucko.luckperms.exceptions.ObjectLacksException;
@ -51,13 +52,8 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class UserDemote extends SubCommand<User> { public class UserDemote extends SubCommand<User> {
public UserDemote() { public UserDemote(LocaleManager locale) {
super("demote", "Demotes the user down a track", Permission.USER_DEMOTE, Predicates.is(0), super(CommandSpec.USER_DEMOTE.spec(locale), "demote", Permission.USER_DEMOTE, Predicates.is(0));
Arg.list(
Arg.create("track", true, "the track to demote the user down"),
Arg.create("context...", false, "the contexts to demote the user in")
)
);
} }
@Override @Override

View File

@ -33,9 +33,11 @@ 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.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
@ -45,8 +47,8 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class UserInfo extends SubCommand<User> { public class UserInfo extends SubCommand<User> {
public UserInfo() { public UserInfo(LocaleManager locale) {
super("info", "Shows info about the user", Permission.USER_INFO, Predicates.alwaysFalse(), null); super(CommandSpec.USER_INFO.spec(locale), "info", Permission.USER_INFO, Predicates.alwaysFalse());
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@ -38,26 +38,28 @@ import me.lucko.luckperms.common.commands.impl.generic.permission.CommandPermiss
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.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
public class UserMainCommand extends MainCommand<User> { public class UserMainCommand extends MainCommand<User> {
public UserMainCommand() { public UserMainCommand(LocaleManager locale) {
super("User", "User commands", "/%s user <user>", 2, ImmutableList.<Command<User, ?>>builder() super(CommandSpec.USER.spec(locale), "User", 2, ImmutableList.<Command<User, ?>>builder()
.add(new UserInfo()) .add(new UserInfo(locale))
.add(new CommandPermission<>(true)) .add(new CommandPermission<>(locale, true))
.add(new CommandParent<>(true)) .add(new CommandParent<>(locale, true))
.add(new CommandMeta<>(true)) .add(new CommandMeta<>(locale, true))
.add(new HolderEditor<>(true)) .add(new HolderEditor<>(locale, true))
.add(new UserSwitchPrimaryGroup()) .add(new UserSwitchPrimaryGroup(locale))
.add(new UserPromote()) .add(new UserPromote(locale))
.add(new UserDemote()) .add(new UserDemote(locale))
.add(new HolderShowTracks<>(true)) .add(new HolderShowTracks<>(locale, true))
.add(new HolderClear<>(true)) .add(new HolderClear<>(locale, true))
.build() .build()
); );
} }

View File

@ -27,7 +27,6 @@ package me.lucko.luckperms.common.commands.impl.user;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet; import me.lucko.luckperms.api.context.MutableContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand; import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@ -35,13 +34,15 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils; import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util; import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.DataConstraints; import me.lucko.luckperms.common.constants.DataConstraints;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import me.lucko.luckperms.exceptions.ObjectLacksException; import me.lucko.luckperms.exceptions.ObjectLacksException;
@ -51,13 +52,8 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class UserPromote extends SubCommand<User> { public class UserPromote extends SubCommand<User> {
public UserPromote() { public UserPromote(LocaleManager locale) {
super("promote", "Promotes the user up a track", Permission.USER_PROMOTE, Predicates.is(0), super(CommandSpec.USER_PROMOTE.spec(locale), "promote", Permission.USER_PROMOTE, Predicates.is(0));
Arg.list(
Arg.create("track", true, "the track to promote the user up"),
Arg.create("context...", false, "the contexts to promote the user in")
)
);
} }
@Override @Override

View File

@ -26,27 +26,26 @@
package me.lucko.luckperms.common.commands.impl.user; package me.lucko.luckperms.common.commands.impl.user;
import me.lucko.luckperms.api.context.ContextSet; import me.lucko.luckperms.api.context.ContextSet;
import me.lucko.luckperms.common.commands.Arg;
import me.lucko.luckperms.common.commands.CommandException; import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult; 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.config.ConfigKeys; import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.data.LogEntry; import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.Predicates; import me.lucko.luckperms.common.utils.Predicates;
import java.util.List; import java.util.List;
public class UserSwitchPrimaryGroup extends SubCommand<User> { public class UserSwitchPrimaryGroup extends SubCommand<User> {
public UserSwitchPrimaryGroup() { public UserSwitchPrimaryGroup(LocaleManager locale) {
super("switchprimarygroup", "Switches the user's primary group", Permission.USER_SWITCHPRIMARYGROUP, Predicates.not(1), super(CommandSpec.USER_SWITCHPRIMARYGROUP.spec(locale), "switchprimarygroup", Permission.USER_SWITCHPRIMARYGROUP, Predicates.not(1));
Arg.list(Arg.create("group", true, "the group to switch to"))
);
} }
@Override @Override

View File

@ -31,7 +31,7 @@ import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.Tristate; import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.api.context.ContextSet; import me.lucko.luckperms.api.context.ContextSet;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.Message; import me.lucko.luckperms.common.locale.Message;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;

View File

@ -28,11 +28,11 @@ package me.lucko.luckperms.common.data;
import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Node;
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.constants.Message;
import me.lucko.luckperms.common.core.NodeFactory; import me.lucko.luckperms.common.core.NodeFactory;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.storage.Storage; import me.lucko.luckperms.common.storage.Storage;
import me.lucko.luckperms.common.utils.ProgressLogger; import me.lucko.luckperms.common.utils.ProgressLogger;

View File

@ -37,8 +37,8 @@ import me.lucko.luckperms.common.commands.CommandResult;
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.constants.Constants; import me.lucko.luckperms.common.constants.Constants;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;

View File

@ -27,12 +27,12 @@ package me.lucko.luckperms.common.data;
import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.config.ConfigKeys; import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.Message;
import me.lucko.luckperms.common.constants.Permission; import me.lucko.luckperms.common.constants.Permission;
import me.lucko.luckperms.common.core.model.Group; import me.lucko.luckperms.common.core.model.Group;
import me.lucko.luckperms.common.core.model.PermissionHolder; import me.lucko.luckperms.common.core.model.PermissionHolder;
import me.lucko.luckperms.common.core.model.Track; import me.lucko.luckperms.common.core.model.Track;
import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.core.model.User;
import me.lucko.luckperms.common.locale.Message;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin; import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.utils.DateUtil; import me.lucko.luckperms.common.utils.DateUtil;

View File

@ -0,0 +1,656 @@
/*
* This file is part of LuckPerms, licensed under the MIT License.
*
* Copyright (c) lucko (Luck) <luck@lucko.me>
* Copyright (c) contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package me.lucko.luckperms.common.locale;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;
import com.google.common.collect.ImmutableList;
import me.lucko.luckperms.common.commands.Arg;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
/**
* An enumeration of the command defintion/usage messages used in the plugin.
*
* <p>The values in this enum are only defaults, and are only returned if no value for the key is present in the
* {@link LocaleManager}.</p>
*/
@SuppressWarnings("SpellCheckingInspection")
public enum CommandSpec {
USER("User commands", "/%s user <user>"),
GROUP("Group commands", "/%s group <group>"),
TRACK("Track commands", "/%s track <track>"),
LOG("Log commands", "/%s log"),
SYNC("Sync changes with the storage", "/%s sync"),
INFO("Print general plugin info", "/%s info"),
VERBOSE("Manage verbose permission checking", "/%s verbose <true|false> [filter]",
Arg.list(
Arg.create("on|record|off|paste", true, "whether to enable/disable logging, or to paste the logged output"),
Arg.create("filter", false, "the filter to match entries against")
)
),
TREE("Generate a tree view of permissions", "/%s tree [selection] [max level] [player]",
Arg.list(
Arg.create("selection", false, "the root of the tree. specify \".\" to include all permissions"),
Arg.create("max level", false, "how many branch levels should be returned"),
Arg.create("player", false, "the name of an online player to check against")
)
),
SEARCH("Search for users/groups with a specific permission", "/%s search <permission>",
Arg.list(
Arg.create("permission", true, "the permission to search for"),
Arg.create("page", false, "the page to view")
)
),
CHECK("Perform a standard permission check on an online player", "/%s check <user> <permission>",
Arg.list(
Arg.create("user", true, "the user to check"),
Arg.create("permission", true, "the permission to check for")
)
),
NETWORK_SYNC("Sync changes with the storage and request that all other servers on the network do the same", "/%s networksync"),
IMPORT("Import data from a file", "/%s import <file>",
Arg.list(
Arg.create("file", true, "the file to import from")
)
),
EXPORT("Export data to a file", "/%s export <file>",
Arg.list(
Arg.create("file", true, "the file to export to")
)
),
RELOAD_CONFIG("Reload some of the config options", "/%s reloadconfig"),
BULK_UPDATE("Execute bulk change queries on all data", "/%s bulkupdate",
Arg.list(
Arg.create("data type", true, "the type of data being changed. ('all', 'users' or 'groups')"),
Arg.create("action", true, "the action to perform on the data. ('update' or 'delete')"),
Arg.create("action field", false, "the field to act upon. only required for 'update'. ('permission', 'server' or 'world')"),
Arg.create("action value", false, "the value to replace with. only required for 'update'."),
Arg.create("constraint...", false, "the constraints required for the update")
)
),
MIGRATION("Migration commands", "/%s migration"),
APPLY_EDITS("Applies permission changes made from the web editor", "/%s applyedits <code> [target]",
Arg.list(
Arg.create("code", true, "the unique code for the data"),
Arg.create("target", false, "who to apply the data to")
)
),
CREATE_GROUP("Create a new group", "/%s creategroup <group>",
Arg.list(
Arg.create("name", true, "the name of the group")
)
),
DELETE_GROUP("Delete a group", "/%s deletegroup <group>",
Arg.list(
Arg.create("name", true, "the name of the group")
)
),
LIST_GROUPS("List all groups on the platform", "/%s listgroups"),
CREATE_TRACK("Create a new track", "/%s createtrack <track>",
Arg.list(
Arg.create("name", true, "the name of the track")
)
),
DELETE_TRACK("Delete a track", "/%s deletetrack <track>",
Arg.list(
Arg.create("name", true, "the name of the track")
)
),
LIST_TRACKS("List all tracks on the platform", "/%s listtracks"),
USER_INFO("Shows info about the user"),
USER_SWITCHPRIMARYGROUP("Switches the user's primary group",
Arg.list(
Arg.create("group", true, "the group to switch to")
)
),
USER_PROMOTE("Promotes the user up a track",
Arg.list(
Arg.create("track", true, "the track to promote the user up"),
Arg.create("context...", false, "the contexts to promote the user in")
)
),
USER_DEMOTE("Demotes the user down a track",
Arg.list(
Arg.create("track", true, "the track to demote the user down"),
Arg.create("context...", false, "the contexts to demote the user in")
)
),
GROUP_INFO("Gives info about the group"),
GROUP_LISTMEMBERS("Show the users/groups who inherit from this group",
Arg.list(
Arg.create("page", false, "the page to view")
)
),
GROUP_SETWEIGHT("Set the groups weight",
Arg.list(
Arg.create("weight", true, "the weight to set")
)
),
GROUP_RENAME("Rename the group",
Arg.list(
Arg.create("name", true, "the new name")
)
),
GROUP_CLONE("Clone the group",
Arg.list(
Arg.create("name", true, "the name of the group to clone onto")
)
),
HOLDER_EDITOR("Opens the web permission editor"),
HOLDER_SHOWTRACKS("Lists the tracks that the object is on"),
HOLDER_CLEAR("Removes all permissions, parents and meta",
Arg.list(
Arg.create("context...", false, "the contexts to filter by")
)
),
PERMISSION("Edit permissions"),
PARENT("Edit inheritances"),
META("Edit metadata values"),
PERMISSION_INFO("Lists the permission nodes the object has",
Arg.list(
Arg.create("page", false, "the page to view"),
Arg.create("filter", false, "the string to filter by")
)
),
PERMISSION_SET("Sets a permission for the object",
Arg.list(
Arg.create("node", true, "the permission node to set"),
Arg.create("true|false", false, "the value of the node"),
Arg.create("context...", false, "the contexts to add the permission in")
)
),
PERMISSION_UNSET("Unsets a permission for the object",
Arg.list(
Arg.create("node", true, "the permission node to unset"),
Arg.create("context...", false, "the contexts to remove the permission in")
)
),
PERMISSION_SETTEMP("Sets a permission for the object temporarily",
Arg.list(
Arg.create("node", true, "the permission node to set"),
Arg.create("true|false", false, "the value of the node"),
Arg.create("duration", true, "the duration until the permission node expires"),
Arg.create("context...", false, "the contexts to add the permission in")
)
),
PERMISSION_UNSETTEMP("Unsets a temporary permission for the object",
Arg.list(
Arg.create("node", true, "the permission node to unset"),
Arg.create("context...", false, "the contexts to remove the permission in")
)
),
PERMISSION_CHECK("Checks to see if the object has a certain permission node",
Arg.list(
Arg.create("node", true, "the permission node to check for"),
Arg.create("context...", false, "the contexts to check in")
)
),
PERMISSION_CHECK_INHERITS("Checks to see if the object inherits a certain permission node",
Arg.list(
Arg.create("node", true, "the permission node to check for"),
Arg.create("context...", false, "the contexts to check in")
)
),
PARENT_INFO("Lists the groups that this object inherits from"),
PARENT_SET("Removes all other groups the object inherits already and adds them to the one given",
Arg.list(
Arg.create("group", true, "the group to set to"),
Arg.create("context...", false, "the contexts to set the group in")
)
),
PARENT_ADD("Sets another group for the object to inherit permissions from",
Arg.list(
Arg.create("group", true, "the group to inherit from"),
Arg.create("context...", false, "the contexts to inherit the group in")
)
),
PARENT_REMOVE("Removes a previously set inheritance rule",
Arg.list(
Arg.create("group", true, "the group to remove"),
Arg.create("context...", false, "the contexts to remove the group in")
)
),
PARENT_SET_TRACK("Removes all other groups the object inherits from already on the given track and adds them to the one given",
Arg.list(
Arg.create("track", true, "the track to set on"),
Arg.create("group", true, "the group to set to, or a number relating to the position of the group on the given track"),
Arg.create("context...", false, "the contexts to set the group in")
)
),
PARENT_ADD_TEMP("Sets another group for the object to inherit permissions from temporarily",
Arg.list(
Arg.create("group", true, "the group to inherit from"),
Arg.create("duration", true, "the duration of the group membership"),
Arg.create("context...", false, "the contexts to inherit the group in")
)
),
PARENT_REMOVE_TEMP("Removes a previously set temporary inheritance rule",
Arg.list(
Arg.create("group", true, "the group to remove"),
Arg.create("context...", false, "the contexts to remove the group in")
)
),
PARENT_CLEAR("Clears all parents",
Arg.list(
Arg.create("context...", false, "the contexts to filter by")
)
),
PARENT_CLEAR_TRACK("Clears all parents on a given track",
Arg.list(
Arg.create("track", true, "the track to remove on"),
Arg.create("context...", false, "the contexts to filter by")
)
),
META_INFO("Shows all chat meta"),
META_SET("Sets a meta value",
Arg.list(
Arg.create("key", true, "the key to set"),
Arg.create("value", true, "the value to set"),
Arg.create("context...", false, "the contexts to add the meta pair in")
)
),
META_UNSET("Unsets a meta value",
Arg.list(
Arg.create("key", true, "the key to unset"),
Arg.create("context...", false, "the contexts to remove the meta pair in")
)
),
META_SETTEMP("Sets a meta value temporarily",
Arg.list(
Arg.create("key", true, "the key to set"),
Arg.create("value", true, "the value to set"),
Arg.create("duration", true, "the duration until the meta value expires"),
Arg.create("context...", false, "the contexts to add the meta pair in")
)
),
META_UNSETTEMP("Unsets a temporary meta value",
Arg.list(
Arg.create("key", true, "the key to unset"),
Arg.create("context...", false, "the contexts to remove the meta pair in")
)
),
META_ADDPREFIX("Adds a prefix",
Arg.list(
Arg.create("priority", true, "the priority to add the prefix at"),
Arg.create("prefix", true, "the prefix string"),
Arg.create("context...", false, "the contexts to add the prefix in")
)
),
META_ADDSUFFIX("Adds a suffix",
Arg.list(
Arg.create("priority", true, "the priority to add the suffix at"),
Arg.create("suffix", true, "the suffix string"),
Arg.create("context...", false, "the contexts to add the suffix in")
)
),
META_REMOVEPREFIX("Removes a prefix",
Arg.list(
Arg.create("priority", true, "the priority to remove the prefix at"),
Arg.create("prefix", false, "the prefix string"),
Arg.create("context...", false, "the contexts to remove the prefix in")
)
),
META_REMOVESUFFIX("Removes a suffix",
Arg.list(
Arg.create("priority", true, "the priority to remove the suffix at"),
Arg.create("suffix", false, "the suffix string"),
Arg.create("context...", false, "the contexts to remove the suffix in")
)
),
META_ADDTEMP_PREFIX("Adds a prefix temporarily",
Arg.list(
Arg.create("priority", true, "the priority to add the prefix at"),
Arg.create("prefix", true, "the prefix string"),
Arg.create("duration", true, "the duration until the prefix expires"),
Arg.create("context...", false, "the contexts to add the prefix in")
)
),
META_ADDTEMP_SUFFIX("Adds a suffix temporarily",
Arg.list(
Arg.create("priority", true, "the priority to add the suffix at"),
Arg.create("suffix", true, "the suffix string"),
Arg.create("duration", true, "the duration until the suffix expires"),
Arg.create("context...", false, "the contexts to add the suffix in")
)
),
META_REMOVETEMP_PREFIX("Removes a temporary prefix",
Arg.list(
Arg.create("priority", true, "the priority to remove the prefix at"),
Arg.create("prefix", false, "the prefix string"),
Arg.create("context...", false, "the contexts to remove the prefix in")
)
),
META_REMOVETEMP_SUFFIX("Removes a temporary suffix",
Arg.list(
Arg.create("priority", true, "the priority to remove the suffix at"),
Arg.create("suffix", false, "the suffix string"),
Arg.create("context...", false, "the contexts to remove the suffix in")
)
),
META_CLEAR("Clears all chat meta",
Arg.list(
Arg.create("context...", false, "the contexts to filter by")
)
),
TRACK_INFO("Gives info about the track"),
TRACK_APPEND("Appends a group onto the end of the track",
Arg.list(
Arg.create("group", true, "the group to append")
)
),
TRACK_INSERT("Inserts a group at a given position along the track",
Arg.list(
Arg.create("group", true, "the group to insert"),
Arg.create("position", true, "the position to insert the group at (the first position on the track is 1)")
)
),
TRACK_REMOVE("Removes a group from the track",
Arg.list(
Arg.create("group", true, "the group to remove")
)
),
TRACK_CLEAR("Clears the groups on the track"),
TRACK_RENAME("Rename the track",
Arg.list(
Arg.create("name", true, "the new name")
)
),
TRACK_CLONE("Clone the track",
Arg.list(
Arg.create("name", true, "the name of the track to clone onto")
)
),
LOG_RECENT("View recent actions",
Arg.list(
Arg.create("user", false, "the name/uuid of the user to filter by"),
Arg.create("page", false, "the page number to view")
)
),
LOG_SEARCH("Search the log for an entry",
Arg.list(
Arg.create("query", true, "the query to search by"),
Arg.create("page", false, "the page number to view")
)
),
LOG_NOTIFY("Toggle log notifications",
Arg.list(
Arg.create("on|off", false, "whether to toggle on or off")
)
),
LOG_USER_HISTORY("View a user's history",
Arg.list(
Arg.create("user", true, "the name/uuid of the user"),
Arg.create("page", false, "the page number to view")
)
),
LOG_GROUP_HISTORY("View an group's history",
Arg.list(
Arg.create("group", true, "the name of the group"),
Arg.create("page", false, "the page number to view")
)
),
LOG_TRACK_HISTORY("View a track's history",
Arg.list(
Arg.create("track", true, "the name of the track"),
Arg.create("page", false, "the page number to view")
)
),
SPONGE("Edit extra Sponge data", "/%s sponge <collection> <subject>",
Arg.list(
Arg.create("collection", true, "the collection to query"),
Arg.create("subject", true, "the subject to modify")
)
),
SPONGE_PERMISSION_INFO("Shows info about the subject's permissions",
Arg.list(
Arg.create("contexts...", false, "the contexts to filter by")
)
),
SPONGE_PERMISSION_SET("Sets a permission for the Subject",
Arg.list(
Arg.create("node", true, "the permission node to set"),
Arg.create("tristate", true, "the value to set the permission to"),
Arg.create("contexts...", false, "the contexts to set the permission in")
)
),
SPONGE_PERMISSION_CLEAR("Clears the Subjects permissions",
Arg.list(
Arg.create("contexts...", false, "the contexts to clear permissions in")
)
),
SPONGE_PARENT_INFO("Shows info about the subject's parents",
Arg.list(
Arg.create("contexts...", false, "the contexts to filter by")
)
),
SPONGE_PARENT_ADD("Adds a parent to the Subject",
Arg.list(
Arg.create("collection", true, "the subject collection where the parent Subject is"),
Arg.create("subject", true, "the name of the parent Subject"),
Arg.create("contexts...", false, "the contexts to add the parent in")
)
),
SPONGE_PARENT_REMOVE("Removes a parent from the Subject",
Arg.list(
Arg.create("collection", true, "the subject collection where the parent Subject is"),
Arg.create("subject", true, "the name of the parent Subject"),
Arg.create("contexts...", false, "the contexts to remove the parent in")
)
),
SPONGE_PARENT_CLEAR("Clears the Subjects parents",
Arg.list(
Arg.create("contexts...", false, "the contexts to clear parents in")
)
),
SPONGE_OPTION_INFO("Shows info about the subject's options",
Arg.list(
Arg.create("contexts...", false, "the contexts to filter by")
)
),
SPONGE_OPTION_SET("Sets an option for the Subject",
Arg.list(
Arg.create("key", true, "the key to set"),
Arg.create("value", true, "the value to set the key to"),
Arg.create("contexts...", false, "the contexts to set the option in")
)
),
SPONGE_OPTION_UNSET("Unsets an option for the Subject",
Arg.list(
Arg.create("key", true, "the key to unset"),
Arg.create("contexts...", false, "the contexts to unset the key in")
)
),
SPONGE_OPTION_CLEAR("Clears the Subjects options",
Arg.list(
Arg.create("contexts...", false, "the contexts to clear options in")
)
),
MIGRATION_COMMAND("Migration command"),
MIGRATION_GROUPMANAGER("Migration command",
Arg.list(
Arg.create("migrate as global", true, "if world permissions should be ignored, and just migrated as global")
)
),
MIGRATION_POWERFULPERMS("Migration command",
Arg.list(
Arg.create("address", true, "the address of the PP database"),
Arg.create("database", true, "the name of the PP database"),
Arg.create("username", true, "the username to log into the DB"),
Arg.create("password", true, "the password to log into the DB"),
Arg.create("db table", true, "the name of the PP table where player data is stored")
)
);
private final String description;
private final String usage;
private final List<Arg> args;
CommandSpec(String description, String usage, List<Arg> args) {
this.description = description;
this.usage = usage;
this.args = args;
}
CommandSpec(String description, String usage) {
this(description, usage, null);
}
CommandSpec(String description) {
this(description, null, null);
}
CommandSpec(String description, List<Arg> args) {
this(description, null, args);
}
/**
* Creates a {@link LocalizedSpec} for the spec using the platforms locale manager.
*
* @param localeManager the locale manager to use for the spec
* @return a localized spec instance
*/
public LocalizedSpec spec(LocaleManager localeManager) {
return new SimpleLocalizedSpec(this, localeManager);
}
/**
* The localized data for a {@link CommandSpec}.
*/
@Getter
@ToString
@AllArgsConstructor
public static final class CommandSpecData {
private final String description;
private final String usage;
private final Map<String, String> args;
}
private static final class SimpleLocalizedSpec implements LocalizedSpec {
@Getter
private final LocaleManager localeManager;
private final CommandSpec spec;
public SimpleLocalizedSpec(CommandSpec spec, LocaleManager localeManager) {
this.localeManager = localeManager;
this.spec = spec;
}
public String description() {
CommandSpecData translation = localeManager.getTranslation(spec);
if (translation != null && translation.getDescription() != null) {
return translation.getDescription();
}
// fallback
return spec.description;
}
public String usage() {
CommandSpecData translation = localeManager.getTranslation(spec);
if (translation != null && translation.getUsage() != null) {
return translation.getUsage();
}
// fallback
return spec.usage;
}
public List<Arg> args() {
CommandSpecData translation = localeManager.getTranslation(spec);
if (translation == null || translation.getArgs() == null) {
// fallback
return spec.args;
}
List<Arg> args = new ArrayList<>(spec.args);
ListIterator<Arg> it = args.listIterator();
while (it.hasNext()) {
Arg next = it.next();
String s = translation.getArgs().get(next.getName());
// if a translation for the given arg key is present, apply the new description.
if (s != null) {
it.set(Arg.create(next.getName(), next.isRequired(), s));
}
}
return ImmutableList.copyOf(args);
}
}
/**
* Prints this CommandSpec enum in a yml format, for reading by the {@link me.lucko.luckperms.common.locale.LocaleManager}
* @param args not needed
*/
public static void main(String[] args) {
System.out.println("command-specs:");
for (CommandSpec spec : values()) {
String key = spec.name().replace('_', '-').toLowerCase();
System.out.println(" " + key + ":");
if (spec.description != null) {
System.out.println(" description: \"" + spec.description.replace("\"", "\\\"") + "\"");
}
if (spec.usage != null) {
System.out.println(" usage: \"" + spec.usage.replace("\"", "\\\"") + "\"");
}
if (spec.args != null && !spec.args.isEmpty()) {
System.out.println(" args:");
for (Arg arg : spec.args) {
System.out.println(" \"" + arg.getName() + "\": \"" + arg.getDescription().replace("\"", "\\\"") + "\"");
}
}
}
}
}

View File

@ -25,8 +25,6 @@
package me.lucko.luckperms.common.locale; package me.lucko.luckperms.common.locale;
import me.lucko.luckperms.common.constants.Message;
import java.io.File; import java.io.File;
/** /**
@ -40,9 +38,18 @@ public interface LocaleManager {
/** /**
* Gets a translation for a given message key * Gets a translation for a given message key
*
* @param key the key * @param key the key
* @return the translation, or null if there isn't a translation available. * @return the translation, or null if there isn't any translation available.
*/ */
String getTranslation(Message key); String getTranslation(Message key);
/**
* Gets a translation for a given command spec key
*
* @param key the key
* @return the translation data, or null if there isn't any translation available.
*/
CommandSpec.CommandSpecData getTranslation(CommandSpec key);
} }

View File

@ -0,0 +1,50 @@
/*
* This file is part of LuckPerms, licensed under the MIT License.
*
* Copyright (c) lucko (Luck) <luck@lucko.me>
* Copyright (c) contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package me.lucko.luckperms.common.locale;
import me.lucko.luckperms.common.commands.Arg;
import java.util.List;
/**
* Represents a localized instance of a {@link CommandSpec}.
*/
public interface LocalizedSpec {
/**
* Gets the locale manager used to translate the {@link CommandSpec}.
*
* @return the locale manager
*/
LocaleManager getLocaleManager();
String description();
String usage();
List<Arg> args();
}

Some files were not shown because too many files have changed in this diff Show More