# API

Um die LanguageAPI in dein Projekt ein zu binden, kannst du die .jar Datei in den Ordner `recources` deines Projektes legen und in der `pom.xml` unter den Dependencies diesen Eintrag vornehmen:

{% code title="pom.xml" lineNumbers="true" %}

```xml
<dependency>
    <groupId>de.herrtechniker</groupId>
    <artifactId>LanguageAPI</artifactId>
    <version>1.0.2-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/LanguageAPI-1.0.2-SNAPSHOT-OBF.jar</systemPath>
</dependency>
```

{% endcode %}

Oder für die BungeeCord Version:

{% code title="pom.xml" lineNumbers="true" %}

```xml
<dependency>
    <groupId>de.herrtechniker</groupId>
    <artifactId>LanguageAPI</artifactId>
    <version>1.0.2-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/LanguageAPI-Bungee-1.0.2-SNAPSHOT-OBF.jar</systemPath>
</dependency>
```

{% endcode %}

## LanguageAPI

Um zu schauen ob der Spieler schon in der Datenbank eingetragen ist, kannst du es mit der folgenden Abfrage überprüfen.

```java
LanguageAPI().getApi().isPlayerEntryExists(UUID uuid); // return boolean
```

Um die Sprache des Spielers zu bekommen, kannst du folgendes Abfragen.

```java
LanguageAPI().getApi().getPlayerLanguage(UUID uuid); // return String
```

Um die Sprache des Spielers zu setzen, führst du folgendes aus.

```java
LanguageAPI().getApi().setPlayerLanguage(UUID uuid, String language);
```

Um die Sprache zu ändern, kannst du einfach folgendes ausführen.

```java
LanguageAPI().getApi().changePlayerLanguage(UUID uuid, String language);
```

Um eine Sprache hinzu zu fügen die dein Server Netzwerk unterstützen soll, kannst du folgendes ausführen.

```java
LanguageAPI().getApi().addSupportedLanguage(String language);
```

Du kannst natürlich auch eine Sprache die du unterstützt hast und nicht mehr unterstützen möchtest einfach wieder entfernen. Dafür führe einfach folgendes aus.

```java
LanguageAPI().getApi().removeSupportedLanguage(String language);
```

Um zu schauen ob die Sprache schon unterstützt wird, kannst du folgendes ausführen.

```java
LanguageAPI().getApi().isLanguageSupported(String language); // return boolean
```

Um alle unterstützten Sprachen in einer Liste zu bekommen, führe einfach folgendes aus

```java
LanguageAPI().getApi().getAllSupportedLanguage(); // return List<String>
```

Um zu schauen ob die Standardsprache gesetzt wurde, führe folgendes aus.

```java
LanguageAPI().getApi().isDefaultLanguageSet(); // return boolean
```

Um die Standardsprache zu setzen führe folgendes aus.

```java
LanguageAPI().getApi().setDefaultLanguage(String defaultLanguage);
```

Um die Standardsprache zu bekommen, führe folgendes aus.

```java
LanguageAPI().getApi().getDefaultLanguage(); // return String
```

Um die Standardsprache zu ändern, führe folgendes aus.

```java
LanguageAPI().getApi().changeDefaultLanguage(String defaultLanguage);
```

Um zu schauen ob die LanguageAPI im `multi-Dateisystem` läuft, führe folgendes aus.

```java
LanguageAPI().getApi().isMultiFile(); // return boolean
```

Um eine Nachricht aus der Datei vom `single-Dateisystem` zu erhalten, führe dafür folgendes aus.

```java
LanguageAPI().getApi().getSingleFileMessage(String language, String path); // return String
```

Um eine Nachricht aus einer Datei zu bekommen, wenn `multi-Dateisystem` aktiviert ist, führe folgendes aus. Übergebe dafür den Namen der Datei als `fileName`.

```java
LanguageAPI().getApi().getMultiFileMessage(String fileName, String language, String path); // return String
```

## Namefetcher

{% hint style="info" %}
Der Namefetcher ist ein "Modul", welches den Namen und die dazugehörige UUID des Spielers speichert.
{% endhint %}

Um zu überprüfen ob ein Eintrag eines Spielers schon existiert, führe folgendes aus.

```java
LanguageAPI().getApi().isNamefetcherEntryExists(UUID uuid); // return boolean
```

Um zu überprüfen ob ein Eintrag eines Spielers schon existiert, führe folgendes aus.

```java
LanguageAPI().getApi().isNamefetcherEntryExists(String name); // return boolean
```

Um einen Eintrag in dem Namefetcher für einen Spieler einzutragen, führe folgendes aus.

{% hint style="warning" %}
Beachte dabei, dass es bestmöglich nur einen Eintrag pro Spieler geben sollte
{% endhint %}

```java
LanguageAPI().getApi().setNamefetcher(UUID uuid, String name);
```

Um den Eintrag eines Spielers zu ändern, zum Beispiel wenn der Spieler seinen Namen geändert hat, führe folgendes aus.

```java
LanguageAPI().getApi().changeNamefetcher(UUID uuid, String name);
```

Um den Namen eines Spielers anhand der UUID zu bekommen, führe folgendes aus.

```java
LanguageAPI().getApi().getName(UUID uuid); // return String
```

Um die UUID eines Spielers anhand des Namens zu bekommen, führe folgendes aus.

{% code fullWidth="false" %}

```java
LanguageAPI().getApi().getUUID(String name); // return UUID
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki-de.herrtechniker.eu/languageapi/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
