Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Module
- import discord
- from discord.ext import commands
- import os
- from discord.utils import sane_wait_for
- from discord_slash import SlashCommand, SlashContext
- from discord_components import Button, ButtonStyle, InteractionEventType, DiscordComponents
- import pytz
- import praw
- import prawcore
- import os
- import cogs.infoslists.botinfos
- import random
- import sqlite3
- from discord_slash.context import MenuContext
- from discord_slash.model import ContextMenuType
- from discord.utils import get
- def createprintodb(ctx, prefix):
- db =sqlite3.connect("main.db")
- cursor = db.cursor()
- cursor.execute(f"INSERT INTO prefixdb VALUES (' {ctx.guild.id} ', '{prefix}')")
- db.commit
- cursor.close()
- db.close()
- def getprefix(ctx):
- try:
- db =sqlite3.connect("main.db")
- cursor = db.cursor()
- cursor.execute(f"SELECT prefix FROM prefixdb WHERE guild_id = '{ ctx.guild.id }'")
- b = cursor.fetchone()
- db.commit
- cursor.close()
- db.close()
- with open("t.py", "w") as f:
- f.write(f"{b}")
- except:
- with open("t.py", "w") as f:
- f.write("e:")
- def bbpr():
- with open("t.py", "r") as f:
- c = f.readline(6)
- return str(c)
- token = cogs.infoslists.botinfos.TOKEN
- #Variablen
- client = commands.Bot(command_prefix="e:"
- )
- ddb = DiscordComponents(client)
- slash = SlashCommand(client, sync_commands=True)
- lists = cogs.infoslists.botinfos
- #Events
- @client.event
- async def on_ready():
- print("Bot ist fertig")
- #Commmands
- @client.command()
- async def setprefix(ctx, prefixb):
- createprintodb(ctx=ctx ,prefix=prefixb)
- em = discord.Embed(title=f"Prefix wurde geändert!", description=f"Prefix ist im Moment {prefixb}")
- await ctx.send(embed=em)
- @client.command()
- async def cprefix(ctx):
- getprefix(ctx=ctx)
- e =bbpr
- await ctx.send(f"Meine Prefix ist im Moment {e}")
- @client.command(name="punch")
- async def punch(ctx, user: discord.Member = None):
- if user is None:
- p = discord.Embed(title=f"{ ctx.author.mention } schlägt { user }")
- else:
- p = discord.Embed(title=f"{ ctx.author.mention } schlägt jemanden!")
- p.set_image(url=random.choice(lists.schläge))
- await ctx.send(embed=p)
- @slash.slash(name="punch")
- async def punch(ctx: SlashContext, user: discord.Member = None):
- if user == None:
- p = discord.Embed(title=f"{ ctx.author } schlägt jemanden!")
- else:
- p = discord.Embed(title=f"{ ctx.author } schlägt { user }")
- p.set_image(url=random.choice(lists.schläge))
- await ctx.send(embeds=[p])
- @slash.slash(name="userinfo", description="Shows Infos about a User")
- async def userinfo(ctx: SlashContext, member: discord.Member):
- de = pytz.timezone('Europe/Berlin')
- embed = discord.Embed(title=f'> Userinfo für {member.display_name}',
- description='', color=0x4cd137)
- embed.add_field(name='Name', value=f'```{member.name}#{member.discriminator}```', inline=True)
- embed.add_field(name='Bot', value=f'```{("Ja" if member.bot else "Nein")}```', inline=True)
- embed.add_field(name='Nickname', value=f'```{(member.nick if member.nick else "Nicht gesetzt")}```', inline=True)
- embed.add_field(name='Server beigetreten', value=f'```{member.joined_at}```', inline=True)
- embed.add_field(name='Discord beigetreten', value=f'```{member.created_at}```', inline=True)
- embed.add_field(name='Rollen', value=f'```{len(member.roles)}```', inline=True)
- embed.add_field(name='Höchste Rolle', value=f'```{member.top_role.name}```', inline=True)
- embed.add_field(name='Farbe', value=f'```{member.color}```', inline=True)
- embed.add_field(name='Booster', value=f'```{("Ja" if member.premium_since else "Nein")}```', inline=True)
- await ctx.send(content=None, embeds=[embed])
- @client.command(name='userinfo')
- async def userinfo(ctx, member: discord.Member):
- if member is None:
- member = ctx.author
- de = pytz.timezone('Europe/Berlin')
- embed = discord.Embed(title=f'> Userinfo für {member.display_name}',
- description='', color=0x4cd137)
- embed.add_field(name='Name', value=f'```{member.name}#{member.discriminator}```', inline=True)
- embed.add_field(name='Bot', value=f'```{("Ja" if member.bot else "Nein")}```', inline=True)
- embed.add_field(name='Nickname', value=f'```{(member.nick if member.nick else "Nicht gesetzt")}```', inline=True)
- embed.add_field(name='Server beigetreten', value=f'```{member.joined_at}```', inline=True)
- embed.add_field(name='Discord beigetreten', value=f'```{member.created_at}```', inline=True)
- embed.add_field(name='Rollen', value=f'```{len(member.roles)}```', inline=True)
- embed.add_field(name='Höchste Rolle', value=f'```{member.top_role.name}```', inline=True)
- embed.add_field(name='Farbe', value=f'```{member.color}```', inline=True)
- embed.add_field(name='Booster', value=f'```{("Ja" if member.premium_since else "Nein")}```', inline=True)
- await ctx.send(embed=embed)
- @client.command()
- @commands.has_permissions(ban_members=True)
- async def ban(self, ctx, user: discord.Member, *, reason):
- await ctx.guild.ban(user, reason=reason)
- await user.send(f"You have been banned in {ctx.guild} for {reason}")
- await ctx.send(f"{user} has been successfully banned.")
- @client.command()
- @commands.has_permissions(manage_roles=True)
- async def rr(ctx, channel: discord.TextChannel, *role: discord.Role):
- em = discord.Embed(title=f"Self Roles!")
- rolen = role
- rollname = role.name
- channel = discord.utils.get(ctx.guild.channels, name=f"{channel}")
- for i in role:
- em.add_field(name =f"{rollname} -> Klicke auf den entsprechenden Button", value="_ _", inline=False)
- await channel.send(embed=em,
- components= [
- Button(style=ButtonStyle.green, label=f"{rollname}")
- ])
- while True:
- res = await client.wait_for("button_click")
- for i in role:
- if res.component.label == f"{role}":
- await res.respond(type=6)
- member = ctx.author
- if role in member.roles: #checks all roles the member has
- await member.remove_roles(role, reason=None, atomic=True) #removes the role
- else:
- await member.add_roles(role, reason=None, atomic=True)
- from discord_slash.utils.manage_components import create_select, create_select_option, create_actionrow
- @slash.slash()
- async def pl(ctx: SlashContext):
- select = create_select(
- options=[
- create_select_option("Lab Coat", value="coat", emoji="🥼"),
- create_select_option("Test Tube", value="tube", emoji="🧪"),
- create_select_option("Petri Dish", value="dish", emoji="🧫")
- ],
- placeholder="Choose your option",
- min_values=1, # the minimum number of options a user must select
- max_values=2 # the maximum number of options a user can select
- )
- action_row = create_actionrow(select)
- em = discord.Embed(title=f"Ton Visage")
- await ctx.send(embed=em, components=[action_row])
- @slash.slash()
- @commands.has_permissions(ban_members=True)
- async def ban(self, ctx: SlashContext, user: discord.Member, *, reason):
- await ctx.guild.ban(user, reason=reason)
- await user.send(content=f"You have been banned in {ctx.guild} for {reason}")
- await ctx.send(content=f"{user} has been successfully banned.")
- @client.command()
- async def avatar(ctx, *,member: discord.Member=None):
- if member == None:
- member = ctx.author
- icon_url = member.avatar_url
- avatarEmbed = discord.Embed(title = f"{member.name}\'s Avatar", description=None, color = 0xFFA500)
- avatarEmbed.set_image(url = f"{icon_url}")
- avatarEmbed.set_footer(text=cogs.infoslists.botinfos.FOOTER)
- avatarEmbed.timestamp = ctx.message.created_at
- await ctx.send(embed = avatarEmbed)
- #Anmelden
- client.run(token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement