Citizens2/src/main/java/net/citizensnpcs/trait/Controllable.java

45 lines
1.2 KiB
Java
Raw Normal View History

2012-04-19 05:52:07 +02:00
package net.citizensnpcs.trait;
import net.citizensnpcs.api.event.NPCRightClickEvent;
import net.citizensnpcs.api.exception.NPCLoadException;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.util.DataKey;
import net.citizensnpcs.npc.CitizensNPC;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class Controllable extends Trait implements Runnable, Listener {
private final CitizensNPC npc;
private boolean mounted;
public Controllable(CitizensNPC npc) {
this.npc = npc;
}
@EventHandler
public void onRightClick(NPCRightClickEvent event) {
if (!event.getNPC().equals(npc) || npc.getBukkitEntity().getPassenger() != null)
return;
((CraftPlayer) event.getClicker()).getHandle().setPassengerOf(npc.getHandle());
mounted = true;
}
@Override
public void run() {
if (!mounted)
return;
npc.getHandle().motX += npc.getHandle().passenger.motX;
npc.getHandle().motZ += npc.getHandle().passenger.motZ;
}
@Override
public void load(DataKey key) throws NPCLoadException {
}
@Override
public void save(DataKey key) {
}
}