package de.tobiyas.racesandclasses.vollotile; import org.bukkit.util.Vector; public class ParticleContainer { private final ParticleEffects effect; private final Vector vec; private final int amount; private final float data; public ParticleContainer(ParticleEffects effect, Vector vec, int amount, float data) { this.effect = effect; this.vec = vec; this.amount = amount; this.data = data; } public ParticleContainer(ParticleEffects effect, int amount, float data) { this(effect, new Vector(0.1,0.1,0.1), amount, data); } public ParticleEffects getEffect() { return effect; } public Vector getVec() { return vec; } public int getAmount() { return amount; } public float getData() { return data; } /** * Generates a {@link ParticleContainer}. * Parseable: EFFECT#AMOUNT#DATA#VECTOR_X#VECTOR_Y#VECTOR_Y#VECTOR_Z * * @param toParse the String to parse. * * @return the Particle Container. */ public static ParticleContainer generate(String toParse){ String[] split = toParse.split("#"); try{ String particleEffectName = split[0]; for(de.tobiyas.util.vollotile.ParticleEffects effect2 : de.tobiyas.util.vollotile.ParticleEffects.values()){ if(effect2.getPacketArg().equalsIgnoreCase(particleEffectName)){ particleEffectName = effect2.name(); break; } } de.tobiyas.racesandclasses.vollotile.ParticleEffects effect = de.tobiyas.racesandclasses.vollotile.ParticleEffects.FIREWORKS_SPARK; if(effect == null) ParticleEffects.valueOf(split[0]); int amount = effect.asBukkit() != null ? 1 : 30; try{ amount = Integer.parseInt(split[1]); }catch(Throwable exp){} float data = 0; try{ data = Float.parseFloat(split[2]); }catch(Throwable exp){} Vector vec = new Vector(0.1,0.1,0.1); try{ double x = Double.parseDouble(split[3]); double y = Double.parseDouble(split[4]); double z = Double.parseDouble(split[5]); vec = new Vector(x,y,z); }catch(Throwable exp){} return new ParticleContainer(effect, vec, amount, data); }catch(Throwable exp){ return null; } } }