200 lines
9.1 KiB
Python
200 lines
9.1 KiB
Python
|
# Code written by Jocadbz(madureirajoaquim95@gmail.com)
|
||
|
# Code revised by BodgeMaster
|
||
|
# Code Licensed under GPL 3.0
|
||
|
|
||
|
import discord
|
||
|
from discord import app_commands
|
||
|
import typing
|
||
|
from discord.ext import commands
|
||
|
import discord.utils
|
||
|
import psutil
|
||
|
import time
|
||
|
from sys import platform
|
||
|
|
||
|
|
||
|
def seconds_elapsed():
|
||
|
return time.time() - psutil.boot_time()
|
||
|
|
||
|
|
||
|
class MyClient(discord.Client):
|
||
|
def __init__(self, *, intents: discord.Intents):
|
||
|
super().__init__(intents=intents)
|
||
|
self.tree = app_commands.CommandTree(self)
|
||
|
|
||
|
async def setup_hook(self):
|
||
|
await self.tree.sync()
|
||
|
|
||
|
|
||
|
intents = discord.Intents.default()
|
||
|
client = MyClient(intents=intents)
|
||
|
bot = commands.Bot(command_prefix='lb!', intents=intents)
|
||
|
|
||
|
|
||
|
@client.event
|
||
|
async def on_ready():
|
||
|
print(f'Logged in as {client.user} (ID: {client.user.id})')
|
||
|
print('------')
|
||
|
|
||
|
|
||
|
@client.tree.command(name="change_hostname")
|
||
|
@app_commands.describe(distro='Assign yourself a role')
|
||
|
async def distro(interaction: discord.Interaction, distro: typing.Literal['LFS', 'Kiss', 'Gentoo', 'Void', 'NixOS', 'Alpine', 'Arch', 'Arch-based', 'Red Hat', 'Bedrock', 'SuSE Based', 'OpenSuSE',
|
||
|
'Debian', 'Debian based', 'Solus', 'Fedora', 'Ubuntu', 'Ubuntu Based', 'BSD', 'MacOS', 'Windows']):
|
||
|
user = interaction.user
|
||
|
if distro == 'LFS':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813200239778856971)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Kiss':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=884819839212982342)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Gentoo':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=1813139495049232384)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Void':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813139633797988394)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'NixOS':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=827228988585279538)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Alpine':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=932684264967925850)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Arch':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813139868678225991)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Arch-based':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813186782534828043)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Red Hat':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=816823482318979094)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Bedrock':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=825427559604027412)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'SuSE Based':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=1034793985715224587)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'OpenSuSE':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813147179367661589)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Debian':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813142935247388672)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Debian based':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=842882283504926756)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Solus':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=820840553704325160)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Fedora':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=820621219040591884)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Ubuntu':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813139746180038697)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Ubuntu Based':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813581408052183042)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'BSD':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=879444277330055228)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'MacOS':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813147204772167680)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
if distro == 'Windows':
|
||
|
user = interaction.user
|
||
|
role = discord.utils.get(user.guild.roles, id=813147019631788083)
|
||
|
await user.add_roles(role)
|
||
|
await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.')
|
||
|
print(f"`{role}` assigned to {user.mention}.")
|
||
|
|
||
|
|
||
|
# This context menu command only works on messages
|
||
|
@client.tree.context_menu(name='Report to Moderators')
|
||
|
async def report_message(interaction: discord.Interaction, message: discord.Message):
|
||
|
await interaction.response.send_message(
|
||
|
f'Thanks for reporting this message by {message.author.mention} to our moderators.', ephemeral=True
|
||
|
)
|
||
|
log_channel = interaction.guild.get_channel(929345959501115422) # replace with your channel id
|
||
|
embed = discord.Embed(title='Reported Message')
|
||
|
if message.content:
|
||
|
embed.description = message.content
|
||
|
embed.set_author(name=message.author.display_name, icon_url=message.author.display_avatar.url)
|
||
|
embed.timestamp = message.created_at
|
||
|
url_view = discord.ui.View()
|
||
|
url_view.add_item(discord.ui.Button(label='Go to Message', style=discord.ButtonStyle.url, url=message.jump_url))
|
||
|
await log_channel.send(embed=embed, view=url_view)
|
||
|
|
||
|
|
||
|
@client.tree.command(name="status")
|
||
|
async def status(interaction: discord.Interaction):
|
||
|
embed = discord.Embed(title='System Stats')
|
||
|
embed.description = f"""Uptime: {seconds_elapsed()}
|
||
|
System: {platform}"""
|
||
|
url_view = discord.ui.View()
|
||
|
await interaction.response.send_message(embed=embed, view=url_view)
|
||
|
|
||
|
|
||
|
client.tree.sync()
|
||
|
client.run('TOKEN')
|