Implement NMS arrow for 1.12pre2

This commit is contained in:
Roy Curtis 2017-05-18 16:04:51 +01:00
parent df84bdef5a
commit 04728b1fd9
3 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,28 @@
package com.cnaude.chairs.vehiclearrow.v1_12_R1;
import com.cnaude.chairs.api.ChairsAPI;
import net.minecraft.server.v1_12_R1.EntityArrow;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
import org.bukkit.craftbukkit.v1_12_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_12_R1;
import com.cnaude.chairs.vehiclearrow.NMSArrowFactoryInterface;
import net.minecraft.server.v1_12_R1.EntityArrow;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_12_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_12_R1;
import net.minecraft.server.v1_12_R1.EntityTippedArrow;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
import org.bukkit.craftbukkit.v1_12_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 B_() {
}
}