package me.fromgate.reactions.activators; import me.fromgate.reactions.actions.Actions; import me.fromgate.reactions.event.EntityClickEvent; import me.fromgate.reactions.util.Param; import me.fromgate.reactions.util.Variables; import org.bukkit.Location; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Entity; import org.bukkit.event.Event; /** * Created by MaxDikiy on 2017-05-14. */ public class EntityClickActivator extends Activator { private String entityType; public EntityClickActivator(String name, String param) { super(name, "activators"); Param params = new Param(param); this.entityType = params.getParam("type", ""); } public EntityClickActivator(String name, String group, YamlConfiguration cfg) { super(name, group, cfg); } @Override public boolean activate(Event event) { if (!(event instanceof EntityClickEvent)) return false; EntityClickEvent ece = (EntityClickEvent) event; if (ece.getEntity() == null) return false; if (!isActivatorEntity(ece.getEntity())) return false; Variables.setTempVar("entitytype", ece.getEntity().getType().name()); return Actions.executeActivator(ece.getPlayer(), this); } private boolean isActivatorEntity(Entity entity) { if (!(this.entityType).isEmpty() && !(entity.getType()).toString().equalsIgnoreCase(this.entityType)) return false; return true; } @Override public boolean isLocatedAt(Location loc) { return false; } @Override public void save(String root, YamlConfiguration cfg) { cfg.set(root + ".entity-type", this.entityType); } @Override public void load(String root, YamlConfiguration cfg) { this.entityType = cfg.getString(root + ".entity-type", ""); } @Override public ActivatorType getType() { return ActivatorType.ENTITY_CLICK; } @Override public String toString() { StringBuilder sb = new StringBuilder(name).append(" [").append(getType()).append("]"); if (!getFlags().isEmpty()) sb.append(" F:").append(getFlags().size()); if (!getActions().isEmpty()) sb.append(" A:").append(getActions().size()); if (!getReactions().isEmpty()) sb.append(" R:").append(getReactions().size()); sb.append(" ("); sb.append("type:").append(entityType.isEmpty() ? "-" : entityType.toUpperCase()); sb.append(")"); return sb.toString(); } @Override public boolean isValid() { return true; } }