Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 19:10:09 +01:00
bffb08c2f9
The Paper method was chosen for deprecation because it was more restrictive in that it has an isGliding check.
29 Zeilen
2.3 KiB
Diff
29 Zeilen
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sat, 24 Jun 2023 09:42:53 -0700
|
|
Subject: [PATCH] Fix possible NPE on painting creation
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
index 6f3598c12ad8f5d35863669c1f85b5581aa82a60..3de391034dc8367c538008893615514c628d948e 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
@@ -917,6 +917,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
|
AABB bb = (ItemFrame.class.isAssignableFrom(clazz))
|
|
? net.minecraft.world.entity.decoration.ItemFrame.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height)
|
|
: HangingEntity.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height);
|
|
+ if (!this.getHandle().noCollision(bb)) continue; // Paper - add collision check
|
|
List<net.minecraft.world.entity.Entity> list = (List<net.minecraft.world.entity.Entity>) this.getHandle().getEntities(null, bb);
|
|
for (Iterator<net.minecraft.world.entity.Entity> it = list.iterator(); !taken && it.hasNext(); ) {
|
|
net.minecraft.world.entity.Entity e = it.next();
|
|
@@ -943,7 +944,8 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
|
if (Painting.class.isAssignableFrom(clazz)) {
|
|
if (this.isNormalWorld() && randomizeData) {
|
|
entity = net.minecraft.world.entity.decoration.Painting.create(world, pos, dir).orElse(null);
|
|
- } else {
|
|
+ } // Paper
|
|
+ if (entity == null) { // Paper - if randomizeData fails, force it
|
|
entity = new net.minecraft.world.entity.decoration.Painting(net.minecraft.world.entity.EntityType.PAINTING, this.getHandle().getMinecraftWorld());
|
|
entity.absMoveTo(x, y, z, yaw, pitch);
|
|
((net.minecraft.world.entity.decoration.Painting) entity).setDirection(dir);
|