mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-12-27 19:47:51 +01:00
Use armor stands instead of silverfish for sitting
This commit is contained in:
parent
ae8b351eda
commit
221584b075
@ -24,6 +24,8 @@ public class ArmorStandTrait extends Trait {
|
|||||||
@Persist
|
@Persist
|
||||||
private EulerAngle leftLeg;
|
private EulerAngle leftLeg;
|
||||||
@Persist
|
@Persist
|
||||||
|
private boolean marker;
|
||||||
|
@Persist
|
||||||
private EulerAngle rightArm;
|
private EulerAngle rightArm;
|
||||||
@Persist
|
@Persist
|
||||||
private EulerAngle rightLeg;
|
private EulerAngle rightLeg;
|
||||||
@ -76,6 +78,7 @@ public class ArmorStandTrait extends Trait {
|
|||||||
entity.setArms(hasarms);
|
entity.setArms(hasarms);
|
||||||
entity.setBasePlate(hasbaseplate);
|
entity.setBasePlate(hasbaseplate);
|
||||||
entity.setSmall(small);
|
entity.setSmall(small);
|
||||||
|
entity.setMarker(marker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +94,10 @@ public class ArmorStandTrait extends Trait {
|
|||||||
this.hasbaseplate = baseplate;
|
this.hasbaseplate = baseplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMarker(boolean marker) {
|
||||||
|
this.marker = marker;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSmall(boolean small) {
|
public void setSmall(boolean small) {
|
||||||
this.small = small;
|
this.small = small;
|
||||||
}
|
}
|
||||||
@ -98,5 +105,4 @@ public class ArmorStandTrait extends Trait {
|
|||||||
public void setVisible(boolean visible) {
|
public void setVisible(boolean visible) {
|
||||||
this.visible = visible;
|
this.visible = visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package net.citizensnpcs.util;
|
|||||||
|
|
||||||
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
@ -10,6 +9,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||||||
import net.citizensnpcs.api.CitizensAPI;
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
import net.citizensnpcs.api.npc.NPC;
|
import net.citizensnpcs.api.npc.NPC;
|
||||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||||
|
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||||
import net.minecraft.server.v1_9_R1.BlockPosition;
|
import net.minecraft.server.v1_9_R1.BlockPosition;
|
||||||
import net.minecraft.server.v1_9_R1.EntityPlayer;
|
import net.minecraft.server.v1_9_R1.EntityPlayer;
|
||||||
import net.minecraft.server.v1_9_R1.Packet;
|
import net.minecraft.server.v1_9_R1.Packet;
|
||||||
@ -59,8 +59,16 @@ public enum PlayerAnimation {
|
|||||||
protected void playAnimation(final EntityPlayer player, int radius) {
|
protected void playAnimation(final EntityPlayer player, int radius) {
|
||||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||||
final NPC holder = CitizensAPI.getNPCRegistry().createNPC(EntityType.SILVERFISH, "");
|
final NPC holder = CitizensAPI.getNPCRegistry().createNPC(EntityType.ARMOR_STAND, "");
|
||||||
holder.spawn(player.getBukkitEntity().getLocation());
|
holder.spawn(player.getBukkitEntity().getLocation());
|
||||||
|
ArmorStandTrait trait = holder.getTrait(ArmorStandTrait.class);
|
||||||
|
trait.setGravity(false);
|
||||||
|
trait.setHasArms(false);
|
||||||
|
trait.setHasBaseplate(false);
|
||||||
|
trait.setSmall(true);
|
||||||
|
trait.setMarker(true);
|
||||||
|
trait.setVisible(false);
|
||||||
|
holder.getTrait(ArmorStandTrait.class).setVisible(false);
|
||||||
holder.data().set(NPC.NAMEPLATE_VISIBLE_METADATA, false);
|
holder.data().set(NPC.NAMEPLATE_VISIBLE_METADATA, false);
|
||||||
holder.data().set(NPC.DEFAULT_PROTECTED_METADATA, true);
|
holder.data().set(NPC.DEFAULT_PROTECTED_METADATA, true);
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@ -81,7 +89,6 @@ public enum PlayerAnimation {
|
|||||||
cancel();
|
cancel();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
NMS.getHandle((LivingEntity) holder.getEntity()).setInvisible(true);
|
|
||||||
if (!NMS.getHandle(holder.getEntity()).passengers.contains(player)) {
|
if (!NMS.getHandle(holder.getEntity()).passengers.contains(player)) {
|
||||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user