Editor - Only add edit parameter if editable
This commit is contained in:
		
							parent
							
								
									03d224e953
								
							
						
					
					
						commit
						f6815d4c45
					
				| @ -162,6 +162,16 @@ public class MassiveCommand | ||||
| 		return this.getChildren().size() > 0; | ||||
| 	} | ||||
| 	 | ||||
| 	public List<MassiveCommand> getVisibleChildren(CommandSender watcher) | ||||
| 	{ | ||||
| 		List<MassiveCommand> ret = new MassiveList<>(); | ||||
| 		for (MassiveCommand child : this.getChildren()) | ||||
| 		{ | ||||
| 			if (child.isVisibleTo(watcher)) ret.add(child); | ||||
| 		} | ||||
| 		return ret; | ||||
| 	} | ||||
| 	 | ||||
| 	// -------------------------------------------- // | ||||
| 	// CHILDREN > GET | ||||
| 	// -------------------------------------------- // | ||||
|  | ||||
| @ -45,7 +45,8 @@ public class CommandEditAbstract<O, V> extends MassiveCommand | ||||
| 		this.setAliases(this.getProperty().getNames()); | ||||
| 		 | ||||
| 		// Desc | ||||
| 		this.setDesc("edit " + this.getProperty().getName()); | ||||
| 		String descAction = property.isEditable() ? "edit " : "show "; | ||||
| 		this.setDesc(descAction + this.getProperty().getName()); | ||||
| 		 | ||||
| 		// Requirements | ||||
| 		this.addRequirements(RequirementEditorUse.get()); | ||||
| @ -66,7 +67,21 @@ public class CommandEditAbstract<O, V> extends MassiveCommand | ||||
| 	{ | ||||
| 		if (this.isParent()) | ||||
| 		{ | ||||
| 			super.perform();			 | ||||
| 			// If there is only one visible child, and it is a show command .... | ||||
| 			// Note: We use the visible children because HelpCommand is always present, but often invisible. | ||||
| 			List<MassiveCommand> children = this.getVisibleChildren(this.sender); | ||||
| 			if (children.size() == 1 && children.get(0) instanceof CommandEditShow) | ||||
| 			{ | ||||
| 				// ... skip directly to it. | ||||
| 				CommandEditShow<?, ?> cmd = (CommandEditShow<?, ?>) children.get(0); | ||||
| 				List<MassiveCommand> chain = this.getChain(); | ||||
| 				chain.add(this); | ||||
| 				cmd.execute(this.sender, this.args, chain); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				super.perform(); | ||||
| 			} | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
|  | ||||
| @ -20,19 +20,22 @@ public class CommandEditContainer<O, V> extends CommandEditAbstract<O, V> | ||||
| 			this.addChild(new CommandEditDelete<O, V>(settings, property)); | ||||
| 		} | ||||
| 		 | ||||
| 		this.addChild(new CommandEditContainerAdd<O, V>(settings, property)); | ||||
| 		this.addChild(new CommandEditContainerInsert<O, V>(settings, property)); | ||||
| 		this.addChild(new CommandEditContainerSet<O, V>(settings, property)); | ||||
| 		this.addChild(new CommandEditContainerRemove<O, V>(settings, property)); | ||||
| 		this.addChild(new CommandEditContainerRemoveIndex<O, V>(settings, property)); | ||||
| 		 | ||||
| 		if ( ! property.getValueType().isContainerSorted() && property.getValueType().getContainerComparator() == null) | ||||
| 		if (property.isEditable()) | ||||
| 		{ | ||||
| 			this.addChild(new CommandEditContainerMove<O, V>(settings, property)); | ||||
| 			this.addChild(new CommandEditContainerSwap<O, V>(settings, property)); | ||||
| 		} | ||||
| 			this.addChild(new CommandEditContainerAdd<O, V>(settings, property)); | ||||
| 			this.addChild(new CommandEditContainerInsert<O, V>(settings, property)); | ||||
| 			this.addChild(new CommandEditContainerSet<O, V>(settings, property)); | ||||
| 			this.addChild(new CommandEditContainerRemove<O, V>(settings, property)); | ||||
| 			this.addChild(new CommandEditContainerRemoveIndex<O, V>(settings, property)); | ||||
| 		 | ||||
| 		this.addChild(new CommandEditContainerClear<O, V>(settings, property)); | ||||
| 			if ( ! property.getValueType().isContainerSorted() && property.getValueType().getContainerComparator() == null) | ||||
| 			{ | ||||
| 				this.addChild(new CommandEditContainerMove<O, V>(settings, property)); | ||||
| 				this.addChild(new CommandEditContainerSwap<O, V>(settings, property)); | ||||
| 			} | ||||
| 		 | ||||
| 			this.addChild(new CommandEditContainerClear<O, V>(settings, property)); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
|  | ||||
| @ -24,7 +24,10 @@ public class CommandEditItemStacks<O> extends CommandEditAbstract<O, List<ItemSt | ||||
| 			this.addChild(new CommandEditDelete<O, List<ItemStack>>(settings, property)); | ||||
| 		} | ||||
| 		 | ||||
| 		this.addChild(new CommandEditItemStacksOpen<O>(settings, property)); | ||||
| 		if (property.isEditable()) | ||||
| 		{ | ||||
| 			this.addChild(new CommandEditItemStacksOpen<O>(settings, property));	 | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
|  | ||||
| @ -16,7 +16,10 @@ public class CommandEditSimple<O, V> extends CommandEditAbstract<O, V> | ||||
| 		super(settings, property, null); | ||||
| 		 | ||||
| 		// Parameters | ||||
| 		this.addParameter(TypeNullable.get(this.getProperty().getValueType()), "set", "show", true); | ||||
| 		if (property.isEditable()) | ||||
| 		{ | ||||
| 			this.addParameter(TypeNullable.get(this.getProperty().getValueType()), "set", "show", true);	 | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	// -------------------------------------------- // | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user