3.8 KiB
title | layout | root | idx | description | redirect_from |
---|---|---|---|---|---|
Privilegien | default | ../.. | 4.1 | Privs registrieren. | /de/chapters/privileges.html |
Einleitung
Privilegien, oft privs abgekürzt, geben Spielern die Möglichkeit, bestimmte Aktionen durchzuführen. Serverbesitzer können Privilegien vergeben und entziehen, um zu kontrollieren welche Fähigkeiten jeder Spieler hat.
- Wann sollten Sie Privilegien nutzen?
- Erklärung von Privilegien
- Überprüfung der Privilegien
- Abrufen und Festlegen von Privilegien
- Privilegien zu basic_privs hinzufügen
Wann sollten Sie Privilegien nutzen?
Ein Privileg sollte einem Spieler die Möglichkeit geben, etwas zu tun. Privilegien sind nicht dazu da, Klassen- oder Statusangaben zu machen.
Gute Privilegien:
- interact
- shout
- noclip
- fly
- kick
- ban
- vote
- worldedit
- area_admin - Adminfunktionen eines Mods sind in Ordnung
Schlechte Privilegien:
- moderator
- admin
- elf
- dwarf
Erklärung von Privilegien
Verwenden Sie register_privilege
, um ein neues Privileg zu deklarieren:
minetest.register_privilege("vote", {
description = "Kann über Themen abstimmen",
give_to_singleplayer = true
})
give_to_singleplayer
steht standardmäßig auf true, wenn es nicht angegeben wird, so dass es
in der obigen Definition nicht wirklich benötigt wird.
Überprüfung der Privilegien
Um schnell zu überprüfen, ob ein Spieler alle erforderlichen Rechte besitzt:
local has, missing = minetest.check_player_privs(player_or_name, {
interact = true,
vote = true })
In diesem Beispiel ist has
wahr, wenn der Spieler alle benötigten Privilegien hat.
Wenn has
falsch ist, dann enthält missing
eine Schlüssel-Wert-Tabelle
mit den fehlenden Privilegien.
local has, missing = minetest.check_player_privs(name, {
interact = true,
vote = true })
if has then
print("Spieler hat alle Privilegien!")
else
print("Dem Spieler fehlen folgende Privilegien:" .. dump(missing))
end
Wenn Sie die fehlenden Privilegien nicht überprüfen müssen, können Sie check_player_privs" direkt in die if-Anweisung einfügen.
if not minetest.check_player_privs(name, { interact=true }) then
return false, "Hierfür brauchen Sie Interaktion!"
end
Abrufen und Festlegen von Privilegien
Auf die Spielerprivilegien kann unabhängig, ob der Spieler online ist, zugegriffen werden.
local privs = minetest.get_player_privs(name)
print(dump(privs))
privs.vote = true
minetest.set_player_privs(name, privs)
Privilegien werden immer als Schlüssel-Wert-Tabelle angegeben, wobei der Schlüssel der Name der Berechtigung und der Wert ein Boolescher Wert ist.
{
fly = true,
interact = true,
shout = true
}
Privilegien zu basic_privs hinzufügen
Spieler mit dem Privileg basic_privs
können eine begrenzte Anzahl von Privilegien gewähren und entziehen.
Es ist üblich, dieses Privileg an Moderatoren zu vergeben, so dass
sie interact
und shout
gewähren und entziehen können, aber nicht sich selbst oder anderen
Spieler Privilegien mit größerem Missbrauchspotential wie give
und server
gewähren können.
Um ein Privileg zu basic_privs
hinzuzufügen, und um einzustellen, welche Privilegien Ihre Moderatoren
anderen Spielern gewähren und entziehen können, müssen Sie die Einstellung basic_privs
ändern.
Standardmäßig hat basic_privs
den folgenden Wert:
basic_privs = interact, shout
Um vote
hinzuzufügen, aktualisieren Sie dies zu:
basic_privs = interact, shout, vote
Dies wird es Spielern mit basic_privs
erlauben, das vote
Privileg zu gewähren und zu entziehen.