Overall fixes to unexpected/unwanted behavior

This commit is contained in:
2023-05-08 19:20:51 +02:00
parent b60a78e75a
commit 8dc46a6319
4 changed files with 53 additions and 31 deletions
+11 -7
View File
@@ -46,10 +46,11 @@ class Leaderboard(commands.Cog):
botmessage = botmessage + i + "\n" botmessage = botmessage + i + "\n"
await ctx.send(botmessage) await ctx.send(botmessage)
if(len(servers) != 0): servers.append(self.getserver("", " ".join(message)))
server = ""
if(len(servers) > 1): if(len(servers) > 1):
for i in servers: for i in servers:
if(i in " ".join(message)): if(i.lower() in " ".join(message).lower()):
server = i server = i
break break
else: else:
@@ -137,7 +138,7 @@ class Leaderboard(commands.Cog):
return weaponid, weaponname return weaponid, weaponname
def getserver(self, snippet): def getserver(self, snippet, fullmessage = ""):
server = "" server = ""
response = requests.get('https://tone.sleepycat.date/v2/client/servers').json() response = requests.get('https://tone.sleepycat.date/v2/client/servers').json()
servers = response.keys() servers = response.keys()
@@ -145,6 +146,8 @@ class Leaderboard(commands.Cog):
for i in servers: for i in servers:
if(snippet.lower() in i.lower()): if(snippet.lower() in i.lower()):
server = i server = i
if(i.lower() in fullmessage.lower()):
server = i
break break
return server return server
@@ -164,7 +167,6 @@ class Leaderboard(commands.Cog):
easyfilter = True easyfilter = True
else: else:
hardfilter = True hardfilter = True
top10 = {} top10 = {}
while(len(top10)<10): while(len(top10)<10):
current = 0 current = 0
@@ -175,10 +177,12 @@ class Leaderboard(commands.Cog):
checked = stats[str(board)] checked = stats[str(board)]
if(hardfilter): if(hardfilter):
if(board.lower() == "kd"): if(board.lower() == "kd"):
if (stats['deaths'] == 0): if(weaponid != ""):
deaths = 1 deaths = stats['deaths_while_equipped']
else: else:
deaths = stats['deaths'] deaths = stats['deaths']
if(deaths == 0):
deaths = deaths + 1
checked = round(stats["kills"] / deaths, 2) checked = round(stats["kills"] / deaths, 2)
if(board.lower() == "avgd"): if(board.lower() == "avgd"):
if(stats["kills"] == 0): if(stats["kills"] == 0):
@@ -212,7 +216,7 @@ class Leaderboard(commands.Cog):
stat = str("{:0.2f}".format(j)) stat = str("{:0.2f}".format(j))
if(easyfilter): if(easyfilter):
stat = str(j) stat = str(j)
botmessage = botmessage + str(f"{str(counter):<2}"+ " - " + f"{i :<15}" + " : "+ f"{stat:<8}" + "\n") botmessage = botmessage + str(f"{str(counter):<2}"+ " - " + f"{i :<20}" + " : "+ f"{stat:<8}" + "\n")
counter= counter+1 counter= counter+1
return botmessage return botmessage
+17 -9
View File
@@ -14,7 +14,7 @@ class Stats(commands.Cog):
@commands.command(aliases=["compare"]) @commands.command(aliases=["compare"])
async def stats(self, ctx, *message): async def stats(self, ctx, *message):
error = False error = False
players = [] players = {}
servers = [] servers = []
server = "" server = ""
weaponid= "" weaponid= ""
@@ -28,17 +28,21 @@ class Stats(commands.Cog):
item = i.replace(",", "") item = i.replace(",", "")
function_dict = self.message_handler(item) function_dict = self.message_handler(item)
if(function_dict['player'] != None): if(function_dict['player'] != None):
players.append(function_dict['player']) players[item] = self.getplayerid(item)
if(function_dict['weapon'] != None): if(function_dict['weapon'] != None):
weaponname = function_dict["weapon"][1] weaponname = function_dict["weapon"][1]
weaponid= function_dict['weapon'][0] weaponid= function_dict['weapon'][0]
if(function_dict['server'] != None): if(function_dict['server'] != None):
servers.append(function_dict['server']) servers.append(function_dict['server'])
if(len(servers) != 0): servers.append(self.getserver("", " ".join(message)))
if(len(servers) > 1):
if(len(servers) != 0 and len(message) != 1):
if(len(message) == 2 and weaponid != ""):
server = ""
elif(len(servers) > 1):
for i in servers: for i in servers:
if(i in " ".join(message)): if(i.lower() in " ".join(message).lower()):
server = i server = i
break break
else: else:
@@ -49,8 +53,9 @@ class Stats(commands.Cog):
await ctx.send("```No existing player found, check if the name is correct or has changed```") await ctx.send("```No existing player found, check if the name is correct or has changed```")
list_of_stats = [] list_of_stats = []
for i in players: for i in players.keys():
stats = self.getstats(playerid=i,weaponid=weaponid, weaponname=weaponname, server=server) if(i.lower() not in server.lower()):
stats = self.getstats(playerid=players[i],weaponid=weaponid, weaponname=weaponname, server=server)
list_of_stats.append(stats) list_of_stats.append(stats)
if ("".join(list_of_stats) != ""): if ("".join(list_of_stats) != ""):
@@ -156,7 +161,7 @@ class Stats(commands.Cog):
return weaponid, weaponname return weaponid, weaponname
def getserver(self, snippet): def getserver(self, snippet, fullmessage = ""):
server = "" server = ""
response = requests.get('https://tone.sleepycat.date/v2/client/servers').json() response = requests.get('https://tone.sleepycat.date/v2/client/servers').json()
servers = response.keys() servers = response.keys()
@@ -164,6 +169,8 @@ class Stats(commands.Cog):
for i in servers: for i in servers:
if(snippet.lower() in i.lower()): if(snippet.lower() in i.lower()):
server = i server = i
if(i.lower() in fullmessage.lower()):
server = i
break break
return server return server
@@ -185,7 +192,8 @@ class Stats(commands.Cog):
deaths=killstats['deaths_while_equipped'] deaths=killstats['deaths_while_equipped']
if(deaths == 0): if(deaths == 0):
deaths = 1; deaths = 1;
botmessage += str("Deaths : " + str(killstats['deaths_while_equipped'])) + '\n' + str("Weapon : " + weaponname) + '\n' + str(str("weapon KD : " + str("{:0.2f}".format(killstats['kills']/deaths)))) botmessage += str(str("Deaths : " + str(killstats['deaths_while_equipped'])) + '\n' + str("Weapon : " + weaponname) + '\n'
+ str(str("weapon KD : " + str("{:0.2f}".format(killstats['kills']/deaths)))+ '\n' + str("Deaths to : " + str(killstats['deaths']))))
else: else:
deaths=killstats['deaths'] deaths=killstats['deaths']
if(deaths == 0): if(deaths == 0):
+8 -3
View File
@@ -97,8 +97,11 @@ class SlashLeaderboard(commands.Cog):
for i in servers: for i in servers:
if(snippet.lower() in i.lower()): if(snippet.lower() in i.lower()):
if(snippet.lower()== i.lower()):
server = i server = i
break break
else:
server = i
return server return server
@@ -128,10 +131,12 @@ class SlashLeaderboard(commands.Cog):
checked = stats[str(board)] checked = stats[str(board)]
if(hardfilter): if(hardfilter):
if(board.lower() == "kd"): if(board.lower() == "kd"):
if (stats['deaths'] == 0): if(weaponid != ""):
deaths = 1 deaths = stats['deaths_while_equipped']
else: else:
deaths = stats['deaths'] deaths = stats['deaths']
if(deaths == 0):
deaths = deaths + 1
checked = round(stats["kills"] / deaths, 2) checked = round(stats["kills"] / deaths, 2)
if(board.lower() == "avgd"): if(board.lower() == "avgd"):
if(stats["kills"] == 0): if(stats["kills"] == 0):
@@ -165,7 +170,7 @@ class SlashLeaderboard(commands.Cog):
stat = str("{:0.2f}".format(j)) stat = str("{:0.2f}".format(j))
if(easyfilter): if(easyfilter):
stat = str(j) stat = str(j)
botmessage = botmessage + str(f"{str(counter):<2}"+ " - " + f"{i :<15}" + " : "+ f"{stat:<8}" + "\n") botmessage = botmessage + str(f"{str(counter):<2}"+ " - " + f"{i :<20}" + " : "+ f"{stat:<8}" + "\n")
counter= counter+1 counter= counter+1
return botmessage return botmessage
+6 -1
View File
@@ -129,8 +129,11 @@ class SlashStats(commands.Cog):
for i in servers: for i in servers:
if(snippet.lower() in i.lower()): if(snippet.lower() in i.lower()):
if(snippet.lower()== i.lower()):
server = i server = i
break break
else:
server = i
return server return server
@@ -151,7 +154,9 @@ class SlashStats(commands.Cog):
deaths=killstats['deaths_while_equipped'] deaths=killstats['deaths_while_equipped']
if(deaths == 0): if(deaths == 0):
deaths = 1; deaths = 1;
botmessage += str("Deaths : " + str(killstats['deaths_while_equipped'])) + '\n' + str("Weapon : " + weaponname) + '\n' + str(str("weapon KD : " + str("{:0.2f}".format(killstats['kills']/deaths)))) botmessage += str(str("Deaths : " + str(killstats['deaths_while_equipped'])) + '\n' + str("Weapon : " + weaponname) +
'\n' + str(str("weapon KD : " + str("{:0.2f}".format(killstats['kills']/deaths)))) + '\n' + str("Deaths to : " + str(killstats['deaths'])))
else: else:
deaths=killstats['deaths'] deaths=killstats['deaths']
if(deaths == 0): if(deaths == 0):