@@ -109,12 +109,19 @@ def parse_raw_pkt(pkt):
109109 context = str (info )[2 :- 1 ]
110110 infos .append (context )
111111 try :
112- infos = {"motd" : decode_unicode (infos [1 ]), "version_id" : infos [2 ], "version" : infos [3 ], "online" : infos [4 ],
113- "max_player" : infos [5 ], "unique_id" : infos [6 ], "map" : decode_unicode (infos [7 ]), "gamemode" : infos [8 ],
114- "source_port_v4" : infos [10 ], "source_port_v6" : infos [11 ], "ip" : addr [0 ], "addr" : f"{ addr [0 ]} :{ addr [1 ]} " }
115- except IndexError :
112+ infos_dict = {"motd" : decode_unicode (infos [1 ]), "version_id" : infos [2 ], "version" : infos [3 ],
113+ "online" : infos [4 ], "max_player" : infos [5 ], "unique_id" : infos [6 ],
114+ "ip" : addr [0 ], "port" : addr [1 ], "addr" : f"{ addr [0 ]} :{ addr [1 ]} " }
115+ # some servers will not return these info
116+ try :
117+ infos_dict .update ({"map" : decode_unicode (infos [7 ]), "gamemode" : infos [8 ]})
118+ except (KeyError , IndexError ):
119+ infos_dict .update ({"map" : "N" , "gamemode" : "A" })
120+ try :
121+ infos_dict .update ({"source_port_v4" : infos [10 ], "source_port_v6" : infos [11 ]})
122+ except (KeyError , IndexError ):
123+ infos_dict .update ({"source_port_v4" : "N" , "source_port_v6" : "A" })
124+
125+ except (KeyError , IndexError ):
116126 return None , addr
117- if infos ["source_port_v4" ] != str (addr [1 ]):
118- # return None, addr
119- pass
120- return infos , addr
127+ return infos_dict , addr
0 commit comments