@@ -0,0 +1,155 @@ | |||
root = true | |||
[*] | |||
charset = utf-8 | |||
end_of_line = lf | |||
insert_final_newline = true | |||
indent_style = space | |||
indent_size = 4 | |||
trim_trailing_whitespace = true | |||
[*.{cmd,config,csproj,cxxproj,json,props,ps1,resx,sh,targets}] | |||
indent_size = 2 | |||
[*.sln] | |||
end_of_line = crlf | |||
indent_style = tab | |||
[*.cs] | |||
csharp_indent_block_contents = true | |||
csharp_indent_braces = false | |||
csharp_indent_case_contents = true | |||
csharp_indent_case_contents_when_block = false | |||
csharp_indent_labels = one_less_than_current | |||
csharp_indent_switch_labels = true | |||
csharp_new_line_before_catch = true | |||
csharp_new_line_before_else = true | |||
csharp_new_line_before_finally = true | |||
csharp_new_line_before_members_in_anonymous_types = true | |||
csharp_new_line_before_members_in_object_initializers = true | |||
csharp_new_line_before_open_brace = accessors, control_blocks, events, indexers, local_functions, methods, properties, types, object_collection_array_initializers | |||
csharp_new_line_within_query_expression_clauses = true | |||
csharp_prefer_braces = false:silent | |||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion | |||
csharp_prefer_simple_default_expression = true:suggestion | |||
csharp_preserve_single_line_blocks = true | |||
csharp_preserve_single_line_statements = false | |||
csharp_space_after_cast = false | |||
csharp_space_after_colon_in_inheritance_clause = true | |||
csharp_space_after_comma = true | |||
csharp_space_after_dot = false | |||
csharp_space_after_keywords_in_control_flow_statements = true | |||
csharp_space_after_semicolon_in_for_statement = true | |||
csharp_space_around_binary_operators = before_and_after | |||
csharp_space_around_declaration_statements = do_not_ignore | |||
csharp_space_before_colon_in_inheritance_clause = true | |||
csharp_space_before_comma = false | |||
csharp_space_before_dot = false | |||
csharp_space_before_open_square_brackets = false | |||
csharp_space_before_semicolon_in_for_statement = false | |||
csharp_space_between_empty_square_brackets = false | |||
csharp_space_between_method_call_empty_parameter_list_parentheses = false | |||
csharp_space_between_method_call_name_and_opening_parenthesis = false | |||
csharp_space_between_method_call_parameter_list_parentheses = false | |||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | |||
csharp_space_between_method_declaration_name_and_open_parenthesis = false | |||
csharp_space_between_method_declaration_parameter_list_parentheses = false | |||
csharp_space_between_parentheses = false | |||
csharp_space_between_square_brackets = false | |||
csharp_style_conditional_delegate_call = true:suggestion | |||
csharp_style_deconstructed_variable_declaration = true:suggestion | |||
csharp_style_expression_bodied_accessors = false:suggestion | |||
csharp_style_expression_bodied_constructors = false:suggestion | |||
csharp_style_expression_bodied_indexers = false:suggestion | |||
csharp_style_expression_bodied_lambdas = true:suggestion | |||
csharp_style_expression_bodied_methods = false:suggestion | |||
csharp_style_expression_bodied_operators = false:suggestion | |||
csharp_style_expression_bodied_properties = false:suggestion | |||
csharp_style_inlined_variable_declaration = true:suggestion | |||
csharp_style_pattern_local_over_anonymous_function = true:suggestion | |||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion | |||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion | |||
csharp_style_throw_expression = true:suggestion | |||
csharp_style_unused_value_assignment_preference = discard_variable:suggestion | |||
csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion | |||
csharp_style_var_elsewhere = true:suggestion | |||
csharp_style_var_for_built_in_types = true:suggestion | |||
csharp_style_var_when_type_is_apparent = true:suggestion | |||
dotnet_code_quality_unused_parameters = all:suggestion | |||
dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.severity = suggestion | |||
dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.style = pascal_case_suffixed_with_async | |||
dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.symbols = async_members | |||
dotnet_naming_rule.const_declarations_should_be_pascal_case.severity = suggestion | |||
dotnet_naming_rule.const_declarations_should_be_pascal_case.style = pascal_case | |||
dotnet_naming_rule.const_declarations_should_be_pascal_case.symbols = const_declarations | |||
dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.severity = suggestion | |||
dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.style = pascal_case_prefixed_with_i | |||
dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.symbols = interfaces | |||
dotnet_naming_rule.parameters_should_be_camel_case.severity = suggestion | |||
dotnet_naming_rule.parameters_should_be_camel_case.style = camel_case | |||
dotnet_naming_rule.parameters_should_be_camel_case.symbols = parameters | |||
dotnet_naming_rule.private_and_internal_fields_should_be_camel_case_prefixed_with_underscore.severity = suggestion | |||
dotnet_naming_rule.private_and_internal_fields_should_be_camel_case_prefixed_with_underscore.style = camel_case_prefixed_with_underscore | |||
dotnet_naming_rule.private_and_internal_fields_should_be_camel_case_prefixed_with_underscore.symbols = private_and_internal_fields | |||
dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case_prefixed_with_s_and_underscore.severity = suggestion | |||
dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case_prefixed_with_s_and_underscore.style = camel_case_prefixed_with_s_and_underscore | |||
dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case_prefixed_with_s_and_underscore.symbols = private_and_internal_static_fields | |||
dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.severity = suggestion | |||
dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.style = pascal_case | |||
dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.symbols = public_and_protected_declarations | |||
dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.severity = suggestion | |||
dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.style = pascal_case | |||
dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.symbols = static_readonly_declarations | |||
dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.severity = suggestion | |||
dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.style = pascal_case_prefixed_with_t | |||
dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.symbols = type_parameters | |||
dotnet_naming_style.camel_case.capitalization = camel_case | |||
dotnet_naming_style.camel_case_prefixed_with_s_and_underscore.capitalization = camel_case | |||
dotnet_naming_style.camel_case_prefixed_with_s_and_underscore.required_prefix = s_ | |||
dotnet_naming_style.camel_case_prefixed_with_underscore.capitalization = camel_case | |||
dotnet_naming_style.camel_case_prefixed_with_underscore.required_prefix = _ | |||
dotnet_naming_style.pascal_case.capitalization = pascal_case | |||
dotnet_naming_style.pascal_case_prefixed_with_i.capitalization = pascal_case | |||
dotnet_naming_style.pascal_case_prefixed_with_i.required_prefix = I | |||
dotnet_naming_style.pascal_case_prefixed_with_t.capitalization = pascal_case | |||
dotnet_naming_style.pascal_case_prefixed_with_t.required_prefix = T | |||
dotnet_naming_style.pascal_case_suffixed_with_async.capitalization = pascal_case | |||
dotnet_naming_style.pascal_case_suffixed_with_async.required_suffix = Async | |||
dotnet_naming_symbols.async_members.required_modifiers = async | |||
dotnet_naming_symbols.const_declarations.required_modifiers = const | |||
dotnet_naming_symbols.interfaces.applicable_kinds = interface | |||
dotnet_naming_symbols.parameters.applicable_kinds = parameter | |||
dotnet_naming_symbols.private_and_internal_fields.applicable_accessibilities = private, internal | |||
dotnet_naming_symbols.private_and_internal_fields.applicable_kinds = field | |||
dotnet_naming_symbols.private_and_internal_static_fields.applicable_accessibilities = private, internal | |||
dotnet_naming_symbols.private_and_internal_static_fields.applicable_kinds = field | |||
dotnet_naming_symbols.private_and_internal_static_fields.required_modifiers = static | |||
dotnet_naming_symbols.public_and_protected_declarations.applicable_accessibilities = public, protected | |||
dotnet_naming_symbols.static_readonly_declarations.required_modifiers = static, readonly | |||
dotnet_naming_symbols.type_parameters.applicable_kinds = type_parameter | |||
dotnet_separate_import_directive_groups = false | |||
dotnet_sort_system_directives_first = true | |||
dotnet_style_coalesce_expression = true:suggestion | |||
dotnet_style_collection_initializer = true:suggestion | |||
dotnet_style_explicit_tuple_names = true:suggestion | |||
dotnet_style_null_propagation = true:suggestion | |||
dotnet_style_object_initializer = true:suggestion | |||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion | |||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion | |||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion | |||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion | |||
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion | |||
dotnet_style_predefined_type_for_member_access = true:suggestion | |||
dotnet_style_prefer_auto_properties = false:suggestion | |||
dotnet_style_prefer_compound_assignment = true:suggestion | |||
dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion | |||
dotnet_style_prefer_conditional_expression_over_return = false:suggestion | |||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion | |||
dotnet_style_prefer_inferred_tuple_names = true:suggestion | |||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion | |||
dotnet_style_qualification_for_event = false:suggestion | |||
dotnet_style_qualification_for_field = false:suggestion | |||
dotnet_style_qualification_for_method = false:suggestion | |||
dotnet_style_qualification_for_property = false:suggestion | |||
dotnet_style_readonly_field = true:suggestion | |||
dotnet_style_require_accessibility_modifiers = always:suggestion |
@@ -0,0 +1,26 @@ | |||
############################################################################### | |||
# Default to Unix-style text files | |||
############################################################################### | |||
* text eol=lf | |||
############################################################################### | |||
# Treat code and markdown as Unix-style text files | |||
############################################################################### | |||
*.cs text eol=lf | |||
*.csproj text eol=lf | |||
*.md text eol=lf | |||
*.props text eol=lf | |||
*.targets text eol=lf | |||
############################################################################### | |||
# Treat Solution files as Windows text files | |||
############################################################################### | |||
*.sln text eol=crlf | |||
############################################################################### | |||
# Treat images as binary files | |||
############################################################################### | |||
*.png binary | |||
*.ai binary | |||
@@ -0,0 +1,17 @@ | |||
Thanks in advance for your contribution to Discord.Net! | |||
Before opening a pull request, please consider the following: | |||
Does your changeset adhere to the Contributing Guidelines? | |||
Does your changeset address a specific issue or idea? If not, please | |||
break your changes up into multiple requests. | |||
Have your changes been previously discussed with other members | |||
of the community? We prefer new features to be vetted through | |||
an issue or a discussion in our Discord channel first; bug-fixes | |||
and other small changes are generally fine without prior vetting. | |||
Please remove this section, and include a summary of your changes | |||
below. | |||
--- |
@@ -0,0 +1,429 @@ | |||
## Ignore Visual Studio temporary files, build results, and | |||
## files generated by popular Visual Studio add-ons. | |||
## | |||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | |||
# User-specific files | |||
*.rsuser | |||
*.suo | |||
*.user | |||
*.userosscache | |||
*.sln.docstates | |||
# User-specific files (MonoDevelop/Xamarin Studio) | |||
*.userprefs | |||
# Mono auto generated files | |||
mono_crash.* | |||
# Build results | |||
[Dd]ebug/ | |||
[Dd]ebugPublic/ | |||
[Rr]elease/ | |||
[Rr]eleases/ | |||
x64/ | |||
x86/ | |||
[Aa][Rr][Mm]/ | |||
[Aa][Rr][Mm]64/ | |||
bld/ | |||
[Bb]in/ | |||
[Oo]bj/ | |||
[Ll]og/ | |||
# Visual Studio 2015/2017 cache/options directory | |||
.vs/ | |||
# Uncomment if you have tasks that create the project's static files in wwwroot | |||
#wwwroot/ | |||
# Visual Studio 2017 auto generated files | |||
Generated\ Files/ | |||
# MSTest test Results | |||
[Tt]est[Rr]esult*/ | |||
[Bb]uild[Ll]og.* | |||
# NUNIT | |||
*.VisualState.xml | |||
TestResult.xml | |||
# Build Results of an ATL Project | |||
[Dd]ebugPS/ | |||
[Rr]eleasePS/ | |||
dlldata.c | |||
# Benchmark Results | |||
BenchmarkDotNet.Artifacts/ | |||
# .NET Core | |||
project.lock.json | |||
project.fragment.lock.json | |||
artifacts/ | |||
# StyleCop | |||
StyleCopReport.xml | |||
# Files built by Visual Studio | |||
*_i.c | |||
*_p.c | |||
*_h.h | |||
*.ilk | |||
*.meta | |||
*.obj | |||
*.iobj | |||
*.pch | |||
*.pdb | |||
*.ipdb | |||
*.pgc | |||
*.pgd | |||
*.rsp | |||
*.sbr | |||
*.tlb | |||
*.tli | |||
*.tlh | |||
*.tmp | |||
*.tmp_proj | |||
*_wpftmp.csproj | |||
*.log | |||
*.vspscc | |||
*.vssscc | |||
.builds | |||
*.pidb | |||
*.svclog | |||
*.scc | |||
# Chutzpah Test files | |||
_Chutzpah* | |||
# Visual C++ cache files | |||
ipch/ | |||
*.aps | |||
*.ncb | |||
*.opendb | |||
*.opensdf | |||
*.sdf | |||
*.cachefile | |||
*.VC.db | |||
*.VC.VC.opendb | |||
# Visual Studio profiler | |||
*.psess | |||
*.vsp | |||
*.vspx | |||
*.sap | |||
# Visual Studio Trace Files | |||
*.e2e | |||
# TFS 2012 Local Workspace | |||
$tf/ | |||
# Guidance Automation Toolkit | |||
*.gpState | |||
# ReSharper is a .NET coding add-in | |||
_ReSharper*/ | |||
*.[Rr]e[Ss]harper | |||
*.DotSettings.user | |||
# JustCode is a .NET coding add-in | |||
.JustCode | |||
# TeamCity is a build add-in | |||
_TeamCity* | |||
# DotCover is a Code Coverage Tool | |||
*.dotCover | |||
# AxoCover is a Code Coverage Tool | |||
.axoCover/* | |||
!.axoCover/settings.json | |||
# Visual Studio code coverage results | |||
*.coverage | |||
*.coveragexml | |||
# NCrunch | |||
_NCrunch_* | |||
.*crunch*.local.xml | |||
nCrunchTemp_* | |||
# MightyMoose | |||
*.mm.* | |||
AutoTest.Net/ | |||
# Web workbench (sass) | |||
.sass-cache/ | |||
# Installshield output folder | |||
[Ee]xpress/ | |||
# DocProject is a documentation generator add-in | |||
DocProject/buildhelp/ | |||
DocProject/Help/*.HxT | |||
DocProject/Help/*.HxC | |||
DocProject/Help/*.hhc | |||
DocProject/Help/*.hhk | |||
DocProject/Help/*.hhp | |||
DocProject/Help/Html2 | |||
DocProject/Help/html | |||
# Click-Once directory | |||
publish/ | |||
# Publish Web Output | |||
*.[Pp]ublish.xml | |||
*.azurePubxml | |||
# Note: Comment the next line if you want to checkin your web deploy settings, | |||
# but database connection strings (with potential passwords) will be unencrypted | |||
*.pubxml | |||
*.publishproj | |||
# Microsoft Azure Web App publish settings. Comment the next line if you want to | |||
# checkin your Azure Web App publish settings, but sensitive information contained | |||
# in these scripts will be unencrypted | |||
PublishScripts/ | |||
# NuGet Packages | |||
*.nupkg | |||
# The packages folder can be ignored because of Package Restore | |||
**/[Pp]ackages/* | |||
# except build/, which is used as an MSBuild target. | |||
!**/[Pp]ackages/build/ | |||
# Uncomment if necessary however generally it will be regenerated when needed | |||
#!**/[Pp]ackages/repositories.config | |||
# NuGet v3's project.json files produces more ignorable files | |||
*.nuget.props | |||
*.nuget.targets | |||
# Microsoft Azure Build Output | |||
csx/ | |||
*.build.csdef | |||
# Microsoft Azure Emulator | |||
ecf/ | |||
rcf/ | |||
# Windows Store app package directories and files | |||
AppPackages/ | |||
BundleArtifacts/ | |||
Package.StoreAssociation.xml | |||
_pkginfo.txt | |||
*.appx | |||
*.appxbundle | |||
*.appxupload | |||
# Visual Studio cache files | |||
# files ending in .cache can be ignored | |||
*.[Cc]ache | |||
# but keep track of directories ending in .cache | |||
!?*.[Cc]ache/ | |||
# Others | |||
ClientBin/ | |||
~$* | |||
*~ | |||
*.dbmdl | |||
*.dbproj.schemaview | |||
*.jfm | |||
*.pfx | |||
*.publishsettings | |||
orleans.codegen.cs | |||
# Including strong name files can present a security risk | |||
# (https://github.com/github/gitignore/pull/2483#issue-259490424) | |||
#*.snk | |||
# Since there are multiple workflows, uncomment next line to ignore bower_components | |||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) | |||
#bower_components/ | |||
# RIA/Silverlight projects | |||
Generated_Code/ | |||
# Backup & report files from converting an old project file | |||
# to a newer Visual Studio version. Backup files are not needed, | |||
# because we have git ;-) | |||
_UpgradeReport_Files/ | |||
Backup*/ | |||
UpgradeLog*.XML | |||
UpgradeLog*.htm | |||
ServiceFabricBackup/ | |||
*.rptproj.bak | |||
# SQL Server files | |||
*.mdf | |||
*.ldf | |||
*.ndf | |||
# Business Intelligence projects | |||
*.rdl.data | |||
*.bim.layout | |||
*.bim_*.settings | |||
*.rptproj.rsuser | |||
*- Backup*.rdl | |||
# Microsoft Fakes | |||
FakesAssemblies/ | |||
# GhostDoc plugin setting file | |||
*.GhostDoc.xml | |||
# Node.js Tools for Visual Studio | |||
.ntvs_analysis.dat | |||
node_modules/ | |||
# Visual Studio 6 build log | |||
*.plg | |||
# Visual Studio 6 workspace options file | |||
*.opt | |||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) | |||
*.vbw | |||
# Visual Studio LightSwitch build output | |||
**/*.HTMLClient/GeneratedArtifacts | |||
**/*.DesktopClient/GeneratedArtifacts | |||
**/*.DesktopClient/ModelManifest.xml | |||
**/*.Server/GeneratedArtifacts | |||
**/*.Server/ModelManifest.xml | |||
_Pvt_Extensions | |||
# Paket dependency manager | |||
.paket/paket.exe | |||
paket-files/ | |||
# FAKE - F# Make | |||
.fake/ | |||
# CodeRush personal settings | |||
.cr/personal | |||
# Python Tools for Visual Studio (PTVS) | |||
__pycache__/ | |||
*.pyc | |||
# Cake - Uncomment if you are using it | |||
# tools/** | |||
# !tools/packages.config | |||
# Tabs Studio | |||
*.tss | |||
# Telerik's JustMock configuration file | |||
*.jmconfig | |||
# BizTalk build output | |||
*.btp.cs | |||
*.btm.cs | |||
*.odx.cs | |||
*.xsd.cs | |||
# OpenCover UI analysis results | |||
OpenCover/ | |||
# Azure Stream Analytics local run output | |||
ASALocalRun/ | |||
# MSBuild Binary and Structured Log | |||
*.binlog | |||
# NVidia Nsight GPU debugger configuration file | |||
*.nvuser | |||
# MFractors (Xamarin productivity tool) working folder | |||
.mfractor/ | |||
# Local History for Visual Studio | |||
.localhistory/ | |||
# BeatPulse healthcheck temp database | |||
healthchecksdb | |||
# Backup folder for Package Reference Convert tool in Visual Studio 2017 | |||
MigrationBackup/ | |||
## | |||
## Visual studio for Mac | |||
## | |||
# globs | |||
Makefile.in | |||
*.userprefs | |||
*.usertasks | |||
config.make | |||
config.status | |||
aclocal.m4 | |||
install-sh | |||
autom4te.cache/ | |||
*.tar.gz | |||
tarballs/ | |||
test-results/ | |||
# Mac bundle stuff | |||
*.dmg | |||
*.app | |||
# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore | |||
# General | |||
.DS_Store | |||
.AppleDouble | |||
.LSOverride | |||
# Icon must end with two \r | |||
Icon | |||
# Thumbnails | |||
._* | |||
# Files that might appear in the root of a volume | |||
.DocumentRevisions-V100 | |||
.fseventsd | |||
.Spotlight-V100 | |||
.TemporaryItems | |||
.Trashes | |||
.VolumeIcon.icns | |||
.com.apple.timemachine.donotpresent | |||
# Directories potentially created on remote AFP share | |||
.AppleDB | |||
.AppleDesktop | |||
Network Trash Folder | |||
Temporary Items | |||
.apdisk | |||
# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore | |||
# Windows thumbnail cache files | |||
Thumbs.db | |||
ehthumbs.db | |||
ehthumbs_vista.db | |||
# Dump file | |||
*.stackdump | |||
# Folder config file | |||
[Dd]esktop.ini | |||
# Recycle Bin used on file shares | |||
$RECYCLE.BIN/ | |||
# Windows Installer files | |||
*.cab | |||
*.msi | |||
*.msix | |||
*.msm | |||
*.msp | |||
# Windows shortcuts | |||
*.lnk | |||
# JetBrains Rider | |||
.idea/ | |||
*.sln.iml | |||
## | |||
## Visual Studio Code | |||
## | |||
.vscode/* |
@@ -0,0 +1,82 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- Based on https://github.com/terrafx/terrafx/blob/master/Directory.Build.props --> | |||
<!-- Copyright © Tanner Gooding and Contributors --> | |||
<Project> | |||
<!-- | |||
Directory.Build.props is automatically picked up and imported by | |||
Microsoft.Common.props. This file needs to exist, even if empty so that | |||
files in the parent directory tree, with the same name, are not imported | |||
instead. The import fairly early and only Sdk.props will have been imported | |||
beforehand. We also don't need to add ourselves to MSBuildAllProjects, as | |||
that is done by the file that imports us. | |||
--> | |||
<!-- Default settings that are used by other settings --> | |||
<PropertyGroup> | |||
<BaseArtifactsPath>$(MSBuildThisFileDirectory)artifacts/</BaseArtifactsPath> | |||
<BaseArtifactsPathSuffix>$(DiscordNetProjectCategory)/$(MSBuildProjectName)</BaseArtifactsPathSuffix> | |||
<RepositoryUrl>https://github.com/discord-net/Discord.Net</RepositoryUrl> | |||
</PropertyGroup> | |||
<!-- Default settings that explicitly differ from the Sdk.props defaults --> | |||
<PropertyGroup> | |||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> | |||
<BaseIntermediateOutputPath>$(BaseArtifactsPath)obj/$(BaseArtifactsPathSuffix)/</BaseIntermediateOutputPath> | |||
<DebugType>embedded</DebugType> | |||
<EnableDefaultNoneItems>false</EnableDefaultNoneItems> | |||
<Nullable>enable</Nullable> | |||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | |||
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage> | |||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> | |||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> | |||
</PropertyGroup> | |||
<!-- Default settings that explicitly differ from the Sdk.targets defaults--> | |||
<PropertyGroup> | |||
<Authors>RogueException;FiniteReality;</Authors> | |||
<BaseOutputPath>$(BaseArtifactsPath)bin/$(BaseArtifactsPathSuffix)/</BaseOutputPath> | |||
<Company>Discord-Net</Company> | |||
<PackageOutputPath Condition="'$(PlatformName)' == 'AnyCPU'">$(BaseArtifactsPath)pkg/$(Configuration)</PackageOutputPath> | |||
<PackageOutputPath Condition="'$(PlatformName)' != 'AnyCPU'">$(BaseArtifactsPath)pkg/$(Configuration)</PackageOutputPath> | |||
<Product>Discord.Net</Product> | |||
<VersionPrefix>3.0.0</VersionPrefix> | |||
<VersionSuffix>alpha</VersionSuffix> | |||
<VersionSuffix Condition="'$(SYSTEM_PULLREQUEST_PULLREQUESTNUMBER)' != ''">pr$(SYSTEM_PULLREQUEST_PULLREQUESTNUMBER)</VersionSuffix> | |||
</PropertyGroup> | |||
<!-- Default settings that are otherwise undefined --> | |||
<PropertyGroup> | |||
<Copyright>Copyright © Discord.Net Contributors.</Copyright> | |||
<Description>An asynchronous API wrapper for Discord.</Description> | |||
<Features>strict</Features> | |||
<GenerateDocumentationFile>true</GenerateDocumentationFile> | |||
<HighEntropyVA>true</HighEntropyVA> | |||
<LangVersion>preview</LangVersion> | |||
<MinClientVersion>4.3</MinClientVersion> | |||
<NeutralLanguage>en-US</NeutralLanguage> | |||
<OverwriteReadOnlyFiles>true</OverwriteReadOnlyFiles> | |||
<PackageIconUrl>https://github.com/Discord-Net/Discord.Net/raw/dev/docs/marketing/logo/PackageLogo.png</PackageIconUrl> | |||
<PackageLicenseExpression>MIT</PackageLicenseExpression> | |||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl> | |||
<RepositoryType>git</RepositoryType> | |||
<RestoreSources> | |||
https://api.nuget.org/v3/index.json | |||
</RestoreSources> | |||
<UseSharedCompilation>true</UseSharedCompilation> | |||
</PropertyGroup> | |||
<!-- Default settings for .NET projects that are otherwise undefined --> | |||
<PropertyGroup Condition="'$(TargetRuntime)' != 'Native'"> | |||
<ProduceReferenceAssembly>true</ProduceReferenceAssembly> | |||
</PropertyGroup> | |||
<!-- Package references which are consumed by all .NET projects --> | |||
<ItemGroup Condition="'$(TargetRuntime)' != 'Native'"> | |||
<PackageReference Include="Microsoft.Net.Compilers.Toolset" IsImplicitlyDefined="true" PrivateAssets="all" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,29 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- Based on https://github.com/terrafx/terrafx/blob/master/Directory.Build.props --> | |||
<!-- Copyright © Tanner Gooding and Contributors --> | |||
<Project> | |||
<!-- | |||
Directory.Build.targets is automatically picked up and imported by | |||
Microsoft.Common.targets. This file needs to exist, even if empty so that | |||
files in the parent directory tree, with the same name, are not imported | |||
instead. The import fairly late and most other props/targets will have been | |||
imported beforehand. We also don't need to add ourselves to | |||
MSBuildAllProjects, as that is done by the file that imports us. | |||
--> | |||
<!-- Settings that append the existing setting value --> | |||
<PropertyGroup> | |||
<DefineConstants>$(DefineConstants);$(OS)</DefineConstants> | |||
<NoWarn>$(NoWarn);NU5105</NoWarn> | |||
<PackageVersion Condition="'$(BUILD_BUILDNUMBER)' != ''">$(Version).$(BUILD_BUILDNUMBER)</PackageVersion> | |||
</PropertyGroup> | |||
<!-- Package versions for package references across all projects --> | |||
<ItemGroup> | |||
<PackageReference Update="Microsoft.Net.Compilers.Toolset" Version="3.6.0-2.final" /> | |||
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="16.5.0" /> | |||
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="1.0.0" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,39 @@ | |||
| |||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||
# Visual Studio 15 | |||
VisualStudioVersion = 15.0.26124.0 | |||
MinimumVisualStudioVersion = 15.0.26124.0 | |||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{381B0F15-BA2C-4E23-BE68-015462861AF0}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Core", "src\Core\Discord.Net.Core.csproj", "{57A52C6A-337D-4165-A42D-94FAC87B2807}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug|Any CPU = Debug|Any CPU | |||
Debug|x64 = Debug|x64 | |||
Debug|x86 = Debug|x86 | |||
Release|Any CPU = Release|Any CPU | |||
Release|x64 = Release|x64 | |||
Release|x86 = Release|x86 | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
EndGlobalSection | |||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Debug|x64.ActiveCfg = Debug|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Debug|x64.Build.0 = Debug|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Debug|x86.ActiveCfg = Debug|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Debug|x86.Build.0 = Debug|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Release|x64.ActiveCfg = Release|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Release|x64.Build.0 = Release|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Release|x86.ActiveCfg = Release|Any CPU | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807}.Release|x86.Build.0 = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(NestedProjects) = preSolution | |||
{57A52C6A-337D-4165-A42D-94FAC87B2807} = {381B0F15-BA2C-4E23-BE68-015462861AF0} | |||
EndGlobalSection | |||
EndGlobal |
@@ -0,0 +1,22 @@ | |||
The MIT License (MIT) | |||
Copyright (c) 2015-2019 Discord.Net Contributors | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights | |||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
copies of the Software, and to permit persons to whom the Software is | |||
furnished to do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in all | |||
copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
SOFTWARE. | |||
@@ -0,0 +1,245 @@ | |||
# Changelog | |||
## [2.1.1] - 2019-06-08 | |||
### Fixed | |||
- #994: Remainder parameters now ignore character escaping, as there is no reason to escape characters here (2e95c49) | |||
- #1316: `Emote.Equals` now pays no respect to the Name property, since Discord's API does not care about an emote's name (abf3e90) | |||
- #1317: `Emote.GetHashCode` now pays no respect to the Name property, see above (1b54883) | |||
- #1323: Optionals will no longer claim to be specified when a reaction message was not cached (1cc5d73) | |||
- Log messages sourcing from REST events will no longer be raised twice (c78a679) | |||
- News embeds will be processed as `EmbedType.Unknown`, rather than throwing an error and dropping the message (d287ed1) | |||
### Changed | |||
- #1311: Members may now be disconnected from voice channels by passing `null` as `GuildUserProperties.Channel` (fc48c66) | |||
- #1313: `IMessage.Tags` now includes the EveryoneRole on @everyone and @here mentions (1f55f01) | |||
- #1320: The maximum value for setting slow-mode has been updated to 6 hours, per the new API limit (4433ca7) | |||
### Misc | |||
- This library's compatibility with Semantic Versioning has been clarified. Please see the README (4d7de17) | |||
- The depency on System.Interactive.Async has been bumped to `3.2.0` (3e65e03) | |||
## [2.1.0] - 2019-05-18 | |||
### Added | |||
- #1236: Bulk deletes (for messages) may now be accessed via the `MessagesBulkDeleted` event (dec353e) | |||
- #1240: OAuth applications utilizing the `guilds.join` scope may now add users to guilds through any client (1356ea9) | |||
- #1255: Message and attachment spoilers may now be set or detected (f3b20b2) | |||
- #1260: DiscordWebhookClient may be created from a Webhook URL (f2113c7) | |||
- #1261: A `GetCategoryChannel` helper may now be used to retrieve category channels directly from socket guilds (e03c527) | |||
- #1263: "user joined the guild" messages are now supported (00d3f5a) | |||
- #1271: AuthorID may now be retrieved from message delete audit log entries (1ae4220) | |||
- #1293: News Channels are now supported 📰 (9084c42) | |||
- `ExclusiveBulkDelete` configuration setting can be used to control bulk delete event behavior (03e6401) | |||
### Removed | |||
- #1294: The `IGuildUser` overload of `EmbedBuilder.WithAuthor` no longer exists (b52b54d) | |||
### Fixed | |||
- #1256: Fetching audit logs no longer raises null reference exceptions when a webhook has been deleted (049b014) | |||
- #1268: Null reference exceptions on `MESSAGE_CREATE` concerning partial member objects no longer occur (377622b) | |||
- #1278: The token validator now internally pads tokens to the proper length (48b327b) | |||
- #1292: Messages now properly initialize empty collections (b2ebc03) | |||
- The `DiscordSocketRestClient` is now properly initialized (a44c13a) | |||
- Exceptions in event handlers are now always logged (f6e3200) | |||
### Changed | |||
- #1305: Token validation will fail when tokens contain whitespace (bb61efa) | |||
### Misc | |||
- #1241: Added documentation samples for Webhooks (655a006) | |||
- #1243: Happy new year 🎉 (0275f7d) | |||
- #1257: Improved clarity in comments in the command samples (2473619) | |||
- #1276: Documentation uses a relative path for the logo asset (b80f0e8) | |||
- #1303: EmbedBuilder documentation now builds in the correct spot (51618e6) | |||
- #1304: Updated documentation (4309550) | |||
- CI for this project is now powered by Azure DevOps (this is not a sponsored message 🚀) (9b2bc18) | |||
- IDisposableAnalyzers should now be a development dependency (8003ac8) | |||
## [2.0.1] - 2019-01-04 | |||
### Fixed | |||
- #1226: Only escape the closing quotation mark of non-remainder strings (65b8c09) | |||
- Commands with async RunModes will now propagate exceptions up to CommandExecuted (497918e) | |||
### Misc | |||
- #1225: Commands sample no longer hooks the log event twice (552f34c) | |||
- #1227: The logo on the docs index page should scale responsively (d39bf6e) | |||
- #1230: Replaced precondition sample on docs (feed4fd) | |||
## [2.0.0] - 2018-12-28 | |||
### Added | |||
- #747: `CommandService` now has a `CommandExecuted` event (e991715) | |||
- #765: Parameters may have a name specified via `NameAttribute` (9c81ab9) | |||
- #773: Both socket clients inherit from `BaseSocketClient` (9b7afec) | |||
- #785: Primitives now automatically load a NullableTypeReader (cb0ff78) | |||
- #819: Support for Welcome Message channels (30e867a) | |||
- #835: Emoji may now be managed from a bot (b4bf046) | |||
- #843: Webhooks may now be managed from a bot (7b2ddd0) | |||
- #863: An embed may be converted to an `EmbedBuilder` using the `.ToEmbedBuilder()` method (5218e6b) | |||
- #877: Support for reading rich presences (34b4e5a) | |||
- #888: Users may now opt-in to using a proxy (678a723) | |||
- #906: API Analyzers to assist users when writing their bot (f69ef2a) | |||
- #907: Full support for channel categories (030422f) | |||
- #913: Animated emoji may be read and written (a19ff18) | |||
- #915: Unused parameters may be discarded, rather than failing the command (5f46aef) | |||
- #929: Standard EqualityComparers for use in LINQ operations with the library's entities (b5e7548) | |||
- #934: Modules now contain an `OnModuleBuilding` method, which is invoked when the module is built (bb8ebc1) | |||
- #952: Added 'All' permission set for categories (6d58796) | |||
- #957: Ratelimit related objects now include request information (500f5f4) | |||
- #962: Add `GetRecommendedShardCountAsync` (fc5e70c) | |||
- #970: Add Spotify track support to user Activities (64b9cc7) | |||
- #973: Added `GetDefaultAvatarUrl` to user (109f663) | |||
- #978: Embeds can be attached alongside a file upload (e9f9b48) | |||
- #984, #1089: `VoiceServerUpdate` events are now publically accessible (e775853, 48fed06) | |||
- #996: Added `DeleteMessageAsync` to `IMessageChannel` (bc6009e) | |||
- #1005: Added dedicated `TimeSpan` TypeReader which "doesn't suck" (b52af7a) | |||
- #1009: Users can now specify the replacement behavior or default typereaders (6b7c6e9) | |||
- #1020: Users can now specify parameters when creating channels (bf5275e) | |||
- #1030: Added `IsDeprecated`, `IsCustom` properties to `VoiceRegion` (510f474) | |||
- #1037: Added `SocketUser.MutualGuilds`, various extension methods to commands (637d9fc) | |||
- #1043: `Discord.Color` is now compatible with `System.Drawing.Color` (c275e57) | |||
- #1055: Added audit logs (39dffe8) | |||
- #1056: Added `GetBanAsync` (97c8931) | |||
- #1102: Added `GetJumpUrl()` to messages (afc3a9d) | |||
- #1123: Commands can now accept named parameters (419c0a5) | |||
- #1124: Preconditions can now set custom error messages (5677f23) | |||
- #1126: `Color` now has equality (a2d8800) | |||
- #1159: Guild channels can now by synced with their parent category (5ea1fb3) | |||
- #1165: Bring Guild and Message models up to date with the API (d30d122) | |||
- #1166: Added `GetVoiceRegionsAsync` to `IGuild` (00717cf) | |||
- #1183: Added Add Guild Member endpoint for OAuth clients (8ef5f81) | |||
- #1196: Channel position can now be specified when creating a channel (a64ab60) | |||
- #1198: The Socket client can now access its underlying REST client (65afd37) | |||
- #1213: Added `GuildEmote#CreatorId` (92bf836) | |||
- 'html' variant added to the `EmbedType` enum (42c879c) | |||
- Modules can now be nested in non-module classes (4edbd8d) | |||
- Added `BanAsync` to guild members (1905fde) | |||
- Added the permisison bit for priority speaker (c1d7818) | |||
- All result types can use `FromError` (748e92b) | |||
- Added support for reading/writing slow mode (97d17cf) | |||
- Added markdown format for URLs (f005af3) | |||
- Reactions can now be added to messages in bulk (5421df1) | |||
### Fixed | |||
- #742: `DiscordShardedClient#GetGuildFor` will now direct null guilds to Shard 0 (d5e9d6f) | |||
- #743: Various issues with permissions and inheritance of permissions (f996338) | |||
- #755: `IRole.Mention` will correctly tag the @everyone role (6b5a6e7) | |||
- #768: `CreateGuildAsync` will include the icon stream (865080a) | |||
- #866: Revised permissions constants and behavior (dec7cb2) | |||
- #872: Bulk message deletion should no longer fail for incomplete batch sizes (804d918) | |||
- #923: A null value should properly reset a user's nickname (227f61a) | |||
- #938: The reconnect handler should no longer deadlock during Discord outages (73ac9d7) | |||
- #941: Fix behavior of OverrideTypeReader (170a2e0) | |||
- #945: Fix properties on SocketCategoryChannel (810f6d6) | |||
- #959: Webhooks now use the correct parameter when assigning to the Avatar URL (8876597) | |||
- #966: Correct the implementation of HasFlag and ResolveChannel in permissions (32ebdd5) | |||
- #968: Add missing parameter in WebSocket4Net constructor (8537924) | |||
- #981: Enforce a maximum value when parsing timestamps from Discord (bfaa6fc) | |||
- #993: Null content will no longer null-ref on message sends/edits (55299ff) | |||
- #1003: Fixed ordering of parameters in permissions classes (a06e212) | |||
- #1010: EmbedBuilder no longer produces mutable embeds (2988b38) | |||
- #1012: `Embed.Length` should now yield the correct results (a3ce80c) | |||
- #1017: GetReactionUsersAsync includes query parameters (9b29c00) | |||
- #1022: GetReactionUsersAsync is now correctly paginated (79811d0) | |||
- #1023: Fix/update invite-related behaviors (7022149) | |||
- #1031: Messages with no guild-specific data should no longer be lost (3631886) | |||
- #1036: Fixed cases where `RetryMode.RetryRatelimit` were ignored (c618cb3) | |||
- #1044: Populate the guild in `SocketWebhookUser` (6a7810b) | |||
- #1048: The REST client will now create a full GuildUser object (033d312) | |||
- #1049: Fixed null-ref in `GetShardIdFor` (7cfed7f) | |||
- #1059: Include 'view channel' in voice channel's All permissions set (e764daf) | |||
- #1083: Default type readers will now be properly replaced (4bc06a0) | |||
- #1093: Fixed race condition in audio client authentication (322d46e) | |||
- #1139: Fixed consistency in exceptions (9e9a11d) | |||
- #1151: `GetReactionUsersAsync` now uses the correct pagination constant (c898325) | |||
- #1163: Reaction ratelimits are now placed in the same bucket, treated correctly (5ea1fb3) | |||
- #1186: Webhooks can now send files with embeds correctly (c1d5152) | |||
- #1192: CommandExecuted no longer fires twice for RuntimeResults (10233f3) | |||
- #1195: Channel Create audit log events properly deserialize (dca6c33) | |||
- #1202: The UDP client should no longer be used after disposed (ccb16e4) | |||
- #1203: The Audio client should no longer lock up on disconnect (2c93363) | |||
- #1209: MessageUpdated should no longer pass a null after object (91e0f03) | |||
- Ignore messages with no ID in bulk delete (676be40) | |||
- No longer attempt to load generic types as modules (b1eaa44) | |||
- No longer complain when a `PRESENCES_REPLACE` update is received (beb3d46) | |||
- CommandExecuted will be raised on async exception failures (6260749) | |||
- ExecuteResult now contains the entire exception, not an abridged message (f549da5) | |||
- CommandExecuted will no longer be raised twice for exceptions (aec7105) | |||
- The default WebSocket will now close correctly (ac389f5) | |||
### Changed | |||
- #731: `IUserMessage#GetReactionUsersAsync` now takes an `IEmote` instead of a `string` (5d7f2fc) | |||
- #744: IAsyncEnumerable has been redesigned (5bbd9bb) | |||
- #777: `IGuild#DefaultChannel` will now resolve the first accessible channel, per changes to Discord (1ffcd4b) | |||
- #781: Attempting to add or remove a member's EveryoneRole will throw (506a6c9) | |||
- #801: `EmbedBuilder` will no longer implicitly convert to `Embed`, you must build manually (94f7dd2) | |||
- #804: Command-related tasks will have the 'async' suffix (14fbe40) | |||
- #812: The WebSocket4Net provider has been bumped to version 0.15, allowing support for .NET Standard apps (e25054b) | |||
- #829: DeleteMessagesAsync moved from IMessageChannel to ITextChannel (e00f17f) | |||
- #853: WebSocket will now use `zlib-stream` compression (759db34) | |||
- #874: The `ReadMessages` permission is moving to `ViewChannel` (edfbd05) | |||
- #877: Refactored Games into Activities (34b4e5a) | |||
- #943: Multiple types of quotation marks can now be parsed (thanks 🍎) (cee71ef) | |||
- #955: The `GameParty` model will now use long values (178ea8d) | |||
- #986: Expose the internal entity TypeReaders (660fec0) | |||
- #992: Throw an exception when trying to modify someone else's message (d50fc3b) | |||
- #998: Commands can specify their own `IgnoreExtraArgs` behavior (6d30100) | |||
- #1033: The `ReadMessages` permission bit is now named `ViewChannel` (5f084ad) | |||
- #1042: Content parameter of `SendMessageAsync` is now optional (0ba8b06) | |||
- #1057: An audio channel's `ConnectAsync` now allows users to handle the voice connection elsewhere, such as in Lavalink (890904f) | |||
- #1094: Overhauled invites, added vanity invite support (ffe994a) | |||
- #1108: Reactions now use the undocumented 1/.25 ratelimit, making them 4x faster (6b21b11) | |||
- #1128: Bot tokens will now be validated for common mishaps before use (2de6cef) | |||
- #1140: Check the invite `maxAge` parameter before making the request (649a779) | |||
- #1164: All command results will now be raised in `CommandExecuted` (10f67a8) | |||
- #1171: Clients have been changed to properly make use of `IDisposable` (7366cd4) | |||
- #1172: Invite related methods were moved from `IGuildChannel` to `INestedChannel` (a3f5e0b) | |||
- #1200: HasPrefix extensions now check for null values first (46e2674) | |||
- `IGuildChannel#Nsfw` moved to `ITextChannel`, now maps to the API property (608bc35) | |||
- Preemptive ratelimits are now logged under verbose, rather than warning. (3c1e766) | |||
- The default InviteAge when creating Invites is now 24 hours (9979a02) | |||
- All parameters to `ReplyAsync` have been made optional (b38dca7) | |||
- The socket client will now use additional fields to fill in member/guild information on messages (8fb2c71) | |||
- The Audio Client now uses Voice WS v3 (9ba38d7) | |||
### Removed | |||
- #790: Redundant overloads for `AddField` removed from EmbedBuilder (479361b) | |||
- #925: RPC is no longer being maintained nor packaged (b30af57) | |||
- #958: Remove support for user tokens (2fd4f56) | |||
- User logins (including selfbots) are no longer supported (fc5adca) | |||
### Misc | |||
- #786: Unit tests for the Color structure (22b969c) | |||
- #828: We now include a contributing guide (cd82a0f) | |||
- #876: We now include a standard editorconfig (5c8c784) | |||
- #963: Docs now include a release version, build instructions (88e6244) | |||
- #964: Fix documentation spelling of 'echoes' (fda19b5) | |||
- #967: Unit test permissions (63e6704) | |||
- #968: Bumped version of WebSocket4Net to 0.15.2 (8537924) | |||
- #972: Include sample bots in the source repository (217ec34) | |||
- #1046: We now support .NET Standard 2.0 (bbbac85) | |||
- #1114: Various performance optimizations (82cfdff) | |||
- #1149: The CI will now test on Ubuntu as well as Windows (674a0fc) | |||
- #1161: The entire documentation has been rewritten, all core entities were docstringed (ff0fea9) | |||
- #1175: Documentation changes in command samples (fb8dbca) | |||
- #1177: Added documentation for sharded bots (00097d3) | |||
- #1219: The project now has a logo! 🎉 (5750c3e) | |||
- This project is now licensed to the Discord.Net contributors (710e182) | |||
- Added templates for pull requests (f2ddf51) | |||
- Fixed documentation layout for the logo (bafdce4) | |||
## [1.0.2] - 2017-09-09 | |||
### Fixed | |||
- Guilds utilizing Channel Categories will no longer crash bots on the `READY` event. | |||
## [1.0.1] - 2017-07-05 | |||
### Fixed | |||
- #732: Fixed parameter preconditions not being loaded from class-based modules (b6dcc9e) | |||
- #726: Fixed CalculateScore throwing an ArgumentException for missing parameters (7597cf5) | |||
- EmbedBuilder URI validation should no longer throw NullReferenceExceptions in certain edge cases (d89804d) | |||
- Fixed module auto-detection for nested modules (d2afb06) | |||
### Changed | |||
- ShardedCommandContext now inherits from SocketCommandContext (8cd99be) |
@@ -0,0 +1,62 @@ | |||
# Contributing | |||
Discord.Net is an open-source project, and we appreciate any and all | |||
contributions made by our community. However, please conform to the | |||
following guidelines when possible: | |||
## Development Cycle | |||
We prefer all changes to the library to be discussed beforehand, | |||
either in a GitHub issue, or in a discussion in our Discord channel | |||
with library regulars or other contributors. | |||
Issues that are tagged as "up for grabs" are free to be picked up by | |||
any member of the community. | |||
### Pull Requests | |||
We prefer pull-requests that are descriptive of the changes being made | |||
and highlight any potential benefits/drawbacks of the change, but these | |||
types of write-ups are not required. See this [merge request](https://github.com/RogueException/Discord.Net/pull/793) | |||
for an example of a well-written description. | |||
## Semantic Versioning | |||
This project follows [Semantic Versioning](http://semver.org/). When | |||
writing changes to this project, it is recommended to write changes | |||
that are SemVer compliant with the latest version of the library in | |||
development. | |||
The working release should be the latest build off of the `dev` branch, | |||
but can also be found on the [development board](https://github.com/RogueException/Discord.Net/projects/1). | |||
We follow the .NET Foundation's [Breaking Change Rules](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/breaking-change-rules.md) | |||
when determining the SemVer compliance of a change. | |||
Obsoleting a method is considered a **minor** increment. | |||
## Coding Style | |||
We attempt to conform to the .NET Foundation's [Coding Style](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md) | |||
where possible. | |||
As a general rule, follow the coding style already set in the file you | |||
are editing, or look at a similar file if you are adding a new one. | |||
### Documentation Style for Members | |||
When creating a new public member, the member must be annotated with sufficient documentation. This should include the | |||
following, but not limited to: | |||
* `<summary>` summarizing the purpose of the method. | |||
* `<param>` or `<typeparam>` explaining the parameter. | |||
* `<return>` explaining the type of the returned member and what it is. | |||
* `<exception>` if the method directly throws an exception. | |||
The length of the documentation should also follow the ruler as suggested by our | |||
[Visual Studio Code workspace](Discord.Net.code-workspace). | |||
#### Recommended Reads | |||
* [Official Microsoft Documentation](https://docs.microsoft.com) | |||
* [Sandcastle User Manual](https://ewsoftware.github.io/XMLCommentsGuide/html/4268757F-CE8D-4E6D-8502-4F7F2E22DDA3.htm) |
@@ -0,0 +1,55 @@ | |||
# Discord.Net # | |||
[](https://discord.gg/discord-api) | |||
An unofficial .NET library for the Discord API. (https://discordapp.com/) | |||
## Installation ## | |||
Our stable builds available from NuGet through the Discord.Net metapackage: | |||
[Discord.Net](https://www.nuget.org/packages/Discord.Net/) | |||
Unstable "nightly" builds are available through our MyGet feed: | |||
`https://www.myget.org/F/discord-net/api/v3/index.json` | |||
## Building ## | |||
At minimum, .NET Core 2.1 is required to successfully build Discord.Net, but | |||
.NET core 3.1 is recommended. You should install the appropriate tools and | |||
components for your editor to open the Discord.Net solution file: | |||
- The .NET Core workload for Visual Studio | |||
- The C# build tools for Visual Studio Code | |||
- The .NET Core SDK for command line | |||
### Versioning ### | |||
As a rule, Discord.Net attempts to follow | |||
[Semantic Versioning](https://semver.org). This means `MAJOR.MINOR.PATCH` | |||
versioning. | |||
However, as Discord evolves and adds or changes existing endpoints, we may need | |||
to add code to support these. To do this, we will increment the minor version | |||
when adding new API surface to the library. To counter the inevitable breaking | |||
changes, we have decided that our public interfaces should be for | |||
*consumption only* - bot developers should not need to implement these | |||
interfaces for normal code. | |||
Additionally, as the Discord API changes, we may need to add, remove or change | |||
parameters to certain methods. To ensure this breaks as little code as | |||
possible, we will use the following approach to deprecate old APIs and redirect | |||
users to new APIs, while retaining binary compatibility: | |||
```cs | |||
// OLD API | |||
[Obsolete("This API has been superseded by GetUserAsync.", false)] | |||
[EditorBrowsable(EditorBrowsableState.Never)] | |||
public ValueTask<IUser> GetUserAsync(ulong userId) | |||
=> GetUserAsync(userId, "default"); | |||
// NEW API | |||
public ValueTask<IUser> GetUserAsync(ulong userId, | |||
string additionalParameter = "default"); | |||
``` | |||
These obsolete methods will be removed in the next major version, and will be | |||
clearly documented in our change logs. |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 950.73 234.2"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#939;}</style></defs><title>Combinationmark White Background</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M245.7,234.2a4.94,4.94,0,0,1-3.73-1.57,5.07,5.07,0,0,1-1.54-3.74,5.24,5.24,0,0,1,1.54-3.8,5,5,0,0,1,3.73-1.57,5.15,5.15,0,0,1,3.81,1.57,5.31,5.31,0,0,1,1.57,3.8,5.36,5.36,0,0,1-5.38,5.31Z"/><path class="cls-1" d="M319.73,232.59h-9.68l-35.21-53.74a23.29,23.29,0,0,1-2.21-4.26h-.28a69.84,69.84,0,0,1,.38,9.29v48.71h-8v-68H275.1L309.25,218c1.44,2.23,2.35,3.74,2.76,4.55h.19a72.94,72.94,0,0,1-.47-10v-48h8Z"/><path class="cls-1" d="M373.73,232.59h-36v-68h35v7h-27v23h25v7h-25v24h28Z"/><path class="cls-1" d="M427.73,171.59h-20v62h-8v-62h-19v-7h47Z"/><path d="M311.83,8.59h-47.1V62.05l31,28.44V38.59h17.39c10.45,0,15.61,5.19,15.61,13.31V91c0,8.13-4.88,13.59-15.61,13.59H265.73v29h46.1c24.71.14,47.9-12.3,47.9-41.11V50.4C359.73,21.32,336.54,8.59,311.83,8.59Zm241.9,84.18V50.34c0-15.3,27.28-18.88,35.55-3.45l25.21-10.33c-9.78-21.91-28-28.38-43-28.38-24.52,0-48.77,14.32-48.77,42.16V92.77c0,28,24.25,42.16,48.22,42.16,15.43,0,33.89-7.71,44.09-27.69L588,94.7c-6.62,17.08-34.31,13-34.31-1.93ZM469.79,55.94c-9.62-2.1-16-5.58-16.46-11.58.56-14.5,22.73-14.92,35.7-1.11l20.5-15.9C496.7,11.59,482.2,7.41,467.14,7.41c-22.73,0-44.76,12.83-44.76,37.37,0,23.85,18.12,36.53,38.06,39.6,10.18,1.4,21.48,5.44,21.2,12.55-.84,13.39-28.17,12.69-40.58-2.51L421.4,113.11C433,128,448.73,135.7,463.51,135.7c22.73,0,48-13.25,49-37.37,1.39-30.68-20.64-38.35-42.67-42.39Zm-93.06,77.65h31V8.59h-31ZM903,8.59H856.73V62.05l31,28.44V38.59h16.39c10.45,0,15.61,5.19,15.61,13.31V91c0,8.13-4.88,13.59-15.61,13.59H856.73v29h46.1c24.71.14,47.9-12.3,47.9-41.11V50.4C950.87,21.32,927.68,8.59,903,8.59ZM676.09,7.18c-25.75,0-51.36,14.13-51.36,43V93c0,28.68,25.75,43,51.64,43s51.36-14.28,51.36-43V50.14C727.73,21.45,701.84,7.18,676.09,7.18Zm19.64,85.7c0,8.92-10,13.52-19.93,13.52s-20.07-4.46-20.07-13.52V50.23c0-9.2,9.76-14.08,19.51-14.08,10.18,0,20.49,4.46,20.49,14.08V92.88ZM839.35,50.37C838.65,21.24,819,9.59,793.58,9.59H743.73v125h32v-41h5.63l29,40h38.4L815.21,91C830.19,86.29,839.35,73.39,839.35,50.37Zm-45.5,16.22H775.73v-28h18.12c19.49,0,19.49,28,0,28Z"/><path class="cls-1" d="M42.28.1,186.2,13.67a22.18,22.18,0,0,1,19.93,24.21l-13.7,145.2a22.16,22.16,0,0,1-24.1,20L46.53,191.64l7.57-19.33-15,11.49L25,194.6,0,212.83,18.17,20.15A22.17,22.17,0,0,1,42.28.1Z"/><rect class="cls-2" x="88.38" y="-17.52" width="12.85" height="107.11" rx="4.91" transform="translate(49 126.52) rotate(-83.96)"/><rect class="cls-2" x="122.07" y="16.17" width="12.85" height="107.11" rx="4.91" transform="translate(45.64 190.18) rotate(-83.96)"/><rect class="cls-2" x="78.32" y="77.57" width="12.85" height="107.11" rx="4.91" transform="translate(-54.57 201.6) rotate(-83.96)"/><rect class="cls-2" x="118.83" y="46.87" width="12.85" height="107.11" rx="4.91" transform="translate(12.2 214.42) rotate(-83.96)"/></g></g></svg> |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 951.34 234.2"><defs><style>.cls-1{fill:#68217a;}.cls-2{fill:#fff;}.cls-3{fill:#939;}</style></defs><title>Combinationmark White</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M245.7,234.2a4.94,4.94,0,0,1-3.73-1.57,5.07,5.07,0,0,1-1.54-3.74,5.24,5.24,0,0,1,1.54-3.8,5,5,0,0,1,3.73-1.57,5.15,5.15,0,0,1,3.81,1.57,5.31,5.31,0,0,1,1.57,3.8,5.36,5.36,0,0,1-5.38,5.31Z"/><path class="cls-1" d="M320.34,233.26h-9.68l-35.21-54.67a23.56,23.56,0,0,1-2.21-4.33H273a72.21,72.21,0,0,1,.38,9.45v49.55h-8v-68h10.37l34.15,53.45c1.44,2.23,2.35,3.74,2.76,4.55h.19a71.32,71.32,0,0,1-.47-10v-48h8Z"/><path class="cls-1" d="M374.34,233.26h-36v-68h35v7h-27v23h25v7h-25v24h28Z"/><path class="cls-1" d="M427.34,172.26h-19v61h-8v-61h-20v-7h47Z"/><path class="cls-2" d="M311.44,9.26h-46.1V60.94l31,27.49V38.26h16.39c10.45,0,15.61,5.19,15.61,13.31v39.1c0,8.13-4.88,13.59-15.61,13.59H265.34v30h46.1c24.71.14,47.9-12.3,47.9-41.11V51.07C359.34,22,336.15,9.26,311.44,9.26Zm242.9,83.51V50.34c0-15.3,27.28-18.88,35.54-3.45L615.1,36.56c-9.78-21.91-28-28.38-43-28.38-24.52,0-48.77,14.32-48.77,42.16V92.77c0,28,24.25,42.16,48.22,42.16,15.43,0,33.89-7.71,44.09-27.69l-27-12.54c-6.61,17.08-34.3,13-34.3-1.93ZM469.79,55.94c-9.62-2.1-16-5.58-16.46-11.58.56-14.5,22.73-14.92,35.7-1.11l20.5-15.9C496.7,11.59,482.2,7.41,467.14,7.41c-22.73,0-44.76,12.83-44.76,37.37,0,23.85,18.12,36.53,38.06,39.6,10.18,1.4,21.48,5.44,21.2,12.55-.84,13.39-28.17,12.69-40.58-2.51L421.4,113.11C433,128,448.73,135.7,463.51,135.7c22.73,0,48-13.25,49-37.37,1.39-30.68-20.64-38.35-42.67-42.39Zm-93.45,78.32h31V9.26h-31Zm527.23-125H856.34V60.94l31,27.49V38.26H904c10.28,0,15.36,5.19,15.36,13.31v39.1c0,8.13-4.8,13.59-15.36,13.59H857.34v30h46.1c24.71.14,47.9-12.3,47.9-41.11V51.07C951.48,22,928.29,9.26,903.57,9.26ZM675.7,7.18c-25.75,0-51.36,14.13-51.36,43V93c0,28.68,25.75,43,51.64,43s51.36-14.28,51.36-43V50.14C727.34,21.45,701.45,7.18,675.7,7.18Zm20.64,85.7c0,8.92-10,13.52-19.93,13.52s-20.07-4.46-20.07-13.52V50.23c0-9.2,9.75-14.08,19.51-14.08,10.17,0,20.49,4.46,20.49,14.08V92.88ZM839.49,50.37C838.79,21,818.94,9.26,793.35,9.26h-50v125h32v-40H781l29,40h39L815.16,91.34C830.27,86.58,839.49,73.58,839.49,50.37Zm-46,16.89H775.34v-28h18.12c19.49,0,19.49,28,0,28Z"/><path class="cls-1" d="M42.28.1,186.2,13.67a22.18,22.18,0,0,1,19.93,24.21l-13.7,145.2a22.16,22.16,0,0,1-24.1,20L46.53,191.64l7.57-19.33-15,11.49L25,194.6,0,212.83,18.17,20.15A22.17,22.17,0,0,1,42.28.1Z"/><rect class="cls-3" x="88.38" y="-17.52" width="12.85" height="107.11" rx="4.91" transform="translate(49 126.52) rotate(-83.96)"/><rect class="cls-3" x="122.07" y="16.17" width="12.85" height="107.11" rx="4.91" transform="translate(45.64 190.18) rotate(-83.96)"/><rect class="cls-3" x="78.32" y="77.57" width="12.85" height="107.11" rx="4.91" transform="translate(-54.57 201.6) rotate(-83.96)"/><rect class="cls-3" x="118.83" y="46.87" width="12.85" height="107.11" rx="4.91" transform="translate(12.2 214.42) rotate(-83.96)"/></g></g></svg> |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 951.34 234.2"><defs><style>.cls-1{fill:#68217a;}.cls-2{fill:#939;}</style></defs><title>Combinationmark</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M245.7,234.2a4.94,4.94,0,0,1-3.73-1.57,5.07,5.07,0,0,1-1.54-3.74,5.24,5.24,0,0,1,1.54-3.8,5,5,0,0,1,3.73-1.57,5.15,5.15,0,0,1,3.81,1.57,5.31,5.31,0,0,1,1.57,3.8,5.36,5.36,0,0,1-5.38,5.31Z"/><path class="cls-1" d="M320.34,233.15h-9.68l-35.21-54.67a23.88,23.88,0,0,1-2.21-4.33H273a72,72,0,0,1,.38,9.44v49.56h-8v-68h10.37l34.15,53.45c1.44,2.23,2.35,3.73,2.76,4.55h.19a71.49,71.49,0,0,1-.47-10v-48h8Z"/><path class="cls-1" d="M374.34,233.15h-36v-68h35v7h-27v23h25v7h-25v24h28Z"/><path class="cls-1" d="M427.34,172.15h-19v61h-8v-61h-20v-7h47Z"/><path d="M311.44,9.15h-46.1V60.83l31,27.48V38.15h16.39c10.45,0,15.61,5.18,15.61,13.31v39.1c0,8.12-4.88,13.59-15.61,13.59H265.34v30h46.1c24.71.14,47.9-12.31,47.9-41.11V51C359.34,21.87,336.15,9.15,311.44,9.15Zm242.9,83.62V50.34c0-15.3,27.28-18.88,35.54-3.45L615.1,36.56c-9.78-21.91-28-28.38-43-28.38-24.52,0-48.77,14.32-48.77,42.16V92.77c0,28,24.25,42.16,48.22,42.16,15.43,0,33.89-7.71,44.09-27.69l-27-12.54c-6.61,17.08-34.3,13-34.3-1.93ZM469.79,55.94c-9.62-2.1-16-5.58-16.46-11.58.56-14.5,22.73-14.92,35.7-1.11l20.5-15.9C496.7,11.59,482.2,7.41,467.14,7.41c-22.73,0-44.76,12.83-44.76,37.37,0,23.85,18.12,36.53,38.06,39.6,10.18,1.4,21.48,5.44,21.2,12.55-.84,13.39-28.17,12.69-40.58-2.51L421.4,113.11C433,128,448.73,135.7,463.51,135.7c22.73,0,48-13.25,49-37.37,1.39-30.68-20.64-38.35-42.67-42.39Zm-93.45,78.21h31V9.15h-31Zm527.23-125H856.34V60.83l31,27.48V38.15H904c10.28,0,15.36,5.18,15.36,13.31v39.1c0,8.12-4.8,13.59-15.36,13.59H857.34v30h46.1c24.71.14,47.9-12.31,47.9-41.11V51C951.48,21.87,928.29,9.15,903.57,9.15Zm-227.87-2c-25.75,0-51.36,14.13-51.36,43V93c0,28.68,25.75,43,51.64,43s51.36-14.28,51.36-43V50.14C727.34,21.45,701.45,7.18,675.7,7.18Zm20.64,85.7c0,8.92-10,13.52-19.93,13.52s-20.07-4.46-20.07-13.52V50.23c0-9.2,9.75-14.08,19.51-14.08,10.17,0,20.49,4.46,20.49,14.08V92.88ZM839.49,50.26c-.7-29.37-20.55-41.11-46.14-41.11h-50v125h32v-40H781l29,40h39L815.16,91.22C830.27,86.47,839.49,73.47,839.49,50.26Zm-46,16.89H775.34v-28h18.12c19.49,0,19.49,28,0,28Z"/><path class="cls-1" d="M42.28.1,186.2,13.67a22.18,22.18,0,0,1,19.93,24.21l-13.7,145.2a22.16,22.16,0,0,1-24.1,20L46.53,191.64l7.57-19.33-15,11.49L25,194.6,0,212.83,18.17,20.15A22.17,22.17,0,0,1,42.28.1Z"/><rect class="cls-2" x="88.38" y="-17.52" width="12.85" height="107.11" rx="4.91" transform="translate(49 126.52) rotate(-83.96)"/><rect class="cls-2" x="122.07" y="16.17" width="12.85" height="107.11" rx="4.91" transform="translate(45.64 190.18) rotate(-83.96)"/><rect class="cls-2" x="78.32" y="77.57" width="12.85" height="107.11" rx="4.91" transform="translate(-54.57 201.6) rotate(-83.96)"/><rect class="cls-2" x="118.83" y="46.87" width="12.85" height="107.11" rx="4.91" transform="translate(12.2 214.42) rotate(-83.96)"/></g></g></svg> |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 265.74 274.24"><defs><style>.cls-1{fill:#939;}.cls-2{fill:#fff;}</style></defs><title>Logomark Full Black</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M54.48.13,239.93,17.62A28.57,28.57,0,0,1,265.61,48.8L248,235.91a28.57,28.57,0,0,1-31.06,25.84L60,246.94,69.71,222l-19.27,14.8L32.23,250.75,0,274.24,23.42,26A28.56,28.56,0,0,1,54.48.13Z"/><rect class="cls-1" x="113.88" y="-7.74" width="16.56" height="138.01" rx="6.32" transform="translate(48.38 176.3) rotate(-83.96)"/><rect class="cls-1" x="157.3" y="35.68" width="16.56" height="138.01" rx="6.32" transform="translate(44.06 258.33) rotate(-83.96)"/><rect class="cls-1" x="100.92" y="114.79" width="16.56" height="138.01" rx="6.32" transform="translate(-85.07 273.05) rotate(-83.96)"/><rect class="cls-1" x="153.11" y="75.23" width="16.56" height="138.01" rx="6.32" transform="translate(0.97 289.56) rotate(-83.96)"/><path class="cls-2" d="M140,53.9H89v58.81L123,144V86.9h17.9c11.45,0,17.1,5.66,17.1,14.52v42.65c0,8.87-5.35,14.83-17.1,14.83H89v32h51c27.34.16,53-13.48,53-45.05V99.72C193,67.85,167.35,53.9,140,53.9Z"/></g></g></svg> |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 265.74 274.24"><defs><style>.cls-1{fill:#68217a;}.cls-2{fill:#939;}</style></defs><title>Logomark Full Purple</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M54.48.13,239.93,17.62A28.57,28.57,0,0,1,265.61,48.8L248,235.91a28.57,28.57,0,0,1-31.06,25.84L60,246.94,69.71,222l-19.27,14.8L32.23,250.75,0,274.24,23.42,26A28.56,28.56,0,0,1,54.48.13Z"/><rect class="cls-2" x="113.88" y="-7.74" width="16.56" height="138.01" rx="6.32" transform="translate(48.38 176.3) rotate(-83.96)"/><rect class="cls-2" x="157.3" y="35.68" width="16.56" height="138.01" rx="6.32" transform="translate(44.06 258.33) rotate(-83.96)"/><rect class="cls-2" x="100.92" y="114.79" width="16.56" height="138.01" rx="6.32" transform="translate(-85.07 273.05) rotate(-83.96)"/><rect class="cls-2" x="153.11" y="75.23" width="16.56" height="138.01" rx="6.32" transform="translate(0.97 289.56) rotate(-83.96)"/><path d="M140,53.9H89v58.81L123,144V86.9h17.9c11.45,0,17.1,5.66,17.1,14.52v42.65c0,8.87-5.35,14.83-17.1,14.83H89v32h51c27.34.16,53-13.48,53-45.05V99.72C193,67.85,167.35,53.9,140,53.9Z"/></g></g></svg> |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 265.74 274.24"><defs><style>.cls-1{fill:#68217a;}.cls-2{fill:#939;}</style></defs><title>Discord.Net Docs</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M54.48.13,239.93,17.62A28.57,28.57,0,0,1,265.61,48.8L248,235.91a28.57,28.57,0,0,1-31.06,25.84L60,246.94,69.71,222l-19.27,14.8L32.23,250.75,0,274.24,23.42,26A28.56,28.56,0,0,1,54.48.13Z"/><rect class="cls-2" x="113.88" y="-22.58" width="16.56" height="138.01" rx="6.32" transform="translate(63.14 163.03) rotate(-83.96)"/><rect class="cls-2" x="157.3" y="20.84" width="16.56" height="138.01" rx="6.32" transform="translate(58.81 245.05) rotate(-83.96)"/><rect class="cls-2" x="100.92" y="99.96" width="16.56" height="138.01" rx="6.32" transform="translate(-70.32 259.78) rotate(-83.96)"/><rect class="cls-2" x="153.11" y="60.4" width="16.56" height="138.01" rx="6.32" transform="translate(15.73 276.29) rotate(-83.96)"/></g></g></svg> |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 265.74 274.24"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#939;}</style></defs><title>Logomark White</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M54.48.13,239.93,17.62A28.57,28.57,0,0,1,265.61,48.8L248,235.91a28.57,28.57,0,0,1-31.06,25.84L60,246.94,69.71,222l-19.27,14.8L32.23,250.75,0,274.24,23.42,26A28.56,28.56,0,0,1,54.48.13Z"/><rect class="cls-2" x="113.88" y="-22.58" width="16.56" height="138.01" rx="6.32" transform="matrix(0.11, -0.99, 0.99, 0.11, 63.14, 163.03)"/><rect class="cls-2" x="157.3" y="20.84" width="16.56" height="138.01" rx="6.32" transform="translate(58.81 245.05) rotate(-83.96)"/><rect class="cls-2" x="100.92" y="99.96" width="16.56" height="138.01" rx="6.32" transform="translate(-70.32 259.78) rotate(-83.96)"/><rect class="cls-2" x="153.11" y="60.4" width="16.56" height="138.01" rx="6.32" transform="translate(15.73 276.29) rotate(-83.96)"/></g></g></svg> |
@@ -0,0 +1,11 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<Description>The core components for Discord.Net.</Description> | |||
</PropertyGroup> | |||
<PropertyGroup> | |||
<TargetFramework>netstandard2.1</TargetFramework> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,31 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- Based on https://github.com/terrafx/terrafx/blob/master/Directory.Build.props --> | |||
<!-- Copyright © Tanner Gooding and Contributors --> | |||
<Project> | |||
<!-- | |||
Directory.Build.props is automatically picked up and imported by | |||
Microsoft.Common.props. This file needs to exist, even if empty so that | |||
files in the parent directory tree, with the same name, are not imported | |||
instead. The import fairly early and only Sdk.props will have been | |||
imported beforehand. We also don't need to add ourselves to | |||
MSBuildAllProjects, as that is done by the file that imports us. | |||
--> | |||
<PropertyGroup> | |||
<EmbedUntrackedSources>true</EmbedUntrackedSources> | |||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileDirectory)..\Directory.Build.props</MSBuildAllProjects> | |||
<DiscordNetProjectCategory>src</DiscordNetProjectCategory> | |||
</PropertyGroup> | |||
<Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.props" /> | |||
<ItemGroup> | |||
<InternalsVisibleTo Include="$(MSBuildProjectName).UnitTests" PublicKey="$(AssemblyOriginatorPublicKey)" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.SourceLink.GitHub" IsImplicitlyDefined="true" PrivateAssets="all" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,57 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- Based on https://github.com/terrafx/terrafx/blob/master/Directory.Build.props --> | |||
<!-- Copyright © Tanner Gooding and Contributors --> | |||
<Project> | |||
<!-- | |||
Directory.Build.targets is automatically picked up and imported by | |||
Microsoft.Common.targets. This file needs to exist, even if empty so that | |||
files in the parent directory tree, with the same name, are not imported | |||
instead. The import fairly late and most other props/targets will have | |||
been imported beforehand. We also don't need to add ourselves to | |||
MSBuildAllProjects, as that is done by the file that imports us. | |||
--> | |||
<PropertyGroup> | |||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileDirectory)..\Directory.Build.targets</MSBuildAllProjects> | |||
</PropertyGroup> | |||
<Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.targets" /> | |||
<PropertyGroup> | |||
<GeneratedInternalsVisibleToFile Condition="'$(GeneratedInternalsVisibleToFile)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).InternalsVisibleTo$(DefaultLanguageSourceExtension)</GeneratedInternalsVisibleToFile> | |||
</PropertyGroup> | |||
<ItemDefinitionGroup> | |||
<InternalsVisibleTo> | |||
<Visible>false</Visible> | |||
</InternalsVisibleTo> | |||
</ItemDefinitionGroup> | |||
<Target Name="GenerateInternalsVisibleTo" | |||
BeforeTargets="CoreCompile" | |||
DependsOnTargets="PrepareForBuild;CoreGenerateInternalsVisibleTo" | |||
Condition="'@(InternalsVisibleTo)' != ''" /> | |||
<Target Name="CoreGenerateInternalsVisibleTo" | |||
Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" | |||
Inputs="$(MSBuildAllProjects)" | |||
Outputs="$(GeneratedInternalsVisibleToFile)"> | |||
<CreateItem Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute" AdditionalMetadata="_Parameter1=%(InternalsVisibleTo.Identity)" Condition="'%(InternalsVisibleTo.PublicKey)' == ''"> | |||
<Output TaskParameter="Include" ItemName="InternalsVisibleToAttribute" /> | |||
</CreateItem> | |||
<CreateItem Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute" AdditionalMetadata="_Parameter1=%(InternalsVisibleTo.Identity), PublicKey=%(InternalsVisibleTo.PublicKey)" Condition="'%(InternalsVisibleTo.PublicKey)' != ''"> | |||
<Output TaskParameter="Include" ItemName="InternalsVisibleToAttribute" /> | |||
</CreateItem> | |||
<WriteCodeFragment AssemblyAttributes="@(InternalsVisibleToAttribute)" Language="$(Language)" OutputFile="$(GeneratedInternalsVisibleToFile)"> | |||
<Output TaskParameter="OutputFile" ItemName="Compile" /> | |||
<Output TaskParameter="OutputFile" ItemName="FileWrites" /> | |||
</WriteCodeFragment> | |||
</Target> | |||
<!-- Empty target so that `dotnet test` will work on the solution --> | |||
<!-- https://github.com/Microsoft/vstest/issues/411 --> | |||
<Target Name="VSTest" /> | |||
</Project> |