fix for NPE during inventory events Fixes #5148

This commit is contained in:
nossr50 2025-02-07 13:43:56 -08:00
parent c61376d97d
commit 86b457861c
2 changed files with 11 additions and 3 deletions

View File

@ -1,4 +1,5 @@
Version 2.2.031
Fixed potential NPE when player or blockstate is null for Inventory events on Furnaces
Fixed bug where en_us locale was being set system-wide (thanks BlvckBytes)
Fixed bug where Decimal format would throw exception on non en_us systems (thanks BlvckBytes)
(API) Added McMMOPlayerTameEntityEvent event (thanks Warriorrr)

View File

@ -23,9 +23,11 @@ import static java.util.Objects.requireNonNull;
public class ContainerMetadataUtils {
public static void changeContainerOwnership(@NotNull BlockState blockState, @NotNull Player player) {
requireNonNull(blockState, "blockState cannot be null");
requireNonNull(player, "Player cannot be null");
public static void changeContainerOwnership(@Nullable BlockState blockState, @Nullable Player player) {
// no-op when the blockState is null or player is null
if (blockState == null || player == null) {
return;
}
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
@ -79,6 +81,11 @@ public class ContainerMetadataUtils {
}
public static void processContainerOwnership(BlockState blockState, Player player) {
// no-op when the blockState is null or player is null
if (blockState == null || player == null) {
return;
}
if (getContainerOwner(blockState) != null) {
if (getContainerOwner(blockState).getUniqueId().equals(player.getUniqueId()))
return;