Interface BlockData

    • Method Detail

      • getMaterial

        @NotNull
        @NotNull Material getMaterial()
        Get the Material represented by this block data.
        Returns:
        the material
      • getAsString

        @NotNull
        @NotNull String getAsString​(boolean hideUnspecified)
        Gets a string, which when passed into a method such as Server.createBlockData(java.lang.String) will recreate this or a similar instance where unspecified states (if any) may be optionally omitted. If this instance was parsed and states are omitted, this exact instance will be creatable when parsed again, else their equality cannot be guaranteed.

        This method will only take effect for BlockData instances created by methods such as Server.createBlockData(String) or any similar method whereby states are optionally defined. If otherwise, the result of getAsString() will be returned. The following behaviour would be expected:

        
         String dataString = "minecraft:chest[waterlogged=true]"
         BlockData data = Bukkit.createBlockData(dataString);
         dataString.equals(data.getAsString(true)); // This would return true
         dataString.equals(data.getAsString(false)); // This would return false as all states are present
         dataString.equals(data.getAsString()); // This is equivalent to the above, "getAsString(false)"
         
        Parameters:
        hideUnspecified - true if unspecified states should be omitted, false if they are to be shown as performed by getAsString().
        Returns:
        serialized data string for this block
      • merge

        @NotNull
        @NotNull BlockData merge​(@NotNull
                                 @NotNull BlockData data)
        Merges all explicitly set states from the given data with this BlockData.
        Note that the given data MUST have been created from one of the String parse methods, e.g. Server.createBlockData(java.lang.String) and not have been subsequently modified.
        Note also that the block types must match identically.
        Parameters:
        data - the data to merge from
        Returns:
        a new instance of this blockdata with the merged data
      • matches

        boolean matches​(@Nullable
                        @Nullable BlockData data)
        Checks if the specified BlockData matches this block data.
        The semantics of this method are such that for manually created or modified BlockData it has the same effect as Object.equals(java.lang.Object), whilst for parsed data (that to which merge(org.bukkit.block.data.BlockData) applies, it will return true when the type and all explicitly set states match.
        Note that these semantics mean that a.matches(b) may not be the same as b.matches(a)
        Parameters:
        data - the data to match against (normally a parsed constant)
        Returns:
        if there is a match