2017-10-01 8 views
2

불협화음 봇을 코딩 중이며 봇이 새 서버에 가입 할 때마다 서버 기본 채널에 메시지를 보내려고합니다.Discord.NET Guild.DefaultChannel이 작동하지 않습니다.

여기에 오류가 channel.SendMessageAsync 발생 내 코드

client.JoinedGuild += async guild => 
{ 
var channel = guild.DefaultChannel; 
await channel.SendMessageAsync("test"); 
}; 

이고, 나는이 프로그램을 디버깅 할 때, 내가 내 서버에 기본 채널이 할 비록 channel가 null 보여주는 유지합니다.

답변

3

불화 업데이트 개월 전 defaultChannel 속성을 제거했습니다. 즉, 이제 서버는 기본 채널을 전혀 가질 필요가 없습니다.
(서버의 모든 채널을 삭제할 수도 있습니다.)

이는 또한 Guild.DefaultChannel 속성이 더 이상 의도 한대로 작동하지 않음을 의미합니다.
(만약 내가 잘못 정정 해줘,하지만 서버가 여전히 #general 채널이있는 경우, 속성이로 구성. 작동)

Discord.NET V2 + 작업 DefaultChannel 속성이 있습니다. (알고리즘에 따라 길드의 기본 채널을 결정합니다.)

알고리즘의 소스 코드는 here입니다. (라인 66-69)

알고리즘을 보면 로봇이 메시지를 사방에 보낼 수있는 권한이있는 경우 알고리즘 사용에 약간주의 할 수 있습니다. DefaultChannel 속성은 서버의 채널 목록에있는 첫 번째 채널 일뿐입니다 .
(그게 readme 채널이라면 나쁜 소식이 될 것입니다)