Grunt 0.1.12 Is Available Now

Header for the blog post, with a Halo grunt in the background and text that says “Grunt 0.1.12 Is Available Now”

What do you know - another week and there’s another new Grunt release. This one has few changes that I am introducing, but they are setting the library on a more cross-game path. That is, I am introducing experimental Halo 5 APIs. Not the entire API surface is covered (yet) but the foundations are there and I am excited to see it evolve further. I don’t know about you, but I am sometimes still logging into Halo 5 to see what is happening and I thought that I might as well add coverage for those APIs while they exist.

NuGet download link for OpenSpartan.Grunt

NuGet download link for OpenSpartan.Grunt with download counter

Let’s talk through the specific changes that I’ve introduced with this release. First of all - experimental Halo 5 APIs. You might notice that there is now a Halo5Client class. Similar to how I’ve implemented this for Halo Infinite, this class will be dedicated to ensuring that you can talk to Halo 5 services from one entrypoint. There are only three methods available today:

These are just starters and they will grow over time. As part of the introduction of Halo 5 APIs, I’ve also refactored some of the API ingress code to be more “generic” (applicable to the rest of the library and not just Halo Infinite) so you might see some classes like RetryPolicy, Settings, RetryOptions, Configuration, Authority, AuthenticationMethod, AcknowledgementType and OnlineUriReference make their way into the OpenSpartan.Grunt.Models.ApiIngress namespace.

For Halo Infinite APIs, I’ve also fixed a typo in a enum definition (LifecycleMode) and expanded it to include local (LAN) games as well. Which, by the way, can now also be used inside StatsGetPlayerServiceRecord (see the barebones GitHub issue for an example of a desired endpoint). Previously, you could only record service records for matchmade games. Now you can do that for custom and local games as well.

That’s about it for this change. As always, you can take a look at the source code for everything that I am building with Grunt on GitHub, and if you have any questions or suggestions - go to the GitHub Discussions for OpenSpartan.