mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
8778a2ef97
This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
43 lines
No EOL
2.1 KiB
Diff
43 lines
No EOL
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
|
Date: Fri, 22 Apr 2016 18:20:05 -0500
|
|
Subject: [PATCH] Vehicle Event Cancellation Changes
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 7314b4dc5..d1f07bbbd 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper
|
|
public boolean i;
|
|
public final List<Entity> passengers;
|
|
protected int j;
|
|
- private Entity au;
|
|
+ private Entity au;public void setVehicle(Entity entity) { this.au = entity; } // Paper // OBFHELPER
|
|
public boolean attachedToPlayer;
|
|
public World world;
|
|
public double lastX;
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper
|
|
throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)");
|
|
} else {
|
|
// CraftBukkit start
|
|
+ entity.setVehicle(this); // Paper - Set the vehicle back for the event
|
|
CraftEntity craft = (CraftEntity) entity.getBukkitEntity().getVehicle();
|
|
Entity orig = craft == null ? null : craft.getHandle();
|
|
if (getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) {
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper
|
|
}
|
|
}
|
|
// CraftBukkit end
|
|
- Bukkit.getPluginManager().callEvent( new org.spigotmc.event.entity.EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity())); // Spigot
|
|
+ // Paper start - make EntityDismountEvent cancellable
|
|
+ if (!new org.spigotmc.event.entity.EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity()).callEvent()) {
|
|
+ return;
|
|
+ }
|
|
+ entity.setVehicle(null);
|
|
+ // Paper end
|
|
+
|
|
this.passengers.remove(entity);
|
|
entity.j = 60;
|
|
}
|
|
--
|