Wolfringo 2.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Wolfringo --version 2.0.0
NuGet\Install-Package Wolfringo -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Wolfringo" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Wolfringo --version 2.0.0
#r "nuget: Wolfringo, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Wolfringo as a Cake Addin
#addin nuget:?package=Wolfringo&version=2.0.0

// Install Wolfringo as a Cake Tool
#tool nuget:?package=Wolfringo&version=2.0.0


Nuget GitHub top language GitHub GitHub Workflow Status GitHub issues

This is a .NET library for WOLF (previously Palringo).

This library is designed with extensibility through Dependency Injection in mind, and is compatible with ASP.NET Core and other .NET Core Hosting scenarios through Wolfringo.Hosting package.

Library works with strongly-typed messages and responses, that are serialized when sending and deserialized when receiving. Message listeners can be invoked by message type, giving full benefit of strong typing. Additionally, Wolfringo.Utilities package provides a Sender extensions class, which abstracts common sending tasks. Utilities package is included by default with Wolfringo meta-package.

Wolfringo provides a built in Commands System. Commands System uses attributes to mark commands, which greatly reduces amount of boilerplace code needed.
The Commands System follows the design principles of entire Wolfringo library, and therefore is easily extensible and easily customizable thanks to Dependency Injection.


A full Documentation is now available - it includes Tutorials and Guides, as well as full API Reference.

Source Repository

Wolfringo is open source, with code hosted on GitHub.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.1 414 11/13/2021
2.0.0 275 11/8/2021
1.1.2 337 2/5/2021
1.1.1 419 1/6/2021
1.1.0 324 1/4/2021
1.0.0 413 12/18/2020
1.0.0-beta5 321 12/17/2020
1.0.0-beta4 325 12/16/2020
1.0.0-beta2 308 11/30/2020
1.0.0-beta1 356 11/28/2020
0.4.1 370 10/18/2020
0.4.0 511 9/20/2020

This version features significant amount of changes. Please see upgrade guide: https://wolfringo.tehgm.net/upgrading/1.x-2.x.html

- Added WolfClientBuilder that makes creation of a WolfClient much easier!
- Added CommandsServiceBuilder that makes creation of a CommandsService much easier!
- Added an easy help command support.
- 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.
- Both standard and regex commands now support a timeout.
- Regex commands now support a Regex engine timeout to prevent potential attacks.
- Added an 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 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 old WolfEntityCacheContainer, which is now removed.
- Added a new WolfCacheOptions class for configuring built-in caching.
- Caching related properties have been removed from WolfClient.
- IWolfEntityCache<TEntity> has been renamed to IWolfCachedEntityCollection<TEntity>.
- WolfEntityCacheExtensions has been renamed to WolfCachedEntityCollectionExtensions.
- Caching related types (including IWolfClientCacheAccessor) were moved from TehGM.Wolfringo.Utilities to new TehGM.Wolfringo.Caching namespace.
- DefaultServerURL, BetaServerURL and DefaultDevice constants have been moved from WolfClient to a new WolfClientOptions class.
- ServerURL, Device and IgnoreOwnChatMessages properties of WolfClient have been moved to a new WolfClientOptions class.
- It is now possible to provide a custom ISocketClient to WolfClient.
- 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, sooverriding them is completely safe.
- UserAchievementListResponse has been replaced by EntityAchievementListResponse, which supports both user and group achievements.
- Sender utility now returns achievements with nullable timestamps. This is due to how WOLF server handles them.
- Command requirements' CheckAsync method now returns ICommandResult instead of a boolean. Supporting AbortOnFail and SendMessageWhenSkipping properties and ResultFromBoolean method were added to CommandRequirementAttribute class.
- StandardCommandInstance and RegexCommandInstance now inherit from a shared CommandInstanceBase class.
- CommandsOptions now implement a new ICommandOptions interface.
- Some WolfClient constructors were removed or marked as obsolete. Favour using WolfClientBuilder.
- Some CommandsService constructors were removed or marked as obsolete. Favour using CommandsServiceBuilder.
- Types implementing ICommandResult are now classes instead of structs.
- IsSuccess property of ICommandResult is now obsolete. Favour using Status property.
- Exception property has been removed from most of classes implementing ICommandResult.
- ErrorMessage property of ICommandRequirement has been removed. It is still present in CommandRequirementAttribute, so existing error messages should still work just fine.
- ICommandsService now has Commands property, containing all instance descriptors currently active within the service.
- SimpleServiceProvider and CombinedServiceProvider classes were removed, as they're no longer needed internally.
- CommandInstanceDescriptorExtensions class has been moved from TehGM.Wolfringo.Commands.Initialization to TehGM.Wolfringo.Commands namespace.
- Command instance descriptor extension methods now use new internal attribute cache class DescriptorAttributeCache. This cache uses lazy reflection for performance.
- Priority property of CommandInstanceDescriptor has been removed. Favour using extension methods.
- JSON Converters have been modified to support JsonPath.
- "command" argument has been renamed to "eventName" in signatures of built-in message and response serializers.
- Constructor of HostedWolfClient has been simplified.
- IHostedWolfClientServiceBuilder now has a new ConfigureCaching method.
- Requesting specific achievements has been optimized, which should result in a slightly reduced network usage.
- Dependency Injection mechanisms for Commands now correctly differentiate between argument with default value and optional argument.
- Some Sender methods were not configuring await properly. This is now fixed.