move entity attribute setting

This commit is contained in:
tastybento 2019-09-26 08:52:57 -07:00
parent bd34f2c4bc
commit 2f7a4b2528
2 changed files with 37 additions and 33 deletions

View File

@ -18,16 +18,10 @@ import org.bukkit.block.CreatureSpawner;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.type.Sign;
import org.bukkit.block.data.type.WallSign;
import org.bukkit.entity.AbstractHorse;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.ChestedHorse;
import org.bukkit.entity.Horse;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.material.Colorable;
import org.bukkit.scheduler.BukkitTask;
import org.bukkit.util.Vector;
import org.eclipse.jdt.annotation.NonNull;
@ -279,34 +273,8 @@ public class BlueprintPaster {
// Actually set the custom name
e.setCustomName(customName);
}
if (e instanceof Colorable && k.getColor() != null) {
((Colorable) e).setColor(k.getColor());
}
if (e instanceof Tameable && k.getTamed() != null) {
((Tameable)e).setTamed(k.getTamed());
}
if (e instanceof ChestedHorse && k.getChest() != null) {
((ChestedHorse)e).setCarryingChest(k.getChest());
}
if (e instanceof Ageable && k.getAdult() != null) {
if (k.getAdult()) {
((Ageable)e).setAdult();
} else {
((Ageable)e).setBaby();
}
}
if (e instanceof AbstractHorse) {
AbstractHorse horse = (AbstractHorse)e;
if (k.getDomestication() != null) horse.setDomestication(k.getDomestication());
if (k.getInventory() != null) {
k.getInventory().forEach(horse.getInventory()::setItem);
}
}
if (e instanceof Horse && k.getStyle() != null) {
((Horse)e).setStyle(k.getStyle());
}
k.configureEntity(e);
});
}
/**

View File

@ -3,9 +3,16 @@ package world.bentobox.bentobox.blueprints.dataobjects;
import java.util.Map;
import org.bukkit.DyeColor;
import org.bukkit.entity.AbstractHorse;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.ChestedHorse;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Horse;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.Horse.Style;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.Colorable;
import com.google.gson.annotations.Expose;
@ -34,6 +41,35 @@ public class BlueprintEntity {
@Expose
private Style style;
public void configureEntity(Entity e) {
if (e instanceof Colorable) {
((Colorable) e).setColor(color);
}
if (tamed != null && e instanceof Tameable) {
((Tameable)e).setTamed(tamed);
}
if (chest != null && e instanceof ChestedHorse) {
((ChestedHorse)e).setCarryingChest(chest);
}
if (adult != null && e instanceof Ageable) {
if (adult) {
((Ageable)e).setAdult();
} else {
((Ageable)e).setBaby();
}
}
if (e instanceof AbstractHorse) {
AbstractHorse horse = (AbstractHorse)e;
if (domestication != null) horse.setDomestication(domestication);
if (inventory != null) {
inventory.forEach(horse.getInventory()::setItem);
}
}
if (style != null && e instanceof Horse) {
((Horse)e).setStyle(style);
}
}
/**
* @return the color
*/