Welcome to the BukkitWiki!

This Wiki is home to Bukkit's documentation and regulations surrounding the Bukkit Project and it's services. Want to help out? We would love to have you! Signup to get started!

Developing a permissions plugin/de

From BukkitWiki
Jump to: navigation, search

Einleitung

Dieses Tutorial zeigt dir, wie du ein eigenes Permission-Plugin erstellst, welches Rechte setzt. Dabei wird die neue Bukkit-Permission API genutzt.

Vorraussetzungen

Dieses Tutorial benötigt gute Kenntnisse der Java-Programmierersprache und allgemeine Bukkit-Plugin-Programmier-Kenntnisse. Hier wird nur die Bukkit-API benutzt.

Permissible

Alles was Permissions haben kann, sind momentan nur die "Player" und die "CommandSender"-Klassen.

PermissionAttachments

Was ist ein PermissionAttachement?

Ein PermissionAttachement ist eine Klasse, mit der man die Permissions eines Spielers organisieren kann.

Wie kann ich sie erstellen oder löschen?

Jeder Spieler muss erstmal zu dem Plugin "attached/angehangen" werden, damit er "organisiert" werden kann. Um ein PermissionAttachement zu erstellen, nutz folgenden Code:

PermissionAttachment attachment = player.addAttachment(plugin);

Du kannst auch ein Attachement erstellen, welches nur für eine limitierte Zeit von Ticks gültig ist.

PermissionAttachment attachment = player.addAttachment(plugin,ticks);

Dieses Attachement muss irgendwo gespeichert werden. Die beste Lösung dafür ist, eine

HashMap<String,PermissionAttachment>

  zu erstellen und dort die PermissionAttachement´s mit dem Spielernamen zu speichern. Dies erlaubt dir später, es besser zu organisieren. Du kannst ihr Attachement löschen, wenn du es nicht mehr brauchst. Die besten Möglichkeiten ein Attachement zu löschen ist im OnPlayerQuit-Event und im OnPlayerKick-Event zu löschen. Lösche später im onDisable wieder alle Attachements wie folgt:

player.removeAttachment(attachment);

Permissions vergeben

Es gibt zwei grundlegende Wege, Permissions zu vergeben:

  1. Via String. Das ist die einfachste Methode. Und das erkläre ich als Erstes.
  2. Via Permisision-Objekt. Das ist eine Methode, die etwas komplizierter ist. Aber es funktionier genau so wie die erste Methode, also werde ich darauf nicht genauer eingehen.


Um eine Player-Permission zu vergeben, musst Du erstmal das PermissionAttachement von deiner HashMap haben, welches du vorher eingefügt hast. Wenn du dies hast, kannst du ganz einfach so Permissions vergeben:

attachment.setPermission(permissionName,permissionValue);

Der permissionName ist ein String und der permissionValue ist ein Boolean. Später kannst du eine Player-Permission so löschen (hat ein Unterschied zum setzen mit false):

attachment.unsetPermission(permissionName);

Ein Grund zum unsetten ist es, dass du anderen Permissions-Plugins erlauben kannst die Permission zu setzen.