public static WrappedParticle fromHandle(Object handle) { ensureMethods(); Particle bukkit = (Particle) toBukkit.invoke(null, handle); Object data = null; switch (bukkit) { case BLOCK_CRACK: case BLOCK_DUST: case FALLING_DUST: data = getBlockData(handle); break; case ITEM_CRACK: data = getItem(handle); break; case REDSTONE: data = getRedstone(handle); break; default: break; } return new WrappedParticle<>(handle, bukkit, data); }
public void setParticle(Particle particle) { setParticle(WrappedParticle.create(particle, null)); }
public Particle getParticleType() { return getParticle().getParticle(); } }
public static <T> WrappedParticle<T> create(Particle particle, T data) { ensureMethods(); Object bukkitData = data; if (data instanceof WrappedBlockData) { WrappedBlockData blockData = (WrappedBlockData) data; bukkitData = toCraftData.invoke(null, blockData.getHandle()); } Object handle = toNMS.invoke(null, particle, bukkitData); return new WrappedParticle<>(handle, particle, data); } }
return ((NbtWrapper) value).getHandle(); } else if (value instanceof WrappedParticle) { return ((WrappedParticle) value).getHandle();
public <T> void setParticle(Particle particle, T particleData) { setParticle(WrappedParticle.create(particle, particleData)); }
return WrappedParticle.create(particle, data);