Wolfringo v2.1
Wolfringo 2.1 took a while, and still was focused more on getting the library more up-to-date than many fancy new features. There's still work to be done, but over years some issues accumulated and really needed fixing - and that's where the focus was.
For most users there should be little to no changes needed in the bot's code - however there were some important changes that might be slightly breaking.
[PrefixRequirement] Attribute
Due to issues caused by how .NET and C# work internally, there was a need to separate [Prefix] and [PrefixRequirement]. [Prefix] now only works for changing the prefix string - if that's all you used it for, you don't need any changes. However if you used it to change PrefixRequirement of a command, you need to change the command to be decorated with [PrefixRequirement].
These attributes work together, so you can still override both behaviours:
[Command("test")]
[Prefix(">")]
[PrefixRequirement(PrefixRequirement.Always)]
public async Task CmdTimeoutAsync(CancellationToken cancellationToken)
{
// ... code here ...
}
Changes to Group Member List download
WOLF protocol has changed over past few years. One of the changes was addition of different commands for requesting group members.
GroupMembersListMessage Obsoleted
GroupMembersListMessage has been marked as obsolete. Due to the changes in the protocol, this command while returns members list, is limited to 100 members. If a group has more members, it's impossible to get all group members. Use GroupMemberRegularListMessage and GroupMemberPrivilegedListMessage instead.
GroupMembersListMessage is still in the codebase yet, as the server still responds with some data. However it's considered broken, and will most likely be removed in a future update.
New message types
GroupMemberRegularListMessage and GroupMemberPrivilegedListMessage were added. GroupMemberRegularListMessage supports pagination to allow requesting members from large groups.
Extension methods (both for Sender Utility as well CommandContext) have been updated to use these new messages. Keep in mind that it can result in more messages being sent when retrieving a group and its members list.
Due to inconsistency in WOLF protocol design, it's still not clear how profile updates subscriptions are affected.
Group Member Caching
Due to the messages being paginated after WOLF protocol changes, default Cache service is no longer able to intercept member list responses in order to cache them. If you use Sender utility or CommandContext extension methods, these helpers will still cache group members in the group object - however if you were using GroupMembersListMessage directly, the response no longer can be cached. Please update group member list manually or use the Sender helper methods.
AvatarUtilities Obsoleted
AvatarUtilities is an utility class for building Group and User avatar links, and downloading these avatars. However the old and easy to predict link format seems to have been phased out. Fixing this will likely require redesigning the utility class and changing method signatures.
For this reason AvatarUtilities class has been marked as obsolete. You should remove its usage to prepare for a redesign in an upcoming library release.