mirror of
https://github.com/csd4ni3l/mc-discord-bot.git
synced 2026-01-01 04:23:46 +01:00
fix some issues and types, move code around
This commit is contained in:
89
bot.py
89
bot.py
@@ -152,7 +152,7 @@ async def update_giveaways():
|
|||||||
await message.edit(embed=embed)
|
await message.edit(embed=embed)
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
@bot.event
|
@bot.event
|
||||||
async def on_member_join(member):
|
async def on_member_join(member: discord.Member):
|
||||||
if not join_channel_id == -1:
|
if not join_channel_id == -1:
|
||||||
embed = discord.Embed(title=f'Welcome, {member.name}', color=discord.Colour.red(), description=f"👋 Welcome to the {server_name} discord server, **{member.display_name}**!\nWe hope you'll enjoy your time on our server!")
|
embed = discord.Embed(title=f'Welcome, {member.name}', color=discord.Colour.red(), description=f"👋 Welcome to the {server_name} discord server, **{member.display_name}**!\nWe hope you'll enjoy your time on our server!")
|
||||||
if not bot.user.avatar == None:
|
if not bot.user.avatar == None:
|
||||||
@@ -189,9 +189,20 @@ async def on_ready():
|
|||||||
print(f'{server_name} bot online')
|
print(f'{server_name} bot online')
|
||||||
update_giveaways.start()
|
update_giveaways.start()
|
||||||
|
|
||||||
if not server_ip == 'example.com':
|
@bot.event
|
||||||
@bot.event
|
async def on_interaction(interaction: discord.Interaction):
|
||||||
async def on_message(message):
|
if interaction.type == discord.InteractionType.application_command:
|
||||||
|
await discord.Bot.on_interaction(bot, interaction)
|
||||||
|
return
|
||||||
|
custom_id = interaction.data['custom_id']
|
||||||
|
if custom_id == 'ticket':
|
||||||
|
await ticket(interaction, interaction.data['values'][0])
|
||||||
|
elif custom_id.startswith('ticket_') and custom_id.endswith('_close_button'):
|
||||||
|
await close_ticket(interaction)
|
||||||
|
|
||||||
|
@bot.event
|
||||||
|
async def on_message(message):
|
||||||
|
if not server_ip == 'example.com':
|
||||||
if not message.author.bot:
|
if not message.author.bot:
|
||||||
if any(i in message.content.lower() for i in [' ip', ' ipje', ' ip ']) and message.content.endswith('?'):
|
if any(i in message.content.lower() for i in [' ip', ' ipje', ' ip ']) and message.content.endswith('?'):
|
||||||
await message.reply(f'The server IP is: **{server_ip}**')
|
await message.reply(f'The server IP is: **{server_ip}**')
|
||||||
@@ -329,6 +340,29 @@ async def on_bulk_message_delete(messages):
|
|||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
|
|
||||||
|
async def on_reaction_add(emoji, message, user: discord.Member):
|
||||||
|
global settings
|
||||||
|
if not user.bot and message.id == settings['reaction_role_message_id'] and emoji.name in reaction_roles:
|
||||||
|
await user.add_roles(discord.utils.get(message.guild.roles, id=reaction_roles[emoji.name]['role_id']))
|
||||||
|
|
||||||
|
async def on_reaction_remove(emoji, message, user: discord.Member):
|
||||||
|
global settings
|
||||||
|
if not user.bot and message.id == settings['reaction_role_message_id'] and emoji.name in reaction_roles:
|
||||||
|
await user.remove_roles(discord.utils.get(message.guild.roles, id=reaction_roles[emoji.name]['role_id']))
|
||||||
|
|
||||||
|
@bot.event
|
||||||
|
async def on_raw_reaction_add(payload): # trigger on_reaction_add for all messages not just cached ones.
|
||||||
|
channel = await bot.fetch_channel(payload.channel_id)
|
||||||
|
await on_reaction_add(payload.emoji, await channel.fetch_message(payload.message_id), discord.utils.get(channel.guild.members,id=payload.user_id))
|
||||||
|
|
||||||
|
@bot.event
|
||||||
|
async def on_raw_reaction_remove(payload):
|
||||||
|
channel = await bot.fetch_channel(payload.channel_id)
|
||||||
|
message = await channel.fetch_message(payload.message_id)
|
||||||
|
user = discord.utils.get(channel.guild.members,id=payload.user_id)
|
||||||
|
await on_reaction_remove(payload.emoji, message, user)
|
||||||
|
|
||||||
async def end_giveaway(n, giveaway):
|
async def end_giveaway(n, giveaway):
|
||||||
message = await bot.get_channel(giveaway['message'].channel.id).fetch_message(giveaway["message_id"])
|
message = await bot.get_channel(giveaway['message'].channel.id).fetch_message(giveaway["message_id"])
|
||||||
participant_mentions = [
|
participant_mentions = [
|
||||||
@@ -418,28 +452,6 @@ async def send_reaction_role_message(interaction: discord.Interaction, channel:
|
|||||||
with open('settings.json', 'w') as file:
|
with open('settings.json', 'w') as file:
|
||||||
file.write(json.dumps(settings, indent=4))
|
file.write(json.dumps(settings, indent=4))
|
||||||
|
|
||||||
async def on_reaction_add(emoji, message, user: discord.Member):
|
|
||||||
global settings
|
|
||||||
if not user.bot and message.id == settings['reaction_role_message_id'] and emoji.name in reaction_roles:
|
|
||||||
await user.add_roles(discord.utils.get(message.guild.roles, id=reaction_roles[emoji.name]['role_id']))
|
|
||||||
|
|
||||||
async def on_reaction_remove(emoji, message, user: discord.Member):
|
|
||||||
global settings
|
|
||||||
if not user.bot and message.id == settings['reaction_role_message_id'] and emoji.name in reaction_roles:
|
|
||||||
await user.remove_roles(discord.utils.get(message.guild.roles, id=reaction_roles[emoji.name]['role_id']))
|
|
||||||
|
|
||||||
@bot.event
|
|
||||||
async def on_raw_reaction_add(payload): # trigger on_reaction_add for all messages not just cached ones.
|
|
||||||
channel = await bot.fetch_channel(payload.channel_id)
|
|
||||||
await on_reaction_add(payload.emoji, await channel.fetch_message(payload.message_id), discord.utils.get(channel.guild.members,id=payload.user_id))
|
|
||||||
|
|
||||||
@bot.event
|
|
||||||
async def on_raw_reaction_remove(payload):
|
|
||||||
channel = await bot.fetch_channel(payload.channel_id)
|
|
||||||
message = await channel.fetch_message(payload.message_id)
|
|
||||||
user = discord.utils.get(channel.guild.members,id=payload.user_id)
|
|
||||||
await on_reaction_remove(payload.emoji, message, user)
|
|
||||||
|
|
||||||
@bot.slash_command()
|
@bot.slash_command()
|
||||||
async def suggest(interaction: discord.Interaction, suggestion):
|
async def suggest(interaction: discord.Interaction, suggestion):
|
||||||
if not suggestion_channel_id == -1:
|
if not suggestion_channel_id == -1:
|
||||||
@@ -579,17 +591,6 @@ async def send_ticket_message(interaction: discord.Interaction, channel: discord
|
|||||||
else:
|
else:
|
||||||
await interaction.response.send_message("You don't have permission to use this command!", ephemeral=True)
|
await interaction.response.send_message("You don't have permission to use this command!", ephemeral=True)
|
||||||
|
|
||||||
@bot.event
|
|
||||||
async def on_interaction(interaction: discord.Interaction):
|
|
||||||
if interaction.type == discord.InteractionType.application_command:
|
|
||||||
await discord.Bot.on_interaction(bot, interaction)
|
|
||||||
return
|
|
||||||
custom_id = interaction.data['custom_id']
|
|
||||||
if custom_id == 'ticket':
|
|
||||||
await ticket(interaction, interaction.data['values'][0])
|
|
||||||
elif custom_id.startswith('ticket_') and custom_id.endswith('_close_button'):
|
|
||||||
await close_ticket(interaction)
|
|
||||||
|
|
||||||
@bot.slash_command()
|
@bot.slash_command()
|
||||||
async def warn(interaction: discord.Interaction, member: discord.Member, *, reason='Reason not provided'):
|
async def warn(interaction: discord.Interaction, member: discord.Member, *, reason='Reason not provided'):
|
||||||
if interaction.user.guild_permissions.moderate_members:
|
if interaction.user.guild_permissions.moderate_members:
|
||||||
@@ -703,7 +704,7 @@ async def ban(interaction: discord.Interaction, member: discord.Member, reason=N
|
|||||||
@bot.slash_command()
|
@bot.slash_command()
|
||||||
async def unban(interaction: discord.Interaction, member_id: int, reason=None):
|
async def unban(interaction: discord.Interaction, member_id: int, reason=None):
|
||||||
if interaction.user.guild_permissions.ban_members and interaction.user.guild_permissions.administrator:
|
if interaction.user.guild_permissions.ban_members and interaction.user.guild_permissions.administrator:
|
||||||
banned_users = await interaction.guild.bans()
|
banned_users = interaction.guild.bans()
|
||||||
|
|
||||||
for ban_entry in banned_users:
|
for ban_entry in banned_users:
|
||||||
user = ban_entry.user
|
user = ban_entry.user
|
||||||
@@ -739,8 +740,8 @@ async def mute(interaction: discord.Interaction, member: discord.Member, time):
|
|||||||
await interaction.response.send_message("You don't have permission to use this command!", ephemeral=True)
|
await interaction.response.send_message("You don't have permission to use this command!", ephemeral=True)
|
||||||
|
|
||||||
@bot.slash_command()
|
@bot.slash_command()
|
||||||
async def userinfo(interaction: discord.Interaction, tag: discord.Member = None):
|
async def userinfo(interaction: discord.Interaction, member: discord.Member = None):
|
||||||
member = tag or interaction.user
|
member = member or interaction.user
|
||||||
roles = [i.name for i in member.roles]
|
roles = [i.name for i in member.roles]
|
||||||
roles.remove("@everyone")
|
roles.remove("@everyone")
|
||||||
|
|
||||||
@@ -784,10 +785,12 @@ async def userinfo(interaction: discord.Interaction, tag: discord.Member = None)
|
|||||||
async def ui(interaction: discord.Interaction, member: discord.Member = None):
|
async def ui(interaction: discord.Interaction, member: discord.Member = None):
|
||||||
await userinfo(interaction, member)
|
await userinfo(interaction, member)
|
||||||
|
|
||||||
if not server_ip == 'example.com':
|
@bot.slash_command()
|
||||||
@bot.slash_command()
|
async def ip(interaction):
|
||||||
async def ip(interaction):
|
if not server_ip == 'example.com':
|
||||||
await interaction.response.send_message(f'Server IP: **{server_ip}**')
|
await interaction.response.send_message(f'Server IP: **{server_ip}**')
|
||||||
|
else:
|
||||||
|
await interaction.response.send_message("This feature is not enabled.")
|
||||||
|
|
||||||
@bot.slash_command()
|
@bot.slash_command()
|
||||||
async def help(interaction: discord.Interaction, topic=None):
|
async def help(interaction: discord.Interaction, topic=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user