D.h. Ich kann mit der ItemAttribute definitif festellen, ob das Item z.B. eine Schaufel, Schrank oder Jacke ist.
Jein... grundsätzlich müssen wir uns beim Begriff "Item" erstmal darauf beschränken, dass dies nur die Items betrifft, die man im Inventar haben kann. Alles, was in der Welt platziert wird (Blöcke, Möbel, Türen etc) sind zunächst keine Items. Da man diese aber auch irgendwie im Inventar haben muss (um sie platzieren zu können), gibt es davon entsprechende Item-Repräsentationen. Bei Objekten (also Möbel, Türen, Lichter usw) gibt es da bspw. das Universalitem "objectkit" - d.h. jedes mal, wenn du eine Kiste oder einen Ofen oder eine Tür aufnimmst, bekommst du dasselbe Item ins Inventar, nämlich das universelle "objectkit".
Um aber jetzt unterscheiden zu können, um was für ein Objekt es sich genau handelt, gibt es die ItemAttribute. Die Attribute gibt es nur für die Items, die noch zusätzliche Informationen haben die nicht in den Standard Item Variablen gespeichert werden können. Im Falle von Objekten (Möbel etc) ist das zB die "ObjectID" - hier ist die tatsächliche Objekt-TypID hinterlegt (das Piano hat zB ID 8, der Schmelzofen ID 11, die Zugbrücke 211 usw). Somit kann also bei einem universellen "objectkit" herausgefunden werden, was für ein Objekt das genau ist.
Andere Items - wie bspw. die Pickaxe - brauchen sowas aber nicht. Daher haben normale Items (zB Werkzeuge, Waffen, Equipment, Nahrung etc) keine Attribute.
Nur Objekte (Möbel, Türen, Lichter etc) haben ItemAttribute, sowie Kleidungsstücke (hier ist zB die TypID des Kleidungsstückes hinterlegt, sowie die Farbe des Kleidungsstückes [wird noch nicht verwendet]) und auch CustomItems die über die API erstellt wurden (hier ist u.a. die UUID des Items hinterlegt).
Aber dennoch habe ich die Frage: Was ist das für ein Item, wenn bei ItemAttribute ein NULL kommt? Ein Item oder etwas, was man nicht ins Inventar tun kann?
Wenn kein ItemAttribute vorhanden ist, dann handelt es sich um ein "normales" Item was keine Zusatzinformationen trägt - zB Pickaxe, Kompass, Fernglas, Sättel, Pelze usw. Ich würde aber eher andersherum rangehen: Wenn ein ItemAttribute vorhanden ist weißt du, dass es entweder ein Objekt ist (also ein Einrichtungsgegenstand der platziert werden kann) oder ein Kleidungsstück 
Es wäre super, wenn es langesam mal möglich wäre, die Plugins in mit Permissions in einzelne Breich einzuteilen. Dann könnten Server auch eine Support erstellen und denen dan erlauben, gewisse Breiche eines Plugins zu benutzen.
Ja, das ist dringend nötig... wir wollten das bisher nicht umsetzen da wir uns noch nicht sicher waren, was der beste Weg dafür wäre - und wenn wir es einmal umsetzen, gäbe es keinen Weg mehr zurück (ohne Probleme für bestehende Plugins zu bereiten) - und nichts ist ärgerlicher als für alle Ewigkeit schlechte Designentscheidungen mitzutragen, die in frühen Tagen getroffen wurden...
Wir überlegen evtl. aber auch, das Permissionsystem generell für die neue Version zu überarbeiten. Das funktioniert zwar an sich ganz gut, doch ist YAML wirklich sehr pingelig was Einrückung etc. angeht - und das führt ja immer wieder mal für allerlei Fehler. Aber hier werden wir in naher Zukunft noch etwas Feedback sammeln 
Eindeutige ID`s für nicht-stackable-Items (befüllte Truhen, Rüstungsteile, Waffen, Werkzeuge etc) würde auch ich mir wünschen. Also bei eigentlich allem, was man in-game als Item in der Welt aufsammeln kann, was nicht Rohstoff ist. Sprich alle Gegenstände, wo Zusatzeigenschaften Sinn machen.
Einmalige IDs wären wirklich nicht schlecht, doch wenn wir sowas für Items (nach der obigen Definition) umsetzen, müssten wir es konsequent für alle Items umsetzen... sonst wäre es evtl. sehr irritierend, wenn eine Pickaxe zwar eine einmalige ID hat, ein Apfel hingegen nicht
Aber gerade das Stapeln kann hier für Verwirrung sorgen (siehe oben)... wir müssen uns da nochmal genauer Gedanken machen.
Ein paar Dinge haben aber bereits einmalige IDs, wie bspw. befüllte Truhen. Die ID verweist zwar nicht direkt auf die Truhe, die in der Welt platziert ist, sondern auf den eigentlichen Storage.