Skip to content

Commit

Permalink
Improve and fix teamspeak3 issue
Browse files Browse the repository at this point in the history
- Fix teamspeak3 query port and voice port flipped issue
- Improve the commands /addserver /queryserver input fields
  • Loading branch information
BattlefieldDuck committed Oct 24, 2023
1 parent b87cb8b commit 9432b1d
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion discordgsm/games.csv
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ synergy,Synergy,source,port=27015
tacticalops,Tactical Ops,gamespy1,port=7777;port_query_offset=1
takeonhelicopters,Take On Helicopters (2011),gamespy1,port=2302;port_query_offset=1
teamfactor,Team Factor,gamespy1,port_query=57778
teamspeak3,Teamspeak 3,teamspeak3,port=9987
teamspeak3,Teamspeak 3,teamspeak3,port=10011
terminus,Terminus,gamespy1,port_query=12286
terraria,Terraria - TShock (2011),terraria,port=7777;port_query_offset=101
tf2,Team Fortress 2,source,port=27015
Expand Down
14 changes: 5 additions & 9 deletions discordgsm/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,23 +239,19 @@ def query_server_modal(game: GamedigGame, locale: Locale):
modal = Modal(title=title).add_item(query_param['host']).add_item(query_param['port'])
query_extra: Dict[str, TextInput] = {}

if game['id'] == 'teamspeak2':
query_extra['teamspeakQueryPort'] = TextInput(label='TeamSpeak Query Port', max_length='5', default=51234)
modal.add_item(query_extra['teamspeakQueryPort'])
elif game['id'] == 'teamspeak3':
query_extra['teamspeakQueryPort'] = TextInput(label='TeamSpeak Query Port', max_length='5', default=10011)
modal.add_item(query_extra['teamspeakQueryPort'])
elif game['id'] == 'terraria':
if game['id'] == 'terraria':
query_extra['_token'] = TextInput(label='REST user token')
modal.add_item(query_extra['_token'])
elif game['id'] == 'gportal':
query_extra['serverId'] = TextInput(label='GPORTAL server id')
modal.add_item(query_extra['serverId'])

if game['id'] == 'discord':
elif game['id'] == 'discord':
query_param['host'].label = t('modal.text_input.guild_id.label', locale)
modal.remove_item(query_param['port'])
query_param['port']._value = '0'
elif game['id'] == 'teamspeak3':
query_extra['voice_port'] = TextInput(label='Voice Port', placeholder='Voice port', default=9987)
modal.add_item(query_extra['voice_port'])

return modal, query_param, query_extra

Expand Down
8 changes: 6 additions & 2 deletions discordgsm/protocols/teamspeak3.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ class Teamspeak3(Protocol):
name = 'teamspeak3'

async def query(self):
host, port, voice_port = str(self.kv['host']), int(str(self.kv['teamspeakQueryPort'])), int(str(self.kv['port'])),
if 'teamspeakQueryPort' in self.kv: # backward compatibility
host, port, voice_port = str(self.kv['host']), int(str(self.kv['teamspeakQueryPort'])), int(str(self.kv['port']))
else:
host, port, voice_port = str(self.kv['host']), int(str(self.kv['port'])), int(str(self.kv['voice_port']))

teamspeak3 = opengsq.Teamspeak3(host, port, voice_port, self.timeout)
start = time.time()
info, clients, channels = await asyncio.gather(teamspeak3.get_info(), teamspeak3.get_clients(), teamspeak3.get_channels())
Expand All @@ -30,7 +34,7 @@ async def query(self):
'maxplayers': int(info.get('virtualserver_maxclients', '0')),
'players': players,
'bots': [],
'connect': f'{host}:{port}',
'connect': f'{host}:{voice_port}',
'ping': ping,
'raw': {
'info': info,
Expand Down

0 comments on commit 9432b1d

Please sign in to comment.