0% found this document useful (0 votes)
8 views4 pages

Englishmessage

Stuff

Uploaded by

muhammedddd768
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views4 pages

Englishmessage

Stuff

Uploaded by

muhammedddd768
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

# Manually set IDs here

staff_role_id = 1262168699402584256 # Set your staff role ID here


log_channel_id = 1262183283278479401 # Set your log channel ID here
rewards_id = 1262167171623030844 # Set your rewards category ID here
support_id = 1262167171623030844 # Set your support category ID here
buy_id = 1262167171623030844 # Set your buy category ID here

# In-memory storage for settings


settings = {
'staff_role_id': staff_role_id,
'log_channel_id': log_channel_id,
'rewards_id': rewards_id,
'support_id': support_id,
'buy_id': buy_id
}

def get_setting(name):
return settings.get(name)

def set_setting(name, value):


settings[name] = value

def is_staff(member):
staff_role_id = get_setting('staff_role_id')
return any(role.id == staff_role_id for role in member.roles)

class TicketSelect(Select):
def __init__(self, categories):
options = [discord.SelectOption(label=name, value=key, emoji=emoji) for
key, (name, _, emoji) in categories.items() if _]
super().__init__(placeholder="Make a selection", options=options)
self.categories = categories

async def callback(self, interaction: discord.Interaction):


selected_option = self.values[0]
selected_category, category_id, _ = self.categories.get(selected_option,
(None, None, None))
await interaction.response.defer()

if selected_category and category_id:


await create_ticket_channel(interaction, selected_category,
category_id)
else:
embed = discord.Embed(
title="Invalid Selection",
description="Invalid category selected.",
color=discord.Color.red()
)
await interaction.followup.send(embed=embed)

class TicketView(View):
def __init__(self, categories):
super().__init__(timeout=None) # No timeout
self.add_item(TicketSelect(categories))

async def create_ticket_channel(interaction: discord.Interaction,


selected_category, category_id):
guild = interaction.guild
category = discord.utils.get(guild.categories, id=category_id)
if category:
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
interaction.user: discord.PermissionOverwrite(read_messages=True)
}
ticket_channel = await guild.create_text_channel(f'ticket-
{interaction.user.name}', overwrites=overwrites, category=category)

try:
await interaction.user.send(f"Your {selected_category} ticket was
**successfully created** in {ticket_channel.mention}.\nPlease **Describe Your
issue** in {ticket_channel.mention} And do not **Ping Any Staff**! ")
except discord.Forbidden:
embed = discord.Embed(
title="DM Error",
description="I cannot send DMs to you. Please enable DMs from
server members.",
color=0xE64D3A
)
await interaction.followup.send(embed=embed)
return
except discord.HTTPException as e:
embed = discord.Embed(
title="DM Error",
description=f"Failed to send DM: {e}",
color=discord.Color.red()
)
await interaction.followup.send(embed=embed)
return

ticket_embed = discord.Embed(
title="Madfut Kingdom Ticket",
description="Staff **will be with you shortly**. Please **Do not Ping**
Anyone!\nTo **close this ticket**, react with <a:tos:1262235135965925419>",
color=0xe57373
)
ticket_embed.set_footer(text="Vouch for the person that helped you in .")

ticket_message = await ticket_channel.send(content="@everyone",


embed=ticket_embed)

await ticket_message.add_reaction('<a:tos:1262235135965925419>')

def check_ticket_reaction(reaction, user):


return user != bot.user and str(reaction.emoji) ==
'<a:tos:1262235135965925419>' and reaction.message.id == ticket_message.id

reaction, user = await bot.wait_for('reaction_add',


check=check_ticket_reaction)
await ticket_channel.send('Ticket closed.')

await ticket_channel.delete()

log_channel = bot.get_channel(get_setting('log_channel_id'))
if log_channel:
embed = discord.Embed(
title="Ticket Closed",
description=f"Ticket in {selected_category} category **closed by
{user.mention}**.",
color=0xE64D3A
)
await log_channel.send(embed=embed)
else:
print(f"Log channel with ID {get_setting('log_channel_id')} not
found.")
else:
embed = discord.Embed(
title="Category Not Found",
description="The specified category was not found.",
color=discord.Color.red()
)
await interaction.followup.send(embed=embed)

# Converted slash command for ticket


@bot.tree.command(name="ticket", description="This creates the Madfut Kingdom™
ticket panel!")
async def ticket(interaction: discord.Interaction):
if not is_staff(interaction.user):
embed = discord.Embed(
title="Access Denied",
description="You are not staff, you stupid cunt!",
color=0xFF0000
)
await interaction.response.send_message(embed=embed, ephemeral=True)
return

staff_role_id = get_setting('staff_role_id')
log_channel_id = get_setting('log_channel_id')
categories = {
'rewards': ('Rewards Ticket', get_setting('rewards_id'),
'<:Rewards:1262235276538019850>'),
'support': ('Support Ticket', get_setting('support_id'),
'<a:info:1262236112563470446>'),
'buy': ('Buy Ticket', get_setting('buy_id'),
'<:money:1262236285834104833>')
}

if not staff_role_id or not log_channel_id or not any(category_id for _,


category_id, _ in categories.values()):
embed = discord.Embed(
title="Setup Incomplete",
description="Staff role, log channel, or category ID(s) is not set.
Please set them manually in the code.",
color=0xE64D3A
)
await interaction.response.send_message(embed=embed)
return

embed = discord.Embed(
title="Madfut Kingdom Tickets",
description=(
"<a:info:1262236112563470446> Open a **Support Ticket** if you require
**Support from Our Staff Team**!\n"
"<:money:1262236285834104833> Open a **Buy Ticket** if you would like
to **Purchase Anything From <#1262167195119780004>**!\n"
"<:Rewards:1262235276538019850> Open a **Rewards Ticket** if you would
like to **Claim Your Rewards**!\n\n"
"<a:tos:1262235135965925419> **Opening a Ticket without a Reason, Will
Result in an instantly Closed Ticket!**"
),
color=0x9370db
)

view = TicketView(categories)
await interaction.response.send_message(embed=embed, view=view)

# Converted slash command for showsettings


@bot.tree.command(name="showsettings", description="Show current settings")
async def showsettings(interaction: discord.Interaction):
embed = discord.Embed(
title="Current Settings",
description=(
f"**Staff Role ID:** {get_setting('staff_role_id')}\n"
f"**Log Channel ID:** {get_setting('log_channel_id')}\n"
f"**Rewards Category ID:** {get_setting('rewards_id')}\n"
f"**Support Category ID:** {get_setting('support_id')}\n"
f"**Buy Category ID:** {get_setting('buy_id')}"
),
color=0xf7e24a
)
await interaction.response.send_message(embed=embed)

You might also like