mirror of
https://github.com/PaperMC/Paper.git
synced 2025-11-18 20:54:27 +01:00
Fix Failing to Open Nautilus Inventory (#13297)
This commit is contained in:
parent
a6b7467552
commit
19ed6da2e5
@ -319,6 +319,7 @@ public net.minecraft.world.entity.animal.horse.AbstractHorse owner
|
||||
public net.minecraft.world.entity.animal.horse.Horse setVariantAndMarkings(Lnet/minecraft/world/entity/animal/horse/Variant;Lnet/minecraft/world/entity/animal/horse/Markings;)V
|
||||
public net.minecraft.world.entity.animal.horse.Llama setVariant(Lnet/minecraft/world/entity/animal/horse/Llama$Variant;)V
|
||||
public net.minecraft.world.entity.animal.horse.SkeletonHorse trapTime
|
||||
public net.minecraft.world.entity.animal.nautilus.AbstractNautilus inventory
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer calculateDigPosition()Ljava/util/Optional;
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer canDig()Z
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer getExploredPositions()Ljava/util/stream/Stream;
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
package org.bukkit.entity;
|
||||
|
||||
public interface AbstractNautilus extends Animals, Tameable {
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
|
||||
public interface AbstractNautilus extends Animals, InventoryHolder, Tameable {
|
||||
}
|
||||
|
||||
@ -1043,7 +1043,7 @@
|
||||
return OptionalInt.of(this.containerCounter);
|
||||
}
|
||||
}
|
||||
@@ -1342,14 +_,25 @@
|
||||
@@ -1342,27 +_,49 @@
|
||||
|
||||
@Override
|
||||
public void openHorseInventory(AbstractHorse horse, Container inventory) {
|
||||
@ -1072,6 +1072,32 @@
|
||||
this.initMenu(this.containerMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openNautilusInventory(AbstractNautilus nautilus, Container inventory) {
|
||||
+ // Paper start - Inventory open hook
|
||||
+ this.nextContainerCounter(); // moved up from below
|
||||
+ AbstractContainerMenu menu = new NautilusInventoryMenu(this.containerCounter, this.getInventory(), inventory, nautilus, nautilus.getInventoryColumns());
|
||||
+ menu.setTitle(nautilus.getDisplayName());
|
||||
+ menu = org.bukkit.craftbukkit.event.CraftEventFactory.callInventoryOpenEvent(this, containerMenu);
|
||||
+
|
||||
+ if (menu == null) {
|
||||
+ inventory.stopOpen(this);
|
||||
+ return;
|
||||
+ }
|
||||
+ // Paper end
|
||||
if (this.containerMenu != this.inventoryMenu) {
|
||||
this.closeContainer();
|
||||
}
|
||||
|
||||
- this.nextContainerCounter();
|
||||
+ // this.nextContainerCounter(); Paper - Move Up
|
||||
int inventoryColumns = nautilus.getInventoryColumns();
|
||||
this.connection.send(new ClientboundMountScreenOpenPacket(this.containerCounter, inventoryColumns, nautilus.getId()));
|
||||
- this.containerMenu = new NautilusInventoryMenu(this.containerCounter, this.getInventory(), inventory, nautilus, inventoryColumns);
|
||||
+ this.containerMenu = menu; // Paper - Moved up declaration
|
||||
this.initMenu(this.containerMenu);
|
||||
}
|
||||
|
||||
@@ -1384,10 +_,30 @@
|
||||
|
||||
@Override
|
||||
|
||||
@ -27,3 +27,12 @@
|
||||
this.tame(player);
|
||||
this.navigation.stop();
|
||||
this.level().broadcastEntityEvent(this, EntityEvent.TAMING_SUCCEEDED);
|
||||
@@ -481,7 +_,7 @@
|
||||
|
||||
protected void createInventory() {
|
||||
SimpleContainer simpleContainer = this.inventory;
|
||||
- this.inventory = new SimpleContainer(this.getInventorySize());
|
||||
+ this.inventory = new SimpleContainer(this.getInventorySize(), (org.bukkit.craftbukkit.entity.CraftAbstractNautilus) getBukkitEntity()); // Paper - add inv owner
|
||||
if (simpleContainer != null) {
|
||||
int min = Math.min(simpleContainer.getContainerSize(), this.inventory.getContainerSize());
|
||||
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.entity.animal.nautilus.AbstractNautilus;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.inventory.CraftSaddledInventory;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
public class CraftAbstractNautilus extends CraftTameableAnimal implements org.bukkit.entity.AbstractNautilus {
|
||||
public CraftAbstractNautilus(final CraftServer server, final AbstractNautilus entity) {
|
||||
@ -12,4 +15,13 @@ public class CraftAbstractNautilus extends CraftTameableAnimal implements org.bu
|
||||
public AbstractNautilus getHandle() {
|
||||
return (AbstractNautilus) this.entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return new CraftSaddledInventory(
|
||||
getHandle().inventory,
|
||||
this.getHandle().createEquipmentSlotContainer(EquipmentSlot.BODY),
|
||||
this.getHandle().createEquipmentSlotContainer(EquipmentSlot.SADDLE)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user