Implement NMS arrow for 1.11

This commit is contained in:
Roy Curtis 2016-11-18 09:55:49 +00:00
parent c870ed5ae9
commit 43807c42a1
3 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,28 @@
package com.cnaude.chairs.vehiclearrow.v1_11_R1;
import com.cnaude.chairs.api.ChairsAPI;
import net.minecraft.server.v1_11_R1.EntityArrow;
import org.bukkit.craftbukkit.v1_11_R1.CraftServer;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftArrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Vehicle;
public class CraftChairsArrow extends CraftArrow implements Vehicle {
public CraftChairsArrow(CraftServer server, EntityArrow entity) {
super(server, entity);
}
@Override
public void remove() {
Entity passenger = getPassenger();
if (passenger != null && passenger instanceof Player) {
if (ChairsAPI.isSitting((Player) passenger)) {
return;
}
}
super.remove();
}
}

View File

@ -0,0 +1,18 @@
package com.cnaude.chairs.vehiclearrow.v1_11_R1;
import com.cnaude.chairs.vehiclearrow.NMSArrowFactoryInterface;
import net.minecraft.server.v1_11_R1.EntityArrow;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
import org.bukkit.entity.Arrow;
public class NMSArrowFactory implements NMSArrowFactoryInterface {
@Override
public Arrow spawnArrow(Location location) {
CraftWorld world = (CraftWorld) location.getWorld();
EntityArrow arrow = new NMSChairsArrow(world, location);
return (Arrow) arrow.getBukkitEntity();
}
}

View File

@ -0,0 +1,21 @@
package com.cnaude.chairs.vehiclearrow.v1_11_R1;
import net.minecraft.server.v1_11_R1.EntityTippedArrow;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_11_R1.CraftServer;
import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
public class NMSChairsArrow extends EntityTippedArrow {
public NMSChairsArrow(CraftWorld cworld, Location location) {
super(cworld.getHandle());
setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
world.addEntity(this);
bukkitEntity = new CraftChairsArrow((CraftServer) Bukkit.getServer(), this);
}
@Override
public void A_() {
}
}