Skip to content

Releases: TehGM/Wolfringo

v2.1.4 - Fix group member updates

06 Dec 22:52
8a07b3a
Compare
Choose a tag to compare

Release info

Over past 3 years, WOLF protocol changed the group member update events to be way more convoluted and completely breaking Wolfringo's caching of group members. This patch prioritizes fixing this, so group member updates such as joins, leaves, privileges (admin & mod), silences and owner changes are getting properly captured and cached again.

Changes

  • Added: GroupMemberPrivilegedAddEvent, GroupMemberPrivilegedUpdateEvent and GroupMemberPrivilegedDeleteEvent.
  • Added: IGroupMemberPrivilegedEvent interface which is implemented by the above events to streamline handling by cache service.
  • Added: Reputation property for WolfGroup.
  • Change: Default caching implementation has been updated to handle the events that WOLF servers now send.
  • Fix: Stack overflow exception when parsing certain group chat events, such as member leaving.

Obsoletions:

  • GroupMemberUpdateEvent is now obsolete - seems WOLF protocol no longer uses this event type, and it'll be removed in a later release of Wolfringo.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v2.1.3 - hotfix for link detection & caret return

25 Nov 13:12
cf17b5d
Compare
Choose a tag to compare

Release info

A second small hotfix for link detection added in v2.1.1.

Changes

  • Fix: http/https link detection will now end link on caret return as well as new line, to avoid issues with some new line formatting.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v2.1.2 - hotfix for link detection & new lines

25 Nov 11:08
d0b16fe
Compare
Choose a tag to compare

Release info

A small hotfix for link detection added in v2.1.1

Changes

  • Fix: http/https link detection will now end link on new line in addition to space.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v2.1.1 - http and https links support

25 Nov 10:50
a7d1280
Compare
Choose a tag to compare

Release info

A quick follow up update to v2.1.0 - enabling Sender and CommandContext to detect http/https links.

Changes

  • Added: Sender utility and CommandContext extension methods will now automatically detect http/https links and generate metadata required for the link to be clickable.

Obsoletions:

  • AvatarUtilities is now obsolete - the old, deterministic way to get avatar links no longer works, and a redesign of the class is required. It's planned for a future release.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v2.1.0 - Fixes after 3 years

24 Nov 20:48
dfb671b
Compare
Choose a tag to compare

Release info

An upgrade that focuses on fixing some issues caused by WOLF protocol changes over past 3 years.
See Upgrade Guide for any potential breaking changes.

Changes

  • Added: Add GroupMemberRegularListMessage and GroupMemberPrivilegedListMessage.
  • Added: support for ChatMessage metadata for links (normal URLs and group links).
  • Added: GroupLinkDetectionHelper internal utility class which helps with generating group links from text.
  • Added: [HelpOrder] attribute to allow more customization of help message.
  • Change: Separated PrefixRequirement from PrefixAttribute to combat the way CLR handles nullables in attribute constructors.
  • Fix: prefix checks for empty prefixes.
  • Fix: updating group member list for groups with more than 100 members in [RequireGroupPrivilege] CommandContext and Sender Utility extensions.
  • Fix: fix Sender Utility method for joining a group by name - group will now be requested separately to get the ID.
  • Fix: serialization errors when WOLF server responds with an error response.
  • Fix: some logging bugs and issues.
  • Fix: some CancellationToken race conditions.

Obsoletions:

  • GroupMembersListMessage is now obsolete - using it will fail retrieving more than 100 group members.
  • GroupName property and related constructor in GroupJoinMessage is now obsolete, as WOLF protocol changes made it not work.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v2.0.1 - Fix old logging bug

13 Nov 13:46
fa0d089
Compare
Choose a tag to compare

Release info

This small update fixes an old bug that caused silenced messages to be logged as error, along with other really small tweaks.

Changes

  • Change: CommandsListBuilder now accepts ICommandsService instead of CommandsService in constructor.
  • Fix: Logging of silenced sending exception in commands now checks for a proper error code.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v2.0.0 - Client and CommandService builder, help command, cache separation, and much more!

08 Nov 13:31
3cb7a33
Compare
Choose a tag to compare

Release info

Wolfringo v2.0 brings some significant changes - streamlined client and commands initialization, separation of caching and client logic, addition of help command support, and many more.
See Upgrade Guide for help with migrating and high level breakdown of new features!

As a bonus, official documentation page now has a set of guides on Customizing Wolfringo, which should make it much easier for you to tweak Wolfringo's internals!

Changes

  • Added: WolfClientBuilder that makes creation of a WolfClient much easier! See Getting Started to check out the new flow!
  • Added: CommandsServiceBuilder that makes creation of a CommandsService much easier! See Commands System to check out the new flow!
  • Added: Easy help command support. See Help Command to learn more!
  • Added: {{RecipientID}} and {{RecipientName}} placeholders are now supported in command argument error messages.
  • Added: [ArgumentText] attribute for command method arguments.
  • Added: Support for checking URL metadata.
  • Added: Support for requesting group achievements.
  • Added: Both standard and regex commands now support a timeout.
  • Added: Regex commands now support a Regex engine timeout to prevent potential attacks.
  • Added: Extension method for ChatMessage class: GetMessageWithoutPrefix.
  • Added: CommandContextOptions class which can now be injected into command method.
  • Added: CommandRequirementsResult class for use by command requirements.
  • Added: IWolfTokenProvider interface, along with ConstantWolfTokenProvider, RandomizedWolfTokenProvider and HostedWolfTokenProvider classes, which are used by WolfClient. This increases flexibility of resolving token. They replace WolfTokenProvider.
  • Added: A new IWolfClientCache interface which allows for cache customization via Dependency Injection.
  • Added: A new WolfClientCache class with default caching implementation. This replaces old WolfEntityCacheContainer, which is now removed.
  • Added: A new WolfCacheOptions class for configuring built-in caching.
  • Change: Caching related properties have been removed from WolfClient.
  • Change: IWolfEntityCache<TEntity> has been renamed to IWolfCachedEntityCollection<TEntity>.
  • Change: WolfEntityCacheExtensions has been renamed to WolfCachedEntityCollectionExtensions.
  • Change: Caching related types (including IWolfClientCacheAccessor) were moved from TehGM.Wolfringo.Utilities to new TehGM.Wolfringo.Caching namespace.
  • Change: DefaultServerURL, BetaServerURL and DefaultDevice constants have been moved from WolfClient to a new WolfClientOptions class.
  • Change: ServerURL, Device and IgnoreOwnChatMessages properties of WolfClient have been moved to a new WolfClientOptions class.
  • Change: It is now possible to provide a custom ISocketClient to WolfClient.
  • Change: WolfClient's OnMessageSentInternalAsync and OnMessageReceivedInternalAsync were renamed to OnMessageSentAsync and OnMessageReceivedAsync respectively. Since caching logic has been moved to IWolfClientCache, they also are now empty, so overriding them is completely safe.
  • Change: UserAchievementListResponse has been replaced by EntityAchievementListResponse, which supports both user and group achievements.
  • Change: Sender utility now returns achievements with nullable timestamps. This is due to how WOLF server handles them.
  • Change: Command requirements' CheckAsync method now returns ICommandResult instead of a boolean. Supporting AbortOnFail and SendMessageWhenSkipping properties and ResultFromBoolean method were added to CommandRequirementAttribute class.
  • Change: StandardCommandInstance and RegexCommandInstance now inherit from a shared CommandInstanceBase class.
  • Change: CommandsOptions now implement a new ICommandOptions interface.
  • Change: Some WolfClient constructors were removed or marked as obsolete. Favour using WolfClientBuilder.
  • Change: Some CommandsService constructors were removed or marked as obsolete. Favour using CommandsServiceBuilder.
  • Change: Types implementing ICommandResult are now classes instead of structs.
  • Change: IsSuccess property of ICommandResult is now obsolete. Favour using Status property.
  • Change: Exception property has been removed from most of classes implementing ICommandResult.
  • Change: ErrorMessage property of ICommandRequirement has been removed. It is still present in CommandRequirementAttribute, so existing error messages should still work just fine.
  • Change: ICommandsService now has Commands property, containing all instance descriptors currently active within the service.
  • Change: SimpleServiceProvider and CombinedServiceProvider classes were removed, as they're no longer needed internally.
  • Change: CommandInstanceDescriptorExtensions class has been moved from TehGM.Wolfringo.Commands.Initialization to TehGM.Wolfringo.Commands namespace.
  • Change: Command instance descriptor extension methods now use new internal attribute cache class DescriptorAttributeCache. This cache uses lazy reflection for performance.
  • Change: Priority property of CommandInstanceDescriptor has been removed. Favour using extension methods.
  • Change: JSON Converters have been modified to support JsonPath.
  • Change: "command" argument has been renamed to "eventName" in signatures of built-in message and response serializers.
  • Change: Constructor of HostedWolfClient has been simplified.
  • Change: IHostedWolfClientServiceBuilder now has a new ConfigureCaching method.
  • Fix: Requesting specific achievements has been optimized, which should result in a slightly reduced network usage.
  • Fix: Dependency Injection mechanisms for Commands now correctly differentiate between argument with default value and optional argument.
  • Fix: Some Sender methods were not configuring await properly. This is now fixed.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v1.1.2 - Fix to crashes when user icon is null

05 Feb 12:31
0c96ef5
Compare
Choose a tag to compare

Release info

This update fixes a rare crash when user's icon is null for some reason.

Changes

  • Change: IconID with AvatarUtility is now optional.
  • Fix: Made WolfUser's and WolfGroup's Icon fields nullable.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v1.1.1 - Silenced Responses + Non-existing Entities and other bug fixes

06 Jan 11:53
08fcbcc
Compare
Choose a tag to compare

Release info

This update consists mainly of under-the-hood fixes and minor behaviour changes.

Changes

  • Change: WolfErrorCode.LoginIncorrectOrCannotSendToGroup renamed to WolfErrorCode.LoginIncorrectOrCannotSendMessage.
  • Change: WolfErrorCode.LoginIncorrectOrCannotSendMessage error description changed to "Blocked, silenced, banned, or not in group".
  • Change: Commands Service will now log warning instead of error when command failed to reply.
  • Fix: Requesting users/groups that don't exist will now return null instead of default.
  • Fix: Improve internal de-registering of events in HostedWolfClient.
  • Fix: ReconnectorConfig will no longer throw when attempts count is 0.
  • Fix: Interactive utilities now handle all OperationCanceledException instead of only TaskCanceledException.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org

v1.1.0 - Avatar Utilities + DOB Support

04 Jan 15:48
2b4cefd
Compare
Choose a tag to compare

Release info

This update adds a few small features - utilities for user and group avatars, as well support for user's Date of Birth.
On top of code changes, Wolfringo Documentation now has a small FAQ section designed to help when moving to Wolfringo from other WOLF libraries - check it here.

Changes

  • Added: A few extension methods designed to help with downloading user and group avatars.
  • Added: WolfUser now has Date of Birth.
  • Added: Profile Update now can change Date of Birth of current user.
  • Change: Made some methods of SimpleServiceProvider an implicit implementations.
  • Fix: Added missing or previously broken documentation comments.

Package URL

Main meta-package - NuGet.org
Wolfringo.Hosting - NuGet.org