문서는 https://docs.discordnet.dev/index.html에서 찾을 수 있습니다.
Discord.Net은 전적으로 자원봉사자들에 의해 개발이 가능한 MIT 라이선스 오픈 소스 프로젝트입니다. 우리의 노력을 재정적으로 지원하고 싶다면 다음을 고려하십시오.
Discord.Net 메타패키지를 통해 NuGet에서 사용할 수 있는 안정적인 빌드:
개별 구성 요소는 NuGet에서 설치할 수도 있습니다.
웹훅
텍스트 명령 및 상호 작용 서비스.
완전한 API 적용 범위.
API 코어. 엔터티와 베어본 기능만 구현합니다.
Nightlies는 아직 실험 단계에 있으며 아직 출시되지 않은 Discord.NET 빌드입니다.
두 가지 소스를 통해 사용할 수 있습니다.
메모
GitHub 패키지에는 인증이 필요합니다. 자세한 내용은 여기에서 확인하실 수 있습니다.
.NET Core 1.1은 Win7 및 이전 버전에서 WebSocket을 지원하지 않습니다. 이 문제는 .NET Core 2.1 출시 이후 해결되었습니다. 레거시 플랫폼에서 봇을 실행하려면 프로젝트에 대해 .NET Core 2.1 이상을 대상으로 지정하는 것이 좋습니다. 또는 Discord.Net.Providers.WS4Net 패키지를 설치하도록 선택할 수도 있습니다.
Discord는 2022년 7월 19일부터 API를 포함한 모든 웹사이트에서 TLS1.2+만 지원합니다. .NET Framework는 기본적으로 이 프로토콜을 지원하지 않습니다. .NET Framework를 사용하는 경우 프로젝트를 net6-windows
로 업그레이드하는 것이 좋습니다. 이 프레임워크는 fx에서 도입된 대부분의 Windows 전용 기능을 지원하고 TLS 프로토콜 불일치로 인한 시작 오류를 해결합니다.
이 라이브러리는 일반적으로 Semantic Versioning을 준수합니다. 패키지는 MAJOR.MINOR.PATCH
버전 형식으로 게시됩니다.
PATCH 구성 요소의 증가는 항상 내부 전용 변경(일반적으로 버그 수정)이 이루어졌음을 나타냅니다. 이러한 변경 사항은 공개 API에 어떤 식으로든 영향을 주지 않으며, 코드 베이스의 사전 컴파일된 종속성인 코드 베이스와의 상위 및 하위 호환성이 항상 보장됩니다.
MINOR 구성 요소의 증가는 라이브러리에 일부 추가가 이루어졌음을 나타내며 이 추가는 이전 버전과 호환되지 않습니다. 그러나 Discord.Net은 사소한 추가 사항에 대한 향후 호환성을 보장하지 않습니다 . 즉, 마이너 버전 변경 시 제한된 일련의 주요 변경 사항을 허용합니다.
Discord API의 특성으로 인해 최신 API 변경 사항을 지원하기 위해 엔터티에 속성을 추가해야 하는 경우가 많습니다. Discord.Net은 엔터티를 소비하는 방법으로 인터페이스를 제공합니다. 따라서 엔터티에 새로운 필드를 도입하는 것은 기술적으로 획기적인 변화입니다. 주요 버전 범프는 일반적으로 라이브러리에 대한 일부 주요 변경 사항을 나타내므로 우리는 라이브러리에 사소한 추가 사항이 있을 때마다 주요 버전을 범하는 것을 주저합니다. 타협을 위해 우리는 인터페이스를 소모품으로만 처리해야 하며 애플리케이션은 일반적으로 인터페이스를 구현하지 않아야 한다고 결정했습니다.
모의 테스트와 같이 인터페이스가 구현되는 애플리케이션의 경우 SemVer와의 불일치에 대해 사과드립니다.
사소한 빌드에서는 API(인터페이스 변경 외)를 중단하지 않지만 Discord의 업스트림 변경 사항을 일치시키는 메서드에 매개변수를 도입하여 ABI를 중단해야 하는 경우가 가끔 있습니다. 따라서 마이너 버전이 증가하면 코드를 다시 컴파일해야 할 수 있으며, 애드온과 같은 종속성도 다시 컴파일하고 최신 버전에 다시 게시해야 할 수도 있습니다. 바이너리 주요 변경이 이루어지면 변경 사항이 릴리스 노트에 기록됩니다.
MAJOR 구성 요소가 증가하면 라이브러리에 주요 변경 사항이 적용되었음을 나타냅니다. 소비자는 릴리스 노트를 확인하여 어떤 변경이 필요한지 확인해야 합니다.
Major.Minor 다음에 분기를 릴리스합니다. 릴리스되면 패치가 이러한 분기에 푸시됩니다. 새 NuGet 릴리스는 이러한 분기에 태그가 지정됩니다.
MyGet에서 사용 가능한 개발 브랜치. 이 분기는 끌어오기 요청의 대상입니다.
Dev를 대상으로 하는 분기로 새로운 기능을 추가합니다. 이러한 분기를 자유롭게 탐색하고 필요한 경우 피드백을 제공하세요.
일반적으로 Dev를 대상으로 합니다. 이러한 분기는 새로운 기능이나 기존 기능 재작업으로 문서를 업데이트하는 데 사용됩니다.