Made weapon usages chart
This commit is contained in:
+8
-1
@@ -3,6 +3,8 @@ import asyncio
|
||||
import discord
|
||||
import requests
|
||||
|
||||
from Reuse.makePiechart import make_donut_chart
|
||||
|
||||
async def get_allplayer_stats(s, playerids, weaponid = "", weaponname= "",server = ""):
|
||||
tasks = []
|
||||
for playerid in playerids:
|
||||
@@ -24,7 +26,12 @@ async def get_allplayer_stats(s, playerids, weaponid = "", weaponname= "",server
|
||||
for stats in res:
|
||||
botmessage.add_field(name=f"Stats for {stats['Player']}", value=stats['message'])
|
||||
|
||||
return botmessage
|
||||
img_file = ""
|
||||
if(len(res) == 1):
|
||||
botmessage, img_file = make_donut_chart(botmessage, playerids, server)
|
||||
|
||||
|
||||
return botmessage, img_file
|
||||
|
||||
async def getstats(s, playerid, weaponid = "", server = ""):
|
||||
payload = {'player': playerid, 'weapon': weaponid, 'server': server}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
@@ -0,0 +1,99 @@
|
||||
import discord
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
import requests
|
||||
|
||||
def make_donut_chart(botmessage, playerid, server=""):
|
||||
plt.figure().clear()
|
||||
weapon = {
|
||||
"human_execution": "execution",
|
||||
"mp_weapon_car": "car",
|
||||
"mp_weapon_defender": "charge rifle",
|
||||
"mp_weapon_doubletake": "double take",
|
||||
"mp_weapon_epg": "epg",
|
||||
"mp_weapon_hemlok_smg": "volt",
|
||||
"mp_weapon_lstar": "lstar",
|
||||
"mp_weapon_r97": "r97",
|
||||
"mp_weapon_rspn101": "r-201",
|
||||
"mp_weapon_smart_pistol": "smart pistol",
|
||||
"mp_weapon_sniper": "kraber",
|
||||
"mp_weapon_vinson": "flatline",
|
||||
"mp_weapon_autopistol": "re-45 auto",
|
||||
"mp_weapon_alternator_smg": "alternator",
|
||||
"mp_weapon_frag_grenade": "frag grenade",
|
||||
"mp_weapon_g2": "g2",
|
||||
"mp_weapon_lmg": "spitfire",
|
||||
"mp_weapon_smr": "smr",
|
||||
"mp_weapon_softball": "softball",
|
||||
"mp_weapon_thermite_grenade": "firestar",
|
||||
"melee_pilot_emptyhanded": "melee",
|
||||
"mp_weapon_mastiff": "mastiff",
|
||||
"mp_weapon_mgl": "mgl",
|
||||
"mp_weapon_rspn101_og": "r-101",
|
||||
"mp_weapon_wingman": "wingman",
|
||||
"invalid": "invalid",
|
||||
"mp_weapon_arc_launcher": "thunderbolt",
|
||||
"mp_weapon_dmr": "dmr",
|
||||
"mp_weapon_grenade_electric_smoke": "electric smoke",
|
||||
"mp_weapon_pulse_lmg": "cold war",
|
||||
"mp_weapon_satchel": "satchel",
|
||||
"mp_weapon_shotgun": "eva-8 auto",
|
||||
"mp_weapon_shotgun_pistol": "mozambique",
|
||||
"mp_weapon_wingman_n": "wingman elite",
|
||||
"mp_weapon_grenade_gravity": "gravity star",
|
||||
"mp_weapon_grenade_sonar": "pulse blade",
|
||||
"mp_weapon_rocket_launcher": "archer",
|
||||
"outOfBounds": "outOfBounds",
|
||||
"mind_crime": "mind crime",
|
||||
"mp_weapon_esaw": "devotion",
|
||||
"fall": "fall",
|
||||
"mp_weapon_semipistol": "p2016",
|
||||
"mp_weapon_grenade_emp": "arc grenade",
|
||||
"mp_weapon_hemlok": "hemlok",
|
||||
"phase_shift": "phase shift"
|
||||
}
|
||||
|
||||
if(server != "All"):
|
||||
payload = {'player': playerid, 'server': server}
|
||||
else:
|
||||
payload = {'player': playerid}
|
||||
|
||||
response = requests.get('https://tone.sleepycat.date/v2/client/weapons', params=payload).json()
|
||||
|
||||
labels = []
|
||||
values = []
|
||||
total = 0
|
||||
dict_weapon_with_kills = {}
|
||||
for i in response.keys():
|
||||
weaponstats = response[i]
|
||||
dict_weapon_with_kills[i] = weaponstats['kills']
|
||||
total += weaponstats['kills']
|
||||
|
||||
other = 0
|
||||
for j in dict_weapon_with_kills:
|
||||
if(dict_weapon_with_kills[j] > total/20):
|
||||
try:
|
||||
labels.append(weapon[j])
|
||||
except KeyError:
|
||||
labels.append(j)
|
||||
values.append(dict_weapon_with_kills[j])
|
||||
else:
|
||||
other += dict_weapon_with_kills[j]
|
||||
|
||||
labels.append("other")
|
||||
values.append(other)
|
||||
|
||||
plt.style.use('ggplot')
|
||||
plt.title("weapons used by player")
|
||||
plt.pie(x=values, autopct='%.0f%%', startangle=90)
|
||||
plt.axis('equal')
|
||||
plt.legend(title="weapons" ,labels=labels, loc='upper left', bbox_to_anchor=(-0.17, 0.67, 0.5, 0.5))
|
||||
|
||||
circle = plt.Circle(xy=(0,0), radius=.1, facecolor='white')
|
||||
plt.gca().add_artist(circle)
|
||||
|
||||
plt.savefig("Reuse/images/player_weapons_used.png")
|
||||
img_file = discord.File("Reuse/images/player_weapons_used.png", filename="player_weapons_used.png")
|
||||
botmessage.set_image(url="attachment://player_weapons_used.png")
|
||||
|
||||
return botmessage, img_file
|
||||
+6
-3
@@ -45,10 +45,13 @@ class Stats(commands.Cog):
|
||||
return
|
||||
|
||||
async with aiohttp.ClientSession() as session:
|
||||
botmessage = await get_allplayer_stats(session, players.values(), weaponid, weaponname, server)
|
||||
print(players.values())
|
||||
botmessage, img_file = await get_allplayer_stats(session, players.values(), weaponid, weaponname, server)
|
||||
|
||||
|
||||
await ctx.send(embed=botmessage)
|
||||
if(img_file != ""):
|
||||
await ctx.send(file=img_file, embed=botmessage)
|
||||
else:
|
||||
await ctx.send(embed=botmessage)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_command_error(self, ctx, err):
|
||||
|
||||
Reference in New Issue
Block a user