Add SitTrait for NPCs
This commit is contained in:
parent
138aaacbcf
commit
4768a4f76a
|
@ -42,15 +42,16 @@ import net.citizensnpcs.trait.OcelotModifiers;
|
|||
import net.citizensnpcs.trait.Poses;
|
||||
import net.citizensnpcs.trait.Powered;
|
||||
import net.citizensnpcs.trait.RabbitType;
|
||||
import net.citizensnpcs.trait.SmoothRotationTrait;
|
||||
import net.citizensnpcs.trait.Saddle;
|
||||
import net.citizensnpcs.trait.ScoreboardTrait;
|
||||
import net.citizensnpcs.trait.ScriptTrait;
|
||||
import net.citizensnpcs.trait.SheepTrait;
|
||||
import net.citizensnpcs.trait.ShopTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.trait.SkinLayers;
|
||||
import net.citizensnpcs.trait.SkinTrait;
|
||||
import net.citizensnpcs.trait.SlimeSize;
|
||||
import net.citizensnpcs.trait.SmoothRotationTrait;
|
||||
import net.citizensnpcs.trait.SneakTrait;
|
||||
import net.citizensnpcs.trait.VillagerProfession;
|
||||
import net.citizensnpcs.trait.WitherTrait;
|
||||
|
@ -76,6 +77,7 @@ public class CitizensTraitFactory implements TraitFactory {
|
|||
registerTrait(TraitInfo.create(EndermanTrait.class));
|
||||
registerTrait(TraitInfo.create(Equipment.class));
|
||||
registerTrait(TraitInfo.create(FollowTrait.class));
|
||||
registerTrait(TraitInfo.create(SitTrait.class));
|
||||
registerTrait(TraitInfo.create(GameModeTrait.class));
|
||||
registerTrait(TraitInfo.create(Gravity.class));
|
||||
registerTrait(TraitInfo.create(HorseModifiers.class));
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
package net.citizensnpcs.trait;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import net.citizensnpcs.api.CitizensAPI;
|
||||
import net.citizensnpcs.api.npc.MemoryNPCDataStore;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.api.persistence.Persist;
|
||||
import net.citizensnpcs.api.trait.Trait;
|
||||
import net.citizensnpcs.api.trait.TraitName;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
|
||||
@TraitName("sittrait")
|
||||
public class SitTrait extends Trait {
|
||||
private NPC holder;
|
||||
@Persist
|
||||
private boolean sitting;
|
||||
|
||||
public SitTrait() {
|
||||
super("sittrait");
|
||||
}
|
||||
|
||||
public boolean isSitting() {
|
||||
return sitting;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDespawn() {
|
||||
if (holder != null) {
|
||||
holder.destroy();
|
||||
holder = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (!npc.isSpawned()) {
|
||||
return;
|
||||
}
|
||||
if (holder == null) {
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
if (registry == null) {
|
||||
registry = CitizensAPI.createNamedNPCRegistry("PlayerAnimationImpl", new MemoryNPCDataStore());
|
||||
}
|
||||
holder = registry.createNPC(EntityType.ARMOR_STAND, "");
|
||||
holder.getOrAddTrait(ArmorStandTrait.class).setAsPointEntity();
|
||||
holder.spawn(npc.getEntity().getLocation());
|
||||
}
|
||||
if (holder.getEntity() != null && !NMS.getPassengers(holder.getEntity()).contains(npc.getEntity())) {
|
||||
NMS.mount(holder.getEntity(), npc.getEntity());
|
||||
}
|
||||
}
|
||||
|
||||
public void setSitting(boolean val) {
|
||||
this.sitting = val;
|
||||
}
|
||||
}
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_10_R1.BlockPosition;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -92,6 +93,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_11_R1.BlockPosition;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -92,6 +93,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_12_R1.BlockPosition;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -92,6 +93,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_13_R2.BlockPosition;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -92,6 +93,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_14_R1.Entity;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -94,6 +95,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_15_R1.Entity;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -94,6 +95,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_16_R3.Entity;
|
||||
|
@ -35,6 +36,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -58,10 +63,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -94,6 +95,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
|
@ -33,6 +34,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -57,10 +62,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -89,6 +90,10 @@ public class PlayerAnimationImpl {
|
|||
player, radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
|
@ -33,6 +34,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -57,10 +62,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -89,6 +90,10 @@ public class PlayerAnimationImpl {
|
|||
player, radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
|
@ -33,6 +34,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -57,10 +62,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -89,6 +90,10 @@ public class PlayerAnimationImpl {
|
|||
player, radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||
import net.citizensnpcs.api.npc.NPCRegistry;
|
||||
import net.citizensnpcs.npc.ai.NPCHolder;
|
||||
import net.citizensnpcs.trait.ArmorStandTrait;
|
||||
import net.citizensnpcs.trait.SitTrait;
|
||||
import net.citizensnpcs.util.NMS;
|
||||
import net.citizensnpcs.util.PlayerAnimation;
|
||||
import net.minecraft.server.v1_8_R3.BlockPosition;
|
||||
|
@ -34,6 +35,10 @@ public class PlayerAnimationImpl {
|
|||
}
|
||||
switch (animation) {
|
||||
case SIT:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(true);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), true));
|
||||
NPCRegistry registry = CitizensAPI.getNamedNPCRegistry("PlayerAnimationImpl");
|
||||
|
@ -57,10 +62,6 @@ public class PlayerAnimationImpl {
|
|||
cancel();
|
||||
return;
|
||||
}
|
||||
if (player instanceof NPCHolder && !((NPCHolder) player).getNPC().isSpawned()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
if (!NMS.getPassengers(holder.getEntity()).contains(player.getBukkitEntity())) {
|
||||
NMS.mount(holder.getEntity(), player.getBukkitEntity());
|
||||
}
|
||||
|
@ -78,6 +79,10 @@ public class PlayerAnimationImpl {
|
|||
radius);
|
||||
break;
|
||||
case STOP_SITTING:
|
||||
if (player instanceof NPCHolder) {
|
||||
((NPCHolder) player).getNPC().getOrAddTrait(SitTrait.class).setSitting(false);
|
||||
return;
|
||||
}
|
||||
player.getBukkitEntity().setMetadata("citizens.sitting",
|
||||
new FixedMetadataValue(CitizensAPI.getPlugin(), false));
|
||||
NMS.mount(player.getBukkitEntity(), null);
|
||||
|
|
Loading…
Reference in New Issue