Quand j'ai commencé à créer un bot avec Discord après un long moment, j'ai mal compris que je ne pouvais pas envoyer de message à moins d'avoir l'ID de chaîne et de le spécifier. ~~ Produit accidentel (bien que prévu) ~~
Vérifiez d'abord l'existence du fichier Si tel est le cas, stockez l'ID de canal lu dans une variable Sinon, passez comme c'est le cas / setup ID de canal Si l'ID de canal est correct, un message de réussite sera envoyé au canal spécifié. /save Enregistrez l'ID de canal dans un fichier texte avec
Les personnes qui spécifient des canaux afin que le bot ne se déplace pas sur différents canaux peuvent être utiles lors du changement de canal qui déplace le bot. ~~ Si vous ne vous en souciez pas, utilisez message.channel ~~
<détails> Si le fichier n'existe pas, essayez sauf est utilisé pour gérer l'erreur.
Bien sûr, comme il est lu à partir d'un fichier texte, il est également nécessaire de convertir une chaîne de caractères en une valeur numérique, donc int () est également utilisé. / setup ID de canal
Extraire uniquement la partie ID de canal avec ~~ ```open ("save file", "type")
Recommended Posts
import discord
client = discord.Client()
@client.event
async def on_ready():
print("logged in as "+client.user.name)
try:
with open("test.txt","r")as f:
channel=client.get_channel(int(f.read()))
await channel.send("J'ai pu charger l'ID de chaîne")
except FileNotFoundError:
print("Impossible d'obtenir l'ID de chaîne")
@client.event
async def on_message(message):
global tmp
if message.author != client.user:
if message.content.startswith("/setup")==True:
tmp=message.content[7:len(message.content)]
try:
channel=client.get_channel(int(tmp))
except ValueError:
print("Valeur illégale")
try:
await channel.send("Succès")
except AttributeError:
print("ID de chaîne incorrect")
except UnboundLocalError:
print("Type illégal")
if message.content=="/save":
f=open("test.txt","w")
f.write(tmp)
f.close()
channel=client.get_channel(int(tmp))
await channel.send("J'ai enregistré l'identifiant de la chaîne")
client.run("token")
Commentaire
Fichier de chargement
try:
with open("test.txt","r")as f:
channel=client.get_channel(int(f.read()))
await channel.send("J'ai pu charger l'ID de chaîne")
load=1
except FileNotFoundError:
print("Impossible d'obtenir l'ID de chaîne")
Obtenir l'identifiant de la chaîne
if message.content.startswith("/setup")==True:
tmp=message.content[7:len(message.content)]
try:
channel=client.get_channel(int(tmp))
except ValueError:
print("Valeur illégale")
try:
await channel.send("Succès")
except AttributeError:
print("ID de chaîne incorrect")
except UnboundLocalError:
print("Type illégal")
client.get_channel (int (tmp))
Stocker l'ID de canal dans le canal
~~ Je ne sais pas comment gérer l'erreur, mais je l'ai mis dans ~~Enregistrer l'ID de chaîne
if message.content=="/save":
f=open("test.txt","w")
f.write(tmp)
f.close()
channel=client.get_channel(int(tmp))
await channel.send("J'ai enregistré l'identifiant de la chaîne")
Je m'en souviens bien, mais si je me souviens de w d'écriture et de r de lecture, ce sera en quelque sorte () ~~
Cela ne devrait pas être difficile ici car il s'agit principalement d'écrire et de lire des fichiers.Résumé
** Apprenez les bases **