mirror of
https://github.com/PaperMC/Paper.git
synced 2025-03-02 11:22:01 +01:00
Fix some NPE for EntityCompostItemEvent (#9169)
This commit is contained in:
parent
af12848e70
commit
2ba17103b9
@ -12,14 +12,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@
|
@@ -0,0 +0,0 @@
|
||||||
+package io.papermc.paper.entity;
|
+package io.papermc.paper.entity;
|
||||||
+
|
+
|
||||||
+import org.bukkit.Location;
|
+import io.papermc.paper.math.Position;
|
||||||
+import org.bukkit.entity.Entity;
|
+import org.bukkit.entity.Entity;
|
||||||
+import org.bukkit.entity.LivingEntity;
|
+import org.bukkit.entity.LivingEntity;
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
+ * Represents what part of the entity should be used when determining where to face a location/entity.
|
+ * Represents what part of the entity should be used when determining where to face a position/entity.
|
||||||
+ *
|
+ *
|
||||||
+ * @see org.bukkit.entity.Player#lookAt(Location, LookAnchor)
|
+ * @see org.bukkit.entity.Player#lookAt(Position, LookAnchor)
|
||||||
+ * @see org.bukkit.entity.Player#lookAt(Entity, LookAnchor, LookAnchor)
|
+ * @see org.bukkit.entity.Player#lookAt(Entity, LookAnchor, LookAnchor)
|
||||||
+ */
|
+ */
|
||||||
+@org.jetbrains.annotations.ApiStatus.Experimental
|
+@org.jetbrains.annotations.ApiStatus.Experimental
|
||||||
@ -194,10 +194,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ void lookAt(double x, double y, double z, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor);
|
+ void lookAt(double x, double y, double z, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor);
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * Causes the player to look towards the given location.
|
+ * Causes the player to look towards the given position.
|
||||||
+ *
|
+ *
|
||||||
+ * @param position Position to look at in the player's current world
|
+ * @param position Position to look at in the player's current world
|
||||||
+ * @param playerAnchor What part of player should face the location
|
+ * @param playerAnchor What part of the player should face the given position
|
||||||
+ */
|
+ */
|
||||||
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
||||||
+ default void lookAt(@NotNull io.papermc.paper.math.Position position, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor) {
|
+ default void lookAt(@NotNull io.papermc.paper.math.Position position, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor) {
|
||||||
|
@ -9,27 +9,27 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
||||||
@@ -0,0 +0,0 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
@@ -0,0 +0,0 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||||
return InteractionResult.sidedSuccess(world.isClientSide);
|
// Paper start - EntityChangeBlockEvent
|
||||||
}
|
double rand = world.getRandom().nextDouble();
|
||||||
BlockState iblockdata1 = ComposterBlock.addItem(player, state, world, pos, itemstack, rand);
|
BlockState dummyBlockState = ComposterBlock.addItem(player, state, org.bukkit.craftbukkit.util.DummyGeneratorAccess.INSTANCE, pos, itemstack, rand);
|
||||||
+ if (iblockdata1 == null) {
|
+ if (dummyBlockState == null) {
|
||||||
+ return InteractionResult.PASS;
|
+ return InteractionResult.PASS;
|
||||||
+ }
|
+ }
|
||||||
// Paper end
|
if (state != dummyBlockState && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(player, pos, dummyBlockState).isCancelled()) { // if block state will change and event cancelled
|
||||||
|
return InteractionResult.sidedSuccess(world.isClientSide);
|
||||||
world.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0);
|
}
|
||||||
@@ -0,0 +0,0 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
@@ -0,0 +0,0 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||||
return state;
|
// CraftBukkit start
|
||||||
}
|
double rand = world.getRandom().nextDouble();
|
||||||
iblockdata1 = ComposterBlock.addItem(user, state, world, pos, stack, rand);
|
BlockState iblockdata1 = ComposterBlock.addItem(user, state, DummyGeneratorAccess.INSTANCE, pos, stack, rand);
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ if (iblockdata1 == null) {
|
+ if (iblockdata1 == null) {
|
||||||
+ return state;
|
+ return state;
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
// CraftBukkit end
|
if (state == iblockdata1 || org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(user, pos, iblockdata1).isCancelled()) {
|
||||||
|
return state;
|
||||||
stack.shrink(1);
|
}
|
||||||
@@ -0,0 +0,0 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
@@ -0,0 +0,0 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
||||||
int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL);
|
int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL);
|
||||||
float f = ComposterBlock.COMPOSTABLES.getFloat(itemstack.getItem());
|
float f = ComposterBlock.COMPOSTABLES.getFloat(itemstack.getItem());
|
||||||
|
Loading…
Reference in New Issue
Block a user