SPIGOT-2540: Add nullability annotations to entire Bukkit API

By: Darkyenus <darkyenus@gmail.com>
This commit is contained in:
Bukkit/Spigot
2019-03-13 17:42:57 +11:00
parent e069a80fd8
commit 416c865476
565 changed files with 5372 additions and 2008 deletions

View File

@@ -68,6 +68,8 @@ import org.bukkit.block.data.type.TripwireHook;
import org.bukkit.block.data.type.TurtleEgg;
import org.bukkit.block.data.type.WallSign;
import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* An enum of all material IDs accepted by the official server and client
@@ -2955,15 +2957,15 @@ public enum Material implements Keyed {
this(id, stack, durability, MaterialData.class);
}
private Material(final int id, final Class<?> data) {
private Material(final int id, @NotNull final Class<?> data) {
this(id, 64, data);
}
private Material(final int id, final int stack, final Class<?> data) {
private Material(final int id, final int stack, @NotNull final Class<?> data) {
this(id, stack, 0, data);
}
private Material(final int id, final int stack, final int durability, final Class<?> data) {
private Material(final int id, final int stack, final int durability, @NotNull final Class<?> data) {
this.id = id;
this.durability = (short) durability;
this.maxStack = stack;
@@ -3005,6 +3007,7 @@ public enum Material implements Keyed {
return legacy;
}
@NotNull
@Override
public NamespacedKey getKey() {
Validate.isTrue(!legacy, "Cannot get key of Legacy Material");
@@ -3035,6 +3038,7 @@ public enum Material implements Keyed {
*
* @return new data instance
*/
@NotNull
public BlockData createBlockData() {
return Bukkit.createBlockData(this);
}
@@ -3046,7 +3050,8 @@ public enum Material implements Keyed {
* @param consumer consumer to run on new instance before returning
* @return new data instance
*/
public BlockData createBlockData(Consumer<BlockData> consumer) {
@NotNull
public BlockData createBlockData(@Nullable Consumer<BlockData> consumer) {
return Bukkit.createBlockData(this, consumer);
}
@@ -3059,7 +3064,8 @@ public enum Material implements Keyed {
* @return new data instance
* @throws IllegalArgumentException if the specified data is not valid
*/
public BlockData createBlockData(String data) throws IllegalArgumentException {
@NotNull
public BlockData createBlockData(@Nullable String data) throws IllegalArgumentException {
return Bukkit.createBlockData(this, data);
}
@@ -3068,6 +3074,7 @@ public enum Material implements Keyed {
*
* @return MaterialData associated with this Material
*/
@NotNull
public Class<? extends MaterialData> getData() {
Validate.isTrue(legacy, "Cannot get data class of Modern Material");
return ctor.getDeclaringClass();
@@ -3082,6 +3089,7 @@ public enum Material implements Keyed {
* @deprecated Magic value
*/
@Deprecated
@NotNull
public MaterialData getNewData(final byte raw) {
Validate.isTrue(legacy, "Cannot get new data of Modern Material");
try {
@@ -3804,7 +3812,8 @@ public enum Material implements Keyed {
* @param name Name of the material to get
* @return Material if found, or null
*/
public static Material getMaterial(final String name) {
@Nullable
public static Material getMaterial(@NotNull final String name) {
return getMaterial(name, false);
}
@@ -3818,7 +3827,8 @@ public enum Material implements Keyed {
* @param legacyName whether this is a legacy name
* @return Material if found, or null
*/
public static Material getMaterial(String name, boolean legacyName) {
@Nullable
public static Material getMaterial(@NotNull String name, boolean legacyName) {
if (legacyName) {
if (!name.startsWith(LEGACY_PREFIX)) {
name = LEGACY_PREFIX + name;
@@ -3841,7 +3851,8 @@ public enum Material implements Keyed {
* @param name Name of the material to get
* @return Material if found, or null
*/
public static Material matchMaterial(final String name) {
@Nullable
public static Material matchMaterial(@NotNull final String name) {
return matchMaterial(name, false);
}
@@ -3856,7 +3867,8 @@ public enum Material implements Keyed {
* @param legacyName whether this is a legacy name
* @return Material if found, or null
*/
public static Material matchMaterial(final String name, boolean legacyName) {
@Nullable
public static Material matchMaterial(@NotNull final String name, boolean legacyName) {
Validate.notNull(name, "Name cannot be null");
String filtered = name;