mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-07-11 18:51:59 +00:00
plugin disable boilerplate / untested
This commit is contained in:
@@ -78,6 +78,7 @@ class Loader:
|
|||||||
self.live_reload = live_reload
|
self.live_reload = live_reload
|
||||||
self.reload_queue: ReloadQueue = Queue()
|
self.reload_queue: ReloadQueue = Queue()
|
||||||
self.loop.create_task(self.handle_reloads())
|
self.loop.create_task(self.handle_reloads())
|
||||||
|
self.context: PluginManager = server_instance
|
||||||
|
|
||||||
if live_reload:
|
if live_reload:
|
||||||
self.observer = Observer()
|
self.observer = Observer()
|
||||||
@@ -164,6 +165,9 @@ class Loader:
|
|||||||
await self.ws.emit(f"loader/plugin_event", {"plugin": plugin.name, "event": event, "args": args})
|
await self.ws.emit(f"loader/plugin_event", {"plugin": plugin.name, "event": event, "args": args})
|
||||||
|
|
||||||
plugin = PluginWrapper(file, plugin_directory, self.plugin_path, plugin_emitted_event)
|
plugin = PluginWrapper(file, plugin_directory, self.plugin_path, plugin_emitted_event)
|
||||||
|
if hasattr(self.context, "utilities") and plugin.name in await self.context.utilities.get_setting("disabled_plugins",[]):
|
||||||
|
self.plugins[plugin.name] = plugin
|
||||||
|
return
|
||||||
if plugin.name in self.plugins:
|
if plugin.name in self.plugins:
|
||||||
if not "debug" in plugin.flags and refresh:
|
if not "debug" in plugin.flags and refresh:
|
||||||
self.logger.info(f"Plugin {plugin.name} is already loaded and has requested to not be re-loaded")
|
self.logger.info(f"Plugin {plugin.name} is already loaded and has requested to not be re-loaded")
|
||||||
|
|||||||
@@ -390,7 +390,6 @@ class Utilities:
|
|||||||
"total": len(all),
|
"total": len(all),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Based on https://stackoverflow.com/a/46422554/13174603
|
# Based on https://stackoverflow.com/a/46422554/13174603
|
||||||
def start_rdt_proxy(self, ip: str, port: int):
|
def start_rdt_proxy(self, ip: str, port: int):
|
||||||
async def pipe(reader: StreamReader, writer: StreamWriter):
|
async def pipe(reader: StreamReader, writer: StreamWriter):
|
||||||
@@ -474,3 +473,22 @@ class Utilities:
|
|||||||
|
|
||||||
async def get_tab_id(self, name: str):
|
async def get_tab_id(self, name: str):
|
||||||
return (await get_tab(name)).id
|
return (await get_tab(name)).id
|
||||||
|
|
||||||
|
async def disable_plugin(self, name: str):
|
||||||
|
disabled_plugins: List[str] = await self.get_setting("disabled_plugins", [])
|
||||||
|
if name not in disabled_plugins:
|
||||||
|
disabled_plugins.append(name)
|
||||||
|
await self.set_setting("disabled_plugins", disabled_plugins)
|
||||||
|
|
||||||
|
await self.context.plugin_loader.plugins[name].stop()
|
||||||
|
await self.context.ws.emit("loader/unload_plugin", name)
|
||||||
|
|
||||||
|
async def enable_plugin(self, name: str):
|
||||||
|
disabled_plugins: List[str] = await self.get_setting("disabled_plugins", [])
|
||||||
|
if name in disabled_plugins:
|
||||||
|
disabled_plugins.remove(name)
|
||||||
|
await self.set_setting("disabled_plugins", disabled_plugins)
|
||||||
|
|
||||||
|
plugin = self.context.plugin_loader.plugins[name]
|
||||||
|
plugin.start()
|
||||||
|
await self.context.plugin_loader.dispatch_plugin(plugin.name, plugin.version, plugin.load_type)
|
||||||
|
|||||||
Reference in New Issue
Block a user