Skip to content

Macledahl/Partynator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Partynator Python - Discord Party Bot

En Discord-bot skrevet i Python (discord.py) til festlege. Dette er en rewrite af den originale JavaScript-version (Partynator/) med forbedret struktur, cogs og nye kommandoer.

Funktioner

🎮 Spil

🎮 Never Have I Ever (NHIE)

Spil "Jeg har aldrig..." / "Never have i ever..." med danske og engelske spørgsmål.

  • !nhie start - Start spillet (sprog vælges via !settings nhie <dk|en>)
  • !n - Få næste spørgsmål
  • !nhie stop - Stop spillet
  • !nhie new <dk|en> <sætning> - Tilføj et nyt spørgsmål
  • !settings nhie <dk|en> - Skift sprog for NHIE

Spørgsmål loades fra nhie/nhie_DK.txt (dansk) og nhie/nhie_EN.txt (engelsk).

🎴 Vandfald (Waterfall)

Kortspil hvor hvert kort har en specifik betydning. Kortbilleder vises lokalt fra cards/ mappen (downloadet automatisk ved første kørsel).

  • !vandfald start - Start spillet
  • !vf - Træk et kort
  • !vandfald stop - Stop spillet
  • !vf sniper <@user> - Brug sniperkort (kræver Es)
  • !vf sniper stop - Stop snipen når du er ramt (kræver Es)
  • !vf pause - Brug pausekort (kræver 6)
  • !vf pause stop - Stop pausen (gør ingenting ved spillet)
  • !vf pause list - Vis hvem der har pausekort
  • !vf regel new <regel> - Tilføj en regel (kræver 9)
  • !vf regel list - Vis alle regler i spillet
  • !vf regel delete <nr> - Slet en regel (kræver 10)
  • !settings vf <1|2> - Vælg 1 eller 2 sæt kort

Kort definitioner loades fra vf.txt (CSV format: suit,name,description,image_path).

🎲 Cykel Meyer

Klassisk terningespil hvor du slår to terninger og forsøger at opnå det højeste kast. Terningerne vises som ét kombineret billede (side om side) genereret i hukommelsen (BytesIO). Når spillet starter vises en embed-boks med reglerne, og den første spiller nævnes i en separat besked (så @mentions virker korrekt).

  • !cm start <@user1> <@user2> ... - Start spillet (min. 2 spillere, viser regler + første spiller)
  • !cm_roll - Slå terningerne (viser kombineret billede)
  • !cm lock - Lås dit slag
  • !cm stop - Stop spillet

Terningebilleder ligger i dice/ mappen og kombineres via Pillow til 80x80 pixels hver (160x80 totalt).

⚙️ Andre kommandoer

  • !help - Vis hovedmenuen med kategorier
  • !help games - Vis alle spil og deres kommandoer
  • !help nhie / !help vf / !help cm - Detaljeret hjælp for hvert spil
  • !help other - Andre kommandoer
  • !ping - Tjek om botten lever
  • !gif <søgning> - Søg efter GIF via Giphy
  • !roll [1d6] - Slå terninger (f.eks. !roll 2d6)
  • !dice [antal] - Slå X terninger (1-5)
  • !settings - Vis og skift indstillinger
  • !reload [cog] - Genindlæs cogs (kræver administrator)

🎮 Spil info

  • !games - Vis alle tilgængelige spil
  • !games nhie - Info om Never Have I Ever
  • !games vf - Info om Vandfald

Opsætning

Krav

  • Python 3.8 eller nyere
  • discord.py 2.0+ (pip install discord.py)
  • aiohttp (pip install aiohttp)

Trin-for-trin

  1. Installer afhængigheder:

    pip install discord.py aiohttp
  2. Opret bot på Discord Developer Portal:

    • Opret en ny applikation
    • Gå til "Bot" og opret en bot
    • Aktivér MESSAGE CONTENT INTENT under Privileged Gateway Intents
    • Kopier bot token
  3. Konfigurér config.json:

    • Rename the file config.json.template and call it config.json.
    • In this file you insert your bot token for Discord.
    {
        "prefix": "!",
        "token": "DIN_BOT_TOKEN_HER",
        "embed_color": "#FF3769",
        "giphyToken": "DIN_GIPHY_TOKEN"
    }

    (Giphy token er valgfrit - kun nødvendigt for !gif kommandoen)

  4. Invitér botten til din server:

    • Gå til OAuth2 → URL Generator i Developer Portal
    • Vælg bot scope
    • Vælg permissions: Send Messages, Embed Links, Attach Files, Read Message History, Manage Nicknames
    • Brug URL'en til at invitere botten
  5. Kør botten:

    python bot.py

Projektstruktur

Partynator_python/
├── bot.py                  # Hovedfil - Initialiserer botten og indlæser cogs
├── config.json             # Konfiguration (token, prefix, osv.)
├── CLAUDE.md              # Info til Claude Code
├── README.md              # Denne fil
├── vf.txt                  # Kortdefinitioner til Vandfald (CSV)
├── nhie/
│   ├── nhie_DK.txt       # Danske NHIE spørgsmål
│   └── nhie_EN.txt       # Engelske NHIE spørgsmål
├── dice/                   # Terningebilleder (1_1.png til 6_2.png)
├── cards/                  # Vandfald kortbilleder (downloadet lokalt)
└── cogs/
    ├── nhie.py            # Never Have I Ever spil
    ├── vf.py              # Vandfald spil
    ├── cm.py              # Cykel Meyer spil
    └── dice.py           # Terning kommandoer

Afhængigheder

  • discord.py - Discord API wrapper
  • aiohttp - HTTP klient til Giphy API
  • Pillow - Billedbehandling til kombinerede terningebilleder (pip install Pillow)

Forskelle fra JavaScript-versionen

  • Bruger discord.py cogs i stedet for en stor message event handler
  • In-memory storage i stedet for Enmap (state nulstilles ved genstart)
  • !cm_roll til at slå terninger (i stedet for bare !cm)
  • !games nhie viser kun info, starter ikke spillet (brug !nhie start)
  • Vandfald kortbilleder gemmes lokalt i cards/ for bedre pålidelighed
  • Cykel Meyer terninger kombineres som ét billede via BytesIO (ingen diske-filer)
  • !vf pause stop tilføjet (gør ingenting ved spillet, kun besked)
  • !help system med kategorier (!help games, !help vf, !help cm, !help other)

Licens

Dette projekt er en Python-rewrite af den originale Partynator bot lavet i JavaScript.

About

En Discord-bot skrevet i Python (discord.py) til festlege.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages