Η διαχείριση του δικού σας διακομιστή Discord μπορεί να απαιτεί πολύ χρόνο και εργασία, γι’ αυτό και τα bots που αναλαμβάνουν τις διοικητικές λειτουργίες είναι τόσο δημοφιλή. Μπορείτε εύκολα να δημιουργήσετε το δικό σας bot χρησιμοποιώντας τη βιβλιοθήκη Python discord.py και εφαρμόζοντας βασικές γνώσεις Python.

Βήμα προς βήμα προς το δικό σας bot Python για το Discord

Πριν ξεκινήσετε να προγραμματίζετε το bot σας, θα πρέπει να δημιουργήσετε ένα bot Discord. Μπορείτε να δημιουργήσετε τη δική σας εφαρμογή στο Discord και, μόλις το κάνετε αυτό, τίποτα δεν θα εμποδίζει τη λειτουργία του bot σας στο Discord. Ο κώδικας που χρειάζεστε για το bot Discord εξαρτάται από τις εργασίες που θέλετε να αυτοματοποιήσετε. Το bot που παρουσιάζεται σε αυτό το σεμινάριο έχει ως σκοπό την προσθήκη ρόλων σε έναν διακομιστή Discord.

Βήμα 1: Εγκαταστήστε το discord.py

Για να δημιουργήσετε το bot σας, η βιβλιοθήκη Python discord.py αποτελεί απαραίτητο εργαλείο. Πριν ξεκινήσετε, πρέπει να την εγκαταστήσετε στον υπολογιστή σας χρησιμοποιώντας το pip, όπως συνηθίζεται στην Python. Στα Windows, η κατάλληλη εντολή τερματικού για την εγκατάσταση είναι:

py -3 -m pip install -U discord.py
python

Βήμα 2: Δημιουργία εγγράφου Python

Δημιουργήστε ένα νέο αρχείο Python για να προγραμματίσετε το bot σας. Μπορείτε να χρησιμοποιήσετε διάφορους επεξεργαστές κώδικα για το αρχείο Python σας ή ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE), όπως το Pycharm.

Βήμα 3: Συνδεθείτε στο Discord

Πρώτα, εισάγετε τη βιβλιοθήκη Discord στο αρχείο Python σας. Ορίστε το token του bot που λάβατε κατά την εγγραφή του bot σας στο Discord στον ιστότοπο προγραμματιστών του Discord. Για να το κάνετε αυτό, αντικαταστήστε τον σύμβολο κράτησης θέσης με το δικό σας token bot:

import discord
TOKEN = token_placeholder
python

Χρειάζεστε τη βιβλιοθήκη για να αλληλεπιδράσετε με το API του Discord. Για να συνδεθείτε στο Discord, θα χρειαστείτε μια παρουσία του λεγόμενου αντικειμένου-πελάτη. Χρησιμοποιήστε τον παρακάτω κώδικα για να το δημιουργήσετε:

client = discord.Client()
python

Βήμα 4: Βεβαιωθείτε ότι η σύνδεση πραγματοποιήθηκε με επιτυχία

Για να βεβαιωθείτε ότι το bot σας είναι σωστά συνδεδεμένο με τον διακομιστή Discord, προσθέστε μια ασύγχρονη μέθοδο στο αρχείο Python σας. Αυτό επιτυγχάνεται με την ανταπόκριση στο συμβάν on_ready, το οποίο ορίζεται στο API του discord.py. Για να επιτρέψετε στη συνάρτησή σας να λειτουργήσει ως χειριστής συμβάντων, χρησιμοποιήστε τον διακοσμητή @client.event στη Python.

@client.event
async def on_ready():
    print(f'{client.user} is connected to the following server:\n')
    for server in client.guilds:
        print(f'{server.name}(id: {server.id})')
python
Note

Οι ασύγχρονες συναρτήσεις χρησιμοποιούνται συχνά στον προγραμματισμό bot του Discord. Αυτό εξασφαλίζει ότι η συνάρτηση εκτελείται σε ένα ξεχωριστό νήμα, διαφορετικό από το κύριο νήμα, επιτρέποντας την παράλληλη εκτέλεση των εργασιών του bot χωρίς να εμποδίζεται η λειτουργία του κύριου νήματος.

Βήμα 5: Προσθέστε λειτουργίες στο bot σας

Για την υλοποίηση λειτουργιών του bot στο discord.py, χρησιμοποιείται το συμβάνon_message. Αυτό το συμβάν ενεργοποιείται κάθε φορά που το bot σας στο Discord λαμβάνει ένα μήνυμα. Για να χειριστείτε αυτό το συμβάν, η μέθοδος σας θα πρέπει πρώτα να προσδιορίσει τον αποστολέα του μηνύματος και στη συνέχεια να εκτελέσει την επιθυμητή λειτουργία, όπως η προσθήκη ρόλων.

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('!add_role'):
        # Find role name
        role_name = message.content.split(' ')[1]
        # search corresponding Discord role
        role = discord.utils.get(message.guild.roles, name=role_name)
        # Check if the role exists
        if role is None:
            await message.channel.send(f'Role "{role_name}" does not exist)
            return
        # Role assignment
        await message.author.add_roles(role)
        await message.channel.send(f'Role "{role_name}" was added to {message.author}')

Αρχικά, η συνάρτηση ελέγχει αν το ληφθέν μήνυμα έχει σταλεί από το ίδιο το bot του Discord. Αν αυτό ισχύει, η συνάρτηση τερματίζεται με τη χρήση της δήλωσης return.

Το επόμενο βήμα περιλαμβάνει μια πιο προσεκτική εξέταση του περιεχομένου του μηνύματος. Εάν το μήνυμα ξεκινά με τη συμβολοσειρά !add_role, το bot το αναγνωρίζει ως εντολή. Αυτό σημαίνει ότι οι χρήστες του διακομιστή πρέπει να ξεκινήσουν τα αιτήματά τους προς το bot του Discord με τη συμβολοσειρά !add_role ». Αν και οποιαδήποτε συμβολοσειρά μπορεί να χρησιμοποιηθεί ως εντολή, είναι προτιμότερο να χρησιμοποιούνται συμβολοσειρές που δεν χρησιμοποιούνται συνήθως στη φυσική γλώσσα.

Το bot προσδιορίζει το όνομα του επιθυμητού ρόλου από μια εντολή που έχει ερμηνευτεί σωστά, χρησιμοποιώντας τη συνάρτηση Python split(). Στη συνέχεια, εντοπίζει τον αντίστοιχο ρόλο στον διακομιστή σας. Μπορείτε να το κάνετε αυτό αξιοποιώντας το αντικείμενο message, το οποίο περιέχει διάφορες πληροφορίες σχετικά με τον διακομιστή σας στο πεδίο message.guild.

Εάν ο ρόλος δεν υπάρχει και, κατά συνέπεια, έχει την τιμή «None», εμφανίζεται ένα μήνυμα σφάλματος και η συνάρτηση τερματίζεται με τη χρήση της εντολής return. Εάν ο ρόλος υπάρχει, του αποδίδεται όπως απαιτείται. Για τον σκοπό αυτό, χρησιμοποιούμε τη συνάρτηση add_roles από τη βιβλιοθήκη discord.py, η οποία ορίζεται επίσης στο αντικείμενο message.

Go to Main Menu