readd dropped event in InteractWithDoor
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/entity/vehicle/AbstractBoat.java
|
||||
+++ b/net/minecraft/world/entity/vehicle/AbstractBoat.java
|
||||
@@ -83,6 +_,14 @@
|
||||
@@ -83,6 +_,15 @@
|
||||
private Leashable.LeashData leashData;
|
||||
private final Supplier<Item> dropItem;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
+ public double occupiedDeceleration = 0.2D;
|
||||
+ public double unoccupiedDeceleration = -1;
|
||||
+ public boolean landBoats = false;
|
||||
+ private org.bukkit.Location lastLocation;
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
public AbstractBoat(EntityType<? extends AbstractBoat> entityType, Level level, Supplier<Item> dropItem) {
|
||||
@@ -55,30 +56,19 @@
|
||||
super.push(entity);
|
||||
}
|
||||
}
|
||||
@@ -243,6 +_,7 @@
|
||||
return this.getDirection().getClockWise();
|
||||
}
|
||||
|
||||
+ private org.bukkit.Location lastLocation; // CraftBukkit
|
||||
@Override
|
||||
public void tick() {
|
||||
this.oldStatus = this.status;
|
||||
@@ -283,6 +_,21 @@
|
||||
@@ -283,6 +_,18 @@
|
||||
this.setDeltaMovement(Vec3.ZERO);
|
||||
}
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ org.bukkit.Server server = this.level().getCraftServer();
|
||||
+ org.bukkit.World bworld = this.level().getWorld();
|
||||
+
|
||||
+ org.bukkit.Location to = org.bukkit.craftbukkit.util.CraftLocation.toBukkit(this.position(), bworld, this.getYRot(), this.getXRot());
|
||||
+ org.bukkit.Location to = org.bukkit.craftbukkit.util.CraftLocation.toBukkit(this.position(), this.level().getWorld(), this.getYRot(), this.getXRot());
|
||||
+ org.bukkit.entity.Vehicle vehicle = (org.bukkit.entity.Vehicle) this.getBukkitEntity();
|
||||
+
|
||||
+ server.getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleUpdateEvent(vehicle));
|
||||
+ new org.bukkit.event.vehicle.VehicleUpdateEvent(vehicle).callEvent();
|
||||
+
|
||||
+ if (this.lastLocation != null && !this.lastLocation.equals(to)) {
|
||||
+ org.bukkit.event.vehicle.VehicleMoveEvent event = new org.bukkit.event.vehicle.VehicleMoveEvent(vehicle, this.lastLocation, to);
|
||||
+ server.getPluginManager().callEvent(event);
|
||||
+ event.callEvent();
|
||||
+ }
|
||||
+ this.lastLocation = vehicle.getLocation();
|
||||
+ // CraftBukkit end
|
||||
|
||||
@@ -40,12 +40,11 @@
|
||||
return null;
|
||||
} else {
|
||||
this.unpackLootTable(playerInventory.player);
|
||||
@@ -198,4 +_,59 @@
|
||||
@@ -198,4 +_,58 @@
|
||||
public void stopOpen(Player player) {
|
||||
this.level().gameEvent(GameEvent.CONTAINER_CLOSE, this.position(), GameEvent.Context.of(player));
|
||||
}
|
||||
+
|
||||
+
|
||||
+ // Paper start - LootTable API
|
||||
+ final com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData = new com.destroystokyo.paper.loottable.PaperLootableInventoryData();
|
||||
+
|
||||
@@ -64,13 +63,13 @@
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onOpen(org.bukkit.craftbukkit.entity.CraftHumanEntity who) {
|
||||
+ this.transaction.add(who);
|
||||
+ public void onOpen(org.bukkit.craftbukkit.entity.CraftHumanEntity player) {
|
||||
+ this.transaction.add(player);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onClose(org.bukkit.craftbukkit.entity.CraftHumanEntity who) {
|
||||
+ this.transaction.remove(who);
|
||||
+ public void onClose(org.bukkit.craftbukkit.entity.CraftHumanEntity player) {
|
||||
+ this.transaction.remove(player);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
+ if (!collides) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ org.bukkit.event.vehicle.VehicleEntityCollisionEvent collisionEvent = new org.bukkit.event.vehicle.VehicleEntityCollisionEvent((org.bukkit.entity.Vehicle) getBukkitEntity(), entity.getBukkitEntity());
|
||||
+
|
||||
+ org.bukkit.event.vehicle.VehicleEntityCollisionEvent collisionEvent = new org.bukkit.event.vehicle.VehicleEntityCollisionEvent((org.bukkit.entity.Vehicle) getBukkitEntity(), entity.getBukkitEntity());
|
||||
+ return collisionEvent.callEvent();
|
||||
+ // Paper end - fix VehicleEntityCollisionEvent not called when colliding with player
|
||||
}
|
||||
@@ -141,7 +141,7 @@
|
||||
double d = entity.getX() - this.getX();
|
||||
double d1 = entity.getZ() - this.getZ();
|
||||
double d2 = d * d + d1 * d1;
|
||||
@@ -602,4 +_,27 @@
|
||||
@@ -602,4 +_,28 @@
|
||||
public boolean isFurnace() {
|
||||
return false;
|
||||
}
|
||||
@@ -167,5 +167,6 @@
|
||||
+ this.derailedZ = derailed.getZ();
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
+ public net.minecraft.world.item.Item publicGetDropItem() { return getDropItem(); } // Paper - api to get boat and minecart material - expose public drop item
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
|
||||
+++ b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
|
||||
@@ -21,11 +_,59 @@
|
||||
@@ -21,10 +_,11 @@
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public abstract class AbstractMinecartContainer extends AbstractMinecart implements ContainerEntity {
|
||||
@@ -9,15 +9,42 @@
|
||||
@Nullable
|
||||
public ResourceKey<LootTable> lootTable;
|
||||
public long lootTableSeed;
|
||||
+ private final com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData = new com.destroystokyo.paper.loottable.PaperLootableInventoryData(); // Paper - LootTable API
|
||||
|
||||
+ // Paper start - LootTable API
|
||||
+ final com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData = new com.destroystokyo.paper.loottable.PaperLootableInventoryData();
|
||||
protected AbstractMinecartContainer(EntityType<?> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
@@ -72,11 +_,18 @@
|
||||
|
||||
@Override
|
||||
public void remove(Entity.RemovalReason reason) {
|
||||
+ // CraftBukkit start - add Bukkit remove cause
|
||||
+ this.remove(reason, null);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void remove(Entity.RemovalReason reason, org.bukkit.event.entity.EntityRemoveEvent.Cause cause) {
|
||||
+ // CraftBukkit end - add Bukkit remove cause
|
||||
if (!this.level().isClientSide && reason.shouldDestroy()) {
|
||||
Containers.dropContents(this.level(), this, this);
|
||||
}
|
||||
|
||||
- super.remove(reason);
|
||||
+ super.remove(reason, cause); // CraftBukkit - add Bukkit remove cause
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -164,4 +_,50 @@
|
||||
public void clearItemStacks() {
|
||||
this.itemStacks = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY);
|
||||
}
|
||||
+
|
||||
+ // Paper start - LootTable API
|
||||
+ @Override
|
||||
+ public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData() {
|
||||
+ return this.lootableData;
|
||||
+ }
|
||||
+ // Paper end - LootTable API
|
||||
+
|
||||
+ // CraftBukkit start
|
||||
+ public java.util.List<org.bukkit.entity.HumanEntity> transaction = new java.util.ArrayList<>();
|
||||
+ private int maxStack = MAX_STACK;
|
||||
@@ -26,12 +53,12 @@
|
||||
+ return this.itemStacks;
|
||||
+ }
|
||||
+
|
||||
+ public void onOpen(org.bukkit.craftbukkit.entity.CraftHumanEntity who) {
|
||||
+ this.transaction.add(who);
|
||||
+ public void onOpen(org.bukkit.craftbukkit.entity.CraftHumanEntity player) {
|
||||
+ this.transaction.add(player);
|
||||
+ }
|
||||
+
|
||||
+ public void onClose(org.bukkit.craftbukkit.entity.CraftHumanEntity who) {
|
||||
+ this.transaction.remove(who);
|
||||
+ public void onClose(org.bukkit.craftbukkit.entity.CraftHumanEntity player) {
|
||||
+ this.transaction.remove(player);
|
||||
+ }
|
||||
+
|
||||
+ public java.util.List<org.bukkit.entity.HumanEntity> getViewers() {
|
||||
@@ -56,28 +83,4 @@
|
||||
+ return this.getBukkitEntity().getLocation();
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
+
|
||||
protected AbstractMinecartContainer(EntityType<?> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
}
|
||||
@@ -72,11 +_,18 @@
|
||||
|
||||
@Override
|
||||
public void remove(Entity.RemovalReason reason) {
|
||||
+ // CraftBukkit start - add Bukkit remove cause
|
||||
+ this.remove(reason, null);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void remove(Entity.RemovalReason reason, org.bukkit.event.entity.EntityRemoveEvent.Cause cause) {
|
||||
+ // CraftBukkit end - add Bukkit remove cause
|
||||
if (!this.level().isClientSide && reason.shouldDestroy()) {
|
||||
Containers.dropContents(this.level(), this, this);
|
||||
}
|
||||
|
||||
- super.remove(reason);
|
||||
+ super.remove(reason, cause); // CraftBukkit - add Bukkit remove cause
|
||||
}
|
||||
|
||||
@Override
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
+ // CraftBukkit start
|
||||
+ org.bukkit.event.entity.ExplosionPrimeEvent event = new org.bukkit.event.entity.ExplosionPrimeEvent(
|
||||
+ this.getBukkitEntity(),
|
||||
+ (float) ((double) this.explosionPowerBase + (double) this.explosionSpeedFactor * this.random.nextDouble() * 1.5D * min),
|
||||
+ (float) (this.explosionPowerBase + this.explosionSpeedFactor * this.random.nextDouble() * 1.5 * min),
|
||||
+ this.isIncendiary
|
||||
+ );
|
||||
+ if (!event.callEvent()) {
|
||||
|
||||
Reference in New Issue
Block a user