* implement a fix for tags being found in code blocks
still needs polish, consider this a rough draft
* refactor to reuse a local function
uses CheckWrappedInCode to check that there are no code blocks that surround the tag being parsed
* Add more test coverage of MessageHelper.ParseTags
* reset indexes for @ here mention
* add a test case to catch error fixed from prev commit
* wip commit of most test cases working
* fix the Enclosed in block util method
* code cleanup
* lint whitespace
* lint brackets for single line if blocks
* move messagehelpertests to the new unit test dir
* expose internals to the unit test project
this seems to have been breaking the build, since CI would build the merged branch, where rest wasn't exposed to the unit tests
* Implement Quote Formatting
Adds support for block quote text formatting. This feature is currently only implemented in the Canary client.
This formatting adds a "> " to each new line from the input text.
* add > char to character sanitization
* change assumptions around whitespace strings
* add blockquote (>>>) formatting + test
* Squashed commit of test rewrite changes
fix missing priority speaker flag
rewrite the TestChannelPermissionModify test
add test for GuildPermission modify
separate unit and integration tests, start writing channel and guild permission tests
copy over the color tests
copy over the emote tests
copy the token utils tests
make the mocked entities sealed classes
copy the TypeReaderTests class
properly dispose the CommandService in the TypeReaderTests
start writing tests for EmbedBuilder and related classes
test that properties throw ArgumentException when invalid
add tests for the embed length property
add withFooter tests
finish adding tests to EmbedBuilder
fix bug in value validation of EmbedFieldBuilder
hey, these tests actually found a bug!
add tests for the MentionUtils class
add tests for the Format util class
remove all of the old tests
add analyzer tests (copied from old tests)
add tests for the SnowflakeUtils class
add integration tests
these get around the issue of state persisting between tests by creating and deleting a guild for each set of tests. these shouldn't be run excessively because of the rate limits, but should be fine every now and then
remove unnecessary launchSettings.json
update outdated string
don't create a new guild each time, as that can result in errors
this can happen if a bot creates too many guilds without properly deleting them
add some tests that show that guild can be modified
await async assert
add more measures that created channels are deleted when done
remove "Test" prefix from test method names
I think that this prefix when already displayed under a class with a suffix of "Tests" is redundant
Remove mention of old test project
fix an issue from forgetting to await Assert.ThrowsAsync
explicitly disable parallelization on integration tests
add test for GuildPermission modify
separate unit and integration tests, start writing channel and guild permission tests
copy over the color tests
copy over the emote tests
make the mocked entities sealed classes
properly dispose the CommandService in the TypeReaderTests
fix bug in value validation of EmbedFieldBuilder
hey, these tests actually found a bug!
add tests for the MentionUtils class
add tests for the Format util class
remove all of the old tests
add analyzer tests (copied from old tests)
add tests for the SnowflakeUtils class
add integration tests
these get around the issue of state persisting between tests by creating and deleting a guild for each set of tests. these shouldn't be run excessively because of the rate limits, but should be fine every now and then
remove unnecessary launchSettings.json
update outdated string
don't create a new guild each time, as that can result in errors
this can happen if a bot creates too many guilds without properly deleting them
add more measures that created channels are deleted when done
remove "Test" prefix from test method names
I think that this prefix when already displayed under a class with a suffix of "Tests" is redundant
Remove mention of old test project
fix an issue from forgetting to await Assert.ThrowsAsync
explicitly disable parallelization on integration tests
update the azure CI build script
separate execution of test projects so that if one fails the other will not pass
one of the unit tests failed, but the analzyer tests passed
fix test that would break in different timezones
enable the integration tests (only on dev branch)
* Squashed commit of test rewrite changes
fix missing priority speaker flag
rewrite the TestChannelPermissionModify test
add test for GuildPermission modify
separate unit and integration tests, start writing channel and guild permission tests
copy over the color tests
copy over the emote tests
copy the token utils tests
make the mocked entities sealed classes
copy the TypeReaderTests class
properly dispose the CommandService in the TypeReaderTests
start writing tests for EmbedBuilder and related classes
test that properties throw ArgumentException when invalid
add tests for the embed length property
add withFooter tests
finish adding tests to EmbedBuilder
fix bug in value validation of EmbedFieldBuilder
hey, these tests actually found a bug!
add tests for the MentionUtils class
add tests for the Format util class
remove all of the old tests
add analyzer tests (copied from old tests)
add tests for the SnowflakeUtils class
add integration tests
these get around the issue of state persisting between tests by creating and deleting a guild for each set of tests. these shouldn't be run excessively because of the rate limits, but should be fine every now and then
remove unnecessary launchSettings.json
update outdated string
don't create a new guild each time, as that can result in errors
this can happen if a bot creates too many guilds without properly deleting them
add some tests that show that guild can be modified
await async assert
add more measures that created channels are deleted when done
remove "Test" prefix from test method names
I think that this prefix when already displayed under a class with a suffix of "Tests" is redundant
Remove mention of old test project
fix an issue from forgetting to await Assert.ThrowsAsync
explicitly disable parallelization on integration tests
add test for GuildPermission modify
separate unit and integration tests, start writing channel and guild permission tests
copy over the color tests
copy over the emote tests
make the mocked entities sealed classes
properly dispose the CommandService in the TypeReaderTests
fix bug in value validation of EmbedFieldBuilder
hey, these tests actually found a bug!
add tests for the MentionUtils class
add tests for the Format util class
remove all of the old tests
add analyzer tests (copied from old tests)
add tests for the SnowflakeUtils class
add integration tests
these get around the issue of state persisting between tests by creating and deleting a guild for each set of tests. these shouldn't be run excessively because of the rate limits, but should be fine every now and then
remove unnecessary launchSettings.json
update outdated string
don't create a new guild each time, as that can result in errors
this can happen if a bot creates too many guilds without properly deleting them
add more measures that created channels are deleted when done
remove "Test" prefix from test method names
I think that this prefix when already displayed under a class with a suffix of "Tests" is redundant
Remove mention of old test project
fix an issue from forgetting to await Assert.ThrowsAsync
explicitly disable parallelization on integration tests
update the azure CI build script
separate execution of test projects so that if one fails the other will not pass
one of the unit tests failed, but the analzyer tests passed
fix test that would break in different timezones
enable the integration tests (only on dev branch)
* Update mocked channels for changed SendFileAsync signature
* comment out the integration tests from the build script
no bot token is provided to this script, and use of integration tests in CI is questionable here
* force rebuild because Azure linux build broke
* Trim whitespace from tokens before logging in
This change trims whitespace characters from the supplied token before it is used to log in. Users can encounter this accidentally if they read their token from a file that ends with a blank line.
Leading whitespace will make the token invalid. Trailing whitespace or \n (not \r\n) will also fail to log in. \r\n (CRLF) doesn't fail because of the line break style for http request headers.
* revert trimming api token
* add check for whitespace or newline characters to existing token validation
Checks to see if a token contains any illegal characters, like whitespace or a newline. If it is, throws an ArgumentException warning the user that their token may be invalid.
I considered only checking the first and last character, but given that a token containing whitespace or a newline wouldn't work either I figured this made sense.
* removed unused usings
These were leftover from a previous approach using an ImmutableHashSet
* Add webhook url overload for DiscordWebhookClient
Adds an overloaded constructor for `DiscordWebhookClient` which accepts the webhook URL. This URL is parsed using a regex for the id and token. If the token is invalid an `ArgumentException` is thrown.
* add null or whitespace check
* add some tests for the new DiscordWebhookClient constructor
* make the Regex static, specify flags
* update regex to look for "discordapp"
* specify reason why exception is thrown despite regex match
* move parsing logic into new function for testing
* add a util method for padding base64 strings if they are not of an expected length
* return the original string if it already contains padding, do not throw
* add tests for padding method, and for token that needs padding
* improve bot token validation by trying to decode user id from token
Try to decode the user id from the supplied bot token as a way of validating the token. If this should fail, indicate that the token is invalid.
* Update the tokenutils tests to pass the new validation checks
* Add test case for CheckBotTokenValidity method
* lint: clean up whitespace
* Add check for null or whitespace string, lint whitespace
* fix userid conversion
* Add hint to user to check that token is not an oauth client secret
* Catch exception that can be thrown by GetString
* Refactor token conversion logic into it's own testable method
* Update the minimum bot token length to 58 char
- Updates the minimum length of a bot token to be 58 characters. An older 58 char bot token was found by Moiph
- Makes this value an internal const instead of a magic number
* update the TokenUtils tests for 58 char min
* Initial set of dispose implementations
Not handled yet:
- Discord.Net.Websocket/Entities/SocketGuild
- Discord.Net.Tests
* Refactor DiscordSocketClient init into ctor
This way we remove an IDisposableAnalyzer warning for not disposing
the client when we set the client variable.
* Dispose of clients when disposing sharded client
* Finish implementing IDisposable where appropriate
I opted to use NoWarn in the Tests project as it wasn't really necessary
considering that our tests only run once
* Tweak samples after feedback
* Add NamedArgumentTypeAttribute
* Add NamedArgumentTypeReader
* Fix superflous empty line.
* Fix logic for quoted arguments
* Throw an exception with a tailored message.
* Add a catch to wrap parsing/input errors
* Trim potential excess whitespace
* Fix an off-by-one
* Support to read an IEnumerable property
* Add a doc
* Add assertion for the collection test
* Add ExplicitContentFilter property to Guild
* re-order properties to match order listed on api docs
* re-order SystemChannelId to match api docs
* Implement ApplicationId in Guild model
* Add ExplicitContentFilter property to Guild
* re-order properties to match order listed on api docs
* re-order SystemChannelId to match api docs
* Implement ApplicationId in Guild model
* Improve xmldoc for IGuild ExplicitContentFilter
* Update xmldoc
* docs "Id" -> "ID"
* rename Test.GuildPermissions to a more general Test.Guilds
* Add ExplicitContentFilter to GuildProperties
* Add a test for ExplicitContentFilterLevel modification behavior
* Implement ModifyAsync behavior
* simplify ExplicitContentFilter test
* Add RestGuild ApplicationId inheritdoc
* Implement message Activity and Application model update
* RestMessage Application and Activity implementation
* add ToString to MessageApplication
* Add IconUrl property to MessageApplication
* clean up whitespace
* another excessive whitespace removal
* Add XML docs
* Clean up style switcher
* Squash commits on branch docs/faq-n-patches
* Fix broken theme selector
* Add local image embed instruction
* Add a bunch of XML docs
* Add a bunch of XML docs
* Fix broken search
+ DocFX by default ships with an older version of jQuery, switching to a newer version confuses parts of the DocFX Javascript.
* Minor fixes for CONTRIBUTING.md and README.md
* Clean up filterConfig.yml
+ New config exposes Discord.Net namespace since it has several common public exceptions that may be helpful to users
* Add XML docs
* Read token from Environment Variable instead of hardcode
* Add XMLDocs
* Compress some assets & add OAuth2 URL generator
* Fix sample link & add missing pictures
* Add tag examples
* Fix embed docs consistency
* Add details regarding userbot support
* Add XML Docs
* Add XML Docs
* Add XML Docs
* Minor fixes in documentations
+ Fix unescaped '<'
+ Fix typo
* Fix seealso for preconditions and add missing descriptions
* Add missing exceptions
* Document exposed TypeReaders
* Fix letter-casing for files
* Add 'last modified' plugin
Source: https://github.com/Still34/DocFx.Plugin.LastModified
Licensed under MIT License
* XML Docs
* Fix minor consistencies & redundant impl
* Add properties examples to overwrite
* Fix missing Username prop
* Add warning for bulk-delete endpoint
* Replace note block
* Add BaseSocketClient docs
* Add XML docs
* Replace langword null to code block null instead
- Because DocFX sucks at rendering langword
* Replace all langword placements with code block
* Add more IGuild docs
* Add details to SpotifyGame
* Initial proofread of the articles
* Add explanation for RunMode
* Add event docs
- MessageReceived
- ChannelUpdated/Destroyed/Created
* Fix light theme link color
* Fix xml docs error
* Add partial documentation for audit log impl
* Add documentation for some REST-based objects
* Add partial documentation for audit log objects
* Add more XML comments to quotation mark alias map stuff, including an example
* Add reference to CommandServiceConfig from the util docs'
* Add explanation that if " is removed then it wont work
* Fix missing service provider in example
* Add documentation for new INestedChannel
* Add documentation
* Add documentation for new API version & few events
* Revise guide paragraphs/samples
+ Fix various formatting.
+ Provide a more detailed walkthrough for dependency injection.
+ Add C# note at intro.
* Fix typos & formatting
* Improve group module example
* Small amount to see if I'm doing it right
* Remove/cleanup redundant variables
* Fix EnterTypingState impl for doc inheritance
* Fix Test to resolve changes made in 15b58e
* Improve precondition documentation
+ Add precondition usage sample
+ Add precondition group usage sample
+ Move precondition samples to its own sample folder
* Move samples to individual folders
* Clarify token source
* Cleanup styling of README.md for docs
* Replace InvalidPathChars for NS1.3
* InvalidPathChars does not exist in NS1.3; replaced with GetInvalidPathChars instead.
* Add a missing change for 2c7cc738
* Update LastModified to v1.1.0 & add license
* Rewrite installation page for Core 2.1
* Fix anchor link
* Bump post-processor to v1.1.1
* Add fixes to partial file & add license
* Moved theme-switcher code to scripts partial file
+ Add author's MIT license to featherlight javascript
* Remove unused bootstrap plugin
* Bump LastModified plugin
* Changed the path from 'lastmodified' to 'last-modified' for consistency
* Cleanup README & Contribution guide
* Changes to last pr
* Fix GetCategoryAsync docs
* Proofread and cleanup articles
* Change passive voice in "Get Started" to active
* Fix improper preposition in Commands Introduction page
* Fix minor grammar mistakes in "Your First Bot" (future tense -> present tense/subjunctive mood -> indicative mood/proper noun casing/incorrect noun/add missing article)
* Fix minor grammar mistakes in "Installation" (missing article)
* no hablo ingles
* Try try try again
* I'm sure you're having as much fun as I am
* Cleanup TOC & fix titles
* Improve styling
+ Change title font to Noto Sans
+ Add materialized design for commit message box
* Add DescriptionGenerator plugin
* Add nightly section for clarification
* Fix typos in Nightlies & Post-execution
* Bump DescriptionGenerator to v1.1.0
+ This build adds the functionality of generating managed references' summary into the description tag.
* Initial emoji article draft
* Add 'additional information' section for emoji article
* Add cosmetic changes to the master css
* Alter info box color
+ Add transition to article content
* Add clarification in the emoji article
* Emphasize that normal emoji string will not translate to its Unicode representation.
* Clean up or add some of the samples featured in the article.
+ Add emoji/emote declaration section for clarification.
+ Add WebSocket emote sample.
- Remove inconsistent styling ('wacky memes' proves to be too out of place).
* Improve readability for nightlies article
* Move 'Bundled Preconditions' section
* Bump LastModified to fix UTC DateTime parsing
* Add langwordMapping.yml
* Add XML docs
* Add VSC workspace rule
* The root workspace limits the ruler to 120 characters for member documentations and excludes folders such as 'samples' and 'docs'.
* The docs workspace limits the ruler to 70 characters for standard conceptual article to comply with documentation's CONTRIBUTING.md rule, and excludes temprorary folders created by DocFX.
* Update CONTRIBUTING.md
* Add documentation style rule
* Fix styling of several member documentation
* Fix ' />' caused by Agent Smith oddities
* Fix styling to be more specific about the mention of IDs
* Fix exception summary to comply with official Microsoft Docs style
* References
https://docs.microsoft.com/en-us/dotnet/api/system.argumentnullexception?view=netframework-4.7.2https://docs.microsoft.com/en-us/dotnet/api/system.platformnotsupportedexception?view=netframework-4.7.2https://docs.microsoft.com/en-us/dotnet/api/system.badimageformatexception?view=netframework-4.7.2
* Add XML documentations
* Shift color return docs
* Fix minor docs
* Added documentation for SocketDMChannel, SocketGuildChannel, and SocketTextChannel
* Add XML docs
* Corrections to SocketGuildChannel
* Corrections to SocketTextChannel
* Corrections to SocketDMChannel
* Swapped out 'id' for 'snowflake identifier
* Swapped out 'id' for 'snowflake identifier'
* SocketDMChannel amendments
* SocketGuildChannel amendments
* SocketTextChannel amendments
* Add XML docs & patch return types
+ Starting from this commit, all return types for tasks will use style similar to most documentations featured on docs.microsoft.com
References:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext.-ctor?view=efcore-2.1https://docs.microsoft.com/en-us/dotnet/api/system.io.filestream.readasync?view=netcore-2.1https://docs.microsoft.com/en-us/dotnet/api/system.io.textwriter.writelineasync?view=netcore-2.1#System_IO_TextWriter_WriteLineAsync_System_Char___
And many more other asynchronous method documentations featured in the latest BCL.
* Added documentation for many audit log data types, fixed vowel indefinite articles
* Change audit log data types to start with 'Contains' (verb) instead of an article
* Fix some documentation issues and document some more audit log data types
* Fix English posession
* Add XML doc
* Documented two more types
* Documented RoleCreateAuditLogData
* Document remaining audit log data types
* Added RestDMChannel documentation
* Added RestGuildChannel documentation
* Added RestTextChannel documentation
* Added RestVoiceChannel documentation
* Added RestUser documentation
* Added RestRole documentation
* Added RestMessage documentation
* Slightly better wording
* Contains -> Contains a piece of (describe article)
* [EN] Present perf. -> past perf.
* Add XML docs
* Fix arrow alignment
* Clarify supported nullable type
* Fixed a typo in ISnowflakeEntity
* Added RestUser Documentation
* Added RestInvite documentation
* Add XML docs & minor optimizations
* Minor optimization for doc rendering
* Rollback font optimization changes
* Amendments to RestUser
* Added SocketDMChannel documentation
* Added RestDMChannel documentation
* Added RestGuild documentation
* Adjustment to SocketDMChannel
* Added minimal descriptions from the API documentation for Integration types
* Added obsolete mention to the ReadMessages flag.
* Added remarks about 2FA requirement for guild permissions
* Added xmldoc for GuildPermission methods
* Added xml doc for ToAllowList and ToDenyList
* Added specification of how the bits of the color raw value are packed
* Added discord API documentation to IConnection interface
* I can spell :^)
* Fix whitespace in ChannelPermission
* fix spacing of values in guildpermission
* Made changes to get field descriptions from feedback, added returns tag to IConnection
* Added property get standard for IntegrationAccount
* Added property get pattern to xml docs and identical returns tag.
* Change all color class references to struct
...because it isn't a class.
* Add XML docs
* Rewrote the returns tags in IGuildIntegration, removed the ones I was unsure about.
* Rewrote the rest of the returns tags
* Amendments
* Cleanup doc for c1d78189
* Added types to <returns> tags where missing
* Added second sample for adding reactions
* Added some class summaries
* Missed a period
* Amendments
* restored the removed line break
* Removed unnecessary see tag
* Use consistent quotation marks around subscribers, the name for these users are dependant on the source of where they are integrated from (youtube or twitch), so we should not use a name that is specific to one platform
* Add <remarks> tag to the IGuildIntegration xmldocs
* Fix grammar issue
* Update DescriptionGenerator
* Cleanup of https://github.com/Still34/Discord.Net/pull/8
* Cleanup previous PR
* Fix for misleading behaviour in the emoji guide
+ Original lines stated that sending a emoji wrapped in colon will not be parsed, but that was incorrect; replaced with reactions instead of sending messages as the example
* Add strings for dictionary in DotSettings
* Add XML docs
* Fix lots of typos in comments
+ Geez, I didn't know there were so many.
* Add XML docs & rewrite GetMessagesAsync docs
This commit rewrites the remarks section of GetMessagesAsync, as well as adding examples to several methods.
* Update 'Your First Bot'
+ This commit reflects the new changes made to the Discord Application Developer Portal after its major update
* Initial optimization for DocFX render & add missing files
* Add examples in message methods
* Cleanup https://github.com/RogueException/Discord.Net/pull/1128
* Fix first bot note
* Cleanup FAQ structure
* Add XML docs
* Update docfx plugins
* Fix navbar collapsing issue
* Fix broken xref
* Cleanup FAQ section
+ Add introductory paragraphs to each FAQ section.
+ Add 'missing dependency' entry to commands FAQ.
* Split commands FAQ to 'General' and 'DI' sections.
* Cleanup https://github.com/RogueException/Discord.Net/pull/1139
* Fix missing namespace
* Add missing highlighting css for the light theme
* Add additional clarification for installing packages
* Add indentation to example for clarity
* Cleanup several articles to be more human-friendly and easier to read
* Remove RPC-related notes
* Cleanup slow-mode-related documentation strings
* Add an additional note about cross-guild emote usage
* Add CreateTextChannel sample
* Add XMLDocs
* Add input validation for bot tokens based on their length
* Add token validation to BaseDiscordClient#LoginAsync
Adds a TokenUtils class which is used to validate that tokens are correct
* Revert changes to DiscordRestApiClient
* Add Unit tests to the TokenUtils class, fix a logic error that was caught by those tests
* Allow for API to throw exceptions
Moves the validation of tokens to be inside of LoginInternalAsync, and writes a Warning to the console when the supplied tokens are invalid
* fix channel permissions modify parameter to use nullable boolean, correct default value
* Add general tests for the ChannelPermissions.Modify method to test default values
* remove unused cast in tests
* add guildpermission modify no param tests
* Add no-param modify tests for OverwritePermissions
* fix inconsistent parameters in GuildPermissions cstr
* Adjust formatting of methods and cstrs with many parameters
* remove temp file that was included. no idea what that is
* Fix System dependency
I should really stop fixing merge conflicts in the github website.
* Fix#995 ICategoryChannel.CategoryID throws NotSupportedException
* Add tests
* change run mode of TestChannelCategories
* Add throw for GetCategoryAsync
* Add xml doc explaining why exception is thrown
* Add test coverage for text and voice channel categories
* initial implementation of INestedChannel
* more implementation of INestedChannel design
* Add case in RestChannel Create for Category type
* set the CategoryID for RestVoiceChannel
* rewrite channel category tests to work with existing pattern
* remove outdated todo
* Make IVoiceChannel implement INestedChannel
* remove redundant interface implementation
* Add c#7 feature from feedback
* Remove redundant GetCategoryAsync methods from socket entities
* Added configureawait to async methods
* change signature of interface GetCategoryAsync
* Add check for cachemode in rest channel GetCategory
* remove redundant IGuildChannel interface from ITextChannel and IVoiceChannel
- Replaces the usages of `ReadMessages` with `ViewChannel`
- Renames the read message parameters of `GuildPermissions#Modify` to be view channel as well
* Update deps, fix test warnings.
* Support ns2.0
* Fix typo
* Remove ns1.1 support
* Net.Http and Net.Websockets.Client are not needed in ns2.0
* Move to net46 per volt
* Remove ns1.3 constants
* Add tests for more Permissions code coverage
* Add guild tests
* Add more in-depth covering of permissions methods
* Add tests for OverwritePermissions
* Remove unknown ItemGroup tag from csproj
* Add missing Fact attributes, separate class so that it is not dependant on main test fixture
* Separate out GuildPermissions and ChannelPermissions tests from main partial Tests class because they do not need to have access to the main test fixture
* Fix#854 Added ViewChannel enum and property to channel permissions
* replaced usages of ChannelPermission#ReadMessages with ViewChannel
* rename parameter of ChannelPermissions constructor
* made OverwritePermissions#ReadMessages obsolete, use ViewChannel instead
* Fix#854 Added ViewChannel enum and property to channel permissions
replaced usages of ChannelPermission#ReadMessages with ViewChannel
rename parameter of ChannelPermissions constructor
made OverwritePermissions#ReadMessages obsolete, use ViewChannel instead
* renamed readMessages parameter in ChannelPermissions constructor and Modify
* fixed channel permission tests to use ChannelPermission enum instead of GuildPermission enum
* replaced usages of readmessages in channel permission tests
* resolve build warnings for permission tests
* Added support for animated emoji
This was such a useful feature Discord, I'm glad you added this instead
of fixing bugs.
* Fix bugs in emote parser
* Added unit tests for emotes
* initial commit
* Add GuildPermission tests for constructor and modify parameters
* Fixed GuildPermission All value. Previous value had an additional digit that would still resolve to correct permission flags, but raw value would be incorrect. This matches the result of the sum of all GuildPermission flags
* Added raw value check to guild permission modify tests
* Add ChannelPermissions tests
* Changed Guild#DefaultChannel to resolve the first accessible channel
Resolves#776
This change is inline with hammerandchisel/discord-api-docs#329
RestGuild#DefaultChannelId is now obsolete and will throw a
NotSupportedException.
* RestGuild#DefaultChannelId will fall back to the guild ID
Adding an exception here would be a breaking change, so this was agreed
to fall back to the previous behavior, which would just return the guild
ID.
This provides tests to ensure the following:
- Creating a Color
- Creating a Default Color
- Accessing a Color's Raw Value
- Accessing a Color's translated RGB values