Skip to content

Commit 4597691

Browse files
committed
Add nullability annotations to version specific handlers
1 parent c215a55 commit 4597691

14 files changed

Lines changed: 45 additions & 15 deletions

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.bukkit.inventory.SmithingInventory;
3737
import org.bukkit.inventory.SmithingTransformRecipe;
3838
import org.bukkit.inventory.SmithingTrimRecipe;
39+
import org.jspecify.annotations.NullMarked;
3940
import org.jspecify.annotations.Nullable;
4041

4142
import java.util.Collections;
@@ -50,6 +51,7 @@
5051
* All information about changes in the API should be documented HERE in the method docs.
5152
*/
5253
@SuppressWarnings({"deprecation", "BooleanMethodIsAlwaysInverted"})
54+
@NullMarked
5355
public interface VersionSpecificHandler {
5456

5557
NavigableSet<Version> IMPLEMENTATIONS = Collections.unmodifiableNavigableSet(new TreeSet<>() {{
@@ -283,7 +285,7 @@ default int getAvailableSpace(Player player, ItemStack item) {
283285
* to get specified equipment slot item still hasn't existed. In {@code 1.15.2} the method was finally introduced
284286
* {@link PlayerInventory#getItem(EquipmentSlot)} making us able to no longer maintain this one.
285287
*/
286-
ItemStack getItemInEquipmentSlot(PlayerInventory inventory, EquipmentSlot slot);
288+
@Nullable ItemStack getItemInEquipmentSlot(PlayerInventory inventory, EquipmentSlot slot);
287289

288290
/**
289291
* Dual-wielding system was introduced in {@code 1.9}.
@@ -295,7 +297,7 @@ default int getAvailableSpace(Player player, ItemStack item) {
295297
/**
296298
* Dual-wielding system was introduced in {@code 1.9}.
297299
*/
298-
EquipmentSlot getHand(PlayerInteractEvent event);
300+
@Nullable EquipmentSlot getHand(PlayerInteractEvent event);
299301

300302
/**
301303
* Dual-wielding system was introduced in {@code 1.9}.
@@ -307,14 +309,14 @@ default int getAvailableSpace(Player player, ItemStack item) {
307309
* and {@link SmithingInventory#getInputMineral()}. In {@code 1.20} the feature was extended to support templates.
308310
* Due to the following reason, new method was added: {@link SmithingInventory#getInputTemplate()}.
309311
*/
310-
ItemStack[] getSmithItems(SmithItemEvent event);
312+
@Nullable ItemStack[] getSmithItems(SmithItemEvent event);
311313

312314
/**
313315
* Items smithing system was introduced in {@code 1.16} with {@link SmithingTransformRecipe}.
314316
* In {@code 1.20} the feature was extended to support templates. Due to the following reason,
315317
* new class has been added {@link SmithingTrimRecipe}.
316318
*/
317-
String getSmithMode(SmithItemEvent event);
319+
@Nullable String getSmithMode(SmithItemEvent event);
318320

319321
/**
320322
* Goats were introduced in {@code 1.17}.

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_11.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import org.bukkit.entity.ZombieHorse;
1111
import org.bukkit.inventory.Inventory;
1212
import org.bukkit.inventory.ItemStack;
13+
import org.jspecify.annotations.NullMarked;
1314

15+
@NullMarked
1416
public class VersionSpecificHandler_V1_11 extends VersionSpecificHandler_V1_9 {
1517

1618
@Override

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_11_2.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import com.leonardobishop.quests.common.versioning.Version;
44
import org.bukkit.entity.Entity;
5+
import org.jspecify.annotations.NullMarked;
56

67
import java.util.List;
78

9+
@NullMarked
810
public class VersionSpecificHandler_V1_11_2 extends VersionSpecificHandler_V1_11 {
911

1012
@Override

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_14.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.leonardobishop.quests.common.versioning.Version;
44
import org.bukkit.block.Biome;
5+
import org.jspecify.annotations.NullMarked;
56

7+
@NullMarked
68
public class VersionSpecificHandler_V1_14 extends VersionSpecificHandler_V1_11_2 {
79

810
@Override

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_15_2.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import org.bukkit.inventory.EquipmentSlot;
55
import org.bukkit.inventory.ItemStack;
66
import org.bukkit.inventory.PlayerInventory;
7+
import org.jspecify.annotations.NullMarked;
78

9+
@NullMarked
810
public class VersionSpecificHandler_V1_15_2 extends VersionSpecificHandler_V1_14 {
911

1012
@Override

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_16.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
import org.bukkit.event.inventory.ClickType;
77
import org.bukkit.event.inventory.SmithItemEvent;
88
import org.bukkit.inventory.ItemStack;
9+
import org.jspecify.annotations.NullMarked;
10+
import org.jspecify.annotations.Nullable;
911

12+
@NullMarked
1013
public class VersionSpecificHandler_V1_16 extends VersionSpecificHandler_V1_15_2 {
1114

1215
@Override
@@ -25,8 +28,8 @@ public boolean isOffHandSwap(ClickType clickType) {
2528
}
2629

2730
@Override
28-
public ItemStack[] getSmithItems(SmithItemEvent event) {
29-
return new ItemStack[]{
31+
public @Nullable ItemStack[] getSmithItems(SmithItemEvent event) {
32+
return new @Nullable ItemStack[]{
3033
event.getInventory().getInputEquipment(),
3134
event.getInventory().getInputMineral()
3235
};

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_17.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import org.bukkit.block.data.type.CaveVinesPlant;
88
import org.bukkit.entity.Entity;
99
import org.bukkit.entity.Goat;
10+
import org.jspecify.annotations.NullMarked;
1011

12+
@NullMarked
1113
public class VersionSpecificHandler_V1_17 extends VersionSpecificHandler_V1_16 {
1214

1315
@Override

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_19_2.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import com.leonardobishop.quests.common.versioning.Version;
44
import org.bukkit.event.player.PlayerBucketEmptyEvent;
55
import org.bukkit.inventory.ItemStack;
6+
import org.jspecify.annotations.NullMarked;
67

8+
@NullMarked
79
public class VersionSpecificHandler_V1_19_2 extends VersionSpecificHandler_V1_17 {
810

911
@Override

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_20.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import org.bukkit.inventory.Recipe;
99
import org.bukkit.inventory.SmithingTransformRecipe;
1010
import org.bukkit.inventory.SmithingTrimRecipe;
11+
import org.jspecify.annotations.NullMarked;
12+
import org.jspecify.annotations.Nullable;
1113

14+
@NullMarked
1215
public class VersionSpecificHandler_V1_20 extends VersionSpecificHandler_V1_19_2 {
1316

1417
@Override
@@ -22,16 +25,16 @@ public boolean isPlayerOnCamel(Player player) {
2225
}
2326

2427
@Override
25-
public ItemStack[] getSmithItems(SmithItemEvent event) {
26-
return new ItemStack[]{
28+
public @Nullable ItemStack[] getSmithItems(SmithItemEvent event) {
29+
return new @Nullable ItemStack[]{
2730
event.getInventory().getInputEquipment(),
2831
event.getInventory().getInputMineral(),
2932
event.getInventory().getInputTemplate()
3033
};
3134
}
3235

3336
@Override
34-
public String getSmithMode(SmithItemEvent event) {
37+
public @Nullable String getSmithMode(SmithItemEvent event) {
3538
Recipe recipe = event.getInventory().getRecipe();
3639
if (recipe instanceof SmithingTransformRecipe) {
3740
return "transform";

bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler_V1_20_4.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import org.bukkit.entity.Entity;
66
import org.bukkit.entity.Player;
77
import org.bukkit.event.entity.EntityDamageEvent;
8+
import org.jspecify.annotations.NullMarked;
89
import org.jspecify.annotations.Nullable;
910

11+
@NullMarked
1012
public class VersionSpecificHandler_V1_20_4 extends VersionSpecificHandler_V1_20 {
1113

1214
@Override

0 commit comments

Comments
 (0)