Privilegien
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(siehe Gute Privilegien). Privilegien sind nicht dazu da, Klassen- oder Statusangaben zu machen(siehe Schlechte Privilegien).
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.