discord.py 프로젝트 4: ✍🏽파트너십 봇!
20885 단어 discorddpydiscordbotdiscordpy
Discord 서버 파트너십이 무엇인가요?
Discord 서버 파트너십은 두 서버가 멤버를 공유하기 위해 지정된 채널에서 상대방의 초대 링크를 보내는 것입니다.
최종 제품은 this과 같습니다.
서버 직원은 다음을 볼 수 있습니다.
체크 표시를 클릭하거나 십자가를 클릭하여 요청을 수락하거나 거부할 수 있습니다!
수락되면 지정된 채널에 광고가 자동으로 게시됩니다!
discord.ext.forms 설치 🔧
Discord.ext.forms는 양식 및 설문 조사를 만드는 봇 개발자를 돕기 위해 특별히 설계된 모듈입니다! 설치하려면 셸을 열고 다음을 입력해야 합니다.
pip install discord-ext-forms
완료되면 코딩을 시작할 준비가 된 것입니다!
봇 코딩 ⚙
이를 시작하려면 commands.Bot
인스턴스를 시작해야 합니다.
from discord.ext import commands
import discord
bot = commands.Bot(command_prefix="!")
bot.run(TOKEN_HERE)
이제 봇이 생겼으니 partner
명령을 만들어 봅시다!
from discord.ext import commands
import discord
bot = commands.Bot(command_prefix="!")
@bot.command()
async def partner(ctx):
...
bot.run(TOKEN)
파트너십 명령을 위한 양식을 만들기 위해 discord.ext.forms에서 Form
클래스를 가져와야 합니다!
from discord.ext.forms import Form
이제 양식을 시작하겠습니다! 초대 링크, 설명 및 광고 서버를 요청하고 싶을 가능성이 높지만 이러한 질문을 추가하거나 제거할 수 있습니다!
명령에서 양식을 만들어 봅시다.
form = Form(ctx, "Partnership Request")
질문을 추가하려면 양식의 .add_question
메서드를 사용합니다.
form.add_question(
"What's the invite link to your server?", # The question which it will ask
"invitelink", # What the form will call the result of this question
"invite" # The type the response should be
)
유형이 invite
이기 때문에 discord.ext.forms는 응답이 초대인지 확인하고 초대 개체를 반환합니다.
이제 다른 두 가지 질문을 추가해 보겠습니다.
@bot.command()
async def partner(ctx):
form = Form(ctx, "Partnership Request")
form.add_question(
"What's the invite link to your server?", # The question which it will ask
"invitelink", # What the form will call the result of this question
"invite" # The type the response should be
)
form.add_question(
"What's a description of your server?",
"description"
)
form.add_question(
"What's your server's advertisement?",
"advertisement"
)
마지막 두 개는 메시지 내용만 원하기 때문에 유형이 없습니다.
이제 양식을 시작하겠습니다!
results = await form.start()
results
에는 3가지 속성이 있습니다.
pip install discord-ext-forms
이를 시작하려면
commands.Bot
인스턴스를 시작해야 합니다.from discord.ext import commands
import discord
bot = commands.Bot(command_prefix="!")
bot.run(TOKEN_HERE)
이제 봇이 생겼으니
partner
명령을 만들어 봅시다!from discord.ext import commands
import discord
bot = commands.Bot(command_prefix="!")
@bot.command()
async def partner(ctx):
...
bot.run(TOKEN)
파트너십 명령을 위한 양식을 만들기 위해 discord.ext.forms에서
Form
클래스를 가져와야 합니다!from discord.ext.forms import Form
이제 양식을 시작하겠습니다! 초대 링크, 설명 및 광고 서버를 요청하고 싶을 가능성이 높지만 이러한 질문을 추가하거나 제거할 수 있습니다!
명령에서 양식을 만들어 봅시다.
form = Form(ctx, "Partnership Request")
질문을 추가하려면 양식의
.add_question
메서드를 사용합니다.form.add_question(
"What's the invite link to your server?", # The question which it will ask
"invitelink", # What the form will call the result of this question
"invite" # The type the response should be
)
유형이
invite
이기 때문에 discord.ext.forms는 응답이 초대인지 확인하고 초대 개체를 반환합니다.이제 다른 두 가지 질문을 추가해 보겠습니다.
@bot.command()
async def partner(ctx):
form = Form(ctx, "Partnership Request")
form.add_question(
"What's the invite link to your server?", # The question which it will ask
"invitelink", # What the form will call the result of this question
"invite" # The type the response should be
)
form.add_question(
"What's a description of your server?",
"description"
)
form.add_question(
"What's your server's advertisement?",
"advertisement"
)
마지막 두 개는 메시지 내용만 원하기 때문에 유형이 없습니다.
이제 양식을 시작하겠습니다!
results = await form.start()
results
에는 3가지 속성이 있습니다.invitelink
description
advertisement
이전에 이 값을 설정한 키입니다!
이제 스태프에게 제출물을 보여주는 임베드를 만들어 보겠습니다.
embed = discord.Embed(
title=f"Partnership Request from {results.invitelink.guild.name}",
description=f"**Description:** {results.description}",
)
embed.set_thumbnail(url=results.invitelink.guild.icon_url)
embed.set_author(name=ctx.author, icon_url=ctx.author.avatar_url)
이제 파트너쉽 채널을 만들어 임베딩을 보낼 수 있습니다!
partnershipreq = bot.get_channel(partnership_request_channel_id_here)
마지막으로 보내자!
prompt = await partnershipreq.send(embed=embed)
직원이 수락 및 거부할 수 있으려면 discord.ext.forms:
ReactConfirm
의 다른 양식이 필요합니다.from discord.ext.forms import Form, ReactConfirm
이전에 저장한 이유
prompt
는 수락/거부 프로세스에 필요하기 때문입니다. 다음과 같이 ReactConfirm을 사용하여 confirm
라는 새 양식을 만듭니다.confirm = ReactConfirm(user=ctx.author, message=prompt, bot=bot)
accepted = await confirm.start()
이제 봇은 메시지를 보낸 후 ✔ 및 ❌ 이모티콘으로 반응하고 스태프가 하나를 선택하기를 기다립니다.
거의 다 왔습니다! 이제 광고가 수락되면 물론 포함된 광고를 파트너십 채널로 보내면 됩니다.
if accepted:
partners = bot.get_channel(partners_channel_id_here)
em = discord.Embed(title=results.invitelink.guild.name,
description=results.advertisement, color=0x2F3136)
em.set_author(name=ctx.author, icon_url=ctx.author.avatar_url)
em.set_thumbnail(url=results.invitelink.guild.icon_url)
await partners.send(embed=em)
이제 끝났습니다! 최종 코드는 다음과 같습니다.
from discord.ext import commands
import discord
from discord.ext.forms import Form, ReactConfirm
bot = commands.Bot(command_prefix="!")
@bot.command()
async def partner(ctx):
form = Form(ctx, "Partnership Request")
form.add_question(
"What's the invite link to your server?", # The question which it will ask
"invitelink", # What the form will call the result of this question
"invite" # The type the response should be
)
form.add_question(
"What's a description of your server?",
"description"
)
form.add_question(
"What's your server's advertisement?",
"advertisement"
)
results = await form.start()
embed = discord.Embed(
title=f"Partnership Request from {results.invitelink.guild.name}",
description=f"**Description:** {results.description}",
)
embed.set_thumbnail(url=results.invitelink.guild.icon_url)
embed.set_author(name=ctx.author, icon_url=ctx.author.avatar_url)
partnershipreq = bot.get_channel(partnership_request_channel_id_here)
prompt = await partnershipreq.send(embed=embed)
confirm = ReactConfirm(user=ctx.author, message=prompt,bot=bot)
accepted = await confirm.start()
partners = bot.get_channel(partners_channel_id_here)
em = discord.Embed(title=results.invitelink.guild.name, description=results.advertisement, color=0x2F3136)
em.set_author(name=ctx.author, icon_url=ctx.author.avatar_url)
em.set_thumbnail(url=results.invitelink.guild.icon_url)
await partners.send(embed=em)
bot.run(TOKEN)
이 모듈의 다른 사용 사례를 보려면 여기에서 확인하십시오.
테라바이트3 / discord-ext-forms
discord.py를 사용하여 양식, 설문 조사 및 반응 입력을 만드는 더 간단한 방법입니다.
Reference
이 문제에 관하여(discord.py 프로젝트 4: ✍🏽파트너십 봇!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mikeywastaken/discord-py-project-4-partnership-bot-5oo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)