mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-03-31 08:46:26 +02:00
43 lines
1.4 KiB
Java
43 lines
1.4 KiB
Java
package com.gmail.nossr50.skills.crossbows;
|
|
|
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
import com.gmail.nossr50.util.MetadataConstants;
|
|
import com.gmail.nossr50.util.player.UserManager;
|
|
import org.bukkit.entity.Arrow;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import static com.gmail.nossr50.util.skills.ProjectileUtils.getNormal;
|
|
|
|
/**
|
|
* Util class for crossbows.
|
|
*/
|
|
public class Crossbows {
|
|
/**
|
|
* Process events that may happen from a crossbow hitting an entity.
|
|
*
|
|
* @param event the projectile hit event
|
|
* @param pluginRef the plugin ref
|
|
* @param arrow the arrow
|
|
*/
|
|
public static void processCrossbows(ProjectileHitEvent event, Plugin pluginRef, Arrow arrow) {
|
|
if (arrow.getShooter() instanceof Player) {
|
|
McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) arrow.getShooter());
|
|
if (mmoPlayer == null)
|
|
return;
|
|
|
|
processTrickShot(event, pluginRef, arrow, mmoPlayer);
|
|
}
|
|
}
|
|
|
|
private static void processTrickShot(ProjectileHitEvent event, Plugin pluginRef, Arrow arrow, McMMOPlayer mmoPlayer) {
|
|
if(event.getHitBlock() != null && event.getHitBlockFace() != null) {
|
|
mmoPlayer.getCrossbowsManager().handleRicochet(
|
|
pluginRef,
|
|
arrow,
|
|
getNormal(event.getHitBlockFace()));
|
|
}
|
|
}
|
|
}
|