https://github.com/quackster/furnidataparser
A lightweight .NET library for downloading and parsing Habbo furnidata.
https://github.com/quackster/furnidataparser
Last synced: about 1 year ago
JSON representation
A lightweight .NET library for downloading and parsing Habbo furnidata.
- Host: GitHub
- URL: https://github.com/quackster/furnidataparser
- Owner: Quackster
- License: gpl-3.0
- Created: 2025-07-03T00:38:08.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-07-09T03:07:14.000Z (about 1 year ago)
- Last Synced: 2025-07-10T04:22:26.708Z (about 1 year ago)
- Language: C#
- Size: 105 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FurnidataParser
A lightweight .NET library for downloading and parsing Habbo furnidata. The library is written using .NET Standard 2.0 which means both .NET and .NET Framework are supported.
## Other Languages
It’s also available in other languages for your preferred tech stack.
### Available Ports
- **Java:** [furnidataparser-java](https://github.com/Quackster/FurnidataParser/tree/master/java/org/oldskooler/furnidataparser)
A full-featured Java implementation of FurnidataParser, using Java 11+.
## Features
- Fetches Habbo furnidata from official or private URLs (private Habbo servers supported)
- Parses **both**:
- The quirky, non-standard furnidata chunks (multiple JSON-like arrays back-to-back)
- The classic XML furnidata format (`...`)
- Maps data to strongly-typed `FurniItem` objects
- Async methods
## Usage
Fetch from Habbo’s XML endpoint.
```csharp
using FurnidataParser;
var client = new FurnidataClient();
var itemsFromXml = await client.FetchFurnidataAsync(
"https://www.habbo.com/gamedata/furnidata_xml/1");
foreach (var item in itemsFromXml)
{
Console.WriteLine($"ID {item.Id}: {item.Name} [{item.ClassName}]");
Console.WriteLine($" Type: {item.Type} | Category: {item.Category} | Revision: {item.Revision}");
Console.WriteLine($" Dimensions: {item.XDim}x{item.YDim} | Colors: {item.PartColors}");
Console.WriteLine($" Description: {item.Description}");
Console.WriteLine(new string('-', 50));
}
Console.WriteLine($"Fetched {itemsFromXml.Count} items from XML endpoint.");
```
Fetch from Habbo’s chunked JSON endpoint.
```csharp
using FurnidataParser;
var client = new FurnidataClient();
var itemsFromJson = await client.FetchFurnidataAsync(
"https://www.habbo.com/gamedata/furnidata/1");
foreach (var item in itemsFromJson)
{
// ...
}
Console.WriteLine($"Fetched {itemsFromJson.Count} items from chunked JSON endpoint.");
```
Parse from raw data (e.g., local file) using ParseFurnidataAsync.
```csharp
using FurnidataParser;
var client = new FurnidataClient();
var rawData = await File.ReadAllTextAsync("furnidata.xml"); // can be either [[...]] furnidata or XML furnidata
var itemsFromFile = await client.ParseFurnidataAsync(rawData);
foreach (var item in itemsFromFile)
{
// ...
}
Console.WriteLine($"Parsed {itemsFromFile.Count} items from local furnidata file.");
```
## Installation
Install the package via NuGet.
All NuGet versions can be found here: https://www.nuget.org/packages/FurnidataParser
```sh
dotnet add package FurnidataParser
```
Or via this command.
```sh
NuGet\Install-Package FurnidataParser
```
## License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.