Oakraven79 / pavlov_rcon_tcl

Manage Pavlov servers with RCON from within VR.
GNU General Public License v3.0
11 stars 6 forks source link

Exception occurred during app initialisation: bitmap "rcon.ico" not defined #10

Open RainOrigami opened 2 years ago

RainOrigami commented 2 years ago

On Manjaro (5.10.93-1-MANJARO / Python 3.10.1) I am getting an error on startup:

Exception occurred during app initialisation: bitmap "rcon.ico" not defined

And the main window stays empty: image

The file "rcon.ico" does exist in the folder pavlov_rcon_tcl from where I run this command.

Full output:

❯ python main.py
2022-01-25 10:44:08,327 - games_modes.py:37 games_modes - INFO - loaded games_modes.json!
2022-01-25 10:44:08,327 - games_modes.py:44 games_modes - INFO - Game modes found in file: {'Search And Destroy': 'SND', 'Team Death Match': 'TDM', 'Deathmatch': 'DM', 'Gun Game': 'GUN', 'TTT': 'TTT', 'Zombie Wave': 'ZWV', 'Tank TDM': 'TANKTDM', 'WW2GUN': 'WW2GUN', 'King of the Hill': 'KOTH', 'One In The Chamber': 'OITC', 'HIDDEN': 'HIDDEN', 'INFECTION': 'INFECTION'}
2022-01-25 10:44:08,328 - maps_list.py:78 maps_list - INFO - loaded maps.json!
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- New' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Station' --> 'station'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Stalingrad' --> 'stalingrad'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Santorini' --> 'santorini'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Santorini at night' --> 'santorini_night'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Industry' --> 'industry'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Industry at night' --> 'industry_night'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- Originals' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Data Center' --> 'datacenter'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Sand' --> 'sand'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Sand at night' --> 'sand_night'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Bridge' --> 'bridge'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Container Yard' --> 'containeryard'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Siberia' --> 'prisonbreak'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Hospital (Zombies)' --> 'hospital'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Kill House' --> 'killhouse'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Shooting Range' --> 'range'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Tutorial' --> 'tutorial'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- Counter Strike Maps' --> ' '
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Mirage' --> 'UGC2405033833'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Office' --> 'UGC1080743206'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Cache' --> 'UGC1695916905'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Inferno' --> 'UGC1661039078'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Tuscan' --> 'UGC2170893566'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Overpass' --> 'UGC1676961583'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Lake' --> 'UGC1401905027'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- Call Of Duty' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Rust' --> 'UGC1739104662'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- Others' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Outset Island (Zelda)' --> 'UGC1373830364'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'McDonalds' --> 'UGC1984149656'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Oilrig' --> 'UGC1701860633'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Elven Ruins' --> 'UGC2396016789'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- BIG MAPS' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'City War' --> 'UGC2297877134'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- Zombies' --> '  '
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'NachtDerUntoten (CODz)' --> 'UGC1836053818'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Der Riese (CODz)' --> 'UGC1890699727'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Kino Der Toten (CODz)' --> 'UGC1929882349'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Call of the Dead (CODz)' --> 'UGC1948201228'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Oasis: Minecraft Zombies' --> 'UGC1931739042'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Zombies - Subway - End Days' --> 'UGC1741218360'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'Zombies - Three Islands - END DAYS' --> 'UGC1804442427'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- TTT' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'New MC CITY TTT' --> 'UGC1729478375'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'TTT Old West' --> 'UGC2267134313'
2022-01-25 10:44:08,328 - maps_list.py:86 maps_list - INFO - Spacer detected: '--- PropHunt' --> ''
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'PH Warehouse' --> 'UGC1810463805'
2022-01-25 10:44:08,328 - maps_list.py:88 maps_list - INFO - Map loaded: 'PH Hotel' --> 'UGC1825578429'
2022-01-25 10:44:08,328 - maps_list.py:95 maps_list - INFO - 40 maps loaded from maps.json
/home/******/src/pavlov_rcon_tcl/pavlov_rcon_tcl/main.py:113: DeprecationWarning: There is no current event loop
  loop = asyncio.get_event_loop()
2022-01-25 10:44:08,378 - main.py:144 __main__ - INFO - Exception occurred during app initialisation: bitmap "rcon.ico" not defined
Press Enter to exit...
RainOrigami commented 2 years ago

After removing the code for rcon.ico from main.py I got another error about the root.state not accepting "zoomed" as a parameter. I got it to run with this patch:

diff --git a/pavlov_rcon_tcl/main.py b/pavlov_rcon_tcl/main.py
index 9d72ef7..79a3cc6 100644
--- a/pavlov_rcon_tcl/main.py
+++ b/pavlov_rcon_tcl/main.py
@@ -1,5 +1,5 @@
 """
-Main file that sets up the app and runs it. 
+Main file that sets up the app and runs it.

 """
 # Variables that display at the top of the window, no other effect other than title text
@@ -65,7 +65,7 @@ Ideally the file looks like this for one server(JSON):
 ]

 For multiple servers:
-        
+
 """
     + MULTIPLE_SERVER_EXAMPLE
 )
@@ -118,15 +118,13 @@ def main():
             "{} V{}".format(APP_NAME, APP_VERSION)
         )  # This changes the display name at run time, just to make it pretty
         # Set the icon file for the app if there is one, just for added flair
-        if os.path.isfile("rcon.ico"):
-            root.iconbitmap("rcon.ico")
         # When a TCL/Tkinter app starts it kind of guesses what size it is supposed to be unless you are explicit, this says:
         # "Be the same size as the screen you opened on '{0}x{1}' and do not be offset from the top left '+0+0' "
         root.geometry(
             "{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight())
         )
         # and go full screen as the application starts
-        root.state("zoomed")
+        root.state("iconic")
         # As this can connect to multiple servers we take the servers_list
         # and load each one
         for server_dict in servers_list:

However the window starts out basically invisible (I also tried "normal" instead of "iconic" with no difference). I have to focus the window from the taskbar and then use a keyboard shortcut to maximize it. I was able to connect to my server tho.

Oakraven79 commented 2 years ago

Hey thanks for sharing!

I wasn't aware that python 3.10 was an issue. I run and package it typically on 3.8 and haven't tested on 3.10.

I'll see what i can do for 3.10 and reply here.

Cheers!