LLNETUtils 1.2.0
dotnet add package LLNETUtils --version 1.2.0
NuGet\Install-Package LLNETUtils -Version 1.2.0
<PackageReference Include="LLNETUtils" Version="1.2.0" />
<PackageVersion Include="LLNETUtils" Version="1.2.0" />
<PackageReference Include="LLNETUtils" />
paket add LLNETUtils --version 1.2.0
#r "nuget: LLNETUtils, 1.2.0"
#:package LLNETUtils@1.2.0
#addin nuget:?package=LLNETUtils&version=1.2.0
#tool nuget:?package=LLNETUtils&version=1.2.0
LLNETUtils
Library for LiteLoader.NET for easier plugin development. It provides features such as:
- Saving plugin resources to the plugin data folder
- Reading and editing
YAML,JSONandPropertiesconfigs
Get started
After adding the LLNETUtils package to your project, make your main plugin class inherit the PluginBase class:
[PluginMain("Plugin name")]
public class Main : PluginBase
{
...
}
Plugin resources
Your resource files should be marked as
EmbeddedResourcein the project.
Save resource file
Use the SaveResource and SaveDefaultConfig methods of the PluginBase class to save the resource file to plugin data folder.
// Suppose we have a "Resources" folder in the project with the following structure:
// - Resources
// - lang
// - en_US.json
// - config.yml
// Save (if does not exist) "en_US.json" to ".../plugins/<plugin>/en_US.json"
SaveResource("en_US.json")
// Save (with replace) "en_US.json" to ".../plugins/<plugin>/lang/en_US.json"
SaveResource("lang/en_US.json", true)
// Save (if does not exist) "en_US.json" to ".../plugins/<plugin>/eng.json"
SaveResource("Resources/lang/en_US.json", false, "eng.json")
// Save (if does not exist) "config.yml" to ".../plugins/<plugin>/config.yml"
SaveDefaultConfig()
// Save (with replace) "config.yml" to ".../plugins/<plugin>/config.yml"
SaveDefaultConfig(true)
Get resource file stream
Use the GetResource method of the PluginBase class. This allows you to read the resource file (using it's stream) without saving it to data folder.
Stream? resource = GetResource("lang.json");
Configs
The Config class allows you to easily read and modify YAML, JSON and Properties configs.
Load config
You can load the config from a file or from a stream using the Load and Reload methods of the Config class, or immediately on initialization.
var config = new Config();
// Load from a file
config.Load(Path.Join(DataPath, "en_US.json"));
// Load from a stream
config.Load(GetResource("en_US.json")!, ConfigType.Json);
// Reload from a file
config.Reload();
// Create an object and load it immediately from a file
var config2 = new Config(Path.Join(DataPath, "en_US.json"));
If you work with config.yml, you don't have to manually create a new Config object and load it.
Just use the Config property of the PluginBase class.
The config will load automatically if there is a corresponding file or embedded resource.
Config defaultConfig = Config;
Save config
To save the config, use the Save method of the Config class.
// Save to ".../plugins/<plugin>/lang/en_US.json"
config.Save(Path.Join(DataPath, "lang/en_US.json"));
Read and modify config
All necessary methods are in the IConfigSection interface (classes Config and ConfigSection implement this interface).
Example of work with the config:
Config config = new Config(Path.Join(DataPath, "user1.yml"));
string? name = config.Get<string>("name");
string lastName = config.GetString("last-name", "Unknown");
int id = config.GetInt("id");
List<string>? perms = config.GetList<string>("perms");
IConfigSection settings = config.GetSection("settings")!;
DateTime birthDate = settings.GetDateTime("birth-date");
config.Set("name", "Pavel");
config.Set("extra-data", new ConfigSection());
config.Remove("perms");
settings.Clear();
config.Set("settings.mute-notifications", true);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- YamlDotNet (>= 11.2.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.