diff --git a/src/com/massivecraft/massivecore/MassiveCorePerm.java b/src/com/massivecraft/massivecore/MassiveCorePerm.java index 7e69927c..fed8a6c8 100644 --- a/src/com/massivecraft/massivecore/MassiveCorePerm.java +++ b/src/com/massivecraft/massivecore/MassiveCorePerm.java @@ -4,7 +4,7 @@ import org.bukkit.permissions.Permissible; import com.massivecraft.massivecore.util.PermissionUtil; -public enum MassiveCorePerm +public enum MassiveCorePerm implements Identified { // -------------------------------------------- // // ENUM @@ -56,7 +56,8 @@ public enum MassiveCorePerm // FIELDS // -------------------------------------------- // - public final String node; + private final String id; + @Override public String getId() { return this.id; } // -------------------------------------------- // // CONSTRUCT @@ -64,7 +65,7 @@ public enum MassiveCorePerm MassiveCorePerm() { - this.node = "massivecore." + this.name().toLowerCase().replace('_', '.'); + this.id = PermissionUtil.createPermissionId(MassiveCore.get(), this); } // -------------------------------------------- // @@ -73,7 +74,7 @@ public enum MassiveCorePerm public boolean has(Permissible permissible, boolean informSenderIfNot) { - return PermissionUtil.hasPermission(permissible, this.node, informSenderIfNot); + return PermissionUtil.hasPermission(permissible, this.id, informSenderIfNot); } public boolean has(Permissible permissible) diff --git a/src/com/massivecraft/massivecore/command/MassiveCommand.java b/src/com/massivecraft/massivecore/command/MassiveCommand.java index 61fab245..264703a7 100644 --- a/src/com/massivecraft/massivecore/command/MassiveCommand.java +++ b/src/com/massivecraft/massivecore/command/MassiveCommand.java @@ -195,7 +195,8 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand // -------------------------------------------- // public List getChildren() { return this.children; } - public void setChildren(List children) { this.children = children; } + @SuppressWarnings("unchecked") + public T setChildren(List children) { this.children = children; return (T) this; } public boolean isParent() { @@ -324,23 +325,12 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand // CHILDREN > ADD & REMOVE // -------------------------------------------- // - public void addChild(MassiveCommand child) + public T addChild(MassiveCommand child) { - this.addChild(child, this.children.size()); + return this.addChild(child, this.children.size()); } - public void addChild(MassiveCommand child, int index) - { - if (this.children.isEmpty() && ! (child instanceof MassiveCommandHelp)) - { - this.children.add(0, new MassiveCommandHelp()); - index++; - } - child.addToChain(this); - this.children.add(index, child); - } - - public void addChildAfter(MassiveCommand child, MassiveCommand after) + public T addChildAfter(MassiveCommand child, MassiveCommand after) { int index = this.children.indexOf(after); if (index == -1) @@ -351,7 +341,7 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand { index++; } - this.addChild(child, index); + return this.addChild(child, index); } public int removeChild(MassiveCommand child) @@ -369,17 +359,33 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand return index; } + @SuppressWarnings("unchecked") + public T addChild(MassiveCommand child, int index) + { + if (this.children.isEmpty() && ! (child instanceof MassiveCommandHelp)) + { + this.children.add(0, new MassiveCommandHelp()); + index++; + } + child.addToChain(this); + this.children.add(index, child); + + return (T) this; + } + // -------------------------------------------- // // ALIASES // -------------------------------------------- // public List getAliases() { return this.aliases; } - public void setAliases(Collection aliases) { this.aliases = new MassiveList(aliases); } - public void setAliases(String... aliases) { this.setAliases(Arrays.asList(aliases)); } + @SuppressWarnings("unchecked") + public T setAliases(Collection aliases) { this.aliases = new MassiveList(aliases); return (T) this; } + public T setAliases(String... aliases) { return this.setAliases(Arrays.asList(aliases)); } - public void addAliases(Collection aliases) { this.aliases.addAll(aliases); } - public void addAliases(String... aliases) { this.addAliases(Arrays.asList(aliases)); } + @SuppressWarnings("unchecked") + public T addAliases(Collection aliases) { this.aliases.addAll(aliases); return (T) this; } + public T addAliases(String... aliases) { return this.addAliases(Arrays.asList(aliases)); } // -------------------------------------------- // // PARAMETERS @@ -605,7 +611,6 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand return this.addParameter(new Parameter(type)); } - // -------------------------------------------- // // PREPROCESS // -------------------------------------------- // @@ -713,9 +718,12 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand // -------------------------------------------- // public List getRequirements() { return this.requirements; } - public void setRequirements(List requirements) { this.requirements = requirements; } - public void addRequirements(Collection requirements) { this.requirements.addAll(requirements); } - public void addRequirements(Requirement... requirements) { this.addRequirements(Arrays.asList(requirements)); } + @SuppressWarnings("unchecked") + public T setRequirements(List requirements) { this.requirements = requirements; return (T) this; } + @SuppressWarnings("unchecked") + public T addRequirements(Collection requirements) { this.requirements.addAll(requirements); return (T) this; } + @SuppressWarnings("unchecked") + public T addRequirements(Requirement... requirements) { this.addRequirements(Arrays.asList(requirements)); return (T) this; } public boolean isRequirementsMet(CommandSender sender, boolean verboose) { @@ -757,7 +765,7 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand for (Requirement requirement : this.getRequirements()) { if ( ! (requirement instanceof RequirementHasPerm)) continue; - return ((RequirementHasPerm)requirement).getPerm(); + return ((RequirementHasPerm)requirement).getPermissionId(); } return null; } @@ -829,6 +837,9 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand args = this.applyPuzzler(args, sender); this.setArgs(args); + // Requirements + if ( ! this.isRequirementsMet(sender, true)) return; + // Child Execution if (this.isParent() && args.size() > 0) { @@ -883,11 +894,11 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand return; } - // Self Execution (Perform) - if (this.isValidCall(this.sender, this.getArgs())) - { - this.perform(); - } + // Self Execution > Arguments Valid + if ( ! this.isArgsValid(this.getArgs(), this.sender)) return; + + // Self Execution > Perform + this.perform(); } catch (MassiveException ex) { @@ -944,24 +955,6 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand // CALL VALIDATION // -------------------------------------------- // - /** - * In this method we validate that all prerequisites to perform this command has been met. - */ - public boolean isValidCall(CommandSender sender, List args) - { - if ( ! this.isRequirementsMet(sender, true)) - { - return false; - } - - if ( ! this.isArgsValid(args, sender)) - { - return false; - } - - return true; - } - public boolean isArgsValid(List args, CommandSender sender) { if (args.size() < this.getParameterCountRequired(sender)) @@ -990,6 +983,7 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand } return true; } + public boolean isArgsValid(List args) { return this.isArgsValid(args, null); diff --git a/src/com/massivecraft/massivecore/command/MassiveCommandVersion.java b/src/com/massivecraft/massivecore/command/MassiveCommandVersion.java index 096dae52..afd82bcd 100644 --- a/src/com/massivecraft/massivecore/command/MassiveCommandVersion.java +++ b/src/com/massivecraft/massivecore/command/MassiveCommandVersion.java @@ -1,13 +1,10 @@ package com.massivecraft.massivecore.command; -import java.util.Arrays; -import java.util.Collection; import java.util.List; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; -import com.massivecraft.massivecore.command.requirement.RequirementHasPerm; import com.massivecraft.massivecore.util.Txt; public class MassiveCommandVersion extends MassiveCommand @@ -29,22 +26,13 @@ public class MassiveCommandVersion extends MassiveCommand // CONSTRUCT // -------------------------------------------- // - public MassiveCommandVersion(Plugin plugin, String permissionName, String... aliases) - { - this(plugin, permissionName, Arrays.asList(aliases)); - } - - public MassiveCommandVersion(Plugin plugin, String permissionName, Collection aliases) + public MassiveCommandVersion(Plugin plugin) { this.plugin = plugin; - if (permissionName != null) - { - this.addRequirements(RequirementHasPerm.get(permissionName)); - } - this.setDesc("display plugin version"); + this.setAliases("version"); - this.addAliases(aliases); + this.setDesc("display plugin version"); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/editor/CommandEditProperties.java b/src/com/massivecraft/massivecore/command/editor/CommandEditProperties.java index 82073def..de5bb7f9 100644 --- a/src/com/massivecraft/massivecore/command/editor/CommandEditProperties.java +++ b/src/com/massivecraft/massivecore/command/editor/CommandEditProperties.java @@ -1,6 +1,5 @@ package com.massivecraft.massivecore.command.editor; -import com.massivecraft.massivecore.command.requirement.RequirementHasPerm; import com.massivecraft.massivecore.command.type.Type; public class CommandEditProperties extends CommandEditAbstract @@ -9,7 +8,7 @@ public class CommandEditProperties extends CommandEditAbstract // CONSTRUCT // -------------------------------------------- // - public CommandEditProperties(EditSettings settings, Property property, String permission) + public CommandEditProperties(EditSettings settings, Property property) { // Super super(settings, property, null); @@ -26,8 +25,6 @@ public class CommandEditProperties extends CommandEditAbstract this.addChild(prop.createEditCommand(fieldSettings)); } } - - if (permission != null) this.addRequirements(RequirementHasPerm.get(permission)); } } diff --git a/src/com/massivecraft/massivecore/command/editor/CommandEditSingleton.java b/src/com/massivecraft/massivecore/command/editor/CommandEditSingleton.java index 09e29321..b0d87e39 100644 --- a/src/com/massivecraft/massivecore/command/editor/CommandEditSingleton.java +++ b/src/com/massivecraft/massivecore/command/editor/CommandEditSingleton.java @@ -10,14 +10,14 @@ public class CommandEditSingleton extends CommandEditProperties // CONSTRUCT // -------------------------------------------- // - public CommandEditSingleton(O object, String permission) + public CommandEditSingleton(O object) { - this(object, getType(object), permission); + this(object, getType(object)); } - public CommandEditSingleton(O object, Type typeObject, String permission) + public CommandEditSingleton(O object, Type typeObject) { - super(createEditSettings(object, typeObject), new PropertyThis<>(typeObject), permission); + super(createEditSettings(object, typeObject), new PropertyThis<>(typeObject)); String name = typeObject.getName(object); this.setAliases(name); this.setDesc("edit " + name); diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java index b12fa2d3..0f1b7c40 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java @@ -31,10 +31,10 @@ public class CmdMassiveCore extends MassiveCommand public CmdMassiveCoreHearsound cmdMassiveCoreHearsound = new CmdMassiveCoreHearsound(); public CmdMassiveCoreBuffer cmdMassiveCoreBuffer = new CmdMassiveCoreBuffer(); public CmdMassiveCoreCmdurl cmdMassiveCoreCmdurl = new CmdMassiveCoreCmdurl(); - public CommandEditAbstract cmdMassiveCoreConfig = new CommandEditSingleton<>(MassiveCoreMConf.get(), MassiveCorePerm.CONFIG.node); + public CommandEditAbstract cmdMassiveCoreConfig = new CommandEditSingleton<>(MassiveCoreMConf.get()).addRequirements(RequirementHasPerm.get(MassiveCorePerm.CONFIG)); public CmdMassiveCoreSponsor cmdMassiveCoreSponsor = new CmdMassiveCoreSponsor(); public CmdMassiveCoreClick cmdMassiveCoreClick = new CmdMassiveCoreClick(); - public MassiveCommandVersion cmdMassiveCoreVersion = new MassiveCommandVersion(MassiveCore.get(), MassiveCorePerm.VERSION.node, "v", "version"); + public MassiveCommandVersion cmdMassiveCoreVersion = new MassiveCommandVersion(MassiveCore.get()).setAliases("v", "version").addRequirements(RequirementHasPerm.get(MassiveCorePerm.VERSION)); // -------------------------------------------- // // CONSTRUCT @@ -56,7 +56,7 @@ public class CmdMassiveCore extends MassiveCommand this.addChild(this.cmdMassiveCoreVersion); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BASECOMMAND.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BASECOMMAND)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBuffer.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBuffer.java index ad14a17f..7aade508 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBuffer.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBuffer.java @@ -43,7 +43,7 @@ public class CmdMassiveCoreBuffer extends MassiveCommand this.addAliases("buffer"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER)); } } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferAdd.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferAdd.java index 00f55d54..940b4516 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferAdd.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferAdd.java @@ -22,7 +22,7 @@ public class CmdMassiveCoreBufferAdd extends MassiveCommand this.addParameter(TypeString.get(), "text", true).setDesc("the text to add to your buffer"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_ADD.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_ADD)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferClear.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferClear.java index 1a85d301..159dac70 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferClear.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferClear.java @@ -17,7 +17,7 @@ public class CmdMassiveCoreBufferClear extends MassiveCommand this.addAliases("clear"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_CLEAR.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_CLEAR)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferPrint.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferPrint.java index b1f76fef..085315cc 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferPrint.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferPrint.java @@ -17,7 +17,7 @@ public class CmdMassiveCoreBufferPrint extends MassiveCommand this.addAliases("print"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_PRINT.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_PRINT)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferSet.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferSet.java index bc2f5818..c40d98f1 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferSet.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferSet.java @@ -22,7 +22,7 @@ public class CmdMassiveCoreBufferSet extends MassiveCommand this.addParameter(TypeString.get(), "text", true).setDesc("the text to set your buffer to"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_SET.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_SET)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferWhitespace.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferWhitespace.java index 75dc2ecc..f5b0e6bc 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferWhitespace.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreBufferWhitespace.java @@ -23,7 +23,7 @@ public class CmdMassiveCoreBufferWhitespace extends MassiveCommand this.addParameter(1, TypeInteger.get(), "times").setDesc("the amount of whitespace to add to your buffer"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_WHITESPACE.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.BUFFER_WHITESPACE)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java index c19effbd..ebbf7b4d 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java @@ -30,7 +30,7 @@ public class CmdMassiveCoreClick extends MassiveCommand this.addParameter(null, TypeStringCommand.get(), "command", "none", true).setDesc("the command to perform"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.CLICK.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.CLICK)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreCmdurl.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreCmdurl.java index 1d3bc18e..d5b2c3f0 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreCmdurl.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreCmdurl.java @@ -40,7 +40,7 @@ public class CmdMassiveCoreCmdurl extends MassiveCommand this.addParameter(TypeString.get(), "url").setDesc("the url to load"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.CMDURL.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.CMDURL)); this.addRequirements(RequirementIsPlayer.get()); } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreHearsound.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreHearsound.java index 39fa44d1..4a9bab54 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreHearsound.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreHearsound.java @@ -26,7 +26,7 @@ public class CmdMassiveCoreHearsound extends MassiveCommand this.addParameter(TypeList.get(TypeSoundEffect.get()), "sound(s)", true).setDesc("the sounds to hear"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.HEARSOUND.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.HEARSOUND)); this.addRequirements(RequirementIsPlayer.get()); } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreId.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreId.java index afa6ece0..fcd2a111 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreId.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreId.java @@ -17,7 +17,7 @@ public class CmdMassiveCoreId extends MassiveCommand this.addAliases("id"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.ID.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.ID)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreSponsor.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreSponsor.java index 4b9bbb52..f1577605 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreSponsor.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreSponsor.java @@ -24,7 +24,7 @@ public class CmdMassiveCoreSponsor extends MassiveCommandToggle this.addAliases("sponsor"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.SPONSOR.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.SPONSOR)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStore.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStore.java index 94e1c24e..da7fa02e 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStore.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStore.java @@ -39,7 +39,7 @@ public class CmdMassiveCoreStore extends MassiveCommand this.addAliases("store"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE)); } } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreCopydb.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreCopydb.java index 5fd19314..4d75d74f 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreCopydb.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreCopydb.java @@ -32,7 +32,7 @@ public class CmdMassiveCoreStoreCopydb extends MassiveCommand this.addParameter(TypeString.get(), "to").setDesc("the database to copy to"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE_COPYDB.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE_COPYDB)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreListcolls.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreListcolls.java index 29bfc5cc..53ad0316 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreListcolls.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreListcolls.java @@ -30,7 +30,7 @@ public class CmdMassiveCoreStoreListcolls extends MassiveCommand this.addParameter(TypeString.get(), "db", ConfServer.dburi).setDesc("the database to list colls from"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE_LISTCOLLS.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE_LISTCOLLS)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreStats.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreStats.java index d1d53c2c..51fea136 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreStats.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreStoreStats.java @@ -26,7 +26,7 @@ public class CmdMassiveCoreStoreStats extends MassiveCommand this.addParameter(TypeColl.get(), "coll", Coll.TOTAL).setDesc("the coll to show info about"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE_STATS.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.STORE_STATS)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreTest.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreTest.java index b2b8c914..7d224934 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreTest.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreTest.java @@ -33,7 +33,7 @@ public class CmdMassiveCoreTest extends MassiveCommand this.addParameter(false, TypeBoolean.getYes(), "set", "no"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.TEST.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.TEST)); this.addRequirements(RequirementIsPlayer.get()); // VisibilityMode diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsys.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsys.java index f9c1400c..8ef2ada3 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsys.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsys.java @@ -41,7 +41,7 @@ public class CmdMassiveCoreUsys extends MassiveCommand this.addAliases("usys"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS)); } } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspect.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspect.java index e31dbe60..75aa441b 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspect.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspect.java @@ -29,7 +29,7 @@ public class CmdMassiveCoreUsysAspect extends MassiveCommand this.addAliases("aspect"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT)); } } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectList.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectList.java index 7e945c9e..74558a5d 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectList.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectList.java @@ -26,7 +26,7 @@ public class CmdMassiveCoreUsysAspectList extends MassiveCommand this.addParameter(Parameter.getPage()).setDesc("the page in the aspect list"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT_LIST.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT_LIST)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectShow.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectShow.java index d96a10a6..1cb61b00 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectShow.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectShow.java @@ -23,7 +23,7 @@ public class CmdMassiveCoreUsysAspectShow extends MassiveCommand this.addParameter(TypeAspect.get(), "aspect").setDesc("the aspect to show info about"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT_SHOW.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT_SHOW)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectUse.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectUse.java index ca155f54..446a32f9 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectUse.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysAspectUse.java @@ -25,7 +25,7 @@ public class CmdMassiveCoreUsysAspectUse extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse which the aspect should use"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT_USE.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_ASPECT_USE)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverse.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverse.java index f909f4c8..29ce7068 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverse.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverse.java @@ -31,7 +31,7 @@ public class CmdMassiveCoreUsysMultiverse extends MassiveCommand this.addAliases("multiverse"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE)); } } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseDel.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseDel.java index 3655a83f..a353d379 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseDel.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseDel.java @@ -23,7 +23,7 @@ public class CmdMassiveCoreUsysMultiverseDel extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse to delete"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_DEL.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_DEL)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseList.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseList.java index 8bf82cbd..129d2906 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseList.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseList.java @@ -26,7 +26,7 @@ public class CmdMassiveCoreUsysMultiverseList extends MassiveCommand this.addParameter(Parameter.getPage()); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_LIST.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_LIST)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseNew.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseNew.java index 98cff56e..dfd7f392 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseNew.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseNew.java @@ -22,7 +22,7 @@ public class CmdMassiveCoreUsysMultiverseNew extends MassiveCommand this.addParameter(TypeString.get(), "multiverse").setDesc("name of multiverse to create"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_NEW.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_NEW)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseShow.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseShow.java index 31741c67..3f97ba90 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseShow.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysMultiverseShow.java @@ -28,7 +28,7 @@ public class CmdMassiveCoreUsysMultiverseShow extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse to show info about"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_SHOW.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_SHOW)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverse.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverse.java index 7d56ea2c..4742824f 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverse.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverse.java @@ -29,7 +29,7 @@ public class CmdMassiveCoreUsysUniverse extends MassiveCommand this.addAliases("universe"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_UNIVERSE.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_UNIVERSE)); } } diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseClear.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseClear.java index 79a1dac3..dc76c540 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseClear.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseClear.java @@ -25,7 +25,7 @@ public class CmdMassiveCoreUsysUniverseClear extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse of the universe to clear"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_UNIVERSE_CLEAR.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_UNIVERSE_CLEAR)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseDel.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseDel.java index 62d006fe..08156b1a 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseDel.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseDel.java @@ -25,7 +25,7 @@ public class CmdMassiveCoreUsysUniverseDel extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse of the universe to delete"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_DEL.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_MULTIVERSE_DEL)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseNew.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseNew.java index b675a7e3..ae151718 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseNew.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysUniverseNew.java @@ -24,7 +24,7 @@ public class CmdMassiveCoreUsysUniverseNew extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse of the universe to create"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_UNIVERSE_NEW.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_UNIVERSE_NEW)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysWorld.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysWorld.java index ba985dd8..c31e0d28 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysWorld.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreUsysWorld.java @@ -25,7 +25,7 @@ public class CmdMassiveCoreUsysWorld extends MassiveCommand this.addParameter(TypeMultiverse.get(), "multiverse").setDesc("the multiverse of the universe to move the world to"); // Requirements - this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_WORLD.node)); + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.USYS_WORLD)); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/command/requirement/RequirementHasPerm.java b/src/com/massivecraft/massivecore/command/requirement/RequirementHasPerm.java index 0ab7df87..0caaf2d3 100644 --- a/src/com/massivecraft/massivecore/command/requirement/RequirementHasPerm.java +++ b/src/com/massivecraft/massivecore/command/requirement/RequirementHasPerm.java @@ -2,6 +2,7 @@ package com.massivecraft.massivecore.command.requirement; import org.bukkit.command.CommandSender; +import com.massivecraft.massivecore.Identified; import com.massivecraft.massivecore.command.MassiveCommand; import com.massivecraft.massivecore.util.PermissionUtil; @@ -13,15 +14,29 @@ public class RequirementHasPerm extends RequirementAbstract // INSTANCE & CONSTRUCT // -------------------------------------------- // - public static RequirementHasPerm get(String perm) { return new RequirementHasPerm(perm); } - public RequirementHasPerm(String perm) { this.perm = perm; } + public static RequirementHasPerm get(String permissionId) { return new RequirementHasPerm(permissionId); } + public static RequirementHasPerm get(Identified identified) { return new RequirementHasPerm(identified); } + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public RequirementHasPerm(String permissionId) + { + this.permissionId = permissionId; + } + + public RequirementHasPerm(Identified identified) + { + this(identified.getId()); + } // -------------------------------------------- // // FIELDS // -------------------------------------------- // - private final String perm; - public String getPerm() { return this.perm; } + private final String permissionId; + public String getPermissionId() { return this.permissionId; } // -------------------------------------------- // // OVERRIDE @@ -30,13 +45,13 @@ public class RequirementHasPerm extends RequirementAbstract @Override public boolean apply(CommandSender sender, MassiveCommand command) { - return sender.hasPermission(this.perm); + return sender.hasPermission(this.permissionId); } @Override public String createErrorMessage(CommandSender sender, MassiveCommand command) { - return PermissionUtil.getPermissionDeniedMessage(this.perm); + return PermissionUtil.getPermissionDeniedMessage(this.permissionId); } } diff --git a/src/com/massivecraft/massivecore/command/type/TypeAbstract.java b/src/com/massivecraft/massivecore/command/type/TypeAbstract.java index 90525e1e..8be2e9c5 100644 --- a/src/com/massivecraft/massivecore/command/type/TypeAbstract.java +++ b/src/com/massivecraft/massivecore/command/type/TypeAbstract.java @@ -654,7 +654,7 @@ public abstract class TypeAbstract implements Type { if (this.hasInnerProperties()) { - return new CommandEditProperties(settings, property, null); + return new CommandEditProperties(settings, property); } else { diff --git a/src/com/massivecraft/massivecore/store/SenderEntity.java b/src/com/massivecraft/massivecore/store/SenderEntity.java index 7e7eae87..956f8e41 100644 --- a/src/com/massivecraft/massivecore/store/SenderEntity.java +++ b/src/com/massivecraft/massivecore/store/SenderEntity.java @@ -69,22 +69,22 @@ public abstract class SenderEntity> extends Entity // -------------------------------------------- // // GENERIC - public T convertGet(T value, T defaultValue, String permission) + public T convertGet(T value, T defaultValue, String permissionId) { // Create T ret = super.convertGet(value, defaultValue); // Permission Requirement - if ( ! Objects.equal(value, defaultValue) && ! PermissionUtil.hasPermission(this.getSender(), permission)) return defaultValue; + if ( ! Objects.equal(value, defaultValue) && ! PermissionUtil.hasPermission(this.getSender(), permissionId)) return defaultValue; // Return return ret; } // BOOLEAN - public boolean convertGet(Boolean value, String permission) + public boolean convertGet(Boolean value, String permissionId) { - return this.convertGet(value, false, permission); + return this.convertGet(value, false, permissionId); } // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/util/PermissionUtil.java b/src/com/massivecraft/massivecore/util/PermissionUtil.java index 6aa17b46..500a107c 100644 --- a/src/com/massivecraft/massivecore/util/PermissionUtil.java +++ b/src/com/massivecraft/massivecore/util/PermissionUtil.java @@ -41,6 +41,11 @@ public class PermissionUtil return ret; } + public static String createPermissionId(Plugin plugin, Enum e) + { + return plugin.getName().toLowerCase() + "." + e.name().toLowerCase().replace('_', '.'); + } + // -------------------------------------------- // // ENSURE HAS // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/util/SignUtil.java b/src/com/massivecraft/massivecore/util/SignUtil.java index 92bbdfed..3deccb38 100644 --- a/src/com/massivecraft/massivecore/util/SignUtil.java +++ b/src/com/massivecraft/massivecore/util/SignUtil.java @@ -109,11 +109,11 @@ public class SignUtil // -------------------------------------------- // // Returns true if the result is a special sign of with the specified title. - public static boolean handleSpecialPermissionFix(SignChangeEvent event, String title, String permissionNode) + public static boolean handleSpecialPermissionFix(SignChangeEvent event, String title, String permissionId) { if (event == null) throw new NullPointerException("event"); if (title == null) throw new NullPointerException("title"); - if (permissionNode == null) throw new NullPointerException("permissionNode"); + if (permissionId == null) throw new NullPointerException("permissionId"); // If a player is changing a sign ... final Player player = event.getPlayer(); @@ -126,7 +126,7 @@ public class SignUtil if ( ! title.equalsIgnoreCase(lenientTitle)) return false; // ... verify that the player has permission to create that type of sign ... - if ( ! PermissionUtil.hasPermission(player, permissionNode, true)) + if ( ! PermissionUtil.hasPermission(player, permissionId, true)) { event.setCancelled(true); return false;