From 13e698f66e523867f49fbcdee24227417cead508 Mon Sep 17 00:00:00 2001 From: brostos <67740566+brostosjoined@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:27:07 +0300 Subject: [PATCH 1/9] Changelogo --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9390c7fd..24b40e86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ ## Plugin Manager (dd-mm-yyyy) +### 1.1.11 (15-07-2026) + +- New plugin manager logo ### 1.1.10 (12-06-2026) From a120e6197ddc8ccecf94ed4901c78a30bfc46103 Mon Sep 17 00:00:00 2001 From: brostos <67740566+brostosjoined@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:28:51 +0300 Subject: [PATCH 2/9] Logo --- plugin_manager.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/plugin_manager.py b/plugin_manager.py index 8d3300dd..ddf843ee 100644 --- a/plugin_manager.py +++ b/plugin_manager.py @@ -25,7 +25,7 @@ # Modules used for overriding AllSettingsWindow import logging -PLUGIN_MANAGER_VERSION = "1.1.10" +PLUGIN_MANAGER_VERSION = "1.1.11" REPOSITORY_URL = "https://github.com/bombsquad-community/plugin-manager" # Current tag can be changed to "staging" or any other branch in # plugin manager repo for testing purpose. @@ -3342,13 +3342,34 @@ def _b_title( ) _b_title(x_offs6, v, pmb, bui.Lstr(value="Plugin Manager")) imgw = imgh = 120 + # Logo crafted by brostos + # Wizard holding magic wand(Powerful Modders) + # Wizard holding heart( Mrmaxmeier and red for the maintainers of plugman) bui.imagewidget( parent=self._root_widget, position=(x_offs6 + basew * 0.49 - imgw * 0.5 + 5, v + 35), size=(imgw, imgh), color=(0.8, 0.95, 1), - texture=bui.gettexture('storeIcon'), - draw_controller=pmb + texture=bui.gettexture("storeCharacter"), + draw_controller=pmb, + ) + + bui.imagewidget( + parent=self._root_widget, + position=(x_offs6 + basew * 0.49 - imgw * 0.5 - 14, v + 86), + size=(imgw - 80, imgh - 80), + color=(1.00, 0.20, 0.20), + texture=bui.gettexture("heart"), + draw_controller=pmb, + ) + + bui.imagewidget( + parent=self._root_widget, + position=(x_offs6 + basew * 0.49 - imgw * 0.5 + 96, v + 120), + size=(imgw - 78, imgh - 78), + color=(1.00, 1.00, 0.00), + texture=bui.gettexture("star"), + draw_controller=pmb, ) self._restore_state() From 2a1a6dbd2f0d2fae7890016d38ff6209e7eb3d45 Mon Sep 17 00:00:00 2001 From: brostos <67740566+brostosjoined@users.noreply.github.com> Date: Thu, 16 Jul 2026 10:03:17 +0300 Subject: [PATCH 3/9] 1.1.11 index.json thought this was automated --- index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.json b/index.json index 120a1ba7..ca554e7b 100644 --- a/index.json +++ b/index.json @@ -1,6 +1,7 @@ { "plugin_manager_url": "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugin_manager.py", "versions": { + "1.1.11": null "1.1.10": { "api_version": 9, "commit_sha": "a1baa5f", @@ -314,4 +315,4 @@ "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugins/maps.json" ], "external_source_url": "https://github.com/{repository}/{content_type}/{tag}/category.json" -} \ No newline at end of file +} From 6dc7ef4acb0801148fa8869828ba5854789fa9f5 Mon Sep 17 00:00:00 2001 From: brostos <67740566+brostosjoined@users.noreply.github.com> Date: Thu, 16 Jul 2026 10:06:11 +0300 Subject: [PATCH 4/9] Add missing comma in index.json --- index.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.json b/index.json index ca554e7b..1ab85cf5 100644 --- a/index.json +++ b/index.json @@ -1,7 +1,7 @@ { "plugin_manager_url": "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugin_manager.py", "versions": { - "1.1.11": null + "1.1.11": null, "1.1.10": { "api_version": 9, "commit_sha": "a1baa5f", From 757400b66d5f04a4aea1fa74201740736e73205f Mon Sep 17 00:00:00 2001 From: brostosjoined <67740566+brostosjoined@users.noreply.github.com> Date: Thu, 16 Jul 2026 07:06:40 +0000 Subject: [PATCH 5/9] [ci] apply-version-metadata --- index.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/index.json b/index.json index 1ab85cf5..25114790 100644 --- a/index.json +++ b/index.json @@ -1,7 +1,12 @@ { "plugin_manager_url": "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugin_manager.py", "versions": { - "1.1.11": null, + "1.1.11": { + "api_version": 9, + "commit_sha": "6dc7ef4", + "released_on": "16-07-2026", + "md5sum": "891bda8f14da9f5c50aed6ce0847826e" + }, "1.1.10": { "api_version": 9, "commit_sha": "a1baa5f", @@ -315,4 +320,4 @@ "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugins/maps.json" ], "external_source_url": "https://github.com/{repository}/{content_type}/{tag}/category.json" -} +} \ No newline at end of file From 117ae5cf76c767e79cba03a19141d975fbd5e60e Mon Sep 17 00:00:00 2001 From: brostos <67740566+brostosjoined@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:19:32 +0300 Subject: [PATCH 6/9] Add draw_plugman_logo function and update logo rendering --- plugin_manager.py | 100 +++++++++++++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 27 deletions(-) diff --git a/plugin_manager.py b/plugin_manager.py index ddf843ee..7f1ccf5b 100644 --- a/plugin_manager.py +++ b/plugin_manager.py @@ -175,6 +175,75 @@ def partial_format(string_template, **kwargs): string_template = string_template.replace("{" + key + "}", value) return string_template +def draw_plugman_logo(parent, position, size, draw_controller=None): + """Draws the Plugman logo with automatically scaled elements(crafted by brostos). + + The Wizard is the Plugin Manager + 🧙‍♂️ The Wizard & Wand + Represents the talented modders who dedicate their time to crafting incredible + mods for the BombSquad community. + + ❤️ The Red Heart + Originally grey in the original mod manager logo by @Mrmaxmeier. + The touch of red was added to represent our deep appreciation and love for + the original creator, contributors, and all past and present plugin manager maintainers. + + 🪄 The Off-Center Star Stick + The stick holds the star, but it is deliberately not centered perfectly. + This symbolizes imperfection: no plugin is ever completely perfect. It serves + as a reminder to keep updating and improving your plugins. + + ⭐ The Star + Highlights the open-source nature of the Plugin Manager and its community plugins. + If you love the project, make sure to give it a star! + + Args: + parent: The parent widget (e.g., self._root_widget). + position (tuple): The (x, y) starting baseline coordinates of the logo. + size (float): The base width/height for the main asset. Defaults to 120. + draw_controller: The pmb drawing controller reference. + """ + base_x, base_y = position + + char_x = base_x + (size * 0.0417) # Originally +5 + char_y = base_y + (size * 0.2917) # Originally +35 + + heart_size = size * 0.3333 # Originally size - 80 (40x40) + heart_x = base_x - (size * 0.1167) # Originally -14 + heart_y = base_y + (size * 0.7167) # Originally +86 + + star_size = size * 0.35 # Originally size - 78 (42x42) + star_x = base_x + (size * 0.80) # Originally +96 + star_y = base_y + (size * 1.00) # Originally +120 + + bui.imagewidget( + parent=parent, + position=(char_x, char_y), + size=(size, size), + color=(0.8, 0.95, 1), + texture=bui.gettexture("storeCharacter"), + draw_controller=draw_controller, + ) + + bui.imagewidget( + parent=parent, + position=(heart_x, heart_y), + size=(heart_size, heart_size), + color=(1.00, 0.20, 0.20), + texture=bui.gettexture("heart"), + draw_controller=draw_controller, + ) + + bui.imagewidget( + parent=parent, + position=(star_x, star_y), + size=(star_size, star_size), + color=(1.00, 1.00, 0.00), + texture=bui.gettexture("star"), + draw_controller=draw_controller, + ) + + class DNSBlockWorkaround: """ @@ -3341,35 +3410,12 @@ def _b_title( on_activate_call=self._do_plugman ) _b_title(x_offs6, v, pmb, bui.Lstr(value="Plugin Manager")) - imgw = imgh = 120 - # Logo crafted by brostos - # Wizard holding magic wand(Powerful Modders) - # Wizard holding heart( Mrmaxmeier and red for the maintainers of plugman) - bui.imagewidget( + draw_plugman_logo( parent=self._root_widget, - position=(x_offs6 + basew * 0.49 - imgw * 0.5 + 5, v + 35), - size=(imgw, imgh), - color=(0.8, 0.95, 1), - texture=bui.gettexture("storeCharacter"), - draw_controller=pmb, + position=(x_offs6 + basew * 0.49 - 120 * 0.5, v), + size=110, + draw_controller=pmb ) - - bui.imagewidget( - parent=self._root_widget, - position=(x_offs6 + basew * 0.49 - imgw * 0.5 - 14, v + 86), - size=(imgw - 80, imgh - 80), - color=(1.00, 0.20, 0.20), - texture=bui.gettexture("heart"), - draw_controller=pmb, - ) - - bui.imagewidget( - parent=self._root_widget, - position=(x_offs6 + basew * 0.49 - imgw * 0.5 + 96, v + 120), - size=(imgw - 78, imgh - 78), - color=(1.00, 1.00, 0.00), - texture=bui.gettexture("star"), - draw_controller=pmb, ) self._restore_state() From dc5250ae7f5c59e2644cf66fe51cfc3237b866ee Mon Sep 17 00:00:00 2001 From: brostosjoined <67740566+brostosjoined@users.noreply.github.com> Date: Fri, 17 Jul 2026 09:19:56 +0000 Subject: [PATCH 7/9] [ci] apply-plugin-metadata-and-formatting --- plugin_manager.py | 128 +++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/plugin_manager.py b/plugin_manager.py index 7f1ccf5b..0e131d8c 100644 --- a/plugin_manager.py +++ b/plugin_manager.py @@ -175,24 +175,25 @@ def partial_format(string_template, **kwargs): string_template = string_template.replace("{" + key + "}", value) return string_template + def draw_plugman_logo(parent, position, size, draw_controller=None): """Draws the Plugman logo with automatically scaled elements(crafted by brostos). - + The Wizard is the Plugin Manager 🧙‍♂️ The Wizard & Wand - Represents the talented modders who dedicate their time to crafting incredible + Represents the talented modders who dedicate their time to crafting incredible mods for the BombSquad community. - + ❤️ The Red Heart Originally grey in the original mod manager logo by @Mrmaxmeier. - The touch of red was added to represent our deep appreciation and love for + The touch of red was added to represent our deep appreciation and love for the original creator, contributors, and all past and present plugin manager maintainers. - + 🪄 The Off-Center Star Stick The stick holds the star, but it is deliberately not centered perfectly. - This symbolizes imperfection: no plugin is ever completely perfect. It serves + This symbolizes imperfection: no plugin is ever completely perfect. It serves as a reminder to keep updating and improving your plugins. - + ⭐ The Star Highlights the open-source nature of the Plugin Manager and its community plugins. If you love the project, make sure to give it a star! @@ -244,7 +245,6 @@ def draw_plugman_logo(parent, position, size, draw_controller=None): ) - class DNSBlockWorkaround: """ Some ISPs put a DNS block on domains that are needed for plugin manager to @@ -3417,76 +3417,76 @@ def _b_title( draw_controller=pmb ) ) - self._restore_state() + self._restore_state() - def _do_plugman(self) -> None: - # no-op if we're not in control. - if not self.main_window_has_control(): - return + def _do_plugman(self) -> None: + # no-op if we're not in control. + if not self.main_window_has_control(): + return - self.main_window_replace( - lambda: PluginManagerWindow( - origin_widget=self._plugman_button - ) + self.main_window_replace( + lambda: PluginManagerWindow( + origin_widget=self._plugman_button + ) ) - def _save_state(self) -> None: - try: + def _save_state(self) -> None: + try: sel = self._root_widget.get_selected_child() if sel == self._controllers_button: - sel_name = 'Controllers' + sel_name = 'Controllers' elif sel == self._graphics_button: - sel_name = 'Graphics' + sel_name = 'Graphics' elif sel == self._audio_button: - sel_name = 'Audio' + sel_name= 'Audio' elif sel == self._advanced_button: - sel_name = 'Advanced' + sel_name= 'Advanced' elif sel == self._plugman_button: - sel_name = 'PlugMan' + sel_name= 'PlugMan' elif sel == self._back_button: - sel_name = 'Back' + sel_name= 'Back' else: - raise ValueError(f'unrecognized selection \'{sel}\'') + raise ValueError(f'unrecognized selection \'{sel}\'') assert bui.app.classic is not None - bui.app.ui_v1.window_states[type(self)] = {'sel_name': sel_name} - except Exception: - logging.exception('Error saving state for %s.', self) + bui.app.ui_v1.window_states[type(self)]= {'sel_name': sel_name} + except Exception: + logging.exception('Error saving state for %s.', self) - def _restore_state(self) -> None: + def _restore_state(self) -> None: try: assert bui.app.classic is not None sel_name = bui.app.ui_v1.window_states.get(type(self), {}).get( - 'sel_name' - ) - sel: bui.Widget | None - if sel_name == 'Controllers': - sel = self._controllers_button - elif sel_name == 'Graphics': - sel = self._graphics_button - elif sel_name == 'Audio': - sel = self._audio_button - elif sel_name == 'Advanced': - sel = self._advanced_button - elif sel_name == "PlugMan": - sel = self._plugman_button - elif sel_name == 'Back': - sel = self._back_button - else: - sel = self._controllers_button - if sel is not None: - bui.containerwidget(edit=self._root_widget, selected_child=sel) - except Exception: - logging.exception('Error restoring state for %s.', self) - - -# ba_meta export babase.Plugin -class EntryPoint(babase.Plugin): - def on_app_running(self) -> None: - """Called when the app is being launched.""" - from bauiv1lib.settings import allsettings - allsettings.AllSettingsWindow = NewAllSettingsWindow - DNSBlockWorkaround.apply() - asyncio.set_event_loop(babase._asyncio._g_asyncio_event_loop) - startup_tasks = StartupTasks() - - loop.create_task(startup_tasks.execute()) + 'sel_name' + ) + sel: bui.Widget | None + if sel_name == 'Controllers': + sel = self._controllers_button + elif sel_name == 'Graphics': + sel = self._graphics_button + elif sel_name == 'Audio': + sel = self._audio_button + elif sel_name == 'Advanced': + sel = self._advanced_button + elif sel_name == "PlugMan": + sel = self._plugman_button + elif sel_name == 'Back': + sel = self._back_button + else: + sel = self._controllers_button + if sel is not None: + bui.containerwidget(edit=self._root_widget, selected_child=sel) + except Exception: + logging.exception('Error restoring state for %s.', self) + + + # ba_meta export babase.Plugin + class EntryPoint(babase.Plugin): + def on_app_running(self) -> None: + """Called when the app is being launched.""" + from bauiv1lib.settings import allsettings + allsettings.AllSettingsWindow= NewAllSettingsWindow + DNSBlockWorkaround.apply() + asyncio.set_event_loop(babase._asyncio._g_asyncio_event_loop) + startup_tasks= StartupTasks() + + loop.create_task(startup_tasks.execute()) From 2d4614e09d8356892a7fbcce4c8ee0468faafa8e Mon Sep 17 00:00:00 2001 From: brostos <67740566+brostosjoined@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:20:35 +0300 Subject: [PATCH 8/9] Update checksum --- index.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/index.json b/index.json index 25114790..1ab85cf5 100644 --- a/index.json +++ b/index.json @@ -1,12 +1,7 @@ { "plugin_manager_url": "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugin_manager.py", "versions": { - "1.1.11": { - "api_version": 9, - "commit_sha": "6dc7ef4", - "released_on": "16-07-2026", - "md5sum": "891bda8f14da9f5c50aed6ce0847826e" - }, + "1.1.11": null, "1.1.10": { "api_version": 9, "commit_sha": "a1baa5f", @@ -320,4 +315,4 @@ "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugins/maps.json" ], "external_source_url": "https://github.com/{repository}/{content_type}/{tag}/category.json" -} \ No newline at end of file +} From 8afa18a44f48e7b3416538e9b7c134be1b56a315 Mon Sep 17 00:00:00 2001 From: brostosjoined <67740566+brostosjoined@users.noreply.github.com> Date: Fri, 17 Jul 2026 09:20:58 +0000 Subject: [PATCH 9/9] [ci] apply-version-metadata --- index.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/index.json b/index.json index 1ab85cf5..1cf6cde7 100644 --- a/index.json +++ b/index.json @@ -1,7 +1,12 @@ { "plugin_manager_url": "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugin_manager.py", "versions": { - "1.1.11": null, + "1.1.11": { + "api_version": 9, + "commit_sha": "2d4614e", + "released_on": "17-07-2026", + "md5sum": "5ce3e8c910229e724186f3de6c3be4ea" + }, "1.1.10": { "api_version": 9, "commit_sha": "a1baa5f", @@ -315,4 +320,4 @@ "https://github.com/bombsquad-community/plugin-manager/{content_type}/{tag}/plugins/maps.json" ], "external_source_url": "https://github.com/{repository}/{content_type}/{tag}/category.json" -} +} \ No newline at end of file