2015-01-28 8 views
5

Bukkits setData(data) und getData() sind veraltet. Aber es gibt keinen Ersatz. Bukkit/Spigot JavaDoc sagt über setData():Wie setze ich einen Blockdatenwert?

Veraltete. Magischer Wert

Warum ist das?

Antwort

9

Bisher der einzige Weg, es zu tun ist durch die Verwendung:

Block.setData(byte data); 

So können Sie so etwas tun:

myBlock.setData(2); // Set block data to 2 

Obwohl Block.setData() ist veraltet, es funktioniert immer noch, und wird weiter funktionieren (veraltete Methoden in Bukkit werden selten entfernt, besonders solche, für die es keine Alternative gibt). Ich wünschte, ich könnte eine bessere Antwort geben, aber das ist das einzige, was Sie tun können, ab sofort.

Der Grund, warum es veraltet ist, ist, dass Minecraft sich von Item-IDs entfernt und zu Item-Namen wechselt, um es in Zukunft einfacher zu erweitern. Wo Sie früher /give player 19 ausführen mussten, sollten Sie nun /give player minecraft:sponge ausführen (obwohl die ID immer noch funktioniert). Das Gleiche wird mit Datenwerten passieren, anstatt jemandem 35:14 zu geben, geben Sie ihnen jetzt red wool.

Um die Warnung durch Verwendung einer veralteten Methode loszuwerden, setzen Sie @SuppressWarnings("deprecation") über die veraltete Methode, wenn Sie sie verwenden, oder über die Methode, in der sie verwendet wird.

Um den Typ des Blocks gesetzt, könnten Sie verwenden:

Block.setType(Material type); 

Ein Beispiel ist:

myBlock.setType(Material.GOLD_BLOCK); // Set block to gold block 

Sie auch MaterialData, aber niemand weiß wirklich, wie es zu benutzen, verwenden könnte (Soweit ich weiss). Es ist eines der Dinge, die in der Bukkit API enthalten sind, aber niemand weiß warum.

Die Quelle von WorldEdit und die meisten anderen großen Plugins sehen chaotisch aus, weil sie viele Schnittstellen verwenden. Für die Entwickler scheint es sehr gut organisiert zu sein, aber für jemanden, der es liest, sieht es sehr unordentlich aus, es sei denn, man kann die Hierarchie tatsächlich visualisieren.

+0

Es funktioniert, aber ich finde es so komisch, dass es ohne Erklärung oder Alternative veraltet ist. Ich werde es trotzdem benutzen. – Myst

+0

Und ja, die meisten Plugin-Quellen, die ich sehe, die ich versuche zu lesen, sende mich von Datei zu Datei, wo ihre Funktionen deklariert sind, die auch Funktionen irgendwo anders deklariert haben und so weiter. Es ist nicht wirklich meine Art zu arbeiten. – Myst

+0

@Myst Ich habe gerade meine Antwort aktualisiert um einzuschließen * warum * sie sind entzogen – Jojodmo