2017-12-31 03:58:20 +00:00
package me.totalfreedom.totalfreedommod ;
2018-07-31 07:01:29 +00:00
import java.text.DecimalFormat ;
2017-12-31 03:58:20 +00:00
import me.totalfreedom.totalfreedommod.util.FUtil ;
2018-01-07 19:33:58 +00:00
import org.bukkit.ChatColor ;
2017-12-31 03:58:20 +00:00
import org.bukkit.Location ;
import org.bukkit.Material ;
import org.bukkit.entity.Player ;
import org.bukkit.event.EventHandler ;
import org.bukkit.event.EventPriority ;
2018-07-28 07:11:48 +00:00
import org.bukkit.event.entity.LingeringPotionSplashEvent ;
2017-12-31 03:58:20 +00:00
import org.bukkit.event.entity.PotionSplashEvent ;
import org.bukkit.projectiles.ProjectileSource ;
public class Monitors extends FreedomService
{
private final DecimalFormat decimalFormat = new DecimalFormat ( " # " ) ;
2018-01-07 19:33:58 +00:00
private String potionSpyPrefix = ChatColor . DARK_GRAY + " [ " + ChatColor . YELLOW + " PotionSpy " + ChatColor . DARK_GRAY + " ] " ;
2017-12-31 03:58:20 +00:00
public Monitors ( TotalFreedomMod plugin )
{
super ( plugin ) ;
}
@Override
protected void onStart ( )
{
}
@Override
protected void onStop ( )
{
}
2018-01-07 19:33:58 +00:00
@EventHandler ( priority = EventPriority . MONITOR )
2017-12-31 03:58:20 +00:00
public void onLingeringPotionSplash ( LingeringPotionSplashEvent event )
{
ProjectileSource source = event . getEntity ( ) . getShooter ( ) ;
if ( ! ( source instanceof Player ) )
{
return ;
}
2018-07-31 07:01:29 +00:00
Player player = ( Player ) source ;
2017-12-31 03:58:20 +00:00
2018-07-31 07:01:29 +00:00
if ( plugin . al . isAdmin ( ( Player ) event . getEntity ( ) . getShooter ( ) ) )
2017-12-31 03:58:20 +00:00
{
return ;
}
2018-07-25 02:08:29 +00:00
final Material droppedItem = event . getEntity ( ) . getItem ( ) . getType ( ) ;
2017-12-31 03:58:20 +00:00
final Location location = player . getLocation ( ) ;
for ( Player p : server . getOnlinePlayers ( ) )
{
2018-05-22 23:01:24 +00:00
if ( plugin . al . isAdmin ( p ) & & plugin . al . getAdmin ( p ) . getPotionSpy ( ) )
2017-12-31 03:58:20 +00:00
{
2018-07-25 02:08:29 +00:00
FUtil . playerMsg ( p , potionSpyPrefix + ChatColor . WHITE + player . getName ( ) + " splashed " + event . getEntity ( ) . getItem ( ) . getAmount ( ) + " " + droppedItem + " at X: " + decimalFormat . format ( location . getX ( ) ) + " , Y: " + decimalFormat . format ( location . getY ( ) ) + " , Z: " + decimalFormat . format ( location . getZ ( ) ) + " , in the world ' " + location . getWorld ( ) . getName ( ) + " '. " ) ;
2017-12-31 03:58:20 +00:00
}
}
}
2018-01-07 19:33:58 +00:00
@EventHandler ( priority = EventPriority . MONITOR )
2017-12-31 03:58:20 +00:00
public void onPotionSplash ( PotionSplashEvent event )
{
ProjectileSource source = event . getEntity ( ) . getShooter ( ) ;
if ( ! ( source instanceof Player ) )
{
return ;
}
2018-07-31 07:01:29 +00:00
Player player = ( Player ) source ;
2017-12-31 03:58:20 +00:00
2018-07-31 07:01:29 +00:00
if ( plugin . al . isAdmin ( ( Player ) event . getEntity ( ) . getShooter ( ) ) )
2017-12-31 03:58:20 +00:00
{
return ;
}
2018-07-25 02:08:29 +00:00
final Material droppedItem = event . getPotion ( ) . getItem ( ) . getType ( ) ;
2017-12-31 03:58:20 +00:00
final Location location = player . getLocation ( ) ;
for ( Player p : server . getOnlinePlayers ( ) )
{
2018-05-26 21:01:53 +00:00
if ( plugin . al . isAdmin ( p ) & & plugin . al . getAdmin ( p ) . getPotionSpy ( ) )
2017-12-31 03:58:20 +00:00
{
2018-07-25 02:08:29 +00:00
FUtil . playerMsg ( p , potionSpyPrefix + ChatColor . WHITE + player . getName ( ) + " splashed " + event . getEntity ( ) . getItem ( ) . getAmount ( ) + " " + droppedItem + " at X: " + decimalFormat . format ( location . getX ( ) ) + " , Y: " + decimalFormat . format ( location . getY ( ) ) + " , Z: " + decimalFormat . format ( location . getZ ( ) ) + " , in the world ' " + location . getWorld ( ) . getName ( ) + " '. " ) ;
2017-12-31 03:58:20 +00:00
}
}
}
}