src/main/java/me/neznamy/tab/platforms/bukkit/nms/datawatcher/DataWatcherItem.java
public static DataWatcherItem fromNMS(Object nmsItem) throws Exception {
		if (ProtocolVersion.SERVER_VERSION.getMinorVersion() >= 9) {
			Object nmsObject = getValue(nmsItem, "a");
			DataWatcherObject object = new DataWatcherObject((int) DataWatcherItem.getValue(nmsObject, "a"), DataWatcherItem.getValue(nmsObject, "b"));
			return new DataWatcherItem(object, getValue(nmsItem, "b"));
		} else {
			return new DataWatcherItem(new DataWatcherObject((int) getValue(nmsItem, "b"), getValue(nmsItem, "a")), getValue(nmsItem, "c"));
		}
	}
/**
	 * Returns and instance of this class from given NMS item
	 * @param nmsItem - NMS item
	 * @return instance of this class with same data
	 * @throws Exception - if something fails
	 */
Returns and instance of this class from given NMS item
@param nmsItem - NMS item
@return instance of this class with same data
@throws Exception - if something fails
Returns and instance of this class from given NMS item @param nmsItem - NMS item @return instance of this class with same data @throws Exception - if something fails
public static DataWatcherItem fromNMS(Object nmsItem) throws Exception {
		if (ProtocolVersion.SERVER_VERSION.getMinorVersion() >= 9) {
			Object nmsObject = getValue(nmsItem, "a");
			DataWatcherObject object = new DataWatcherObject((int) DataWatcherItem.getValue(nmsObject, "a"), DataWatcherItem.getValue(nmsObject, "b"));
			return new DataWatcherItem(object, getValue(nmsItem, "b"));
		} else {
			return new DataWatcherItem(new DataWatcherObject((int) getValue(nmsItem, "b"), getValue(nmsItem, "a")), getValue(nmsItem, "c"));
		}
	}
public static DataWatcherItem fromNMS ( Object nmsItem ) throws Exception { if ( ProtocolVersion . SERVER_VERSION . getMinorVersion ( ) >= 9 ) { Object nmsObject = getValue ( nmsItem , "a" ) ; DataWatcherObject object = new DataWatcherObject ( ( int ) DataWatcherItem . getValue ( nmsObject , "a" ) , DataWatcherItem . getValue ( nmsObject , "b" ) ) ; return new DataWatcherItem ( object , getValue ( nmsItem , "b" ) ) ; } else { return new DataWatcherItem ( new DataWatcherObject ( ( int ) getValue ( nmsItem , "b" ) , getValue ( nmsItem , "a" ) ) , getValue ( nmsItem , "c" ) ) ; } }
Returns and instance of this class from given NMS item
 @param nmsItem - NMS item
 @return instance of this class with same data
 @throws Exception - if something fails
Returns and instance of this class from given NMS item @param nmsItem - NMS item @return instance of this class with same data @throws Exception - if something fails