· 5 years ago · Feb 24, 2021, 02:18 AM
1#Importing the modules
2import requests
3import time
4import discord
5from discord.ext import commands
6import asyncio
7
8
9#Telling us what the bot prefix will be
10client = commands.Bot(command_prefix=">")
11
12
13#Telling us when the bot is running
14@client.event
15async def on_ready():
16 print ("Bot is running")
17
18
19#Making a list of the players
20igns=[UUIDS]
21
22
23#Setting our api key
24api_key="KEY"
25
26
27#Setting empty dictionaries
28data={}
29previouswins={}
30wins={}
31realname={}
32
33
34#Getting the data
35for name in igns:
36 data[name]=requests.get("https://api.hypixel.net/player?uuid="+name+"&key="+api_key).json()
37
38 realname[name]={"displayname":data[name]["player"]["displayname"]}
39
40
41#Making the loop to track the wins
42async def my_task(ctx):
43 while True:
44 for name in igns:
45 #Fetching the stats that we need
46 try:
47 previouswins[name]={"solo":data[name]["player"]["stats"]["Duels"]["bridge_duel_wins"]}
48 except:
49 previouswins[name]={"solo":0}
50
51 try:
52 previouswins[name]["doubles"]=data[name]["player"]["stats"]["Duels"]["bridge_doubles_wins"]
53 except:
54 previouswins[name]["doubles"]=0
55
56 try:
57 previouswins[name]["teams"]=data[name]["player"]["stats"]["Duels"]["bridge_four_wins"]
58 except:
59 previouswins[name]["teams"]=0
60
61 try:
62 previouswins[name]["2v2v2v2"]=data[name]["player"]["stats"]["Duels"]["bridge_2v2v2v2_wins"]
63 except:
64 previouswins[name]["2v2v2v2"]=0
65
66 try:
67 previouswins[name]["3v3v3v3"]=data[name]["player"]["stats"]["Duels"]["bridge_3v3v3v3_wins"]
68 except:
69 previouswins[name]["3v3v3v3"]=0
70
71 try:
72 previouswins[name]["solo_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_duel"]
73 except:
74 previouswins[name]["solo_ws"]=0
75
76 try:
77 previouswins[name]["doubles_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_doubles"]
78 except:
79 previouswins[name]["doubles_ws"]=0
80
81 try:
82 previouswins[name]["teams_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_four"]
83 except:
84 previouswins[name]["teams_ws"]=0
85
86 try:
87 previouswins[name]["2v2v2v2_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_2v2v2v2"]
88 except:
89 previouswins[name]["2v2v2v2_ws"]=0
90
91 try:
92 previouswins[name]["3v3v3v3_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_3v3v3v3"]
93 except:
94 previouswins[name]["3v3v3v3_ws"]=0
95
96 try:
97 previouswins[name]["overall_ws"]=data[name]["player"]["stats"]["Duels"]["current_bridge_winstreak"]
98 except:
99 previouswins[name]["overall_ws"]=0
100
101 previouswins[name]["lastlogin"]=data[name]["player"]["lastLogin"]
102
103 previouswins[name]["lastlogout"]=data[name]["player"]["lastLogout"]
104
105
106 data[name]=requests.get("https://api.hypixel.net/player?uuid="+name+"&key="+api_key).json()
107
108
109 try:
110 wins[name]={"solo":data[name]["player"]["stats"]["Duels"]["bridge_duel_wins"]}
111 except:
112 wins[name]={"solo":0}
113
114 try:
115 wins[name]["doubles"]=data[name]["player"]["stats"]["Duels"]["bridge_doubles_wins"]
116 except:
117 wins[name]["doubles"]=0
118
119 try:
120 wins[name]["teams"]=data[name]["player"]["stats"]["Duels"]["bridge_four_wins"]
121 except:
122 wins[name]["teams"]=0
123
124 try:
125 wins[name]["2v2v2v2"]=data[name]["player"]["stats"]["Duels"]["bridge_2v2v2v2_wins"]
126 except:
127 wins[name]["2v2v2v2"]=0
128
129 try:
130 wins[name]["3v3v3v3"]=data[name]["player"]["stats"]["Duels"]["bridge_3v3v3v3_wins"]
131 except:
132 wins[name]["3v3v3v3"]=0
133
134 try:
135 wins[name]["solo_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_duel"]
136 except:
137 wins[name]["solo_ws"]=0
138
139 try:
140 wins[name]["doubles_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_doubles"]
141 except:
142 wins[name]["doubles_ws"]=0
143
144 try:
145 wins[name]["teams_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_four"]
146 except:
147 wins[name]["teams_ws"]=0
148
149 try:
150 wins[name]["2v2v2v2_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_2v2v2v2"]
151 except:
152 wins[name]["2v2v2v2_ws"]=0
153
154 try:
155 wins[name]["3v3v3v3_ws"]=data[name]["player"]["stats"]["Duels"]["current_winstreak_mode_bridge_3v3v3v3"]
156 except:
157 wins[name]["3v3v3v3_ws"]=0
158
159 try:
160 wins[name]["overall_ws"]=data[name]["player"]["stats"]["Duels"]["current_bridge_winstreak"]
161 except:
162 wins[name]["overall_ws"]=0
163
164 wins[name]["lastlogin"]=data[name]["player"]["lastLogin"]
165
166 wins[name]["lastlogout"]=data[name]["player"]["lastLogout"]
167
168
169 #Setting our channel
170 channel_name = "813922146022981663"
171
172
173 #Making all of the embeds
174 #Making the login embed
175 loginembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` logged on! Time to snipe >:)", color=0x028910)
176 loginembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813840197530812526/logon2.png")
177 loginembed.set_footer(text="• Made by Overcrow#0001")
178
179
180 #Making the logout embed
181 logoutembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` logged off! THEY SCARED FR!!", color=0xe3242b)
182 logoutembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813842652890005514/logout.png")
183 logoutembed.set_footer(text="• Made by Overcrow#0001")
184
185
186 #Making the winning a solo game embed
187 solowinembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` has won a game of solo bridge\n\n", color=0xFCE205)
188 solowinembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813846351350857828/stonks.png")
189 solowinembed.add_field(name=f"`Current Solo Winstreak: {wins[name]['solo_ws']}`", value=f"`Current Overall Winstreak: {wins[name]['overall_ws']}`")
190 solowinembed.set_footer(text="• Made by Overcrow#0001")
191
192
193 #Making the losing a solo game embed
194 sololoseembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` just lost their winstreak in solo bridge! WHAT A CLOWN LMAO!!", color=0xe3242b)
195 sololoseembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813848873164210206/L.png")
196 sololoseembed.add_field(name="`Current Winstreak:`", value="`0`")
197 sololoseembed.set_footer(text="• Made by Overcrow#0001")
198
199
200 #Making the winning a doubles game embed
201 doubleswinembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` has won a game of doubles bridge\n\n", color=0xFCE205)
202 doubleswinembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813846351350857828/stonks.png")
203 doubleswinembed.add_field(name=f"`Current Doubles Winstreak: {wins[name]['doubles_ws']}", value=f"`Current Overall Winstreak: {wins[name]['overall_ws']}`")
204 doubleswinembed.set_footer(text="• Made by Overcrow#0001")
205
206
207 #Making the losing a doubles game embed
208 doublesloseembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` just lost their winstreak in doubles bridge! WHAT A CLOWN LMAO!!", color=0xe3242b)
209 doublesloseembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813848873164210206/L.png")
210 doublesloseembed.add_field(name="`Current Winstreak:`", value="`0`")
211 doublesloseembed.set_footer(text="• Made by Overcrow#0001")
212
213
214 #Making the winning a teams game embed
215 teamswinembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` has won a game of 4v4 bridge\n\n", color=0xFCE205)
216 teamswinembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813846351350857828/stonks.png")
217 teamswinembed.add_field(name=f"`Current 4v4 Winstreak: {wins[name]['teams_ws']}`", value=f"`Current Overall Winstreak: {wins[name]['overall_ws']}`")
218 teamswinembed.set_footer(text="• Made by Overcrow#0001")
219
220
221 #Making the losing a teams game embed
222 teamsloseembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` just lost their winstreak in 4v4 bridge! WHAT A CLOWN LMAO!!", color=0xe3242b)
223 teamsloseembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813848873164210206/L.png")
224 teamsloseembed.add_field(name="`Current Winstreak:`", value="`0`")
225 teamsloseembed.set_footer(text="• Made by Overcrow#0001")
226
227
228 #Making the winning a 2v2v2v2 game embed
229 four_twowinembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` has won a game of 2v2v2v2 bridge\n\n", color=0xFCE205)
230 four_twowinembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813846351350857828/stonks.png")
231 four_twowinembed.add_field(name=f"`Current 2v2v2v2 Winstreak: {wins[name]['2v2v2v2_ws']}`", value=f"`Current Overall Winstreak: {wins[name]['overall_ws']}`")
232 four_twowinembed.set_footer(text="• Made by Overcrow#0001")
233
234
235 #Making the losing a 2v2v2v2 game embed
236 four_twoloseembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` just lost their winstreak in 2v2v2v2 bridge! WHAT A CLOWN LMAO!!", color=0xe3242b)
237 four_twoloseembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813848873164210206/L.png")
238 four_twoloseembed.add_field(name="`Current Winstreak:`", value="`0`")
239 four_twoloseembed.set_footer(text="• Made by Overcrow#0001")
240
241
242 #Making the winning a 3v3v3v3 game embed
243 four_threewinembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` has won a game of 3v3v3v3 bridge\n\n", color=0xFCE205)
244 four_threewinembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813846351350857828/stonks.png")
245 four_threewinembed.add_field(name=f"`Current 3v3v3v3 Winstreak: {wins[name]['3v3v3v3_ws']}`", value=f"`Current Overall Winstreak: {wins[name]['overall_ws']}`")
246 four_threewinembed.set_footer(text="• Made by Overcrow#0001")
247
248
249 #Making the losing a 3v3v3v3 game embed
250 four_threeloseembed=discord.Embed(title=f"The gamer `{realname[name]['displayname']}` just lost their winstreak in 3v3v3v3 bridge! WHAT A CLOWN LMAO!!", color=0xe3242b)
251 four_threeloseembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/813073683286327300/813848873164210206/L.png")
252 four_threeloseembed.add_field(name="`Current Winstreak:`", value="`0`")
253 four_threeloseembed.set_footer(text="• Made by Overcrow#0001")
254
255
256 #Telling us if they have won a game
257 if previouswins[name]["solo"]!=wins[name]["solo"]:
258 channel = client.get_channel(int(channel_name))
259 await channel.send(embed=solowinembed)
260
261 if wins[name]["overall_ws"]>=100:
262 channel = client.get_channel(int(channel_name))
263 await channel.send("<@&813156437684912168>")
264
265 if previouswins[name]["doubles"]!=wins[name]["doubles"]:
266 channel = client.get_channel(int(channel_name))
267 await channel.send(embed=doubleswinembed)
268
269 if wins[name]["overall_ws"]>=100:
270 channel = client.get_channel(int(channel_name))
271 await channel.send("<@&813156437684912168>")
272
273 if previouswins[name]["teams"]!=wins[name]["teams"]:
274 channel = client.get_channel(int(channel_name))
275 await channel.send(embed=teamswinembed)
276
277 if wins[name]["overall_ws"]>=100:
278 channel = client.get_channel(int(channel_name))
279 await channel.send("<@&813156437684912168>")
280
281 if previouswins[name]["2v2v2v2"]!=wins[name]["2v2v2v2"]:
282 channel = client.get_channel(int(channel_name))
283 await channel.send(embed=four_twowinembed)
284
285 if wins[name]["overall_ws"]>=100:
286 channel = client.get_channel(int(channel_name))
287 await channel.send("<@&813156437684912168>")
288
289 if previouswins[name]["3v3v3v3"]!=wins[name]["3v3v3v3"]:
290 channel = client.get_channel(int(channel_name))
291 await channel.send(embed=four_threewinembed)
292
293 if wins[name]["overall_ws"]>=100:
294 channel = client.get_channel(int(channel_name))
295 await channel.send("<@&813156437684912168>")
296
297
298 #Telling us if they lose a game
299 if previouswins[name]["solo_ws"]>wins[name]["solo_ws"]:
300 channel = client.get_channel(int(channel_name))
301 await channel.send(embed=sololoseembed)
302
303 if previouswins[name]["doubles_ws"]>wins[name]["doubles_ws"]:
304 channel = client.get_channel(int(channel_name))
305 await channel.send(embed=doublesloseembed)
306
307 if previouswins[name]["teams_ws"]>wins[name]["teams_ws"]:
308 channel = client.get_channel(int(channel_name))
309 await channel.send(embed=teamsloseembed)
310
311 if previouswins[name]["2v2v2v2_ws"]>wins[name]["2v2v2v2_ws"]:
312 channel = client.get_channel(int(channel_name))
313 await channel.send(embed=four_twoloseembed)
314
315 if previouswins[name]["3v3v3v3_ws"]>wins[name]["3v3v3v3_ws"]:
316 channel = client.get_channel(int(channel_name))
317 await channel.send(embed=four_threeloseembed)
318
319
320 #Telling us if they log on
321 try:
322 if previouswins[name]["lastlogin"]<wins[name]["lastlogin"]:
323 channel = client.get_channel(int(channel_name))
324 await channel.send(embed=loginembed)
325 except:
326 continue
327
328
329 #Telling us if they log off
330 try:
331 if previouswins[name]["lastlogout"]<wins[name]["lastlogout"]:
332 channel = client.get_channel(int(channel_name))
333 await channel.send(embed=logoutembed)
334 except:
335 continue
336
337
338 await asyncio.sleep(2)
339
340
341#Command to start the program
342@client.command()
343@commands.has_role("Overcrow")
344async def run(ctx):
345 client.loop.create_task(my_task(ctx))
346
347
348#The key to access the bot
349token = "bot_key"
350
351
352#Running the bot
353client.run(token)