-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
2064 lines (1705 loc) · 86.1 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
'''
Copyright (c) 2021 Kiet Pham <[email protected]>
This software/program has a copyright license, more information is in the 'LICENSE' file
IF YOU WANT TO USE/COPY/MODIFY/REPRODUCE/RE-DISTRIBUTE THIS PROGRAM, YOU MUST INCLUDE A COPY OF THE LICENSE
Author Name: Kiet Pham & Kyla Lee
Author Contact: [email protected]
Discord: CaptainVietnam6#0001
Discord Server: https://discord.gg/3z76p8H5yj
GitHub: https://github.com/CaptainVietnam6
Instagram: @itz_kietttttttttt
Program Status: ACTIVE - FINALISED
'''
#imports related to discord or discord packages
import discord
from discord.ext import commands
from discord.utils import get
from discord.ext.commands import cooldown
from discord.ext.commands import BucketType
from discord import FFmpegPCMAudio
#other important imports for system
import os
from os import system
import random
from random import randint
import time
import youtube_dl
import shutil
import asyncio
import PyDictionary
from PyDictionary import PyDictionary
#imports from other files
from keep_alive import keep_alive
from BOT_TOKEN import BOT_TOKEN
'''REFER TO NOTES TO UNDERSTAND CODE BETTER AND USE IT AS A INDEX TO SEE WHERE CERTAIN COMMAND CLASSES ARE'''
'''START OF IMPORTANT STUFF, DEALS WITH BOT AND INTERNAL COMMANDS'''
#INTENTS
intents = discord.Intents().all()
#PREFIX THE BOT USES
bot_prefixes = ["cv6 ", "CV6 ", "Cv6 ", "cV6 ", "cv6", "CV6", "Cv6", "cV6", "/"]
client = commands.Bot(command_prefix = bot_prefixes, intents = intents)
#REMOVES DEFAULT HELP COMMAND
@client.remove_command("help")
#LOAD cog
@client.command()
async def load(ctx, extension):
client.load_extension(f"cogs.{extension}")
#UNLOAD cog
@client.command()
async def unload(ctx, extension):
client.unload_extension(f"cogs.{extension}")
#RELOAD COG
@client.command()
async def reload(ctx, extension):
client.reload_extension(f"cogs.{extension}")
#CONNECTS COGS FILE
for filename in os.listdir("./cogs"):
if filename.endswith(".py"):
client.load_extension(f"cogs.{filename[:-3]}")
#ALERTS WHEN CV6's PlaygroundBot IS READY AND JOINS VC ON READY
@client.event
async def on_ready():
await client.change_presence(status = discord.Status.online, activity = discord.Game("Programmed by CaptainVietnam6#0001 in Python 3.8.2"))
await asyncio.sleep(float(1.5))
print("CV6's PlaygroundBot is ready")
#notifs for CV6's Playground server
channel = client.get_channel(816179144961818634)
await channel.send("CV6's PlaygroundBot is online")
#notifs for CV6's Bots server
channel = client.get_channel(812974446801059860)
await channel.send("CV6's PlaygroundBot is online")
#joins vc on ready
channel = client.get_channel(815933179378270208)
await channel.connect()
#RETURNS BOT'S PING IN MILLISECONDS
@client.command()
async def ping(ctx):
await ctx.send(f"Pong! {client.latency * 1000}ms")
print(f"ping: {client.latency * 1000}ms")
#SERVER COLOR HEX CODE REMINDER THINGY
@client.command(aliases = ["serhexcode"])
async def _serverhexcode(ctx):
await ctx.send("the server theme hex code is **#31a9ff** (this is the average colour of the gradient in our pfp)")
#defines bot color for use in embeds
bot_color = 0x31a9ff
'''END OF IMPORTANT STUFF, DEALS WITH BOT AND INTERNAL COMMANDS'''
'''START OF MODERATION COMMANDS'''
#chat purge command cleared out as suspicion of passing rate limit and causing issues
'''
#CHAT PURGE COMMAND
@client.command(aliases = ["clear", "Clear", "Purge", "purge"])
@commands.has_any_role("Admin", "Co-admin", "Moderator", "Staff", "staff-in-training")
@cooldown(1, 180, BucketType.default)
async def _chat_clear(ctx, amount = 100):
await ctx.channel.purge(limit = amount + 1)
await asyncio.sleep(float(1.5))
await ctx.send (f"cleared {amount} messages from chat")
await asyncio.sleep(float(0.5))
await ctx.send("Please wait 3 minutes before using this command again :)")
'''
#AUTOROLE AND MEMBER JOIN WELCOME
@client.event
async def on_member_join(member):
role = discord.utils.get(member.guild.roles, name = "Playground Member")
channel = client.get_channel(815915068654223371)
channel2 = client.get_channel(815935593191964713)
mention = member.mention
#autorole
await member.add_roles(role)
print("AutoRole: added a role to member")
#welcomes people in #welcome
await channel.send(f"{mention} Welcome to CaptainVietnam6's playground! please have a look in <#815945790341775391> for our rules and <#816253845758803992> to give yourself some roles!")
welcome_gifs = [
"https://media.giphy.com/media/xUPGGDNsLvqsBOhuU0/giphy.gif",
"https://media.giphy.com/media/3o6ZtpxSZbQRRnwCKQ/giphy.gif",
"https://media.giphy.com/media/H1TKAv5I5AOYcD7vxq/giphy.gif",
"https://media.giphy.com/media/bcKmIWkUMCjVm/giphy.gif",
"https://tenor.com/view/welcome-waving-hi-hello-baby-yoda-gif-16022297",
"https://tenor.com/view/hello-hi-duck-cute-kawaii-gif-11820295",
"https://tenor.com/view/penguin-hello-hi-hey-there-cutie-gif-3950966"
]
await channel.send(random.choice(welcome_gifs))
#alerts captain in #admin-discussions that someone joined
await channel2.send(f"<@467451098735837186> {mention} has joined the server")
#SEND BOT INVITE LINK COMMAND
@client.command(aliases = ["botinvite", "BotInvite", "Botinvite", "MBlink", "mblink"])
@cooldown(1, 60, BucketType.default)
async def _sendbotinvite(ctx):
print("Someone requested bot invite link\n")
await ctx.send("Sending bot's invite link!")
await asyncio.sleep(float(0.5))
await ctx.send("https://discord.com/api/oauth2/authorize?client_id=816184765065199667&permissions=0&scope=bot")
#MEMBER ID GET
@client.command(aliases = ["id", "ID", "Id"])
async def _get_member_id(ctx):
author_name = ctx.author.display_name
user_id = ctx.author.id
embed = discord.Embed(
title = "Requested User ID",
description = f"{user_id}",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#EMERGENCY BOT STOP COMMAND
@client.command(aliases = ["exit", "forceexit"])
@commands.has_any_role("Playground Owner")
async def _force_exit(ctx):
author_name = ctx.author.display_name
print(f"Emergency Stop/Exit command triggered by {author_name}")
await ctx.send(f"**Emergency Stop/Exit command triggered by {author_name}**")
#await asyncio.sleep(float(0.5))
#await client.change_presence(status = discord.Status.idle)
await asyncio.sleep(float(0.5))
exit()
#VOTEKICK COMMAND
@client.command(aliases = ["votekick", "Votekick"])
async def _votekick(ctx, user_tag, *, kick_reason):
thumbs_down = "👎"
thumbs_up = "👍"
embed = discord.Embed(
title = "Votekick Member",
description = f"Votekick for member {user_tag}\nReason: {kick_reason}",
color = bot_color
)
embed_message = await ctx.send(embed = embed)
await embed_message.add_reaction(thumbs_up)
await embed_message.add_reaction(thumbs_down)
#RULES COMMAND
@client.command(aliases = ["rules", "Rules"])
@cooldown(1, 30, BucketType.default)
async def _therules(ctx):
heart_emoji = "\u2764\ufe0f"
embed = discord.Embed(
title = "「Server rules」",
description = "1. Use the correct channels, although quickly using bot commands in <#815915612378890280> is fine.\n2. Don't spam, use common sense, enforced by everyone.\n3. No nsfw unless in <#816243097716391956>.\n4. Keep your nickname respectful and unoffensive.\n5. Religion and politics are complex and controversial topics therefore should be best kept out of this server.\n6. No racial slurs or other racially offensive terms and or anything resembling it or meant to carry the same meaning.\n7. Be respectful to others, no discrimination unless it's meant as a joke and both parties reconise it as one.\n8. Head over to <#816253845758803992> to select your custom roles.\n9. Use common sense and you'll be fine, don't try find loopholes in my rules and don't be a smartass about it.",
color = bot_color
)
embed.set_footer(text = f"Bot and rules made with love by CaptainVietnam6{heart_emoji} and Kyla {heart_emoji}")
embed.set_thumbnail(url = "https://cdn.discordapp.com/attachments/816175323766980618/836202005441544192/20210328_004613_0000.png")
await ctx.send(embed = embed)
#ADVERTISING RULES COMMAND
@client.command(aliases = ["advertise", "Advertise", "advertiserules", "Advertiserules", "AdvertiseRules"])
@cooldown(1, 20, BucketType.default)
async def _advertise_rules(ctx):
heart_emoji = "\u2764\ufe0f"
embed = discord.Embed(
title = "Advertising rules",
description = "1. No spamming advertisement.\n2. No sending it in multiple channels.\n3. Send advertisements only in <#816168971032068126>\n4. Send only one advertisement per day (24 hours)\n5. No advertising server raiding, or anything againse eula or tos",
color = bot_color
)
embed.set_footer(text = f"Bot and rules made with love by CaptainVietnam6 {heart_emoji} and Kyla {heart_emoji}")
await ctx.send(embed = embed)
#HELP COMMAND
@client.group(invoke_without_command = True, aliases = ["help", "Help"])
async def _help(ctx):
#sends the help directory in server channel
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Help command categories**",
description = "**These are the commands you can run to see the list of commands in each category.**\n\nFun commands: **cv6 help fun**\nMusic commands: **cv6 help music**\nSoundboard commands: **cv6 help sb**\nGame commands: **cv6 help game**\nEmoji commands: **cv6 help emoji**\nModeration commands: **cv6 help mod**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}, you should also recieve a DM with all the command lists")
await ctx.send(embed = embed)
#sends all help command lists in person's DMs
async def help_fun_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Fun/responses related commands list**",
description = "**These are commands that relate to fun or responses features of CV6's PlaygroundBot**\n\n8ball command: **cv6 8ball {question}**\nDice command: **cv6 dice**\nFranklin roast meme: **/loc**\nMeme command: **cv6 meme**\nHow-to-use-google: **cv6 google**\nServer daddy: **cv6 daddy**\nBenice to staff: **cv6 benice**\nSend thigh pics: **cv6 thighpics**\nZeroTwo GIF: **cv6 zerotwo**\nDictionary: **cv6 dictionary {word}**\nSynonyms: **cv6 synonym {word}**\nAntonyms: **cv6 antonym {word}**\nRepeat after user: **cv6 repeat**\nWhat-a-legend: **cv6 legend**\nCapt Twitch link: **cv6 twitch**\nEw lightmode: **cv6 lightmode**\nReply spam: **cv6 spam {word}**\nPrint fancy text: **cv6 print {word}**\nSpeedrun profile: **cv6 speedrun {user name}**\nShut up GIF: **cv6 shut**\nDweam: **cv6 dweam**\nSends nothing: **cv6 nothing**\nDiscordmod meme: **cv6 discordmod**\nCusswords: **cv6 cusswords**\nFunny Pinged: **cv6 pinged**\nFair: **fair**\nPog: **pog**\nreee: **cv6 reee**\nSponsorMe: **cv6 sponsorme**\nCalculate Pi: **cv6 pi {enter digits}**\nDream banned lmao: **cv6 dreamban**\nDM user: **cv6 dm {tag person} {message}**\nFuck me: **cv6 fuckme**\nRandomly pings someone: **cv6 someone**\nSend profile of a bitch: **cv6 bitch**\nPenis command: **cv6 penis**\nVagina command: **cv6 vagina**\nI like trains: **cv6 trains**",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.author.send(embed = embed)
async def help_music_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Music related commands list**",
description = "**These are commands that relate to music features of CV6's PlaygroundBot**\n\nJoin VC: **cv6 join**\nLeave VC: **cv6 leave**\nPlay song: **cv6 play (youtube url)**\nQueue song: **cv6 queue (youtube url)**\nPause music: **cv6 pause**\nResume music: **cv6 resume**\nStop music: **cv6 stop**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.author.send(embed = embed)
async def help_sb_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Soundboard related commands list**",
description = "**These are commands that relate to voice channel soundboard features of CV6's PlaygroundBot**\n\nJoin VC: **cv6 join**\nLeave VC: **cv6 leave**\nAirhorn: **cv6 sb airhorn**\nAli-a intro: **cv6 sb alia**\nBegone thot: **cv6 sb begonethot**\nDamn son where'd you find this: **cv6 sb damnson**\nDankstorm: **cv6 sb dankstorm**\nDeez nuts: **cv6 sb deeznuts**\nDeja Vu: **cv6 sb dejavu**\nLook at this dude: **cv6 sb dis_dude**\nAnother fag left the chat: **cv6 sb fleft**\nFart: **cv6 sb fart**\nHah gaaayyy: **cv6 sb hahgay**\nIt's called hentai and it's art: **cv6 sb henart**\nIlluminati song: **cv6 sb illuminati**\nBitch Lasagna: **cv6 sb lasagna**\nLoser: **cv6 sb loser**\nNoob: **cv6 sb noob**\nOof sound: **cv6 sb oof**\nPickle Rick: **cv6 sb picklerick**\nNice: **cv6 sb nice**\nWhy don't we just relax and turn on the radio: **cv6 sb radio**\nRick roll: **cv6 sb rickroll**\nThis is sparta: **cv6 sb sparta**\nTitanic flute fail: **cv6 sb titanic**\nGTA V Wasted: **cv6 sb wasted**\nWide Putin: **cv6 wideputin**\nWubba lubba dub dub: **cv6 sb wubba**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.author.send(embed = embed)
async def help_game_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Game related commands list**",
description = "**These are commands that relate to game features of CV6's PlaygroundBot**\n\n8ball command: **cv6 8ball (your question)**\nDice command, returns 1-6: **cv6 dice**\nFranklin roast meme: **cv6 loc**\nRock Paper Scissors: **cv6 rps (rock, paper, or scissors)**\nMeme command: **cv6 meme**\nHentai command: **cv6 hentai**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.author.send(embed = embed)
async def help_emoji_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Emoji related commadns list**",
description = "**The commands with an $ have an auto detection feature to detect a certain keyword in your message**\n\nSo fake$: **cv6 fake**\nX to doubt$: **cv6 doubt**\nStonks$: **cv6 stonks**\nSimp pill$: **cv6 simp**\nUwU*: **cv6 uwu**\nWat: **cv6 wat**\nAdmin abooz: **cv6 abooz**\n60s Timer$: **cv6 timer**\nThats racist$: **cv6 racist**\nPolice$: **cv6 police**\nF-spam emoji: **cv6 fpsam**\nClap emoji: **cv6 clap**\nYou tried: **cv6 youtried**\nPython logo: **cv6 python**\nPepe pog: **cv6 pepepog**\nGay flag$: **cv6 gay**\nBisexual flag$: **cv6 bisexual**\nTrans flag$: **cv6 trans**",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.author.send(embed = embed)
async def help_mod_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Moderation related commands list**",
description = "**These are commands that relate to moderation features of CV6's PlaygroundBot, most require administrative powers**\n\nWelcome command: **cv6 welcome**\nDescription command: **cv6 description**\nBot description: **cv6 botdesc**\nUser ID: **cv6 id {tag user}**\nKick command: **cv6 kick (tag member, reason)**\nBan command: **cv6 ban (tag member, reason)**\nVotekick: **cv6 votekick (tag member) (reason)**\nPurge/clear chat: **cv6 clear (number of messages)**\nBot invite link: **cv6 botinvite**\nTime command: **cv6 time**\nHelp directory: **cv6 help**",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.author.send(embed = embed)
#sends each list to requester's DM
await asyncio.sleep(float(0.25))
await help_fun_dm() #sends fun commands list
await asyncio.sleep(float(0.25))
await help_music_dm() #sends music commands list
await asyncio.sleep(float(0.25))
await help_sb_dm() #sends soundboard command list
await asyncio.sleep(float(0.25))
await help_game_dm() #sends Game commands list
await asyncio.sleep(float(0.25))
await help_emoji_dm() #sends emoji commands list
await asyncio.sleep(float(0.25))
await help_mod_dm() #sends mod commands list
await asyncio.sleep(float(0.25))
await ctx.author.send("Above are all the command lists for CV6's PlaygroundBot, keep in mind this DM feature is still **in beta** and will be subject to changes and updates without further notice")
await ctx.send("I sent you a DM with all the command lists")
#HELP - FUN COMMANDS
@_help.command(aliases = ["fun", "Fun"])
async def _help_fun(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Fun/responses related commands list**",
description = "**These are commands that relate to fun or responses features of CV6's PlaygroundBot**\n\n8ball command: **cv6 8ball {question}**\nDice command: **cv6 dice**\nFranklin roast meme: **/loc**\nMeme command: **cv6 meme**\nHow-to-use-google: **cv6 google**\nServer daddy: **cv6 daddy**\nBenice to staff: **cv6 benice**\nSend thigh pics: **cv6 thighpics**\nZeroTwo GIF: **cv6 zerotwo**\nDictionary: **cv6 dictionary {word}**\nSynonyms: **cv6 synonym {word}**\nAntonyms: **cv6 antonym {word}**\nRepeat after user: **cv6 repeat**\nWhat-a-legend: **cv6 legend**\nCapt Twitch link: **cv6 twitch**\nEw lightmode: **cv6 lightmode**\nReply spam: **cv6 spam {word}**\nPrint fancy text: **cv6 print {word}**\nSpeedrun profile: **cv6 speedrun {user name}**\nShut up GIF: **cv6 shut**\nDweam: **cv6 dweam**\nSends nothing: **cv6 nothing**\nDiscordmod meme: **cv6 discordmod**\nCusswords: **cv6 cusswords**\nFunny Pinged: **cv6 pinged**\nFair: **fair**\nPog: **pog**\nreee: **cv6 reee**\nSponsorMe: **cv6 sponsorme**\nCalculate Pi: **cv6 pi {enter digits}**\nDream banned lmao: **cv6 dreamban**\nDM user: **cv6 dm {tag person} {message}**\nFuck me: **cv6 fuckme**\nRandomly pings someone: **cv6 someone**\nSend profile of a bitch: **cv6 bitch**\nPenis command: **cv6 penis**\nVagina command: **cv6 vagina**\nI like trains: **cv6 trains**",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#HELP - MUSIC COMMANDS
@_help.command(aliases = ["music", "Music"])
async def _help_music(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Music related commands list**",
description = "**These are commands that relate to music features of CV6's PlaygroundBot**\n\nJoin VC: **cv6 join**\nLeave VC: **cv6 leave**\nPlay song: **cv6 play (youtube url)**\nQueue song: **cv6 queue (youtube url)**\nPause music: **cv6 pause**\nResume music: **cv6 resume**\nStop music: **cv6 stop**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#HELP - SOUNDBOARD COMMANDS
@_help.command(aliases = ["sb", "Sb", "SB", "soundboard", "SoundBoard", "Soundboard"])
async def _help_soundboard(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Soundboard related commands list**",
description = "**These are commands that relate to voice channel soundboard features of CV6's PlaygroundBot**\n\nJoin VC: **cv6 join**\nLeave VC: **cv6 leave**\nAirhorn: **cv6 sb airhorn**\nAli-a intro: **cv6 sb alia**\nBegone thot: **cv6 sb begonethot**\nDamn son where'd you find this: **cv6 sb damnson**\nDankstorm: **cv6 sb dankstorm**\nDeez nuts: **cv6 sb deeznuts**\nDeja Vu: **cv6 sb dejavu**\nLook at this dude: **cv6 sb dis_dude**\nAnother fag left the chat: **cv6 sb fleft**\nFart: **cv6 sb fart**\nHah gaaayyy: **cv6 sb hahgay**\nIt's called hentai and it's art: **cv6 sb henart**\nIlluminati song: **cv6 sb illuminati**\nBitch Lasagna: **cv6 sb lasagna**\nLoser: **cv6 sb loser**\nNoob: **cv6 sb noob**\nOof sound: **cv6 sb oof**\nPickle Rick: **cv6 sb picklerick**\nNice: **cv6 sb nice**\nWhy don't we just relax and turn on the radio: **cv6 sb radio**\nRick roll: **cv6 sb rickroll**\nThis is sparta: **cv6 sb sparta**\nTitanic flute fail: **cv6 sb titanic**\nGTA V Wasted: **cv6 sb wasted**\nWide Putin: **cv6 wideputin**\nWubba lubba dub dub: **cv6 sb wubba**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#HELP - GAME COMMANDS
@_help.command(aliases = ["game", "Game"])
async def _help_game(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Game related commands list**",
description = "**These are commands that relate to game features of CV6's PlaygroundBot**\n\n8ball command: **cv6 8ball (your question)**\nDice command, returns 1-6: **cv6 dice**\nFranklin roast meme: **cv6 loc**\nRock Paper Scissors: **cv6 rps (rock, paper, or scissors)**\nMeme command: **cv6 meme**\nHentai command: **cv6 hentai**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#HELP - EMOJI COMMANDS
@_help.command(aliases = ["emoji", "Emoji"])
async def _help_emoji(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Emoji related commadns list**",
description = "**The commands with an $ have an auto detection feature to detect a certain keyword in your message**\n\nSo fake$: **cv6 fake**\nX to doubt$: **cv6 doubt**\nStonks$: **cv6 stonks**\nSimp pill$: **cv6 simp**\nUwU*: **cv6 uwu**\nWat: **cv6 wat**\nAdmin abooz: **cv6 abooz**\n60s Timer$: **cv6 timer**\nThats racist$: **cv6 racist**\nPolice$: **cv6 police**\nF-spam emoji: **cv6 fpsam**\nClap emoji: **cv6 clap**\nYou tried: **cv6 youtried**\nPython logo: **cv6 python**\nPepe pog: **cv6 pepepog**\nGay flag$: **cv6 gay**\nBisexual flag$: **cv6 bisexual**\nTrans flag$: **cv6 trans**",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#HELP - MODERATION COMMANDS
@_help.command(aliases = ["mod", "Mod", "moderation", "Moderation"])
async def _help_moderation(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Moderation related commands list**",
description = "**These are commands that relate to moderation features of CV6's PlaygroundBot, most require administrative powers**\n\nWelcome command: **cv6 welcome**\nDescription command: **cv6 description**\nBot description: **cv6 botdesc**\nUser ID: **cv6 id {tag user}**\nKick command: **cv6 kick (tag member, reason)**\nBan command: **cv6 ban (tag member, reason)**\nVotekick: **cv6 votekick (tag member) (reason)**\nPurge/clear chat: **cv6 clear (number of messages)**\nBot invite link: **cv6 botinvite**\nTime command: **cv6 time**\nHelp directory: **cv6 help**",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#ANTI-SLUR & SLUR DETECTION COMMAND
'''END OF MODERATION COMMANDS'''
'''START OF TEST-BED COMMANDS OR COMMANDS FOR TESTING'''
#NONE OF THESE COMMANDS ARE ACTUAL USEFUL COMMANDS, JUST HERE FOR TESTING
#TEST COMMAND
@client.command(aliases = ["ban", "Ban", "kick", "Kick", "mute", "Mute"])
async def _repeat(ctx):
await ctx.send("shut the fuck up.")
#TEST COMMAND 2
@client.command(aliases = ["website", "Website"])
async def _captswebsite(ctx):
await asyncio.sleep(float(0.1))
await ctx.send("Sending website...")
await asyncio.sleep(float(1.5))
await ctx.send("https://Basic-Website-7.itzkiettttt.repl.co")
#TEST TO SEE WTF DISCORD.MEMBER IS
@client.command(aliases = ["dmemtest"])
async def _wtf_is_discord_member(ctx, member: discord.Member, *, user_message):
channel = await member.create_dm()
await channel.send(user_message)
print(channel)
print(member)
print(ctx)
await ctx.send(channel)
await ctx.send(member)
await ctx.send(ctx)
#TEST TO SEE IF YOU CAN SEND A MESSAGE TO USER UPON COMMAND BEING CALLED
@client.command(aliases = ["helptestcommand"])
async def _help_test_command(ctx):
#channel = await ctx.author.create_dm()
async def help_list_dm():
author_name = ctx.author.display_name
embed = discord.Embed(
title = "Title",
description = "Command list goes here",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
#channel.send(embed = embed)
await ctx.author.send(embed = embed)
await help_list_dm()
'''END OF TEST-BED COMMANDS OR COMMANDS FOR TESTING'''
'''START OF MUSIC AND VOICE CHANNEL RELATED COMMANDS'''
#VOICE CHANNEL JOIN
@client.command(pass_context = True, aliases = ["Join", "join", "j", "J", "connect", "Connect"])
async def _join(ctx):
global voice
channel = ctx.message.author.voice.channel
voice = get(client.voice_clients, guild = ctx.guild)
if voice and voice.is_connected():
await voice.move_to(channel)
await ctx.send("I have joined your voice channel")
print("CV6's PlaygroundBot joined a voice channel")
else:
await channel.connect()
await ctx.send("I have joined your voice channel")
print("CV6's PlaygroundBot joined a voice channel")
#VOICE CHANNEL LEAVE
@client.command(pass_context = True, aliases = ["Leave", "leave", "L", "l", "Disconnect", "disconnect"])
async def _leave(ctx):
channel = ctx.message.author.voice.channel
voice = get(client.voice_clients, guild = ctx.guild)
if voice and voice.is_connected():
await voice.disconnect()
print(f"CV6's PlaygroundBot is disconnected from {channel} voice channel")
await ctx.send(f"I have left the '{channel}' voice channel")
else:
print("command given to leave voice channel but bot wasn't in a voice channel")
await ctx.send("Invalid command: the bot wasn't in any voice channels")
#VOICE CHANNEL PLAY YOUTUBE URL
@client.command(pass_context = True, aliases = ["play", "Play", "p", "P"])
async def _play(ctx, url: str):
def check_queue():
Queue_infile = os.path.isdir("./Queue")
if Queue_infile is True:
DIR = os.path.abspath(os.path.realpath("Queue"))
length = len(os.listdir(DIR))
still_queue = length - 1 #outprints how many are left in queue after new song is played
try:
first_file = os.listdir(DIR)[0] #first file inside directory
except:
print("No more songs left in queue\n")
queues.clear
return
main_location = os.path.dirname(os.path.realpath(__file__))
song_path = os.path.abspath(os.path.realpath("Queue") + "//" + first_file)
if length != 0:
print("Song finished playing, loading next song\n")
print(f"Number of songs still in queue: {still_queue}")
is_song_there = os.path.isfile("song.mp3")
if is_song_there:
os.remove("song.mp3")
shutil.move(song_path, main_location) #moves queued song to main directory
for file in os.listdir("./"):
if file.endswith(".mp3"):
os.rename(file, "song.mp3")
vcvoice.play(discord.FFmpegPCMAudio("song.mp3"), after = lambda e: check_queue()) #plays the song
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
else: #if queues = 0, clearns it
queues.clear()
return
else: #is there is no queue folder
queues.clear()
print("No songs queued after the last song\n")
#end of queue section thingy for play command
is_song_there = os.path.isfile("song.mp3")
try: #code will try to remove song, if it's playing then no remove
if is_song_there:
os.remove("song.mp3")
queues.clear()
print("Removed an old song file")
except PermissionError:
print("Failed to remove song file, song file in use")
ctx.send("Error: song file cannot be removed because it's currently playing")
return
#this section is here to remove the old queue folder
Queue_infile = os.path.isdir("./Queue")
try:
Queue_folder = "./Queue"
if Queue_infile is True: #if there is an old queue file, it will try to remove it
print("Removed old queue folder")
shutil.rmtree(Queue_folder)
except:
print("No old queue folder")
#rest of play command to play songs
await ctx.send("Getting everything ready to play, this may take a bit to load")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
ydl_opts = {
"format": "bestaudio/best",
"postprocessors": [{
"key": "FFmpegExtractAudio",
"preferredcodec": "mp3",
"preferredquality": "512",
}], #code above to specify options in ydl
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
print("Downloaded audio file\n")
ydl.download([url])
#renames file name
for file in os.listdir("./"): #./ for current directory
if file.endswith(".mp3"):
audio_file_name = file
print(f"Renamed File {file}\n")
os.rename(file, "song.mp3")
#checks to see if audio has finished playing, after then it will print
vcvoice.play(discord.FFmpegPCMAudio("song.mp3"), after = lambda e: check_queue())
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
new_name = audio_file_name.rsplit("-", 2)
await ctx.send(f"Now Playing {new_name}")
print("playing\n")
#VOICE CHANNEL MUSIC PAUSE COMMAND
@client.command(pass_context = True, aliases = ["pause", "Pause"])
async def _pause(ctx):
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
if vcvoice and voice.is_playing():
vcvoice.pause()
print("Music paused")
await ctx.send("Music paused")
else:
print("Music is not playing but there was a request to pause music")
await ctx.send("There was no music wasn't playing so i can't pause it")
#VOICE CHANNEL MUSIC RESUME COMMAND
@client.command(pass_context = True, aliases = ["resume", "Resume"])
async def _resume(ctx):
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
if vcvoice and voice.is_paused():
vcvoice.resume()
print("Music resumed")
await ctx.send("Music has been resumed pogs")
else:
print("Music was not paused but a request was sent for music pause")
await ctx.send("Music was playing, can't be resumed if it wasn't paused")
#VOICE CHANNEL MUSIC STOP COMMAND
@client.command(pass_context = True, aliases = ["stop", "Stop"])
async def _stop(ctx):
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
queues.clear() #clears queue when stop command ran
if vcvoice and voice.is_playing():
vcvoice.stop()
print("Music stopped")
await ctx.send("Music stopped")
else:
print("Music could not be stopped")
await ctx.send("Music can't be stopped if there isn't music playing")
#VOICE CHANNEL MUSIC QUEUE
#this command is for music to be queued up if you use the "cv6 play" multiple times while music is still playing
queues = {}
@client.command(pass_context = True, aliases = ["Queue", "queue", "Q", "q"])
async def _queue(ctx, url: str):
Queue_infile = os.path.isdir("./Queue")
if Queue_infile is False:
os.mkdir("Queue") #sees if there is any song files in queue, if there is any then it counts them
DIR = os.path.abspath(os.path.realpath("Queue"))
queue_num = len(os.listdir(DIR)) #gets/counts ammount of files in the queue
queue_num += 1 #adds another to queue
add_queue = True
while add_queue:
if queue_num in queues:
queue_num += 1
else:
add_queue = False
queues[queue_num] = queue_num
queue_path = os.path.abspath(os.path.realpath("Queue") + f"//song{queue_num}.%(ext)s")
#takes the real path of song in queue and number of it
ydl_opts = {
"format": "bestaudio/best",
"outtmpl" : queue_path,
"postprocessors": [{
"key": "FFmpegExtractAudio",
"preferredcodec": "mp3",
"preferredquality": "512",
}], #code above to specify options in ydl
}
#downloads song and puts into queue path above ^
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
print("Downloaded audio file\n")
ydl.download([url])
await ctx.send("Adding song " + str(queue_num) + " to the queue")
print("added a song to queue\n")
'''END OF MUSIC AND VOICE CHANNEL RELATED COMMANDS'''
'''START OF VOICE CHANNEL SOUNDBOARD COMMANDS'''
#old soundboard command, this is a singular command and doesn't rely on groups and subcommands
'''
@client.command(pass_context = True, aliases = ["airhorn", "Airhorn"])
async def _soundboard_airhorn(ctx):
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/airhorn.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
'''
#soundboard command format; copy for future use, switch out airhorn with whatever, 2nd one already has that done
'''
@_soundboard.command(aliases = ["airhorn", "Airhorn"])
async def _soundboard_airhorn(ctx):
await ctx.send("Playing **airhorn** sound effect from soundboard")
print("\nPlayed airhorn sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/airhorn.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
@_soundboard.command(aliases = [""])
async def _soundboard_(ctx):
await ctx.send("Playing **** sound effect from soundboard")
print("\nPlayed sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
'''
#SOUNDBOARD COMMAND GROUP & HELP
@client.group(invoke_without_command = True, aliases = ["sb", "SB", "soundboard", "Soundboard", "SoundBoard"])
async def _soundboard(ctx):
author_name = ctx.author.display_name
embed = discord.Embed(
title = "**Soundboard commands list**",
description = "**These are commands that relate to voice channel soundboard features of CV6's PlaygroundBot**\n\nJoin VC: **cv6 join**\nLeave VC: **cv6 leave**\nAirhorn: **cv6 sb airhorn**\nAli-a intro: **cv6 sb alia**\nBegone thot: **cv6 sb begonethot**\nDamn son where'd you find this: **cv6 sb damnson**\nDankstorm: **cv6 sb dankstorm**\nDeez nuts: **cv6 sb deeznuts**\nDeja Vu: **cv6 sb dejavu**\nLook at this dude: **cv6 sb dis_dude**\nAnother fag left the chat: **cv6 sb fleft**\nFart: **cv6 sb fart**\nHah gaaayyy: **cv6 sb hahgay**\nIt's called hentai and it's art: **cv6 sb henart**\nIlluminati song: **cv6 sb illuminati**\nBitch Lasagna: **cv6 sb lasagna**\nLoser: **cv6 sb loser**\nNoob: **cv6 sb noob**\nOof sound: **cv6 sb oof**\nPickle Rick: **cv6 sb picklerick**\nNice: **cv6 sb nice**\nWhy don't we just relax and turn on the radio: **cv6 sb radio**\nRick roll: **cv6 sb rickroll**\nThis is sparta: **cv6 sb sparta**\nTitanic flute fail: **cv6 sb titanic**\nGTA V Wasted: **cv6 sb wasted**\nWide Putin: **cv6 wideputin**\nWubba lubba dub dub: **cv6 sb wubba**\n",
color = bot_color
)
embed.set_footer(text = f"Requested by {author_name}")
await ctx.send(embed = embed)
#SB AIRHORN
@_soundboard.command(aliases = ["airhorn", "Airhorn"])
async def _soundboard_airhorn(ctx):
await ctx.send("Playing **airhorn** sound effect from soundboard")
print("\nPlayed airhorn sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/airhorn.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB ALI-A SOUNDTRACK
@_soundboard.command(aliases = ["ali_a", "alia", "Ali-a", "Alia"])
async def _soundboard_ali_a(ctx):
await ctx.send("Playing **ali_a** sound effect from soundboard")
print("\nPlayed ali_a sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/ali_a.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB BEGONE THOT
@_soundboard.command(aliases = ["begone_thot", "begonethot", "Begone_thot", "Begonethot"])
async def _soundboard_begone_thot(ctx):
await ctx.send("Playing **begone_thot** sound effect from soundboard")
print("\nPlayed begone_thot sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/begone_thot.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB DAMN SON WHERE'D U FIND THIS
@_soundboard.command(aliases = ["damn_son", "Damn_son", "damnson", "Damnson"])
async def _soundboard_damn_son(ctx):
await ctx.send("Playing **damn_son** sound effect from soundboard")
print("\nPlayed damn_son sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/damn_son.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB DANKSTORM
@_soundboard.command(aliases = ["dankstorm", "Dankstorm"])
async def _soundboard_dankstorm(ctx):
await ctx.send("Playing **dankstorm** sound effect from soundboard")
print("\nPlayed dankstorm sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/dankstorm.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB DEEZNUTS
@_soundboard.command(aliases = ["deez_nuts", "deeznuts", "Deez_nuts", "Deeznuts"])
async def _soundboard_deez_nuts(ctx):
await ctx.send("Playing **deez_nuts** sound effect from soundboard")
print("\nPlayed deez_nuts sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/deez_nuts.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB DEJA VU
@_soundboard.command(aliases = ["deja_vu", "dejavu", "Deja_vu", "Dejavu"])
async def _soundboard_deja_vu(ctx):
await ctx.send("Playing **deja_vu** sound effect from soundboard")
print("\nPlayed deja_vu sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/deja_vu.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB LOOK AT THIS DUDE
@_soundboard.command(aliases = ["dis_dude", "this_dude", "disdude", "thisdude", "Dis_dude", "This_dude", "Disdude", "Thisdude" ])
async def _soundboard_this_dude(ctx):
await ctx.send("Playing **dis_dude** sound effect from soundboard")
print("\nPlayed dis_dude sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/dis_dude.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB ANOTHER FAG LEFT THE CHAT
@_soundboard.command(aliases = ["f_left", "fleft", "F_left", "Fleft"])
async def _soundboard_f_left(ctx):
await ctx.send("Playing **f_left** sound effect from soundboard")
print("\nPlayed f_left sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/f_left.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB FART
@_soundboard.command(aliases = ["fart", "Fart"])
async def _soundboard_fart(ctx):
await ctx.send("Playing **fart** sound effect from soundboard")
print("\nPlayed fart sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/fart.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB HAH GAAAYY
@_soundboard.command(aliases = ["hah_gay", "hahgay", "Hah_gay", "Hahgay"])
async def _soundboard_hah_gay(ctx):
await ctx.send("Playing **hah_gay** sound effect from soundboard")
print("\nPlayed hah_gay sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/hah_gay.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB IT'S CALLED HENTAI, AND IT'S ART
@_soundboard.command(aliases = ["hen_art", "henart", "Hen_art", "Henart"])
async def _soundboard_hentai_art(ctx):
await ctx.send("Playing **henart (hentai art)** sound effect from soundboard")
print("\nPlayed henart sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/hen_art.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB ILLUMINATI X-FILES SOUNDTRACK
@_soundboard.command(aliases = ["illuminati", "Illuminati"])
async def _soundboard_illuminati(ctx):
await ctx.send("Playing **illuminati** sound effect from soundboard")
print("\nPlayed illuminati sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/illuminati.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB BITCH LASAGNA
@_soundboard.command(aliases = ["lasagna", "Lasagna", "bitch_lasagna", "Bitch_lasagna"])
async def _soundboard_bitch_lasagna(ctx):
await ctx.send("Playing **bitch_lasagna** sound effect from soundboard")
print("\nPlayed bitch_lasagna sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/lasagna.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB LOOSER
@_soundboard.command(aliases = ["looser", "Looser", "loser", "Loser"])
async def _soundboard_loser(ctx):
await ctx.send("Playing **loser** sound effect from soundboard")
print("\nPlayed loser sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/loser.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB NOOB
@_soundboard.command(aliases = ["noob", "Noob"])
async def _soundboard_noob(ctx):
await ctx.send("Playing **noob** sound effect from soundboard")
print("\nPlayed noob sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/noob.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB OOF SOUND
@_soundboard.command(aliases = ["oof", "Oof"])
async def _soundboard_oof(ctx):
await ctx.send("Playing **oof** sound effect from soundboard")
print("\nPlayed oof sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/oof.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB I'M PICKLE RICKKKK
@_soundboard.command(aliases = ["pickle_rick", "Pickle_rick", "picklerick", "Picklerick"])
async def _soundboard_pickcle_rick(ctx):
await ctx.send("Playing **pickle_rick** sound effect from soundboard")
print("\nPlayed pickle_rick sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/pickle_rick.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB *POP* NICE
@_soundboard.command(aliases = ["nice", "Nice"])
async def _soundboard_nice(ctx):
await ctx.send("Playing **nice** sound effect from soundboard")
print("\nPlayed nice sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/nice.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB WHY DON'T WE JUST RELAX, TURN ON THE RADIO, WOULD YOU LIKE AM OR FM
@_soundboard.command(aliases = ["radio", "Radio"])
async def _soundboard_radio(ctx):
await ctx.send("Playing **radio** sound effect from soundboard")
print("\nPlayed radio sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/radio.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB RICKROLL
@_soundboard.command(aliases = ["rick_roll", "Rick_roll", "rickroll", "Rickroll"])
async def _soundboard_rick_roll(ctx):
await ctx.send("Playing **rick_roll** sound effect from soundboard")
print("\nPlayed rick_roll sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/rick_roll.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB SPARTA
@_soundboard.command(aliases = ["sparta", "Sparta"])
async def _soundboard_sparta(ctx):
await ctx.send("Playing **sparta** sound effect from soundboard")
print("\nPlayed sparta sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/sparta.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB TITANIC FLUTE MEME
@_soundboard.command(aliases = ["titanic", "Titanic"])
async def _soundboard_titanic(ctx):
await ctx.send("Playing **titanic** sound effect from soundboard")
print("\nPlayed titanic sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/titanic.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB GTAV WASTED SOUND
@_soundboard.command(aliases = ["wasted", "Wasted"])
async def _soundboard_wasted(ctx):
await ctx.send("Playing **wasted** sound effect from soundboard")
print("\nPlayed wasted sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/wasted.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#WIDE PUTIN SONG
@_soundboard.command(aliases = ["wideputin", "Wideputin"])
async def _soundboard_wideputin(ctx):
await ctx.send("Playing **wideputin** sound effect from soundboard")
print("\nPlayed wideputin sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/wideputin.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
#SB RICK & MORTY WUBBA LUBBA DUB DUB
@_soundboard.command(aliases = ["wubba", "Wubba"])
async def _soundboard_wubba(ctx):
await ctx.send("Playing **wubba** sound effect from soundboard")
print("\nPlayed wubba sound effect\n")
vcvoice = discord.utils.get(client.voice_clients, guild = ctx.guild)
vcvoice.play(discord.FFmpegPCMAudio("soundboard/wubba.mp3"))
vcvoice.source = discord.PCMVolumeTransformer(vcvoice.source)
vcvoice.source.value = 0.05
'''END OF VOICE CHANNEL SOUNDBOARD COMMANDS'''
'''START OF GAME RELATED COMMANDS'''
#8BALL COMMAND
@client.command(aliases=["8ball", "eightball"])
async def _8ball(ctx, *, user_question):
author_name = ctx.author.display_name