Fixed Minecart Dupe Bug due to Intersection switching.

dev
sigonasr2 9 years ago
parent b649c9cd43
commit 06ab897e43
  1. BIN
      TwosideKeeper.jar
  2. 43
      src/sig/plugin/TwosideKeeper/TwosideKeeper.java

Binary file not shown.

@ -5771,22 +5771,28 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
ev.setCancelled(true);
if (ev.getVehicle().isValid()) {
ev.getVehicle().remove();
switch (ev.getVehicle().getType()) {
case MINECART:{
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
}break;
case MINECART_FURNACE:{
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.FURNACE));
}break;
case MINECART_TNT:{
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.TNT));
}break;
default:{
}
}
Bukkit.getScheduler().runTaskLater(this, () -> {
if (ev.getAttacker().getVehicle()==null) {
switch (ev.getVehicle().getType()) {
case MINECART:{
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
}break;
case MINECART_FURNACE:{
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.FURNACE));
}break;
case MINECART_TNT:{
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
ev.getVehicle().getLocation().getWorld().dropItemNaturally(ev.getVehicle().getLocation().add(0,1,0), new ItemStack(Material.TNT));
}break;
default:{
}
}
}
}, 1);
}
}
}
@ -5800,7 +5806,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//Drop a minecart at the position.
if (ev.getVehicle().isValid()) {
ev.getVehicle().remove();
ev.getVehicle().getWorld().dropItemNaturally(ev.getExited().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
Bukkit.getScheduler().runTaskLater(this, () -> {
if (ev.getExited().getVehicle()==null) {
ev.getVehicle().getWorld().dropItemNaturally(ev.getExited().getLocation().add(0,1,0), new ItemStack(Material.MINECART));
}},1);
}
}
}

Loading…
Cancel
Save