코딩/디스코드

@bot.command() async def play(ctx): channel = ctx.author.voice.channel await channel.connect() 이런식으로 음성채널로 입장하는 코드를 썼는데 입장이 안된다. 딱히 오류가 뜨지도 않고 다른 명령어는 된다. 그럴때는 PyNaCl 모듈을 설치하면 된다. pip install PyNaCl 그럼 이렇게 잘 들어와지는 것을 확인할 수 있다.
채널 만들기 대충 만드는 순서는 봇이 들어있는 서버 정보 가져오기 서버에 채널 만들기 가 끝이라고 볼 수 있다. 채널 만드는 코드 명령어와 동시에 채널 이름을 입력받는다. @bot.comand() asyncdef create_channel(ctx, channelName): guild = ctx.guild await guild.create_text_channel(channelName) 이렇게 하면 카테고리 안에 없이 가장 최상단에 채널이 만들어진다. 만들고 싶은 채널 명령어 비고 텍스트 채널 create_text_channel(채널명) 최상단 음성 채널 create_voice_channel(채널명) 최상단 포럼 채널 create_forum(채널명) 최상단 카테고리 create_category(카테고리명) ..
# 채널 목록에서 원하는 채널 명의 채널 정보를 가져옴 channel_name = discord.utils.get(ctx.guild.channels, name = '원하는 채널 명') # 해당 채널에 메시지 보냄 await channel_name.send('123123')
# 채널 정보 가져오기 channel_name = discord.utils.get(ctx.guild.channels, name = '1234') # name: 글 제목, content: 글 내용 await channel_name.create_thread(name='asdf', content='123123123') 결과
디스코드 봇으로 일정한 시간마다, 간격마다 메시지를 보내도록 하고 싶을 때가 있다. 매일 아침 9시, 1초마다, 등등 여러 시간대로 설정할 수 있다. discord.ext의 task를 사용한다. 그리고 시간을 알기위해 datetime을 사용한다. from discord.ext import task import datetime 먼저 datetime으로 현재 날짜와 시간을 가지고 오고 거기서 원하는 년도와 월 또는 일, 시간대를 뽑고 그 시간대와 내가 원하는 시간이 맞는지 확인하면 된다. from datetime import datetime # 현재 시간 dt = datetime.now() # 결과 # 2023-01-18 10:50:39.569492 (datetime.datetime 타입) 코드 내용 결과 ..
보통 슬래시 커맨드를 검색하면 pip install discord-py-slash-command from discord_slash import SlashCommand, SlashContext 이런식으로 설치하라고 말한다. 하지만 내가 했을 때는 계속해서 no moduel discord_slash라고 떠서 사용할 수 없었다. 계속 찾다가 쓰는 방법을 발견해서 올린다. 준비 먼저 슬래시 커맨드를 사용하려면 처음 디스코드 봇을 서버에 초대할때 application_commads를 체크해야 한다. 디스코드 개발자 OAuth2 URL Generator 이렇게 bot과 application_commands를 체크하고 초대할 해야한다. slash_command 사용 이제 본격적으로 슬래시 커맨드를 사용해보자 from..