private boolean saveToolSet(List<PluginTool> tools) {
		List<PluginTool> changedTools = new ArrayList<>();
		for (PluginTool tool : tools) {
			if (tool.hasConfigChanged()) {
				changedTools.add(tool);
			}
		}
		if (changedTools.isEmpty()) {
			return true;
		}

		if (changedTools.size() == 1) {
			PluginTool changedTool = changedTools.get(0);
			if (changedTool.shouldSave()) {
				toolServices.saveTool(changedTool);
			}
			return true; // we don't care if they save or not here; it is not a cancel
		}
		SelectChangedToolDialog dialog = new SelectChangedToolDialog(changedTools);
		FrontEndTool frontEndTool = AppInfo.getFrontEndTool();
		frontEndTool.showDialog(dialog, (ComponentProvider) null);

		if (dialog.wasCancelled()) {
			return false;
		}

		PluginTool tool = dialog.getSelectedTool();
		if (tool != null) {
			toolServices.saveTool(tool);
		}

		return true;
	}
Save the tools that are opened and changed, that will be brought back up when the project
is reopened
@return true if the session was saved
Ghidra/Framework/Project/src/main/java/ghidra/framework/project/tool/ToolManagerImpl.java