# Wiki

Hier erhälst du alle Informationen, die du brauchst!

Wenn du hier deine Antwort auf dein Problem nicht findest, zögere nicht, auf meinem [Discord](https://discord.primeapi.de) ein Ticket zu eröffnen!

{% hint style="danger" %}

#### Diese Seite beschäftigt sich mit den Recodes der Plugins

{% endhint %}

####

{% hint style="success" %}
Du kannst dieses Wiki mit einem Pull request auf [*GitHub*](https://github.com/PrimeAPI/wiki) verbessern oder erweitern!
{% endhint %}


# Lizenzen

Wo bekomme ich sie her? Was ist das? Das erfährst du hier!

Um meine Plugins gegen das unerlaubte weiterschicken zu schützen, wurde ein Lizenzsystem intigriert. Dies lässt mich nachvollziehen wie viele Personen deine Lizenz gleichzeitig benutzen.

## YourMcShop Kund:innen

Wenn du dein Plugin auf YourMcShop gekauft hast, kannst du **direkt loslegen**! Beim Kauf erhälst du per **E-Mail** deinen **Lizenzkey**. Andernfalls kannst du dir diesen auch unter[`yourmcshop.com/myaccount/view-license-keys/`](https://www.yourmcshop.com/myaccount/view-license-keys/) angucken. Diese Lizenz kannst du ganz einfach in der Configs angeben, und schon kanns los gehen.

## Chunkfactor Kund:innen

Chunkfactory bietet mir leider nicht die Möglichkeit per API Lizenzkeys abzufragen. Deswegen muss ich dir hier deine Lizenz manuell erstellen. Um dir deine Lizenz erstellen zu können, musst du dich über ein **Ticket** auf meinem [**`Discord`**](https://discord.primeapi.de) bei mir melden. Halte dabei deine Bestellnummer, deine E-Mail adresse und einen Screenshot der Kaufsbestätigung bereit!

{% hint style="info" %}
Interessant!\
Sollte mein Lizenzserver mal ausfallen, brauchst du dir **keine Sorgen** um deinen Server zu machen! Dein Key wird dann ohne Probleme akzeptiert
{% endhint %}


# Infomationen

Hier findest du einige wichtige Informationen

## Java 16

Aktuell unterstützen die Systeme Java 16 nicht, und sind somit nicht mit der 1.17 (Spigot) kompatibel.\
Den genauen Grund dafür konnten wir noch nicht feststellen, jedoch stellt sich heraus, dass das Bereitstellen einer Verfügbarkeit für Java 8 bis Java 16 schwieriger ist als erwartet.&#x20;


# Warum eine API?

## Was ist die CoreAPI

Die CoreAPI ist ein Plugin, welche grundlegende Funktionen für alle Plugins bietet. Ebenfalls bietet sie dir einige Funktionen:

* Scoreboard&#x20;
* Chat-Format
* Präfixe
* Coins


# Loslegen

Hier erfährst du wie du deinen Core richtig einrichtest

## Installieren

Zunächst musst du die CoreAPI runterladen. Die CoreAPI für BungeeCord und Spigot kann im [Dashboard](https://dash.primeapi.de/downloads) runtergeladen werden. \
Danach muss die .jar-Datei in den plugins ordner verschoben/hochgeladen werden. Nach einem Server-Restart sollten sich die Konfigurations-Datein erstellen haben.

## MySQL-Zugangsdaten

Damit die Plugins ihre Daten speichern können, musst du deine **MySQL Daten** angeben. Wenn du den das Plugin in den plugins Order gezogen hast, und den Server einmal restartet hast, hat sich ein Order  **`plugins/primeplugins`** Order erstellt. Dort findest du eine **`config.yml`**, welche so aussieht:

```
mysql:
  host: localhost:3306
  database: primeplugin
  username: root
  password: password
```

Hier musst du jetzt deine MySQL Daten angeben.

{% hint style="danger" %}
**Wichtig**\
Achte darauf, dass du einen Port hinter dem Host angibst!\
Der standart Port ist `:3306`
{% endhint %}

## Neustarten

Jetzt musst du deinen Server einmal **neustraten**, damit dieser deine Änderungen übernehmen kann. Jetzt bist du good-to-go!

{% hint style="warning" %}
Solltest du ein Cloud-System verwenden, dank daran dein Template zu speichern!
{% endhint %}


# Placeholder (Core)

Diese Placeholder werden von der SpigotAPI (SpigotCore) bereitgestellt. Es wird die PlaceholderAPI benötigt ( https\://www\.spigotmc.org/resources/placeholderapi.6245/ )

## Core

`%prime_coins%` - Coins des Spieler Anzeigen\
`%prime_onmins%` - Anzahl der Spielminuten\
`%prime_ontime_1%` - Spielzeit formatiert (4:36)\
`%prime_ontime_2%` - Spielzeit formatiert (4 Stunden 36 Minuten)\
`%prime_ontime_3%` - Spielzeit formatiert (4h 36m)\
`%prime_ontime_4%` - Spielzeit formatiert (4h)

## Clan (Nur mit BungeeSystem)

`%clan_name%` - Name des Clans\
`%clan_tag%` - Clantag\
`%clan_tag_formatted%` - Clantag mit `[]` wenn Clan != null\
`%clan_count%` - Anzahl der Clanmember

## Cloud (Nur mit CloudNet v2 und v3)

`%cloudgrouponline_[GROUPNAME]%` - Anzahl der Spieler auf einer Servergruppe/Task\
`%cloudserveronline_[SERVERNAME]%` - Anzahl der Spieler auf einem Server


# Loslegen

Hier lernst du, wie du das Webinterface einrichtest

## Voraussetzungen

* Core-API auf BungeeCord ebene installiert ([*wiki*](/core-api/loslegen) )
* Einen Webserver

## Schritt 1: Dateien kopieren

Zunächst musst du die Dateien des Webinterfaces auf deinen Server hochladen. Achte darauf, dass du jede Datei und jeden Ordner kopierst!

## Schritt 2: Config einstellen

In dem Ordner `config` findest du die `config.php`. Dort musst du einige Einstellungen vornehmen

### MySQL-Daten

Als erstes musst du deine MySQL-Daten angeben. Achte darauf, dass du hier die selben wie in Minecraft angibst.&#x20;

{% hint style="warning" %}
Wichtig!\
Sollte der Webserver nicht auf dem selben Server wie dein Minecraft-Netzwerk, musst du ggf. bei deiner SQL-Datenbank den remote-access aktivieren.\
Mehr Informationen hier: [*\*klick\**](https://stackoverflow.com/questions/21664091/mariadb-not-allowing-remote-connections)
{% endhint %}

### Module

Je nach dem, welche Produkte du erworben hast, kannst du verschiedene Funktionen in deinem Webinterface freischalten. Lies dir dazu am besten genau die Beschreibung innerhalb der Config durch.

## Berechtigungen

Die Ränge die du dort erstellst, sind nur innerhalb des Webinterfaces gültig. Du kannst so viele Ränge erstellen wie du möchtest.\
Alle Ränge **unter 0** (ab -1) gelten als gesperrt, und man kann sich nicht einloggen.'\
**Rang 100** wird einem Teammitglied immer gegeben, wenn es beim registrieren die Permission '**bungee.webadmin**' besitzt.


# bote100

Da bote der Schatzi uns seine tiefsten Betriebsgeheimnisse aus seinem top-secret Backend verraten hat, kannst du dir deine BedWars- und MLGRush-Stats im Webinterface anzeigen lassen.

## BedWars

Um dir deine BedWars-Stats anzeigen zu lassen musst du zunächst das Modul 'BEDWARS' aktivieren. Danach musst du ganz unten in der Config die selben My-SQL Daten angeben, die auch in der Config von Bedwars angegeben hast.

Zu bote's BedWars: <https://www.yourmcshop.com/product/bedwars/>

## SkyWars

Um dir deine SkyWars-Stats anzeigen zu lassen musst du zunächst das Modul 'SKYWARS' aktivieren. Danach musst du ganz unten in der Config die selben My-SQL Daten angeben, die auch in der Config von Skywars angegeben hast.

Zu bote's SkyWars: <https://www.yourmcshop.com/product/bedwars/>

## Bote

{% embed url="<https://bote100.eu>" %}

{% embed url="<https://discord.com/invite/jFqzux2>" %}


# Loslegen

Hier erfährst du, wie du das BungeeSystem einrichtest

{% embed url="<https://www.youtube.com/watch?v=cVVJ5oIDoU4>" %}
Erklärvideo
{% endembed %}

## Vorbereitung

Damit du das Plugin benutzen kannst, musst du die BungeeAPI installiet haben! Wie du das machst erfährst du [*hier*](/core-api/loslegen) !

## Lizenz angeben

Wenn du noch keine Lizenz hast, lies dich [*hier*](/generelles/lizenzen) schlau!

Nachdem du den Server einmal mit dem Plugin gestartet hast, findest du im Ordner plugins/primeplugin/bungeesystem ganzschön viele Datein. Wir gucken uns zunächst die config.yml an.

In der ersten Zele wirst du folgendes finden:

```
license: checkTheWiki
```

Hier änderst du das `checkTheWiki` nun zu deiner Lizenz.\
Jetzt einmal den Server neustarten, und es sollte alles Funktionieren!


# Discord Bot

Das Einrichten des Discord Bots kann einem schwierig vorkommen. Mit der richtigen Anleitung ist es jedoch Kinderleicht

## Vorbereitung

### Discord Applikation

#### Schritt 1: Erstellen

Begib dich auf und erstelle eine Applikation

![Erstellen einer neuen Applikation](/files/uQORfUZPwwZVlIHTuvru)

#### Schritt 2: Name vergeben

![Vergabe eines Namens für die Applikation](/files/-MbNFT4eeQIkovfkT_A6)

#### Schritt 3: Bot erstellen

![Der Applikation einen Bot hinzufügen](/files/-MbNFT4cWUcnhH2ZaptT)

#### Schritt 4: Bot-Token kopieren

![](/files/-MbNGCnNMaX4679JRwvZ)

{% hint style="danger" %}
Speichere dir diesen Token ab! Wir brauchen diesen token Später
{% endhint %}

#### Schritt 5: Bot auf deinen Server einladen

![](/files/-MbNGjV6R-Vx-R_TfzIF)

Unter OAuth2 musst du nun bei `SCOPES` `bot` auswählen und unter `BOT PERMISSIONS` musst du `Administartor` auswählen. Nun kopierst du den Link, und öffnest ihn in einem neuen Tab

![](/files/-MbNH4JUoubVrfkR1yyv)

In diesem Fenster nun deinen Server auswählen, auf Weiter klicken und im nächsten Fenster Autorisieren auswählen.

![](/files/-MbNHRWIvTLio_6sD-D7)

Nun kannst du den Bot auf deinem Server betrachten

### Developer Modus

Damit du die Config richtig einstellen kannst, musst du bei deinem Discord den Developer Modus aktivieren.\
In deinen Einstellungen kannst du unter Erweitert den Entwickler-Modus aktivieren.

![](/files/-MbNIFaKA1hP6rnL309w)

## Einrichtung der Config

### Connection

Unter connection findest du verschiedene Einstellmölichkeiten.\
1 Key ➟ Hier gibst du den Key den du dir vorher kopiert hast an\
2 Status ➟ - Hier gibst du den OnlineStatus des Bots an. (grüner, gelber oder roter Kreis) (Liste aller möglichen Status: [*JDA Wiki*](https://ci.dv8tion.net/job/JDA/javadoc/net/dv8tion/jda/api/OnlineStatus.html) \_\_ )\
3 Activity.Type ➟ - Hier gibst du die Art der Acitify an. (Spielt..., Guckt.., etc...) (Liste aller möglichen Typs: [*JDA Wiki*](https://ci.dv8tion.net/job/JDA5/javadoc/net/dv8tion/jda/api/entities/Activity.ActivityType.html) )\
4 Activitity.Value ➟ - Die aktivität die angezeigt wird nach dem Typ. Bspw. \[Spiel] verifizieren\
5 Guild ➟ - Guild steht hier für deinen Discord-Server. Hier musst du die ID deiner Guilde angeben. Diese erhälst du indem du Rechtsklick auf dein Server-Icon machst, und dort die ID kopierst

![](/files/-MbNPPu9yCLBlZtiFStb)

### Verifikation

**Command**

{% hint style="info" %}
Dadurch das die Verarbeitung von SlashCommands nicht dirket ist, kann dies einige Minuten dauern bis er angezeigt wird
{% endhint %}

1 Command ➟ Hier gibts du den Namen des Befehls an, der zur Verifikation genutzt wird.\
2 Info ➟ Die Information zum Verify-Command im Discord\
3 Code ➟ Hier gibts du den Namen an, welchen das Argument für den Verifycode im Discord haben soll\
4 Description ➟ Die Information was man beim 'Code' angegeben werden muss\
5 Groups-Verify-Apply ➟ Soll man bei der Verifikation die 'Verify' Gruppe im Discord erhalten\
6 Groups-Roles-Apply ➟ Soll man Team oder andere Rollen erhalten\
\
Wie muss ich die Gruppen angeben?\
\
`permission:Rollen-ID`.\
\
permission ➟ Bei welcher Ingame Permission soll die Gruppe vergeben werden\
Rollen-ID ➟ Welche Rolle soll dieser Spieler im Discord bekommen.\ <br>

Wie bekomme ich die Rollen-ID herraus?

![](/files/-MbNPPu6pM9MACPL-f7z)

### Notify & Report

Wenn du Notify antiwierst erhälst du in deinem Discord immer wenn jemand einen **Spieler bannt** eine Nachricht in einen angegebenen Channel.

![](/files/fkW1GoVvjv1lr0nSpOHu)

Wenn du Report aktivierst, wehälst du in deinem Discord immer wenn jemand einen **Spieler reported** einen Nachricht in einen angegebenen Channel.

![](/files/F4qZ6x8dYOfxIYM3FrbW)

Du musst bei beidem den Channel als ID angeben. Die ID gibts du an, indem du Rechtsklick auf den Channel machst und dort auf 'ID kopieren' klickst.

![](/files/qW4qEHSS4ZbgTa7sGeMZ)


# Teamspeak-Bot

## Config

### Verbindung

Um eine Verbindung herstellen zu können musst du zunächst einen Query-Zugang erstellen

Damit sich der Bot auf deinen Server einloggen kann, musst du einen Query Zugang hinzufügen:

Erstelle dir zunächst eine neue Identität:\
Extras > Identitäten > Erstellen

![Fenster zum erstellen einer neuen Indentität](/files/-MNhlxxk2t_M9hrH9PEC)

Danach musst du dich mit dieser Identität auf deinen Server verbinden.\
Dann erstellst du dir einen Query Zugang:\
Extras > ServerQuery Login\
Dort gibst du einen Namne an, und klickst auf `OK`

![Fenster mit den Zugangsdaten](/files/-MNhmwQTVkgmifginWsH)

Diese Daten müsst ihr nun in der config.yml eingeben

```
connection:
  host: 127.0.0.1
  username: AdwancedTeamspeak
  password: password
  port: 9987
  displayname: System Bot
```

{% hint style="warning" %}
Wenn ihr euren Ts³-Server nicht selbst hostet müsst ihr die Daten die ihr direkt von eurem Hoster erhalten habt eintragen
{% endhint %}

### Verifikation

**applyIcon** - Wenn aktiviert, wird einem Spieler sein Minecraft-Kopf als Client-Icon gesetzt wenn er sich **verifiziert** mit /link\
**applyDesc** - Wenn aktiviert, wird einem Spieler eine Beschreibung gesetzt, wenn er sich verifiziert\
**desc** - Gibt das Format der Beschreibung an\
**roles.verify** - Vergibt eine Gruppe, die immer beim verifizieren vergeben wird. Hier muss die ID der Gruppe angegeben werden\
**roles.roles** - Vergibt eine Gruppe anhand von permissions eines Spielers. Hier müssen die ID's der Gruppen angegeben werden

{% hint style="warning" %}
Es wird immer nur die höchste Gruppe vergeben. Auch wenn ein Spieler Permissions für weitere Gruppen hat
{% endhint %}

### Support

**use** - De/aktiviert die Funktion\
**notifyGroup** - Die ID der Gruppe welche benachrichtigt werden soll\
**notifyType** - Die Art die Benachrichtigung. Mögliche Angaben: POKE,MESSAGE\
**channel.id** - Die ID des Support-Channels\
**channel.open** - Der Name des Channels wenn er geöffnet ist. (/tssupport)\
**channel.closed** - Der Name des Channels wenn er geschlossen ist. (/tssupport)

## ID's herausfinden

### Channel-ID

Wenn man einen Channel anwählt, kann man dort Informationen über diesen einsehen

![](/files/-MbQgixLR2ibshYy83y4)

### Gruppen-ID

Gruppen Ids können im Servergruppen-Dialog eingesehen werden:\
Rechtsklick auf einen Spieler > Server Gruppe Setzen > Server Gruppen Dialog

![](/files/-MbQiNJJ3nIhDLhAbQmY)


# Permissions

Hier findest du alle Permissions im BungeeSystem

## Sanktion

| Funktionen                                                        | Permission               |             |
| ----------------------------------------------------------------- | ------------------------ | ----------- |
| /unban \<Spieler> \<Grund...>                                     | bungee.unban             |             |
| /unmute \<Spieler> \<Grund...>                                    | bungee.unmute            |             |
| /mute \<Spieler> \<Identifier>                                    | bungee.mute              |             |
| /banreason \<list>                                                | bungee.banreasons.list   |             |
| /banreasons \<remove> \<Ban/Mute> \<Identifier>                   | bungee.banreasons.remove |             |
| /banreasons add \<Ban/Mute> \<Identifier> \<Permission> \<Reason> | bungee.banreasons.add    |             |
| /kick \<Spieler> \<Grund...>                                      | bungee.kick              |             |
| /history \<Spieler>                                               | bungee.history           |             |
| /check \<Spieler>                                                 | bungee.check             |             |
| /warn \<Spieler>                                                  | \<Grund...>              | bungee.warn |

## Spieler

| Funktione | Permission    |
| --------- | ------------- |
| /joinme   | bungee.joinme |

## Team

| Funktione                       | Permission            |
| ------------------------------- | --------------------- |
| /whereis \<Spieler>             | bungee.whereis        |
| /wartung \<an/aus>              | bungee.wartung        |
| /tssupport \<open/close>        | bungee.tssupport      |
| /team                           | bungee.team           |
| /teamchat \<Nachricht>          | bungee.tc             |
| /slots \<Slots>                 | bungee.slots          |
| /reports                        | bungee.reports        |
| /notify \<login/logout>         | bungee.notify         |
| /motd \<wartung/normal> \<motd> | bungee.motd           |
| /jumpto \<Spieler>              | bungee.jumpto         |
| /jointo \<Spieler>              | bungee.jointo         |
| /getip \<Spieler>               | bungee.getip          |
| /end \<now/abort/zeit>          | bungee.end            |
| /clearchat \<local/global>      | bungee.clearchat      |
| /brodcast \<Nachricht...>       | bungee.brodcast       |
| /bauserver                      | bungee.bauserver      |
| /adminchat \<Nachricht...>      | bungee.atc            |
| Wartungen ignorieren            | bungee.wartung.ignore |


# Getting started

Hier lernst du wie du das Nicksystem einrichtest

#### Schritt 1: Dateien hochladen

Lade die Datei `NickSystem[...].jar` auf deinen Spigot Server hoch.

{% hint style="info" %}
Lade die Datei erst nur auf einen Server hoch und kopiere den erstellten Ordner und die Datei nach der Einrichtung auf die verbleibenden Spigot Server.
{% endhint %}

#### Schritt 2: MySQL Daten angeben

Trage nun im neu erstellen Ordner `primeplugins` in der `accessdata.yml` deine MySQL Daten ein.

Wenn du die CoreAPI bereits installiert hast, kannst du diesen Schritt überspringen!

#### Schritt 3: Lizenz eintragen

Es hat sich nun ein weiterer Ordner im Verzeichnis `primeplugins` erstellt, dieser heißt `nicksystem`. Dort musst du deine Lizenz eintragen, solltest du noch keine Lizenz haben, melde dich auf meinem [Discord](https://discord.com/invite/XAGYh3BUkY) Server.

#### Schritt 4: Config einstellen

In der Config sind noch folgende weitere Einstellungen zu treffen:\
`autonick.apply` gibt an, ob auf diesem Unterserver ein Spieler genickt werden soll oder nicht. Das GUI zum einstellen der Nick-Einstellungen öffnet sich nur, wenn diese Einstellung auf `false` gestellt ist.\
`nicknames` gibt eine Liste an, aus welcher ein Name rausgesucht wird, sollte ein Spieler eingestellt haben er möchte einen Zufällig-Generierten Nickname haben!

{% hint style="info" %}
Wenn du den Hinweis bei Schritt 1 befolgt hast, kannst du jetzt den Ordner und die Datei auf alle anderen Spigot Server hochladen.
{% endhint %}

{% hint style="success" %}
Du hast das Plugin erfolgreich eingerichtet und kannst nun im Spiel mit der Nutzung des NickSystems beginnen.

Nutze /nick um dich zu Nicken oder zum öffnen des Nick-GUIs
{% endhint %}


# Loslegen

Auf dieser Seite findest du eine detaillierte Beschreibung zur Einrichtung des Plugins

## Getting Started

{% hint style="info" %}
Nach jedem Schritt muss der Server neu gestartet werden.
{% endhint %}

#### Schritt 1: Dateien hochladen

Lade die Datei `PermissionsSystem-1.0.0.jar` auf deinen Spigot Server hoch.

{% hint style="info" %}
Lade die Datei erst nur auf einen Server hoch und kopiere den erstellten Ordner und die Datei nach der Einrichtung auf die verbleibenden Spigot Server.
{% endhint %}

Solltest du ein Proxy-basierendes System nutzen, musst du die CoreAPI für BungeeCord-Server installieren. Mehr dazu [hier](/core-api/loslegen).

#### Schritt 2: MySQL Daten angeben

Trage nun im neu erstellen Ordner `primeplugins` in der `accessdata.yml` deine MySQL Daten ein.

#### Schritt 3: Lizenz eintragen

Es hat sich nun ein weiterer Ordner im Verzeichnis `primeplugins` erstellt, dieser heißt `permissions`. Dort musst du deine Lizenz eintragen, solltest du noch keine Lizenz haben, melde dich auf meinem [Discord](https://discord.com/invite/XAGYh3BUkY) Server.

{% hint style="info" %}
Wenn du den Hinweis bei Schritt 1 befolgt hast, kannst du jetzt den Ordner und die Datei auf alle anderen Spigot Server hochladen.
{% endhint %}

#### Schritt 4: Admin Rechte erhalten

Gehe nun in die Konsole deines Spigot Servers und führe den Befehl `perms setadmin <Dein Name>` aus, damit erhältst du die `*`-Berechtigung.

{% hint style="success" %}
Du hast das Plugin erfolgreich eingerichtet und kannst nun im Spiel mit der Nutzung des Permissionsystems beginnen.

Nutze hierfür den Befehl `/perms`, um eine Übersicht aller Befehle zu erhalten.

Lies dir den Beitrag zu unserem Webinterface durch, um das Permissionsystem mit dem Webinterface zu verbinden.
{% endhint %}


# Gruppen einstellen

Auf dieser Seite findest du eine detaillierte Beschreibung, wie du Gruppenerstellen und einrichten kannst.

## Gruppen einrichten

{% hint style="warning" %}
Sollte der Befehl `/perms` nicht funktionieren, nutze stattdessen `/perm`, in der Beschreibung wird ausschließlich `/perms` benutzt, aber beide Befehle funktionieren.
{% endhint %}

#### Schritt 1: Gruppe erstellen

Wir werden uns in diesem Beispiel die Administrator-Gruppe erstellen. Dazu führen wir als erstes den entsprechenden Befehl aus:

```
/perms create admin Administrator
```

Das erste Argument gibt den internen Gruppen Namen an, dieser sollte möglichst simpel gehalten werden, da alle späteren Erwähnungen der Gruppe über diesen laufen werden.

Das zweite Argument ist der Name, welcher bei einer Abfrage angezeigt wird (bspw. im Scoreboard), dieser muss nur einmal eingegeben werden und kann daher auch umfangreicher sein.

{% hint style="info" %}
Der Anzeigename kann nachträglich mit dem Befehl `/perms group <Name der Gruppe> setdisplay <Anzeigename>` geändert werden.
{% endhint %}

#### Schritt 2: Farbe & Präfix vergeben

Wir werden nun der Gruppe eine Farbe und einen Präfix geben. Der Anzeigename (das zweite Argument von Schritt 1) wird dann in dieser Farbe angezeigt. Der Präfix wird im Chat und in der Tabliste angezeigt.

```
/perms group admin setcolor &4
```

Mit diesem Befehl setzen wir die Farbe des Anzeigenamens auf rot, hier kann jeder beliebige Minecraft Farbcode angegeben werden.

```
/perms group admin setprefix &4Admin &8: &4
```

Mit diesem Befehl stellen wir den Präfix der Gruppe ein, dieser wird in der Tabliste und im Chat angezeigt. Hierbei sind jegliche Minecraft Farbcodes zulässig.

#### Schritt 3: Rechte und Gewichtung vergeben

Nun müssen wir der Gruppe Rechte und ein Gewicht zu weisen. Das Gewicht gibt an, welche Position der Rang hat, umso höher das Gewicht, umso höher die Position. Es empfiehlt sich hierbei bei 100 zu beginnen und dann abzusteigen, selbstverständlich sind auch alle anderen Zahlen möglich.

```
/perms group admin setweight 100
```

Mit diesem Befehl geben wir unserer Admin Gruppe das Gewicht 100, sie wird jetzt über allen Gruppen angezeigt, die ein niedrigeres Gewicht haben.

```
/perms group admin permission add *
```

Mit diesem Befehl geben wir unserer Admin Gruppe nun auch die `*`-Berechtigung, mit diesem Befehl kann optional jede Berechtigung vergeben werden, den Namen dieser müsst ihr in der Dokumentation des entsprechenden Plugins nachschauen.

#### Nice to have: Vererbung

Umso mehr Gruppen man hat, umso wichtiger wird die Vererbung, damit erbt eine Gruppe alle Berechtigungen einer anderen Gruppe. Eine Inhaber Gruppe könnte so alle Berechtigungen der Admin Gruppe erben. Dies erspart euch den Aufwand Standard-Rechte unnötig oft einzugeben.

```
/perms group owner setinherit admin
```

In diesem Beispiel habe ich mir nun eine Inhaber Gruppe erstellt, die alle Berechtigungen der Admin Gruppe erbt. Sollte die Admin Gruppe bereits die Berechtigungen einer anderen Gruppe erben, erbt die Inhaber Gruppe diese nun auch.

{% hint style="success" %}
**Interessant**\
Wenn du keine Vererbung angibst, werden immer die Berechtigungen der default Gruppe vererbt!
{% endhint %}


# Spieler einstellen

Auf dieser Seite lernst du alles über die Einstellung von Nutzer Berechtigung

## Nutzer Rechte vergeben

#### Gruppen vergeben:

Das wohl wichtigste ist die Vergabe von Gruppen an Nutzer, wir werden in diesem Beispiel die Admin Gruppe an mich vergeben.

```
/perms user Eric_mit_C group add admin 100
```

Mit der Zahl am Ende gebe ich dir Stärke an, sollten also zwei Personen die selbe Gruppe haben, wird nach der bei der Vergabe genannten Stärke berechnet, wer höher steht. Die Stärke wird, wenn sie nicht genannt wird, auf 1 gesetzt.

{% hint style="info" %}
Nach der Stärke kann auch optional noch eine Zeitangabe machen, um damit die Dauer des Ranges zu begrenzen. Damit kann z.B. ein Premium Rang für nur zwei Wochen vergeben werden.
{% endhint %}

#### Benutzerdefinierte Berechtigungen:

Ihr könnt auch Nutzern unabhängig von ihren Gruppen gewisse Berechtigungen geben.

```
/perms user Eric_mit_C permission add *
```

Damit kann man sich als Inhaber unabhängig von seinen Gruppen, alle Berechtigungen geben.


# Permissions

Auf dieser Seite findest du alle Befehle und die dafür notwendigen Berechtigungen

## Berechtigungen

| Befehl                                                                         | Notwendige Berechtigung     |
| ------------------------------------------------------------------------------ | --------------------------- |
| /perms setadmin \<Spieler Name>                                                | primeperms.user.permission  |
| /perms create \<Gruppen Name> \<Anzeigename>                                   | primeperms.create           |
| /perms list                                                                    | primeperms.list             |
| /perms group \<Gruppen Name> info                                              | primeperms.group.info       |
| /perms group \<Gruppen Name> permission add/remove                             | primeperms.group.permission |
| /perms group \<Gruppen Name> setcolor \<Farbcode>                              | primeperms.group.setcolor   |
| /perms group \<Gruppen Name> setdisplay \<Anzeigename>                         | primeperms.group.setdisplay |
| /perms group \<Gruppen Name> setinherit \<Gruppen Name>                        | primeperms.group.setinherit |
| /perms group \<Gruppen Name> setprefix \<Präfix>                               | primeperms.group.setprefix  |
| /perms group \<Gruppen Name> setsuffix \<Suffix>                               | primeperms.group.setsuffix  |
| /perms group \<Gruppen Name> setweight \<Gewicht>                              | primeperms.group.setweight  |
| /perms user \<Spieler Name> info                                               | primeperms.user.info        |
| /perms user \<Spieler Name> group add/remove \<Gruppenname> \<Stärke> \<Dauer> | primepermissions.user.group |
| /perms user \<Spieler Name> permission add/remove \<Berechtigung>              | primeperms.user.permission  |


# FAQ

### Wie deaktiviere ich das CoinSystem?&#x20;

Das CoinsSystem ist teil der CoreAPI. Daher muss dieses dort deaktiviert werden. In der Konfigurationsdatei 'commands.yml', welche unter \`plugins/primeplugins/core/commands.yml\` zu finden ist, must du bei den&#x20;

### Das PermissionsSystem funktioniert nicht auf BungeeCord!

Damit die Permissions auch auf BungeeCord übernommen werden, musst du die CoreAPI für BungeeCord installieren. Wenn du diese korrekt einrichtest, werden deine Permissions direkt übernommen!

### Das PermissionsSystem übernimmt die Permissions nicht

Um das PermissionsSystem möglichst performant zu gestalten werden die Permissions gecached. Demnach kann es bis zu 15 Minuten dauern bis eine Änderung der Permissions oder Gruppen auf allen Servern übernommen wird.

### Die Placeholder funktionieren nicht

Damit die Placeholder funktionieren muss Folgendes zutreffen:

* Die [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) muss installiert sein
* Die CoreAPI muss installiert sein
* Es muss sich um einen Spigot-Server handeln
* Das Plugin welches den Placeholder anzeigt muss die PlaceholderAPI unterstützen

&#x20;


# Placeholder (Permissions)

Diese Placeholder werden von den PermissionsSystem (Spigot) bereitgestellt. Es wird die PlaceholderAPI benötigt ( https\://www\.spigotmc.org/resources/placeholderapi.6245/ )

`%rank_display%` - Displayname mit Colorcode der stärkten Gruppe\
`%rank_prefix%` - Prefix der stärksten Gruppe\
`%rank_suffix%` - Suffix der stärksten Gruppe\
`%rank_color%` - Farbcode der stärkten Gruppe\
`%rank_name%` - Name der stärkten Gruppe


# Java Installation (Debian 10/11)

Die Plugins sind auf Java 8 getestet. Somit können wir nur mit Java 8 die volle Funktionalität garantieren. Neuere Java Versionen können auch funktionieren.

## Java 8

Falls Sie gerne Java-8 installieren möchten, führen Sie bitte folgende Befehle durch:

```
apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common -y
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
apt update
apt install adoptopenjdk-8-hotspot -y
```

## Java 17

```
apt install gnupg curl dirmngr nano unzip -y
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2A
echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu focal main" | tee /etc/apt/sources.list.d/java.list
apt update
apt install oracle-java17-installer -y
```

## Auswahl der Version

Wenn du mehrere Versionen installiert hast, kannst du die standartversion mit dem folgenden Befehl auswählen

```
sudo update-alternatives --config java
```


# API

Hier bekommst du Informatinen über die API-allgemein!

{% hint style="danger" %}
Die API welche hier dokumentiert wird, wurde noch nicht veröffentlicht!
{% endhint %}

## Wie nutzte ich die API?

{% hint style="info" %}
Es können jederzeit Änderungen an der API vorgenommen werden!
{% endhint %}

### Spigot

* [ClanAPI](https://github.com/PrimePlugin/PrimePlugins-Examples/tree/main/src/main/java/de/primeapi/primeplugins/example/spigot/clanapi)
* [CoinsAPI](https://github.com/PrimePlugin/PrimePlugins-Examples/tree/main/src/main/java/de/primeapi/primeplugins/example/spigot/coinsapi)
* [FriendAPI](https://github.com/PrimeAPI/wiki/blob/primeplugins/api/friendapi.md)
* [NickAPI](https://github.com/PrimeAPI/wiki/blob/primeplugins/api/nickapi.md)
* [PermsAPI](https://github.com/PrimePlugin/PrimePlugins-Examples/tree/main/src/main/java/de/primeapi/primeplugins/example/spigot/permsapi)
* [PartyAPI](https://github.com/PrimeAPI/wiki/blob/primeplugins/api/permsapi.md)

### Import (Maven)

```xml
    <repositories>
        <repository>
            <url>https://repo.primeapi.de</url>
            <id>PrimeAPI</id>
        </repository>
    </repositories>

   <dependency>
       <groupId>de.primeapi.primeplugins</groupId>
       <artifactId>SpigotAPI</artifactId>
       <version>LATEST</version>
       <scope>provided</scope>
   </dependency>
```


# Support

## Wie kann ich Support erhalten?

* [Discord (empfohlen)](https://discord.primeapi.de)
* [E-Mail (support@primeapi.de)](mailto://support@primeapi.de)

{% embed url="<https://discord.primeapi.de>" %}

## Supportzeiten

Mo-Sa: 10 - 22 Uhr\
So: 11-18 Uhr

{% hint style="warning" %}
Nur weil eine Anrage innerhalb der Supportzeiten ist, heißt es nicht, dass man direkt eine Antwort erhaltet
{% endhint %}

## Wartezeiten

Wie lange man auf eine Antwort warten muss kann stark variieren. Dies hängt von der Uhrzeit, von deinem Problem und von Wochentag ab. Bitte hab einfach ein wenig Geduld.


