From b648c0531691ded18a350574efef553d4c8d541a Mon Sep 17 00:00:00 2001 From: Marco Thomas Date: Sat, 17 Dec 2022 23:20:10 +0100 Subject: [PATCH] Setup --- .gitignore | 1 + README.md | 13 ++++++++++++ main.py | 54 +++++++++++++++++++++++++++++++++++++++++++++++ moai.mp3 | Bin 0 -> 28355 bytes requirements.txt | 1 + 5 files changed, 69 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 main.py create mode 100644 moai.mp3 create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e38da20 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +settings.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..86a7853 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# 🗿 + +Requires `ffmpeg`. Install requirements: `python3 -m pip -U -r requirements.txt`. + +## Settings +Requires a `settings.json`: + +```json +{ + "prefix": "!", + "token": "42" +} +``` diff --git a/main.py b/main.py new file mode 100644 index 0000000..0ac123c --- /dev/null +++ b/main.py @@ -0,0 +1,54 @@ +from discord.ext import commands +import discord +import json +import time + +try: + with open("settings.json", "r") as f: + settings = json.loads(f.read()) +except Exception as e: + print(e) + +intents = discord.Intents.default() +intents.message_content = True +bot = commands.Bot( + command_prefix=settings['prefix'], + description='Moai', + intents=intents) + + +@bot.event +async def on_ready(): + bot.AppInfo = await bot.application_info() + + # activity_name = f"with stones | {settings['prefix']}moai" + activity_name = "with stones" + activity = discord.Activity( + name=activity_name, + type=discord.ActivityType.playing) + await bot.change_presence(activity=activity) + + +@bot.command() +async def stone(ctx): + await ctx.send('🗿') + + +@bot.command() +async def moai(ctx): + # delete message + await ctx.message.delete() + + vc = ctx.author.voice.channel + if vc: + connection = await vc.connect() + connection.play(discord.FFmpegPCMAudio(source="moai.mp3")) + + # instantly disconnect, after audio is done playing + while connection.is_playing(): + time.sleep(0.1) + await connection.disconnect() + else: + print("User is not in a channel!") + +bot.run(settings['token']) diff --git a/moai.mp3 b/moai.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..12634d9a2ad32e71f9690278d806cb3131a7c27f GIT binary patch literal 28355 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

EtSDRhPfx4t!6qLc;6{lS2hz_0VtcJ?1I|cPc~) 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