Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Minecraft > Minecraft Guides & Strategies
You last visited: Today at 09:27

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Bukkit - Erste Schritte zur Plugin-programmierung (Part 2)

Discussion on Bukkit - Erste Schritte zur Plugin-programmierung (Part 2) within the Minecraft Guides & Strategies forum part of the Minecraft category.

Reply
 
Old   #1
 
Psycho_Ente's Avatar
 
elite*gold: 4
Join Date: Oct 2009
Posts: 278
Received Thanks: 321
Bukkit - Erste Schritte zur Plugin-programmierung (Part 2)

Mit diesem Tutorial erweitere ich nun meine Tutorialreihe.



In diesem Part werde ich euch bei bringen wie man ein config.yml erstellt, ausliest und beschreiben kann. Mit Hilfe solcher Config-Dateien lassen sich unsere Plugins viel dynamischer Gestalten, sogar auf einzelne Spieler bezogen!

Um das Beispiel aus dem ersten Part heran zu ziehen, werde ich eine Config-Datei erstellen, dessen inhalt die Aktivierung unserer 3 Beispiel-Befehle enthält.

Nun gut, fangen wir an. Wie immer starten wir als erstes unserere Programmierumgebung 'Eclipse'. Als nächstes öffnen wir wieder unser altes Projekt und navigieren zu unserer Klasse, welche unsere Commands enthält.

Als aller erstes müssen wir eine Fileconfiguration definieren. Dafür navigieren wir unsere Maus ans obere Ende unserer Public Class PluginBasics und schreiben unter der geschweiften Klammer folgendes:

PHP Code:
protected FileConfiguration config
Unsere Config wird als Protected deklariert, damit andere Plugins, meines Wissens nach, nicht auf unsere Configuration zugreifen können.
Allerdings kann ich mich auch irren.

Nun gut, damit unsere Config auch einen 'Inhalt' bekommt müssen wir zum Void onEnable und setzen den Wert von 'config' zu getConfig().

Das dürfte nun ungefähr so aussehen:
PHP Code:
config getConfig(); 
Optional können wir noch eine Konsolenausgabe tätigen, in der wir schreiben, dass die Configdatei von unserem Plugin geladen wurde.
Wie dies geht, dürftet ihr inzwischen schon wissen.

Wir möchten nun, dass unser Plugin automatisch abfragt, ob die Config-Datei schon einmal gefüllt wurde, oder eben nicht.
Das unternehmen wir ganz einfach. Wir fragen mit folgenden Methoden den Inhalt einer einzelnen Eigenschaft ab:

PHP Code:
if(this.getConfig().getBoolean("written") != true)
{
            

Erklärung: Nach this.getConfig() können verschiedene Methoden angewandt werden. Das variiert mit dem Datentyp welcher abgespeichert wird und ausgelesen werden soll. In diesem Fall ist es ein Boolean, da ich abfragen will, ob etwas wahr (true) oder falsch (false) ist.
Man kann natürlich auch Strings oder Integer abfragen.
Anstatt getBoolean verwendet man dann getInt oder getString.

Un genau in dem Fall, wenn unsere eigenschaft written auf False ist, so möchte ich weitere Eigenschaften hin zu fügen. (Damit das funktioniert, muss der Administrator des Servers, zumindest die Eigenschaft written in die config.yml einfügen. Denn erst dann, können die weiteren Eigenschaften geschrieben werden. Das ist viel Bequemer für den Server-Administrator, da er in die Config nur einmal written hinzufügen muss, mit dem wert False. Das weitere Schreiben, damit auch keine Fehler entstehen, überlässt man dann einfach dem Plugin.

Un dies funktioniert folgender Maßen:
Um eine Eigenschaft zu setzen beziehungsweise überhaupt zu schreiben, verwenden wir die Methode this.getConfig().set("Eigenschaftenname", WERT);
Allerdings möchte ich die Config.yml so aufgebaut haben:

Quote:
hello:
activated: true
storm:
activated: true
heal:
activated: true
Sprich: Es gibt Kategorien, welche dann wiederrum eigenschaften besitzen.
Dies bewerkstelligen wir, indem wir bei "Eigenschaftenname" zum Beispiel 'storm.activated' schreiben! Verstanden?

Fangen wir an, unsere Config.yml innerhalb unserer vorhin gesetzten Abfrage zu beschreiben.
PHP Code:
this.getConfig().set("hello.activated"true);
            
this.getConfig().set("storm.activated"true);
            
this.getConfig().set("heal.activated"true); 
Unsere Eigenschaften sind alle vom Datentyp boolean.
Erklären brauche ich bei den 3 Zeilen nun nichts mehr. Das könnt ihr alles in etwa 10 Zeilen weiter höher lesen und auch verstehen.

Alles klar. Jetzt muss der Administrator einmal das Plugin reinziehen, die Eigenschaft 'written' auf false setzen und anschliessen den Server einmal starten. Damit beim Neustart des Servers allerdings nicht alles wieder überschrieben wird, müssen wir written auf true setzen.
Wie wir dies bewerkstelligen dürft ihr nun mal selber ausprobieren.

Nun möchten wir die Conifgdatei schon einmal speichern!
Das funktioniert einfach mit saveConfig();
Die Methode solltet ihr auch bei onDisable anwenden, damit eure, eventuell Ingame veränderten Eigenschaften nicht verworfen werden.

Wir erinnern uns, wir wollten bei unseren Commands abfragen, ob unsere Commands aktiviert sind! Schaut einfach etwas weiter oben in dieses Tutorial, und zwar dort, wo wir abfragen, ob die Eigenschaft written auf false ist. Ich muss hier ja nicht jeden einzelnen Schritt erklären!

Das war's auch schon mit dem Tutorial hier.
Bei Fehlern bitte bescheid geben.

PS: Das Listenertutorial wird später in diesen Thread rein editiert!
Psycho_Ente is offline  
Thanks
7 Users
Old 01/05/2012, 17:36   #2
 
elite*gold: 0
Join Date: Aug 2010
Posts: 80
Received Thanks: 30
Gutes Tut,
würde mich freuen wenn du ein Tut über Permission/iconommy machen würdest
ludgart is offline  
Old 01/05/2012, 21:00   #3


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Mal wieder gut. aber du brauchst nicht für jedes Tut ein neuen Thread öffnen Hau alles in ein Thread und arbeite mit Spoiler.
False is offline  
Old 01/05/2012, 21:24   #4
 
Psycho_Ente's Avatar
 
elite*gold: 4
Join Date: Oct 2009
Posts: 278
Received Thanks: 321
Quote:
Originally Posted by .ƒaℓsє. View Post
Mal wieder gut. aber du brauchst nicht für jedes Tut ein neuen Thread öffnen Hau alles in ein Thread und arbeite mit Spoiler.
Freut mich. Alles klar. Werde ich machen. Ab jetzt kommt alles weitere hier in den Thread. Ab diesem Punkt werden die Tutorials auch nicht mehr so lange sein wie der erste Teil.
Psycho_Ente is offline  
Reply


Similar Threads Similar Threads
Bukkit - Erste Schritte zur Plugin-programmierung
11/22/2019 - Minecraft Guides & Strategies - 58 Replies
In diesem Texttutorial bringe ich euch die ersten Schritte zur Bukkit Plugin-Programmierung näher. Nun, zu erst ein mal muss ich euch sagen, dass ich manchmal ein paar Schwierigkeiten habe mich aus zudrücken. Ich bitte euch, dies zu verkraften. Was brauchen wir, um ein Plugin zu schreiben? *Eclipse: Klicke hier Dies ist die Programmierumgebung. Hier werden euch sofort Syntax-Fehler angezeigt und die dazu gehörenden Problembehandlungsmöglichkeiten. *CraftBukkit devBuild: Klicke hier...
[FAQ] Erste Schritte bei Problemen
10/10/2011 - Hardware Discussions / Questions - 5 Replies
Hallo liebes epvp Forum :) PC-Probleme kommen unweigerlich vor. Um dir, dem Hilfesuchenden und uns, den Helfenden eine schnelle Hilfe zu ermöglichen haben Lordac und ich diese kleine FAQ zusammengestellt. Diese soll dir neben der Möglichkeit zur Selbsthilfe auch helfen die nötigen Informationen für einen Thread zu finden. Inhaltsverzeichnis 1. Selbsthilfe 1.1 Temperaturen 1.2 Hardware
[C#] Erste Schritte
09/30/2011 - Coding Tutorials - 8 Replies
Vorwort: Von nun an habt ihr die Möglichkeit euren Wissenshorizont zu erweitern. Ich werde , auf Wunsch einiger User, euch C# ein wenig näher bringen, sodass ihr zumindest ein solides Grundwissen aufbauen könnt. Die nachfolgenden TuT's bauen aufeinander auf und sind deshalb am besten nacheinander zu lesen. Fortgeschrittene Programmierer können jedoch weiter vorran stoßen und sich bereits mit schwereren Themen befassen. So aber nun genug geredet. Es kann losgehen...
Biete kostenlose, maßgeschneiderte Bukkit-Plugin-Programmierung
09/18/2011 - Minecraft - 6 Replies
Hallo, ich biete euch an, dass ich euch Plugins programmiere, die ihr für euren Server so braucht, aber einfach nicht passend findet. Würde die Plugins dann natürlich maßgeschneidert nach Wunsch rausgeben. Gegen Spenden habe ich natürlich auch nichts. In die Anfrage sollte rein: - Art des Plugins - geschätzter Aufwand - alle Features und Funktionen
Help for Pirox [erste Schritte]
06/04/2011 - WoW Bots - 3 Replies
Liebe Elitepvpers Cummunity Ich suche wen der mir bei meinen ersten Schritten mit Pirox pvp tool helfen kann. Grundsätzlich geht es um die einstellung des Bots, das ganze wäre super wenn es über eine Sprachsoftware zb. Skype, Ts3, ventrilo ... laufen würde. Sollte ein Entgelt für eure Dienste fällig werden bitte ich euch euer Angebot per PN an mich zu schicken. mfg stormy /over and out



All times are GMT +2. The time now is 09:27.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.