Releases: TehGM/Wolfringo
v2.1.4 - Fix group member updates
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
andGroupMemberPrivilegedDeleteEvent
. - Added:
IGroupMemberPrivilegedEvent
interface which is implemented by the above events to streamline handling by cache service. - Added:
Reputation
property forWolfGroup
. - 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
v2.1.3 - hotfix for link detection & caret return
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
v2.1.2 - hotfix for link detection & new lines
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
v2.1.1 - http and https links support
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
v2.1.0 - Fixes after 3 years
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
andGroupMemberPrivilegedListMessage
. - 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
fromPrefixAttribute
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 inGroupJoinMessage
is now obsolete, as WOLF protocol changes made it not work.
Package URL
v2.0.1 - Fix old logging bug
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 ofCommandsService
in constructor. - Fix: Logging of silenced sending exception in commands now checks for a proper error code.
Package URL
v2.0.0 - Client and CommandService builder, help command, cache separation, and much more!
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 withConstantWolfTokenProvider
,RandomizedWolfTokenProvider
andHostedWolfTokenProvider
classes, which are used by WolfClient. This increases flexibility of resolving token. They replaceWolfTokenProvider
. - Added: A new
IWolfClientCache
interface which allows for cache customization via Dependency Injection. - Added: A new
WolfClientCache
class with default caching implementation. This replaces oldWolfEntityCacheContainer
, 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 toIWolfCachedEntityCollection<TEntity>
. - Change:
WolfEntityCacheExtensions
has been renamed toWolfCachedEntityCollectionExtensions
. - Change: Caching related types (including
IWolfClientCacheAccessor
) were moved fromTehGM.Wolfringo.Utilities
to newTehGM.Wolfringo.Caching
namespace. - Change:
DefaultServerURL
,BetaServerURL
andDefaultDevice
constants have been moved fromWolfClient
to a newWolfClientOptions
class. - Change:
ServerURL
,Device
andIgnoreOwnChatMessages
properties ofWolfClient
have been moved to a newWolfClientOptions
class. - Change: It is now possible to provide a custom
ISocketClient
toWolfClient
. - Change: WolfClient's
OnMessageSentInternalAsync
andOnMessageReceivedInternalAsync
were renamed toOnMessageSentAsync
andOnMessageReceivedAsync
respectively. Since caching logic has been moved toIWolfClientCache
, they also are now empty, so overriding them is completely safe. - Change:
UserAchievementListResponse
has been replaced byEntityAchievementListResponse
, 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 returnsICommandResult
instead of a boolean. SupportingAbortOnFail
andSendMessageWhenSkipping
properties andResultFromBoolean
method were added toCommandRequirementAttribute
class. - Change:
StandardCommandInstance
andRegexCommandInstance
now inherit from a sharedCommandInstanceBase
class. - Change:
CommandsOptions
now implement a newICommandOptions
interface. - Change: Some
WolfClient
constructors were removed or marked as obsolete. Favour usingWolfClientBuilder
. - Change: Some
CommandsService
constructors were removed or marked as obsolete. Favour usingCommandsServiceBuilder
. - Change: Types implementing
ICommandResult
are now classes instead of structs. - Change: IsSuccess property of
ICommandResult
is now obsolete. Favour usingStatus
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 inCommandRequirementAttribute
, 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
andCombinedServiceProvider
classes were removed, as they're no longer needed internally. - Change:
CommandInstanceDescriptorExtensions
class has been moved fromTehGM.Wolfringo.Commands.Initialization
toTehGM.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 newConfigureCaching
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
v1.1.2 - Fix to crashes when user icon is null
Release info
This update fixes a rare crash when user's icon is null for some reason.
Changes
- Change:
IconID
withAvatarUtility
is now optional. - Fix: Made WolfUser's and WolfGroup's
Icon
fields nullable.
Package URL
v1.1.1 - Silenced Responses + Non-existing Entities and other bug fixes
Release info
This update consists mainly of under-the-hood fixes and minor behaviour changes.
Changes
- Change:
WolfErrorCode.LoginIncorrectOrCannotSendToGroup
renamed toWolfErrorCode.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 onlyTaskCanceledException
.
Package URL
v1.1.0 - Avatar Utilities + DOB Support
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.