# API

Um die CoinsAPI 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>CoinsAPI</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/CoinsAPI-1.0.0-SNAPSHOT-OBF.jar</systemPath>
</dependency>
```

{% endcode %}

## CoinsAPI

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

```java
CoinsAPI().getAPI().isPlayerCoinsEntryExists(UUID uuid); //return boolean
```

Bekomme den Kontostand eines Spielers.

<pre class="language-java"><code class="lang-java"><strong>CoinsAPI().getAPI().getCoins(UUID uuid); //return double
</strong></code></pre>

Setze den Kontostand auf einen bestimmten Betrag.

<pre class="language-java"><code class="lang-java"><strong>CoinsAPI().getAPI().setCoins(UUID uuid, double amount);
</strong></code></pre>

Entferne einen bestimmten Betrag von dem Konto eines Spielers.

<pre class="language-java"><code class="lang-java"><strong>CoinsAPI().getAPI().removeCoins(UUID uuid, double amount);
</strong></code></pre>

Füge einem Spieler einen bestimmten Betrag auf sein Konto hinzu.

<pre class="language-java"><code class="lang-java"><strong>CoinsAPI().getAPI().addCoins(UUID uuid, double amount);
</strong></code></pre>

Setze den Kontostand eines Spielers zurück.

```java
CoinsAPI().getAPI().resetCoins(UUID uuid);
```

Setze den Kontostand eines Spielers auf einen bestimmten Betrag.

```java
CoinsAPI().getAPI().resetCoins(UUID uuid, double amount);
```

Ändere einen den Kontostand eines Spieler auf einen bestimmte Betrag.

```java
CoinsAPI().getAPI().changeCoins(UUID uuid, double amount);
```

## 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/coinsapi/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.
