[Update] Plugins: Move location from index to plugin_info.json.

This commit is contained in:
Sakamoto Shiina
2025-03-25 17:57:03 +09:00
parent 92ea06eb77
commit 824a9fa0a9
3 changed files with 7 additions and 10 deletions

View File

@@ -8,10 +8,7 @@ export const init = (plugin_context) => {
return <MainContainer />; return <MainContainer />;
}; };
plugin_context.registerComponent({ plugin_context.registerComponent(EntryComponents);
location: "main_section",
component: EntryComponents,
});
}; };
export default init; export default init;

View File

@@ -2,6 +2,7 @@
"title": "VRCT Example Plugins 1", "title": "VRCT Example Plugins 1",
"plugin_id": "vrct_plugin_example_1", "plugin_id": "vrct_plugin_example_1",
"asset_name": "vrct_plugin_example_1.zip", "asset_name": "vrct_plugin_example_1.zip",
"location": "main_section",
"plugin_version": "0.0.1", "plugin_version": "0.0.1",
"min_supported_vrct_version": "3.0.4", "min_supported_vrct_version": "3.0.4",
"max_supported_vrct_version": "3.0.6" "max_supported_vrct_version": "3.0.6"

View File

@@ -23,7 +23,6 @@ const PLUGIN_LIST_URL = "https://raw.githubusercontent.com/ShiinaSakamoto/vrct_p
export const usePlugins = () => { export const usePlugins = () => {
const { asyncStdoutToPython } = useStdoutToPython(); const { asyncStdoutToPython } = useStdoutToPython();
// const { currentLoadedPluginsList, updateLoadedPluginsList } = useStore_LoadedPluginsList();
const { currentSavedPluginsStatus, updateSavedPluginsStatus, pendingSavedPluginsStatus } = useStore_SavedPluginsStatus(); const { currentSavedPluginsStatus, updateSavedPluginsStatus, pendingSavedPluginsStatus } = useStore_SavedPluginsStatus();
const { currentPluginsData, updatePluginsData, pendingPluginsData } = useStore_PluginsData(); const { currentPluginsData, updatePluginsData, pendingPluginsData } = useStore_PluginsData();
const { currentSoftwareVersion } = useSoftwareVersion(); const { currentSoftwareVersion } = useSoftwareVersion();
@@ -32,22 +31,22 @@ export const usePlugins = () => {
const generatePluginContext= (plugin_info) => { const generatePluginContext= (plugin_info) => {
const plugin_context = { const plugin_context = {
registerComponent: ({ location, component }) => { registerComponent: (component) => {
if (!plugin_info.plugin_id || !location || !component) { if (!plugin_info.plugin_id || !plugin_info.location || !component) {
return console.error("An invalid plugin was detected.", plugin_info.plugin_id, location, component); return console.error("An invalid plugin was detected.", plugin_info.plugin_id, plugin_info.location, component);
} }
updatePluginsData(prev => { updatePluginsData(prev => {
const is_already_registered = prev.data.some(old_value => old_value.plugin_id === plugin_info.plugin_id); const is_already_registered = prev.data.some(old_value => old_value.plugin_id === plugin_info.plugin_id);
const new_value = prev.data.map(old_value => const new_value = prev.data.map(old_value =>
old_value.plugin_id === plugin_info.plugin_id old_value.plugin_id === plugin_info.plugin_id
? { ...old_value, ...plugin_info, location, component, is_downloaded: true } ? { ...old_value, ...plugin_info, location: plugin_info.location, component, is_downloaded: true }
: old_value : old_value
); );
return is_already_registered return is_already_registered
? new_value ? new_value
: [...new_value, { plugin_id: plugin_info.plugin_id, location, component, is_downloaded: true }]; : [...new_value, { plugin_id: plugin_info.plugin_id, location: plugin_info.location, component, is_downloaded: true }];
}); });
}, },
createAtomWithHook: (...args) => createAtomWithHook(...args) createAtomWithHook: (...args) => createAtomWithHook(...args)