### Godot version

v4.2.beta1.official [b1371806a]

### System information

Godot v4.2.beta1 - macOS 12.7.0 - Vulkan (Forward+) - dedicated AMD Radeon HD - FirePro D300 - Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz (8 Threads)

### Issue description

When creating a plugin with a dot in the name in the project settings and leaving "Script Name" empty fails. Also, when a plugin folder is added via file system which contains a dot, information for that plugin cannot be be updated in the project settings.

Will be solved by: https://github.com/godotengine/godot/pull/83329

### Steps to reproduce

Create new plugin:

- Open project settings
- Click on "Create New Plugin" in the "Plugin" tab
- Choose a name with a dot in it (e.g., "my.plugin") and leave "Script Name" empty
- Create
- It will fail to create the plugin script

Update existing plugin:

- Add a plugin directory with a dot in the folder name (e.g., "my.plugin") in the file system
- Open project settings
- Click on the edit button in the "Plugin" tab for that plugin
- Change "Author" to some name
- Update
- Author was not changed in the table or in "plugin.cfg"

### Minimal reproduction project

[plugin_config_dialog.zip](https://github.com/godotengine/godot/files/12905755/plugin_config_dialog.zip)

String ext = ScriptServer::get_language(lang_idx)->get_extension();
	String script_name = script_edit->get_text().is_empty() ? _get_subfolder() : script_edit->get_text();
	if (script_name.get_extension().is_empty()) {
		script_name += "." + ext;
	}
	String script_path = path.path_join(script_name);
	Ref<ConfigFile> cf = memnew(ConfigFile);
	cf->set_value("plugin", "name", name_edit->get_text());
	cf->set_value("plugin", "description", desc_edit->get_text());
	cf->set_value("plugin", "author", author_edit->get_text());
	cf->set_value("plugin", "version", version_edit->get_text());
	cf->set_value("plugin", "script", script_name);
	cf->save(path.path_join("plugin.cfg"));
	if (!_edit_mode) {
		String class_name = script_name.get_basename();
		String template_content = "";
		Vector<ScriptLanguage::ScriptTemplate> templates = ScriptServer::get_language(lang_idx)->get_built_in_templates("EditorPlugin");
		if (!templates.is_empty()) {
			template_content = templates[0].content;
		}
		Ref<Script> scr = ScriptServer::get_language(lang_idx)->make_template(template_content, class_name, "EditorPlugin");
		scr->set_path(script_path, true);
		ResourceSaver::save(scr);
		emit_signal(SNAME("plugin_ready"), scr.ptr(), active_edit->is_pressed() ? _to_absolute_plugin_path(_get_subfolder()) : "");
	} else {
		EditorNode::get_singleton()->get_project_settings()->update_plugins();
	}
	_clear_fields();
}
void PluginConfigDialog::_on_canceled() {