Description
This API is designed to allow plugin developers to easily add customized particle projectiles, hence the name. ParticleProjectileApi comes with its own event classes giving the developer a way to cancel an effect when a particle hits, this is quite useful in say mini-games to prevent friendly-fire. It is completely possible to create multiple projectile classes and is encouraged too. When extending the ParticleProjectile class, the developer will be met with five methods: OnHit, OnHitBlock, OnHitEntity, OnPenetrateBlock, OnPenetrateEntity, and OnMove. These methods allow for adding code to run when a projectile hits, passes through something, or moves.
Features
- method to launch particles (No packets used)
- Custom events that can be canceled
- Create multiple projectile classes for different effects
- More to come!
Usage
MyProjectile.class
package com.aim.coltonjgriswold.projectiles;import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Damageable; import org.bukkit.entity.Entity; import org.bukkit.entity.Player;
import com.aim.coltonjgriswold.api.ParticleProjectile;
public class MyProjectile extends ParticleProjectile {
public MyProjectile() { super(Particle.REDSTONE, 0.1, 7.5, 20.0 , 128.0); setColor(ParticleColor.fromRGB(255, 0, 0)); //Initialize a projectile with a color of red, a hitbox with size 0.1 cubed, Mass of 7.5 grams, speed of 20.0 meters/second, max distance of 128 meters }
@Override public void OnLaunch(LivingEntity who, Location start) { //Do something when launch }
@Override public void OnHit(LivingEntity who, Location end) { //Do something when reach max distance }
@Override public void OnHitBlock(LivingEntity who, Location end, Block what) { //Do something when hit block }
@Override public void OnHitEntity(LivingEntity who, Location end, Entity what) { //Do something when hit entity }
@Override public void OnPenetrateBlock(LivingEntity who, Location where, Block what) { //Do something when passing through a block }
@Override public void OnPenetrateEntity(LivingEntity who, Location where, Entity what) { //Do something when passing through an entity }
public void OnMove(Location previous, Location current, double step) { //Do something when the the particle moves } }
package com.aim.coltonjgriswold; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector;import com.aim.coltonjgriswold.api.utilities.ParticleColor; import com.aim.coltonjgriswold.projectiles.MyProjectile;
public class MyPlugin extends JavaPlugin implements Listener {
MyProjectile projectile;
public void onEnable() { getServer().getPluginManager().registerEvents(this, this); projectile = new MyProjectile(); }
public void onDisable() {
}
@EventHandler public void oninteract(PlayerInteractEvent event) { Material item = event.getPlayer().getInventory().getItemInMainHand().getType(); if (item == Material.STICK) { //launch MyProjectile with physics turned on projectile.launch(event.getPlayer(), true); } } }
Example Plugin Utilizing ParticleProjectileApi & Javadocs
Javadocs: ParticleProjectileApi
Example plugin:
<iframe allowfullscreen="allowfullscreen" src="https://www.youtube.com/embed/dV9iV70-Ch8?wmode=transparent" height="358" width="638"></iframe>
Affiliates
Thinking about getting a dedicated server? Try Kinetic hosting!
Save 15% on your first month by using code 'UberDiscount' at checkout!
Click the link below to get started now!
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
ParticleProjectileApi 0.2.4 0.2.4 |
1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2
|
bukkit, paper, purpur, spigot
|
Download |
|
ParticleProjectileApi 0.2.3 0.2.3 |
1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
bukkit, paper, purpur, spigot
|
Download |