# Loslegen

{% hint style="info" %}
ColorCodes werden immer mit einem `&` Zeichen definiert. Eine Liste der möglichen ColorColdes gibt es [hier](https://htmlcolorcodes.com/minecraft-color-codes/). Nutze bitte aus der angezeigten Tabelle die Spalte `CHAT CODE` und ersetze das `§` -Zeichen mit dem `&`-Zeichen.
{% endhint %}

Wenn du die LanguageAPI heruntergeladen und den Server gestartet hast, sollte jetzt in deinem Plugins-Ordner ein Ordner Namens *LanguageAPI* erstellt haben.\
Öffne nun diesen Ordner und bearbeite die `config.yml`.

## Lizenz eintragen

Füge in der `config.yml` dein private Lizenz ein. Wenn du noch keine Besitzt, öffne ein Supportticket auf meinem Discordserver.

{% hint style="info" %}
Warum benötige ich eine private Lizenz? Die Antwort gibt es [hier](/generelles/lizenz.md#warum-eine-lizenz)
{% endhint %}

## Datenbank

Stelle in der `config.yml` den Datenbankentypen ein.

### MySQL

Setze `database: "mysql"` um deine Daten in einer `MySQL` Datenbank zu speichern. Auf die Daten kannst du Serverübergreifend zugreifen. Um die Verbindung zu MySQL Datenbank herzustellen öffne die Datei `mysql.yml` und trage deine MySQL Daten ein.

{% code title="mysql.yml" lineNumbers="true" %}

```yaml
mysql:
  HOST: localhost
  PORT: '3306'
  DATABASE: database
  USER: root
  PASSWORD: password
```

{% endcode %}

### Config

Setze `database: "config"` um deine Daten Lokal auf dem Server zu Speichern. Auf diese Daten kann dann nur dieser eine Server zugreifen. Dafür wird vom Plugin im Plugins-ordner ein Ordner namens `database` erstellt. In diesem Ordner wird die Datenbankdatei `database.db` erstellt.

## BungeeCord?

{% hint style="warning" %}
Wenn du die LanguageAPI auch für BungeeCord besitzt, stelle die Einstellung `bungeemode: true`
{% endhint %}

## Datei System

Es gibt 2 verschiedene Datei Systeme. Diese werden weiter unten erklärt.

### single

Das `single` Datei System bedeutet schlicht und einfach das alle Nachrichten aller Sprachen in einer Datei enthalten sind. Hier das Beispiel von der LanguageAPI:

{% code title="messages.yml" lineNumbers="true" %}

```yaml
english:
  command:
    noConsolCommand: "[LanguageAPI] Please go on the Server and try again!"
    usage: "%prefix% &cPlease use: &e/changelanguage <language>"
    unknowLanguage: "%prefix% &cThe language: &e%language% &cdoes not exists!"
    correctlyUsage: "%prefix% &7Your language was change to &e%language%&7."
    isLanguageAlready: "%prefix% &cYour language is already: &e%language%&c."

deutsch:
  command:
    noConsolCommand: "[LanguageAPI] Bitte gehe auf den Server und versuche es erneut!"
    usage: "%prefix% &cBitte nutze: &e/changelanguage <sprache>"
    unknowLanguage: "%prefix% &cDie Sprache: &e%language% &cexistiert nicht!"
    correctlyUsage: "%prefix% &7Deine Sprache wurde zu &e%language% &7geändert."
    isLanguageAlready: "%prefix% &cDeine Sprache ist bereits: &e%language%&c."
```

{% endcode %}

### multi

In dem Datei System `multi` bekommt jede einzelne Sprache seine eigene Datei. Die einzelnen Dateien sind im Pluginordner im Ordner `language`. Diese lässt sich einfach aufbauen:\
`<sprache>.yml`

Hier ein Beispiel:

{% code title="deutsch.yml" lineNumbers="true" %}

```yaml
command:
  noConsolCommand: "[LanguageAPI] Bitte gehe auf den Server und versuche es erneut!"
  usage: "%prefix% &cBitte nutze: &e/changelanguage <sprache>"
  unknowLanguage: "%prefix% &cDie Sprache: &e%language% &cexistiert nicht!"
  correctlyUsage: "%prefix% &7Deine Sprache wurde zu &e%language% &7geändert."
  isLanguageAlready: "%prefix% &cDeine Sprache ist bereits: &e%language%&c."
  
```

{% endcode %}

{% code title="english.yml" lineNumbers="true" %}

```yaml
command:
  noConsolCommand: "[LanguageAPI] Please go on the Server and try again!"
  usage: "%prefix% &cPlease use: &e/changelanguage <language>"
  unknowLanguage: "%prefix% &cThe language: &e%language% &cdoes not exists!"
  correctlyUsage: "%prefix% &7Your language was change to &e%language%&7."
  isLanguageAlready: "%prefix% &cYour language is already: &e%language%&c."
```

{% endcode %}

{% hint style="warning" %}
Wichtig dabei ist, das die Sprache auch in der `config.yml` unter dem Punkt `supportedLanguages` eingetragen ist. Groß-und Kleinschreibung beachten!!
{% endhint %}

## Präfix

Der Präfix wird immer vor jeder Nachricht von der LanguageAPI gesetzt. Du kannst den Präfix ändern, in dem du die Zeile `prefix: "&7[&6LanguageAPI&7]&r"` änderst.

## Sprache ändern

Du hast als Serverinhaber die Möglichkeit, den Spielern zu erlauben oder zu verweigern ihre Sprache zu ändern. Dies machst du, indem du die Zeile `changeLanguage: true` bearbeitest. Wenn du die Einstellung auf `false` setzt, haben die Spieler nicht mehr die Möglichkeit, ihre Sprache zu ändern.

{% hint style="info" %}
Am besten wäre es, wenn du die Einstellung auf allen Servern gleich hast, also alle auf `true` oder alle auf `false`.
{% endhint %}

## Alias

Du kannst das Kommando zum ändern der Sprache bearbeiten. Hierfür fügst du einfach weitere Einträge zur Einstellung `aliases` hinzu oder entfernst sie wieder. Wenn du nur das Standardkommando haben möchtest ersetzt du die Liste einfach zu `aliases: []`.

Standardkonfiguration:

{% code lineNumbers="true" %}

```yaml
aliases:
  - "language"
```

{% endcode %}

{% hint style="info" %}
Das Standardkommando für das ändern der Sprache lautet: `changelanguage`
{% endhint %}

## Standard Sprache

Die Standardsprache, ist die Sprache die jeder Spieler automatisch erhält, sobald er den Server das 1. mal beitritt. Um die Standard Sprache zu ändern, bearbeite einfach die Zeile `defaultLanguage: "english"`.

{% hint style="warning" %}
Die Standardsprache **muss** bei den unterstützten Sprache gelistet sein. Die unterstützen Sprachen findest du [hier](#unterstuetze-sprachen)
{% endhint %}

## Unterstütze Sprachen

Bei den unterstützen Sprachen fügst du Sprachen hinzu, die dein Server Netzwerk unterstützen soll. Du kannst aber auch die unterstützten Sprachen wieder entfernen.

{% code lineNumbers="true" %}

```yaml
supportedLanguages:
  - deutsch
  - english
```

{% endcode %}

{% hint style="success" %}
Jetzt weißt du alles über die Einstellung der LanguageAPI und du kannst sie nun nutzen. Um sie jetzt noch in deine eigene Plugins zu implementieren, kannst du auf die Seite der API gehen und anschauen, was du damit machen kannst. Die Seite findest du [hier](https://gitlab.herrtechniker.eu//HerrTechniker/gitbook-pluginwiki/-/blob/main/languageapi/broken-reference/README.md).
{% endhint %}

## Standard Konfiguration

{% code title="config.yml" lineNumbers="true" %}

```yaml
# The standard license is only valid for 7 days. Please request your private license on my Discord (link: https://discord.herrtechniker.eu).
# You have to present your bill to prove that you bought the LanguageAPI.
license: ""

# Insert "mysql" to use mysql (cross-server access) or insert "config" to use local database (only local servers have access)
database: "mysql"

# If you use the LanguageAPI for Bungeecord, please set 'bungeemode = true'
# ATTENTION Pleasemake sure your database type is mysql! If not, an error will occur and the plugin will not start!
bungeemode: false

# If this option set 'single' the different languages are in one file
# and will be listed like the following example:
# english:
#   path1:
#     path1.1: x
#     path1.2: xy
#   path2: 4
# deutsch:
#   path1:
#     path1.1: x
#     path1.2: xy
#   path2: 4
# etc...
#
# If this option set 'multi' then every language has an own file
# like for english: "english.yml"
# or for deutsch "deutsch.yml" (german)
#
# !!!!ATTENTION!!!!
# - the language path for the structure single has been the same name and spelling like in the list supportedLanguages
# - the language file name for structure multi has been the same name and spelling like in the list supportedLanguages
# - After changing the language structure, the file(s) will be deleted. Before that, make a backup to transfer the messages to the other structure.
languageStructure: "single"

prefix: "&7[&6LanguageAPI&7]&r"

# enable the command to change your language
changeLanguage: true

# aliases for the language command
aliases:
  - "language"

# has also been listed in supportedLanguages
defaultLanguage: "english"

# List of all supported Languages
supportedLanguages:
  - deutsch
  - english
```

{% endcode %}

## Kommando

### Syntax

```
/changelanguage <Sprache>
```


---

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