mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-26 06:13:09 +02:00
45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
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) {
|
|
}
|
|
}
|