Skip to content

Commit 3731240

Browse files
committed
Manually remove temporary minecarts to prevent item drops.
1 parent ea3c2aa commit 3731240

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/main/java/com/sk89q/craftbook/mechanics/minecart/TemporaryCart.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.bukkit.event.EventPriority;
1717
import org.bukkit.event.block.Action;
1818
import org.bukkit.event.player.PlayerInteractEvent;
19+
import org.bukkit.event.vehicle.VehicleDestroyEvent;
1920
import org.bukkit.event.vehicle.VehicleExitEvent;
2021
import org.bukkit.inventory.EquipmentSlot;
2122

@@ -81,6 +82,19 @@ public void onPlayerDismount(final VehicleExitEvent event) {
8182
Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), event.getVehicle()::remove, 2L);
8283
}
8384

85+
@EventHandler(priority = EventPriority.HIGH)
86+
public void onVehicleDestroy(final VehicleDestroyEvent event) {
87+
if(!(event.getVehicle() instanceof RideableMinecart)) return;
88+
89+
if(!EventUtil.passesFilter(event))
90+
return;
91+
92+
if (minecarts.contains(event.getVehicle())) {
93+
event.setCancelled(true);
94+
Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), event.getVehicle()::remove, 2L);
95+
}
96+
}
97+
8498
@Override
8599
public void loadConfiguration (YAMLProcessor config, String path) {
86100

0 commit comments

Comments
 (0)