diff --git a/docs/commands.md b/docs/commands.md index 00f4f8c61..4dd070fd6 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -1,5 +1,5 @@ - + ## AuthMe Commands You can use the following commands to use the features of AuthMe. Mandatory arguments are marked with `< >` @@ -45,6 +45,8 @@ brackets; optional arguments are enclosed in square brackets (`[ ]`). - **/authme version**: Show detailed information about the installed AuthMeReloaded version, the developers, contributors, and license. - **/authme converter** <job>: Converter command for AuthMeReloaded.
Requires `authme.admin.converter` +- **/authme messages**: Adds missing messages to the current messages file. +
Requires `authme.admin.updatemessages` - **/authme help** [query]: View detailed help for /authme commands. - **/login** <password>: Command to log in using AuthMeReloaded.
Requires `authme.player.login` @@ -76,4 +78,4 @@ brackets; optional arguments are enclosed in square brackets (`[ ]`). --- -This page was automatically generated on the [AuthMe/AuthMeReloaded repository](https://github.com/AuthMe/AuthMeReloaded/tree/master/docs/) on Sat Oct 01 23:33:39 CEST 2016 +This page was automatically generated on the [AuthMe/AuthMeReloaded repository](https://github.com/AuthMe/AuthMeReloaded/tree/master/docs/) on Sun Oct 16 21:39:08 CEST 2016 diff --git a/docs/permission_nodes.md b/docs/permission_nodes.md index 61f61c3e1..60d39a15c 100644 --- a/docs/permission_nodes.md +++ b/docs/permission_nodes.md @@ -1,5 +1,5 @@ - + ## AuthMe Permission Nodes The following are the permission nodes that are currently supported by the latest dev builds. @@ -26,14 +26,16 @@ The following are the permission nodes that are currently supported by the lates - **authme.admin.spawn** – Administrator command to teleport to the AuthMe spawn. - **authme.admin.switchantibot** – Administrator command to toggle the AntiBot protection status. - **authme.admin.unregister** – Administrator command to unregister an existing user. +- **authme.admin.updatemessages** – Permission to use the update messages command. - **authme.allowmultipleaccounts** – Permission to be able to register multiple accounts. - **authme.bypassantibot** – Permission node to bypass AntiBot protection. - **authme.bypassforcesurvival** – Permission for users to bypass force-survival mode. -- **authme.bypasspurge** – Permission to bypass the purging process +- **authme.bypasspurge** – Permission to bypass the purging process. - **authme.player.*** – Permission to use all player (non-admin) commands. - **authme.player.canbeforced** – Permission for users a login can be forced to. - **authme.player.captcha** – Command permission to use captcha. - **authme.player.changepassword** – Command permission to change the password. +- **authme.player.email** – Grants all email permissions. - **authme.player.email.add** – Command permission to add an email address. - **authme.player.email.change** – Command permission to change the email address. - **authme.player.email.recover** – Command permission to recover an account using it's email address. @@ -47,4 +49,4 @@ The following are the permission nodes that are currently supported by the lates --- -This page was automatically generated on the [AuthMe/AuthMeReloaded repository](https://github.com/AuthMe/AuthMeReloaded/tree/master/docs/) on Sun Oct 02 10:47:16 CEST 2016 +This page was automatically generated on the [AuthMe/AuthMeReloaded repository](https://github.com/AuthMe/AuthMeReloaded/tree/master/docs/) on Sun Oct 16 21:39:10 CEST 2016 diff --git a/src/main/java/fr/xephi/authme/command/CommandInitializer.java b/src/main/java/fr/xephi/authme/command/CommandInitializer.java index 598f8d3a6..33f27813a 100644 --- a/src/main/java/fr/xephi/authme/command/CommandInitializer.java +++ b/src/main/java/fr/xephi/authme/command/CommandInitializer.java @@ -291,10 +291,10 @@ public class CommandInitializer { CommandDescription.builder() .parent(AUTHME_BASE) - .labels("messages") + .labels("messages", "msg") .description("Add missing messages") .detailedDescription("Adds missing messages to the current messages file.") - // TODO #768: add permission for command + .permission(AdminPermission.UPDATE_MESSAGES) .executableCommand(MessagesCommand.class) .build(); diff --git a/src/main/java/fr/xephi/authme/permission/AdminPermission.java b/src/main/java/fr/xephi/authme/permission/AdminPermission.java index ed5ab9f4c..46d58072a 100644 --- a/src/main/java/fr/xephi/authme/permission/AdminPermission.java +++ b/src/main/java/fr/xephi/authme/permission/AdminPermission.java @@ -8,126 +8,125 @@ public enum AdminPermission implements PermissionNode { /** * Administrator command to register a new user. */ - REGISTER("authme.admin.register", DefaultPermission.OP_ONLY), + REGISTER("authme.admin.register"), /** * Administrator command to unregister an existing user. */ - UNREGISTER("authme.admin.unregister", DefaultPermission.OP_ONLY), + UNREGISTER("authme.admin.unregister"), /** * Administrator command to force-login an existing user. */ - FORCE_LOGIN("authme.admin.forcelogin", DefaultPermission.OP_ONLY), + FORCE_LOGIN("authme.admin.forcelogin"), /** * Administrator command to change the password of a user. */ - CHANGE_PASSWORD("authme.admin.changepassword", DefaultPermission.OP_ONLY), + CHANGE_PASSWORD("authme.admin.changepassword"), /** * Administrator command to see the last login date and time of a user. */ - LAST_LOGIN("authme.admin.lastlogin", DefaultPermission.OP_ONLY), + LAST_LOGIN("authme.admin.lastlogin"), /** * Administrator command to see all accounts associated with a user. */ - ACCOUNTS("authme.admin.accounts", DefaultPermission.OP_ONLY), + ACCOUNTS("authme.admin.accounts"), /** * Administrator command to get the email address of a user, if set. */ - GET_EMAIL("authme.admin.getemail", DefaultPermission.OP_ONLY), + GET_EMAIL("authme.admin.getemail"), /** * Administrator command to set or change the email address of a user. */ - CHANGE_EMAIL("authme.admin.changemail", DefaultPermission.OP_ONLY), + CHANGE_EMAIL("authme.admin.changemail"), /** * Administrator command to get the last known IP of a user. */ - GET_IP("authme.admin.getip", DefaultPermission.OP_ONLY), + GET_IP("authme.admin.getip"), /** * Administrator command to teleport to the AuthMe spawn. */ - SPAWN("authme.admin.spawn", DefaultPermission.OP_ONLY), + SPAWN("authme.admin.spawn"), /** * Administrator command to set the AuthMe spawn. */ - SET_SPAWN("authme.admin.setspawn", DefaultPermission.OP_ONLY), + SET_SPAWN("authme.admin.setspawn"), /** * Administrator command to teleport to the first AuthMe spawn. */ - FIRST_SPAWN("authme.admin.firstspawn", DefaultPermission.OP_ONLY), + FIRST_SPAWN("authme.admin.firstspawn"), /** * Administrator command to set the first AuthMe spawn. */ - SET_FIRST_SPAWN("authme.admin.setfirstspawn", DefaultPermission.OP_ONLY), + SET_FIRST_SPAWN("authme.admin.setfirstspawn"), /** * Administrator command to purge old user data. */ - PURGE("authme.admin.purge", DefaultPermission.OP_ONLY), + PURGE("authme.admin.purge"), /** * Administrator command to purge the last position of a user. */ - PURGE_LAST_POSITION("authme.admin.purgelastpos", DefaultPermission.OP_ONLY), + PURGE_LAST_POSITION("authme.admin.purgelastpos"), /** * Administrator command to purge all data associated with banned players. */ - PURGE_BANNED_PLAYERS("authme.admin.purgebannedplayers", DefaultPermission.OP_ONLY), + PURGE_BANNED_PLAYERS("authme.admin.purgebannedplayers"), /** * Administrator command to toggle the AntiBot protection status. */ - SWITCH_ANTIBOT("authme.admin.switchantibot", DefaultPermission.OP_ONLY), + SWITCH_ANTIBOT("authme.admin.switchantibot"), /** * Administrator command to convert old or other data to AuthMe data. */ - CONVERTER("authme.admin.converter", DefaultPermission.OP_ONLY), + CONVERTER("authme.admin.converter"), /** * Administrator command to reload the plugin configuration. */ - RELOAD("authme.admin.reload", DefaultPermission.OP_ONLY), + RELOAD("authme.admin.reload"), /** * Permission to see Antibot messages. */ - ANTIBOT_MESSAGES("authme.admin.antibotmessages", DefaultPermission.OP_ONLY), + ANTIBOT_MESSAGES("authme.admin.antibotmessages"), + + /** + * Permission to use the update messages command. + */ + UPDATE_MESSAGES("authme.admin.updatemessages"), /** * Permission to see the other accounts of the players that log in. */ - SEE_OTHER_ACCOUNTS("authme.admin.seeotheraccounts", DefaultPermission.OP_ONLY); + SEE_OTHER_ACCOUNTS("authme.admin.seeotheraccounts"); /** * The permission node. */ private String node; - /** - * The default permission level - */ - private DefaultPermission defaultPermission; - /** * Constructor. * * @param node Permission node. */ - AdminPermission(String node, DefaultPermission defaultPermission) { + AdminPermission(String node) { this.node = node; - this.defaultPermission = defaultPermission; } @Override @@ -137,6 +136,6 @@ public enum AdminPermission implements PermissionNode { @Override public DefaultPermission getDefaultPermission() { - return defaultPermission; + return DefaultPermission.OP_ONLY; } } diff --git a/src/main/java/fr/xephi/authme/permission/PlayerPermission.java b/src/main/java/fr/xephi/authme/permission/PlayerPermission.java index e2932e932..48e2a4bc6 100644 --- a/src/main/java/fr/xephi/authme/permission/PlayerPermission.java +++ b/src/main/java/fr/xephi/authme/permission/PlayerPermission.java @@ -8,76 +8,70 @@ public enum PlayerPermission implements PermissionNode { /** * Command permission to login. */ - LOGIN("authme.player.login", DefaultPermission.ALLOWED), + LOGIN("authme.player.login"), /** * Command permission to logout. */ - LOGOUT("authme.player.logout", DefaultPermission.ALLOWED), + LOGOUT("authme.player.logout"), /** * Command permission to register. */ - REGISTER("authme.player.register", DefaultPermission.ALLOWED), + REGISTER("authme.player.register"), /** * Command permission to unregister. */ - UNREGISTER("authme.player.unregister", DefaultPermission.ALLOWED), + UNREGISTER("authme.player.unregister"), /** * Command permission to change the password. */ - CHANGE_PASSWORD("authme.player.changepassword", DefaultPermission.ALLOWED), + CHANGE_PASSWORD("authme.player.changepassword"), /** * Command permission to add an email address. */ - ADD_EMAIL("authme.player.email.add", DefaultPermission.ALLOWED), + ADD_EMAIL("authme.player.email.add"), /** * Command permission to change the email address. */ - CHANGE_EMAIL("authme.player.email.change", DefaultPermission.ALLOWED), + CHANGE_EMAIL("authme.player.email.change"), /** * Command permission to recover an account using it's email address. */ - RECOVER_EMAIL("authme.player.email.recover", DefaultPermission.ALLOWED), + RECOVER_EMAIL("authme.player.email.recover"), /** * Command permission to use captcha. */ - CAPTCHA("authme.player.captcha", DefaultPermission.ALLOWED), + CAPTCHA("authme.player.captcha"), /** * Permission for users a login can be forced to. */ - CAN_LOGIN_BE_FORCED("authme.player.canbeforced", DefaultPermission.ALLOWED), + CAN_LOGIN_BE_FORCED("authme.player.canbeforced"), /** * Permission to use to see own other accounts. */ - SEE_OWN_ACCOUNTS("authme.player.seeownaccounts", DefaultPermission.ALLOWED); + SEE_OWN_ACCOUNTS("authme.player.seeownaccounts"); /** * The permission node. */ private String node; - /** - * The default permission level - */ - private DefaultPermission defaultPermission; - /** * Constructor. * * @param node Permission node. */ - PlayerPermission(String node, DefaultPermission defaultPermission) { + PlayerPermission(String node) { this.node = node; - this.defaultPermission = defaultPermission; } @Override @@ -87,7 +81,7 @@ public enum PlayerPermission implements PermissionNode { @Override public DefaultPermission getDefaultPermission() { - return defaultPermission; + return DefaultPermission.ALLOWED; } } diff --git a/src/main/java/fr/xephi/authme/permission/PlayerStatePermission.java b/src/main/java/fr/xephi/authme/permission/PlayerStatePermission.java index d733814eb..0820be011 100644 --- a/src/main/java/fr/xephi/authme/permission/PlayerStatePermission.java +++ b/src/main/java/fr/xephi/authme/permission/PlayerStatePermission.java @@ -27,7 +27,7 @@ public enum PlayerStatePermission implements PermissionNode { ALLOW_MULTIPLE_ACCOUNTS("authme.allowmultipleaccounts", DefaultPermission.OP_ONLY), /** - * Permission to bypass the purging process + * Permission to bypass the purging process. */ BYPASS_PURGE("authme.bypasspurge", DefaultPermission.NOT_ALLOWED); @@ -44,7 +44,8 @@ public enum PlayerStatePermission implements PermissionNode { /** * Constructor. * - * @param node Permission node. + * @param node Permission node + * @param defaultPermission The default permission */ PlayerStatePermission(String node, DefaultPermission defaultPermission) { this.node = node; diff --git a/src/main/java/fr/xephi/authme/service/MessageUpdater.java b/src/main/java/fr/xephi/authme/service/MessageUpdater.java index 3bdedef9d..129a47b81 100644 --- a/src/main/java/fr/xephi/authme/service/MessageUpdater.java +++ b/src/main/java/fr/xephi/authme/service/MessageUpdater.java @@ -1,7 +1,7 @@ package fr.xephi.authme.service; import com.github.authme.configme.SettingsManager; -import com.github.authme.configme.knownproperties.PropertyEntry; +import com.github.authme.configme.knownproperties.ConfigurationData; import com.github.authme.configme.properties.Property; import com.github.authme.configme.properties.StringProperty; import com.github.authme.configme.resource.YamlFileResource; @@ -31,7 +31,7 @@ public class MessageUpdater { private final FileConfiguration localJarConfiguration; private final FileConfiguration defaultJarConfiguration; - private final List properties; + private final List> properties; private final SettingsManager settingsManager; private boolean hasMissingMessages = false; @@ -56,7 +56,8 @@ public class MessageUpdater { } properties = buildPropertyEntriesForMessageKeys(); - settingsManager = new SettingsManager(new YamlFileResource(userFile), (r, p) -> true, properties); + settingsManager = new SettingsManager( + new YamlFileResource(userFile), (r, p) -> true, new ConfigurationData((List) properties)); } /** @@ -86,8 +87,7 @@ public class MessageUpdater { @SuppressWarnings("unchecked") private void copyMissingMessages() { - for (PropertyEntry entry : properties) { - final Property property = (Property) entry.getProperty(); + for (Property property : properties) { String message = userConfiguration.getString(property.getPath()); if (message == null) { hasMissingMessages = true; @@ -121,10 +121,9 @@ public class MessageUpdater { return null; } - private static List buildPropertyEntriesForMessageKeys() { + private static List> buildPropertyEntriesForMessageKeys() { return Arrays.stream(MessageKey.values()) .map(key -> new StringProperty(key.getKey(), "")) - .map(PropertyEntry::new) .collect(Collectors.toList()); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 2b950e3a7..90ee29bff 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -48,6 +48,7 @@ permissions: description: Give access to all admin commands. children: authme.admin.accounts: true + authme.admin.antibotmessages: true authme.admin.changemail: true authme.admin.changepassword: true authme.admin.converter: true @@ -66,6 +67,7 @@ permissions: authme.admin.spawn: true authme.admin.switchantibot: true authme.admin.unregister: true + authme.admin.updatemessages: true authme.admin.register: description: Administrator command to register a new user. default: op @@ -127,7 +129,10 @@ permissions: description: Administrator command to reload the plugin configuration. default: op authme.admin.antibotmessages: - description: Permission to see Antibot messages + description: Permission to see Antibot messages. + default: op + authme.admin.updatemessages: + description: Permission to use the update messages command. default: op authme.player.*: description: Permission to use all player (non-admin) commands.