add luckperms plugin api page
95
LuckPerms-Plugin-Api.md
Normal file
95
LuckPerms-Plugin-Api.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# LuckPerms Plugin API
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Option 1: Convert Your Existing Project to SDK Style and Add NuGet Source
|
||||
|
||||
1. Convert your existing project to the SDK style. For guidance on this process, check out Microsoft documentation on how to do this here: [Converting C# projects to the new SDK format](https://treit.github.io/c%23,/programming/2019/02/18/ConvertingCsProjectsToNewSdkFormat.html).
|
||||
|
||||
2. Then, add a new NuGet source. Open NuGet Packet Manager Settings and add a new package source with the following URL: `https://nuget.storage.yandexcloud.net/index.json`.
|
||||
|
||||
### Option 2: Install TorchAPI.Templates and Create a New Project
|
||||
|
||||
You can directly install the TorchAPI.Templates NuGet package. You can Install it directly from the NuGet Gallery:
|
||||
|
||||
```bash
|
||||
dotnet new install TorchAPI.Templates::X.X.X
|
||||
```
|
||||
Where `X.X.X` represents the version of the package `TorchAPI.Templates` you wish to install. For lastest version check [nuget page](https://www.nuget.org/packages/TorchAPI.Templates/).
|
||||
|
||||
After installing the package, create a new project. For help on creating a new project, refer to the [Microsoft Docs on Projects](https://learn.microsoft.com/en-us/visualstudio/ide/create-new-project?view=vs-2022).
|
||||
|
||||
## Add reference to LuckPerms.Torch.Api
|
||||
|
||||
Regardless of the path you've chosen to set up your project, the next step will be the same. You'll need to add a reference to `LuckPerms.Torch.Api` to your project file.
|
||||
|
||||
### Option 1: Install via package manager interface
|
||||
|
||||
You can search for `LuckPerms.Torch.Api` in Nuget Package Manager. For help on adding nuget packages, refer to the [Microsoft Docs on Installing Nuget Packages](https://learn.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio).
|
||||
|
||||
### Option 2: Add directly to the project file
|
||||
|
||||
```xml
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
...
|
||||
<ItemGroup>
|
||||
<PackageReference Include="LuckPerms.Torch.Api" Version="X.X.X" />
|
||||
</ItemGroup>
|
||||
...
|
||||
</Project>
|
||||
```
|
||||
Replace `X.X.X` with the version number of `LuckPerms.Torch.Api` you want to use. For the time of writing this page latest api version is `5.4.0`.
|
||||
|
||||
## Obtaining API Instance
|
||||
|
||||
An instance of the API can only be obtained after the session manager's attach event. This means you can't get an instance of the API immediately upon starting your application; you'll need to wait for this event before you try to obtain it.
|
||||
|
||||
Once that event has taken place, you can get an instance of `LuckPerms` by using the static `get()` method from `LuckPermsProvider`.
|
||||
|
||||
```csharp
|
||||
var api = LuckPermsProvider.get();
|
||||
```
|
||||
Ensure that you have appropriately dealt with the possibility that the API instance may not be available immediately upon application startup or even completely in case the plugin is not installed.
|
||||
|
||||
## Platform Specifics
|
||||
|
||||
LuckPerms API provides access and interaction with core game elements depending on the platform specifics.
|
||||
|
||||
### Player Instance
|
||||
|
||||
You can obtain Player instance by looking up the "Players" dictionary on the `MultiplayerManagerBase` manager instance.
|
||||
|
||||
```csharp
|
||||
var player = multiplayerManager.Players[playerSteamId];
|
||||
```
|
||||
|
||||
Replace `playerSteamId` with the actual Id of the player.
|
||||
|
||||
### Player Type
|
||||
|
||||
Always use `typeof(IPlayer)` in case of player class type requirement in an api call.
|
||||
|
||||
For example getting LuckPerms `User` instance:
|
||||
```csharp
|
||||
var user = luckPerms.getPlayerAdapter(typeof(IPlayer)).getUser(player);
|
||||
```
|
||||
|
||||
### Conversion of Steam IDs and UUIDs
|
||||
|
||||
LuckPerms also offer extension methods that allow conversion of Steam IDs to UUID and vice versa.
|
||||
|
||||
You can convert Steam IDs to UUID with `ulong.GetUuid`:
|
||||
|
||||
```csharp
|
||||
var uuid = someSteamId.GetUuid();
|
||||
```
|
||||
|
||||
And you can convert UUID back to Steam Id with `UUID.GetSteamId`:
|
||||
|
||||
```csharp
|
||||
var steamId = someUuid.GetSteamId();
|
||||
```
|
||||
|
||||
## Using The API
|
||||
|
||||
After successfully obtaining the API instance, you can delve deeper into the API basics, functionalities and features. For more detailed information and useful guides, refer to the official LuckPerms documentation on API Usage: [LuckPerms - Developer API Usage](https://luckperms.net/wiki/Developer-API-Usage).
|
Reference in New Issue
Block a user