Booplicate / MAS-Submods-SubmodUpdaterPlugin

A util submod for MAS that makes updating other submods easier.
17 stars 5 forks source link

Submod Updater giving error when trying to update from menu #3

Closed ghost closed 3 years ago

ghost commented 4 years ago

When I try to update my submods from the menu I get the following error. It seems that perhaps it is looking in the wrong place for the file? It seems like it is looking in home/d3adpan/Submods/Submod Updater Plugin rather than home/d3adpan/MAS/game/Submods/Submod Updater Plugin for the necessary files?

I'm sorry, but an uncaught exception occurred.

While loading <'Image' u'/home/d3adpan/Submods/Submod Updater Plugin/indicator_update_available.png'>: File "renpy/common/00gamemenu.rpy", line 173, in $ ui.interact() File "game/Submods/Utilities/better_loading.rpy", line 50, in bl_load raise IOError("Couldn't find file '%s'." % name) IOError: Couldn't find file '/home/d3adpan/Submods/Submod Updater Plugin/indicator_update_available.png'.

-- Full Traceback ------------------------------------------------------------

Full traceback: File "/home/d3adpan/00gamemenu.rpyc", line 173, in script File "/home/d3adpan/MAS/renpy/ast.py", line 814, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "/home/d3adpan/MAS/renpy/python.py", line 1719, in py_exec_bytecode exec bytecode in globals, locals File "renpy/common/00gamemenu.rpy", line 173, in $ ui.interact() File "/home/d3adpan/MAS/renpy/ui.py", line 285, in interact rv = renpy.game.interface.interact(roll_forward=roll_forward, kwargs) File "/home/d3adpan/MAS/renpy/display/core.py", line 2526, in interact repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, kwargs) File "/home/d3adpan/MAS/renpy/display/core.py", line 2883, in interact_core self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn) File "/home/d3adpan/MAS/renpy/display/core.py", line 1955, in draw_screen renpy.config.screen_height, File "renpy/display/render.pyx", line 427, in renpy.display.render.render_screen (gen/renpy.display.render.c:6806) rv = render(root, width, height, 0, 0) File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render surf = render(child, width, height, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/transition.py", line 353, in render return render(self.new_widget, width, height, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render surf = render(child, width, height, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render surf = render(child, width, height, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/screen.py", line 623, in render child = renpy.display.render.render(self.child, w, h, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render surf = render(child, width, height, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 1081, in render st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 853, in render surf = render(d, rw, height - y, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 1081, in render st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 1497, in render cwidth, cheight = sizeit('c', width, height, 0, 0) File "/home/d3adpan/MAS/renpy/display/layout.py", line 1492, in sizeit rend = render(pos_d[pos], width, height, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/viewport.py", line 259, in render surf = renpy.display.render.render(self.child, child_width, child_height, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 895, in render surf = render(d, width - x, rh, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 895, in render surf = render(d, width - x, rh, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 853, in render surf = render(d, rw, height - y, cst, cat) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "renpy/display/accelerator.pyx", line 108, in renpy.display.accelerator.transform_render (gen/renpy.display.accelerator.c:2027) cr = render(child, widtho, heighto, st - self.child_st_base, at) File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 318, in render surf = render(self.child, width, height, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/layout.py", line 1224, in render return renpy.display.render.render(self.child, w, h, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/image.py", line 387, in render return wrap_render(self.target, width, height, st, at) File "/home/d3adpan/MAS/renpy/display/image.py", line 208, in wrap_render rend = render(child, w, h, st, at) File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440) cpdef render(d, object widtho, object heighto, double st, double at): File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "renpy/display/accelerator.pyx", line 108, in renpy.display.accelerator.transform_render (gen/renpy.display.accelerator.c:2027) cr = render(child, widtho, heighto, st - self.child_st_base, at) File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978) rv = d.render(widtho, heighto, st, at) File "/home/d3adpan/MAS/renpy/display/im.py", line 473, in render im = cache.get(self) File "/home/d3adpan/MAS/renpy/display/im.py", line 200, in get surf = image.load() File "/home/d3adpan/MAS/renpy/display/im.py", line 524, in load surf = renpy.display.pgrender.load_image(renpy.loader.load(self.filename), self.filename) File "game/Submods/Utilities/better_loading.rpy", line 50, in bl_load raise IOError("Couldn't find file '%s'." % name) IOError: Couldn't find file '/home/d3adpan/Submods/Submod Updater Plugin/indicator_update_available.png'.

Linux-5.8.9-050809-generic-x86_64-with-debian-bullseye-sid Ren'Py 6.99.12.4.2187 Monika After Story 0.11.5

Booplicate commented 4 years ago

How do you launch the game?

ghost commented 4 years ago

I made a launcher that points to DDLC.sh in my MAS directory so that I can launch the game directly from my desktop - it's the linux equivalent of a shortcut.

Booplicate commented 4 years ago

I hate RenPy

ghost commented 4 years ago

Lol I feel you - but maybe this will help? Out of curiosity I tried setting up a test install using my current setup plus an older version of AHC, and running the game both with the launcher and directly from DDLC.sh.
So when I use the launcher and try to update, I get the same error I noted above. But when I launch the game directly from DDLC.sh, I can in fact open the submods menu and I see an exclamation mark beside AHC. I get the option to update using the Submod Updater Plugin. I selected update all with available updates, and then when prompted I restarted and AHC was updated.

Booplicate commented 4 years ago

I know. It's a RenPy issue, sometimes it just can't get the filepaths to its scripts right. It seems enough to make a new shortcut on windows, so it actually runs the game from the right folder, but I have no idea how to fix it on linux with your launcher and w/o changing my code.

Because of the birthday, I can't fix and test it right now, so it will probably take 1-3 days.

ghost commented 4 years ago

Ah, darn - was hoping maybe it wasn't RenPy but just my crummy laptop.
I can try making a new launcher and trying different configurations, see what happens. No harm in playing around. The launcher is a default built-in thing - right click on my desktop and select 'create launcher'. I will also try moving the launcher from my desktop into the MAS folder and see what happens. No rush no worries, thanks for looking into this!

ghost commented 4 years ago

OK so after playing around a bit I've discovered a few things. Creating the Submods/Submod Updater Plugin folder in my home directory and populating it with only the 4 images seems to work regardless of how I launch the game.
When I right click on my desktop and select 'create launcher' I get 3 options for which type of launcher I want. I usually select 'Application' because I can then run whatever I point it to without having to confirm whether I want to view or run the file - but that option gives the error. Making a new Application launcher doesn't make it work correctly as it does in Windows. Moving the launcher into the main game directory didn't work either. The second option is 'Application in terminal' which I didn't try because I don't want the terminal. 3rd option is 'Location', so I tried that. Choosing that 3rd Location option means that I have to confirm whether I want to run or display DDLC.sh, same as if I clicked it from within the main directory, but it allows me to update using the submod updater, and without having the additional Submod folder in my home directory.
So it seems there are a few workarounds available if it's too much of a PITA or if RenPy doesn't want to play nice with us.

Booplicate commented 4 years ago

@d3adpan ^ if you want to give it a try

ghost commented 4 years ago

Looks like it worked to me! I loaded the game with the launcher and no Submods folder in the home directory. Ran the updates no problems. I took the raw and the new beta image from your link and placed them appropriately. Thank you!

Booplicate commented 3 years ago

Closing as fixed in the last release.