[PYTHON] Machen Sie eine Yuma mit Discord.py

Einführung

@ Nemesis Versuchen Sie, Yuma in Java zu implementieren und @ nekozuki_devs Versuchen Sie, Yuma in Discord Bot zu implementieren Dies ist die discord.py-Version von (http://qiita.com/nekozuki_dev/items/485d47a459a63f59400f). Wenn Sie neu bei discord.py sind, lesen Sie bitte etwas wie Praktischer Discord-Bot in Python (Discordpy-Erklärung). (Ich glaube nicht) Da dies der erste Artikel ist, tut es mir leid, wenn etwas schwer zu lesen ist. ** Leichte Themenaufmerksamkeit! ** ** **

Ersetzen

Name eingeben

Scanner keiyakusho = new Scanner(System.in);
String name = keiyakusho.nextLine();

Im Original wird die Eingabe von der Konsole wie folgt angefordert:

ニックネーム

"Du hast einen Spitznamen!" Deshalb werde ich dieses Mal einen Spitznamen verwenden.

Ausgabe

System.out.println("Von nun an heißt du"+newName+"Es ist. Wohlgemerkt,"+newName+"Korrekt. Ich werde antworten, wenn ich verstehe"+newName+"!!");

Im Original wird nur das Ergebnis ausgegeben, aber da Sie den Spitznamen mit der Discord-API ändern können, werde ich den Spitznamen tatsächlich ändern.

Code schreiben

Ich werde den Code tatsächlich schreiben.

Grundbot

Verwenden Sie die offiziell vorbereitete.

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')

client.run('your token here')

Jetzt haben Sie einen Bot, der antwortet, wenn Sie "$ hallo" senden. Hello!

Lassen Sie es mit Erwähnungen reagieren

] Verwenden Sie /ja/latest/api.html#discord.ClientUser.mentolved_in)), um ein Erwähnungsurteil abzugeben.

if message.content.startswith('$hello'):
  await message.channel.send('Hello!')

Zu

if client.user.mentioned_in(message):
  await message.channel.send('Hello!')

Zu メンションで反応 ~~ Eine wertvolle Szene, in der Yuma Englisch spricht ~~

Ändern Sie die Reaktion

await message.channel.send('Hello!')

Ich werde mich hier ändern.


System.out.println("Es ist ein Vertrag. Schreiben Sie dort Ihren Namen.");

Scanner keiyakusho = new Scanner(System.in);
String name = keiyakusho.nextLine();

System.out.println("Hung."+name +"Ich meine. Es ist ein luxuriöser Name.");

Random random = new Random();
int newNameIndex = random.nextInt(name.length());
String newName = name.substring(newNameIndex,newNameIndex+1);

System.out.println("Von nun an heißt du"+newName+"Es ist. Wohlgemerkt,"+newName+"Korrekt. Ich werde antworten, wenn ich verstehe"+newName+"!!");

Dies ist der Originalcode. Wenn Sie dies mit Python umschreiben,

import random
#~~~~~~~~~
print("Es ist ein Vertrag. Schreiben Sie dort Ihren Namen.")

name = input()

print(f"Hung.{name}Ich meine. Es ist ein luxuriöser Name.")

new_name = random.choice(name)

print(f"Von nun an heißt du{new_name}Es ist. Wohlgemerkt,{new_name}Korrekt. Ich werde antworten, wenn ich verstehe{new_name}!!")

Es wird so sein. Wenn Sie dies in die discord.py-Spezifikation umschreiben ...

import random
#~~~~~~~~~
await message.channel.send("Es ist ein Vertrag. Schreiben Sie dort Ihren Namen.")

await message.channel.send(f"(Sie sind im Vertrag`{message.author.display_name}`Ich schrieb.)")

name = message.author.display_name

await message.channel.send(f"Hung.`{name}`Ich meine. Es ist ein luxuriöser Name.")

new_name = random.choice(name.replace(" ",""))

await message.channel.send(f"Von nun an heißt du`{new_name}`Es ist."
f"Wohlgemerkt,`{new_name}`Korrekt. Ich werde antworten, wenn ich verstehe`{new_name}`!!")

await message.author.edit(nick=new_name)

await message.channel.send(f"(Dein Spitzname ist`{new_name}`Wurde.)")

Es wird so sein. はっや!!! (Ich wechsle den Server von hier.) Es ist zu früh, also lasse ich dich eine Weile warten.

Machen Sie es niedrig spec

Verwenden Sie "asyncio.sleep", um die Reaktion zu verlangsamen. ** Beachten Sie, dass der gesamte Bot stoppt, wenn Sie asyncio.sleep nicht verwenden! ** ** **

import random
import asyncio
#~~~~~~~~~
await message.channel.send("Es ist ein Vertrag. Schreiben Sie dort Ihren Namen.")
await asyncio.sleep(1)
await message.channel.send(f"(Sie sind im Vertrag`{message.author.display_name}`Ich schrieb.)")

name = message.author.display_name
await asyncio.sleep(2)
await message.channel.send(f"Hung.`{name}`Ich meine. Es ist ein luxuriöser Name.")

new_name = random.choice(name.replace(" ",""))
await asyncio.sleep(4)
await message.channel.send(f"Von nun an heißt du`{new_name}`Es ist."
f"Wohlgemerkt,`{new_name}`Korrekt. Ich werde antworten, wenn ich verstehe`{new_name}`!!")

await message.author.edit(nick=new_name)

await message.channel.send(f"(Dein Spitzname ist`{new_name}`Wurde.)")

Jetzt das. Das Ergebnis der Aufnahme in den Hauptcode ist ... 完成 Ich hoffe es ist vollbracht! ~~ Keine Einwände ~~

Schließlich

Ich habe mit discord.py eine Tante aus heißen Quellen gemacht. Da dies der erste Artikel ist, kann es schwierig sein, ihn zu lesen. In diesem Fall hinterlassen Sie bitte einen Kommentar.

Vielen Dank für das Lesen bis zum Ende.

Diese Quelle

import discord
import random
import asyncio

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if client.user.mentioned_in(message):
        await message.channel.send("Es ist ein Vertrag. Schreiben Sie dort Ihren Namen.")
        await asyncio.sleep(1)
        await message.channel.send(f"(Sie sind im Vertrag`{message.author.display_name}`Ich schrieb.)")
        
        name = message.author.display_name
        await asyncio.sleep(2)
        await message.channel.send(f"Hung.`{name}`Ich meine. Es ist ein luxuriöser Name.")
        
        new_name = random.choice(name.replace(" ",""))
        await asyncio.sleep(4)
        await message.channel.send(f"Von nun an heißt du`{new_name}`Es ist."
        f"Wohlgemerkt,`{new_name}`Korrekt. Ich werde antworten, wenn ich verstehe`{new_name}`!!")
        
        await message.author.edit(nick=new_name)
        
        await message.channel.send(f"(Dein Spitzname ist`{new_name}`Wurde.)")

client.run("your token here")

Ergänzung

Verbotene Spucke, wenn die Person, die es versucht hat, eine höhere Autorität hat. Wenn möglich, ist das ein Problem, also Yoshi!

Recommended Posts

Machen Sie eine Yuma mit Discord.py
Bilden Sie Lambda-Schichten mit Lambda
Erstellen Sie Folien mit iPython
Machen Sie mit Kivy SF-ähnliche Knöpfe
Machen wir Othello mit wxPython
Machen Sie es mit der Syntax einfach
Erstelle Puyopuyo AI mit Python
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
Machen Sie Slack Chatbot mit Errbot
Erstelle einen LINE-Bot mit Python + Heroku
Machen Sie Apache Log CSV mit Python
Machen Sie ASCII-Kunst mit tiefem Lernen
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Machen wir einen Blockbruch mit wxPython
Machen wir Othellos KI mit Chainer-Teil 1-
Vertrauteres Testen mit Selen
Erstellen Sie ein Empfehlungssystem mit Python
Machen Sie den Computerserver mit LTSP plattenlos
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Machen wir Othellos KI mit Chainer-Teil 2-
Erstellen Sie mit PySide einen Modelliterator
Bringen Sie Menschen mit Deep Learning zum Lächeln
Machen Sie Scrapy exe mit Pyinstaller
Machen Sie eine schöne Grafik mit Plotly
Machen Sie die Python-Konsole mit UNKO bedeckt
Erstellen Sie einen Audio-Interface-Controller mit pyusb (2).
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Machen Sie GUI-Apps mit tkinter ganz einfach
Machen Sie einen seltenen Gacha-Simulator mit Flask
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Fraktal zum Erstellen und Spielen mit Python
Machen Sie mit matplotlib eine teilweise gezoomte Figur
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Lassen Sie uns mit Python langsam sprechen
Machen Sie PLEN Control Server kompatibel mit ViVi PLEN2
Erleichtern Sie die Einreichung von Pypys mit atcoder-cli (Python)
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Machen Sie eine Logikschaltung mit Perceptron (Multilayer Perceptron)
Machen Sie Ja Nein Popup mit Kivy
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Erstellen Sie eine GIF-Animation mit Ordnerüberwachung
Erstellen Sie ein Webframework mit Python! (1)
Machen wir mit Pylearn 2 eine dreiäugige KI
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie eine API für das Switchbot-Thermo-Hygrometer mit Node-RED
Erstellen Sie ein Webframework mit Python! (2)
Nehmen Sie allgemeine Einstellungen mit der Unterzeichnung von matplotlib vor