lenaverse-bot/lenaverse_bot/core/verein.py

135 lines
3.4 KiB
Python
Raw Normal View History

2023-11-19 23:26:23 +00:00
import logging
import discord
from ._helpers import ev_command
2023-11-19 23:26:23 +00:00
from .config import CONFIG
_logger = logging.getLogger(__name__)
def reply_private(interaction: discord.Interaction, name: str) -> bool:
_logger.debug(f"User {interaction.user.name}({interaction.user.id}) used /{name}")
return interaction.channel_id not in CONFIG.ev_info.channels
2023-11-19 23:26:23 +00:00
2023-11-20 12:55:20 +00:00
@ev_command(
2023-11-20 13:32:00 +00:00
name=CONFIG.ev_info.info.name,
2023-11-20 12:55:20 +00:00
description=CONFIG.ev_info.info.description,
)
async def info(interaction: discord.Interaction) -> None:
"""
Allgemeine Infos zum Verein
"""
await interaction.response.send_message(
content=CONFIG.ev_info.info.content,
2023-11-21 13:57:51 +00:00
suppress_embeds=True,
2023-11-20 13:32:00 +00:00
ephemeral=reply_private(interaction, CONFIG.ev_info.info.name),
2023-11-20 12:55:20 +00:00
)
2023-11-21 15:02:43 +00:00
@ev_command(
name=CONFIG.ev_info.vorstand.name,
description=CONFIG.ev_info.vorstand.description,
)
async def vorstand(interaction: discord.Interaction) -> None:
"""
Wer ist im Vereinsvorstand?
"""
await interaction.response.send_message(
content=CONFIG.ev_info.vorstand.content,
silent=True,
suppress_embeds=True,
ephemeral=reply_private(interaction, CONFIG.ev_info.vorstand.name),
)
@ev_command(
2023-11-20 13:32:00 +00:00
name=CONFIG.ev_info.linktree.name,
description=CONFIG.ev_info.linktree.description,
)
async def linktree(interaction: discord.Interaction) -> None:
"""
Links rund um den Verein
"""
2023-11-19 23:26:23 +00:00
await interaction.response.send_message(
content=CONFIG.ev_info.linktree.content,
2023-11-19 23:26:23 +00:00
suppress_embeds=True,
2023-11-20 13:32:00 +00:00
ephemeral=reply_private(interaction, CONFIG.ev_info.linktree.name),
2023-11-19 23:26:23 +00:00
)
@ev_command(
2023-11-21 16:37:48 +00:00
name=CONFIG.ev_info.beitreten.name,
description=CONFIG.ev_info.beitreten.description,
)
2023-11-21 16:37:48 +00:00
async def beitreten(interaction: discord.Interaction) -> None:
"""
Wie und warum dem Verein beitreten
"""
2023-11-22 21:37:30 +00:00
await interaction.response.send_message(
content=CONFIG.ev_info.beitreten.content,
suppress_embeds=True,
ephemeral=reply_private(interaction, CONFIG.ev_info.beitreten.name),
)
# if (file := await CONFIG.ev_info.beitreten.as_discord_file) is not None:
# await interaction.response.send_message(
# content=CONFIG.ev_info.beitreten.content,
# file=file,
# suppress_embeds=True,
# ephemeral=reply_private(interaction, CONFIG.ev_info.beitreten.name),
# )
# else:
# await interaction.response.send_message(
# content=CONFIG.command_failed,
# ephemeral=True,
# )
2023-11-19 23:43:50 +00:00
2023-11-20 12:55:20 +00:00
@ev_command(
2023-11-20 13:32:00 +00:00
name=CONFIG.ev_info.fest.name,
2023-11-20 12:55:20 +00:00
description=CONFIG.ev_info.fest.description,
)
async def fest(interaction: discord.Interaction) -> None:
"""
Infos zum nächsten Vereinsfest
"""
await interaction.response.send_message(
content=CONFIG.ev_info.fest.content,
2023-11-21 13:57:51 +00:00
suppress_embeds=True,
2023-11-20 13:32:00 +00:00
ephemeral=reply_private(interaction, CONFIG.ev_info.fest.name),
2023-11-20 12:55:20 +00:00
)
@ev_command(
2023-11-20 13:32:00 +00:00
name=CONFIG.ev_info.aktion.name,
2023-11-20 12:55:20 +00:00
description=CONFIG.ev_info.aktion.description,
)
async def aktion(interaction: discord.Interaction) -> None:
"""
Infos zu aktuellen Aktionen
"""
await interaction.response.send_message(
content=CONFIG.ev_info.aktion.content,
2023-11-21 13:57:51 +00:00
suppress_embeds=True,
2023-11-20 13:32:00 +00:00
ephemeral=reply_private(interaction, CONFIG.ev_info.aktion.name),
2023-11-20 12:55:20 +00:00
)
2023-11-19 23:43:50 +00:00
COMMANDS = [
2023-11-20 12:55:20 +00:00
info,
2023-11-21 15:02:43 +00:00
vorstand,
linktree,
2023-11-21 16:37:48 +00:00
beitreten,
2023-11-20 12:55:20 +00:00
fest,
aktion,
2023-11-19 23:43:50 +00:00
]