En enkel Discord Slash Command Handler for discord.py

Prøv Instrumentet Vårt For Å Eliminere Problemer

Slash-kommandoer gir en praktisk måte å bygge kraftige Discord-roboter med brukervennlige grensesnitt. Denne opplæringen viser hvordan du lager en enkel, men robust skråstrek kommandobehandler å registrere, organisere og utføre tilpasset bot kommandoer med discord.py .

Discord Slash-kommandooversikt

Discord introdusert skråstrek kommandoer som en strømlinjeformet metode for brukere å påkalle roboter. De gir innebygde argumenter uten å måtte huske prefikser og syntaks.

Internt registrerer roboter skråstrek-kommandodefinisjoner som Discord gjengir i brukerklienten. Når brukere skriver inn et kommandonavn, vises parametere som tillater verdiinndata som boten mottar ved kjøring.



Key Slash Command-funksjoner

  • Intuitive grensesnitt i Discord-klienten
  • Strukturerte innganger via argumenter
  • Tillatelseskontroller for tryggere roboter
  • Automatisk hjelpedokumentasjon

Ved å bygge på skråstrekfundamenter i stedet for prefikser, skaper roboter rikere brukeropplevelser.

discord.py Grunnleggende om skråstrekkommandoer

De discord.py rammeverket gir en robust plattform for Python Discord-botutvikling. For skråstrekkommandoer håndterer spesielt nøkkelklasser registrering og utførelse.

SlashCommandGroup

Representerer en gruppering av relaterte kommandoer som musikk, admin osv. Nyttig for organisering og tillatelser.

SlashCommand

Definerer en spesifikk kommando som håndterer utførelseslogikk. Kan inkludere argumenter for brukerinndata.

Kontekstmenyen

Legger skråstrek-kommando til meldingsinndata for rask tilgang.

Ved å bygge på toppen av disse klassene, tar funksjonsrike bot-behandlere raskt form.

Designe en Slash Handler

Før du koder, er det verdt å vurdere noen avgjørelser om skråstrekhåndteringsdesign på forhånd:

  • Organisasjon - Flat kommandoliste eller strukturerte grupper?
  • Argumenter - Hvilke kommandoer tar innspill?
  • Tillatelser - Granulær bruker-/rolletilgangskontroll?
  • Hjelp - Generere automatisk dokumentasjon?

Vurdere disse alternativene informerer implementeringstilnærming.

Eksempel på botfunksjoner

For demonstrasjon kan eksempler på botkommandoer gi:

  • /musikkspilling - Kø sanger etter navn/URL
  • /mod warn - Advar brukere som oppfører seg dårlig
  • /fun meme - Tilfeldig meme-bilde

Med en målrettet funksjon i tankene, tar skråstrekhåndteringskode form neste gang.

Prosjektoppsett

Oppstart av en discord.py-bot fra bunnen av innebærer:

  1. Opprette en Discord bot-konto
  2. Installerer discord.py-pakken
  3. Sette opp bot runner-skript

Forutsatt at disse forutsetningene er oppfylt, kan prosjektkatalogstrukturen se slik ut:

|_+_|

Den |_+_| skriptet starter boten mens |_+_| erklærer discord.py avhengighet.

Importer

Import av kjerne skråstrek-kommandoer inkluderer:

|_+_|

Dette trekker inn discord-klienten, kommandoorganisasjonen og bot-rammeverket.

Instantier Bot

Få boten initialisert med tokenet fra Discord-utviklerportalen:

|_+_|

Prefikset vil ikke gjelde for sanne skråstrekkommandoer, snarere vanlig meldingsbasert ! bare utløsere.

Implementer skråstrekgrupper og -kommandoer

Opprett deretter skråstrekkommandogruppeforekomster og legg til kommandoer i dem. Denne håndterer registrering og organisering.

Kommandogrupper

Grupper lignende kommandoer slik:

|_+_|

Strengeparametrene definerer gruppenavn og hjelpebeskrivelse.

Slash-kommandoer

Lag deretter de individuelle kommandoene som gir behandlere:

|_+_|

Dekoratørene knytter funksjoner til kommandogrupper som navngitte skråstrekevner. Argumenter får tilgang til brukerinndata.

Legg til grupper i bot

Registrer til slutt alle kommandogrupper globalt med bot-forekomsten:

|_+_|

Dette muliggjør oppdagelse og påkalling i Discord for brukere med riktig tillatelse.

Avgrens håndterer

Med viktig skjelett på plass hjelper forbedringer med å polere skråarkitekturen.

Tillatelser

Begrens tilgang ved å bruke |_+_| attributt når du erklærer grupper eller kommandoer:

|_+_|

Dette forhindrer global bruk, avgrenset senere ved å oppgi spesifikke roller/brukere.

Argumenttyper

Håndheve argumenttyper som medlem, streng, heltall osv.:

|_+_|

Dette krever riktig formaterte verdier ved påkalling.

Valg

Presenter alternativer for å velge i stedet for rå input:

|_+_|

Dropdown med forhåndsdefinerte gyldige valg å velge mellom.

Opsjonsklasser

For mange argumenter, lag gjenbrukbar alternativmodul med forhåndsinnstilte typer:

|_+_|

Påfør deretter som typer rent i behandlere.

Eksternaliser inn i pakken

Skaler kommandoutvikling ved å eksportere behandler til en importerbar pakke med inngangspunkt:

|_+_|

Og last dynamisk:

|_+_|

Dette opprettholder separasjon av bekymringer for enklere testing og bidrag fra andre.

Distribuer globalt

Til å begynne med registreres skråstrekkommandoer til utviklingsserver for testing. Når du er klar, distribuer globalt:

|_+_|

Tillat ~1 time for verdensomspennende forplantning, hvoretter alle kan oppdage!

Konklusjon

Denne opplæringen presenterte et enkelt skråstrek-kommandohåndteringsstillas å bygge fra å implementere grupper, kommandoer, argumenter, tillatelser og pakker ved å bruke discord.py for profesjonelle roboter.

Herfra florerer muligheter for å oversette ideer til intuitive Discord-opplevelser som er tilgjengelige for servermedlemmer og samfunn over hele verden 24/7!

Se Også: