@ -1,48 +1,49 @@
package eu.univento.teamvento.listener ;
import eu.univento.commons.player.Rank ;
import eu.univento.core.Core ;
import eu.univento.commons.player.rank.Rank ;
import eu.univento.core.api.Config ;
import eu.univento.core.api.events.MoveEventFilter ;
import eu.univento.core.api.player.CustomPlayer ;
import eu.univento.teamvento.TeamVento ;
import eu.univento.teamvento. utils .Plot;
import eu.univento.teamvento. utils .PlotManager;
import eu.univento.teamvento. utils .Time;
import eu.univento.teamvento. utils .Weather;
import eu.univento.teamvento. plot .Plot;
import eu.univento.teamvento. plot .PlotManager;
import eu.univento.teamvento. plot .Time;
import eu.univento.teamvento. plot .Weather;
import org.bukkit.* ;
import org.bukkit.block.Block ;
import org.bukkit.block.BlockFace ;
import org.bukkit.block.Sign ;
import org.bukkit.entity.EntityType ;
import org.bukkit.entity.Player ;
import org.bukkit.entity.Projectile ;
import org.bukkit.entity.* ;
import org.bukkit.event.EventHandler ;
import org.bukkit.event.Listener ;
import org.bukkit.event.block.* ;
import org.bukkit.event.entity.* ;
import org.bukkit.event.hanging.HangingBreakByEntityEvent ;
import org.bukkit.event.hanging.HangingPlaceEvent ;
import org.bukkit.event.inventory.InventoryClickEvent ;
import org.bukkit.event.player.* ;
import org.bukkit.event.weather.WeatherChangeEvent ;
import org.bukkit.event.world.StructureGrowEvent ;
import org.bukkit.inventory. PlayerInventory ;
import org.bukkit.inventory. ItemStack ;
import org.bukkit.potion.PotionEffect ;
import org.bukkit.potion.PotionEffectType ;
import org.bukkit.scheduler.BukkitRunnable ;
import org.bukkit.scheduler.BukkitTask ;
import org.bukkit.util.EulerAngle ;
import org.bukkit.util.Vector ;
import java.util.HashMap ;
import java.util.Random ;
import java.util.Set ;
import java.util.UUID ;
/ * *
* @author joethei
* @version 0.3
* /
public class Events implements Listener {
public class Events implements Listener {
public static int redstone ;
public static int redstone = 0 ;
private Random random = new Random ( ) ;
private final HashMap < CustomPlayer , BukkitTask > lightningTasks = new HashMap < > ( ) ;
@ -59,35 +60,35 @@ public class Events implements Listener{
@EventHandler
public void onBlockBreak ( BlockBreakEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
public void onBlockPlace ( BlockPlaceEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
public void onHangingPlace ( HangingPlaceEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
public void onHangingBreakByEntity ( HangingBreakByEntityEvent e ) {
if ( e . getRemover ( ) instanceof Projectile ) {
if ( ( ( Projectile ) e . getRemover ( ) ) . getShooter ( ) instanceof Player ) {
if ( e . getRemover ( ) instanceof Projectile ) {
if ( ( ( Projectile ) e . getRemover ( ) ) . getShooter ( ) instanceof Player ) {
CustomPlayer p = CustomPlayer . getPlayer ( ( Player ) ( ( Projectile ) e . getRemover ( ) ) . getShooter ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
} else {
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
} else {
e . setCancelled ( true ) ;
}
}
if ( e . getRemover ( ) instanceof Player ) {
if ( e . getRemover ( ) instanceof Player ) {
CustomPlayer p = CustomPlayer . getPlayer ( ( Player ) e . getRemover ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
} else {
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
} else {
e . setCancelled ( true ) ;
}
}
@ -96,13 +97,13 @@ public class Events implements Listener{
public void onEntityDamageByEntity ( EntityDamageByEntityEvent e ) {
if ( e . getDamager ( ) instanceof Player ) {
CustomPlayer p = CustomPlayer . getPlayer ( ( Player ) e . getDamager ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
if ( e . getDamager ( ) instanceof Projectile ) {
if ( ( ( Projectile ) e . getDamager ( ) ) . getShooter ( ) instanceof Player ) {
if ( e . getDamager ( ) instanceof Projectile ) {
if ( ( ( Projectile ) e . getDamager ( ) ) . getShooter ( ) instanceof Player ) {
CustomPlayer p = CustomPlayer . getPlayer ( ( Player ) ( ( Projectile ) e . getDamager ( ) ) . getShooter ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
} else {
if ( ! PlotManager . isAllowedToBuild ( p , e . getEntity ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
} else {
e . setCancelled ( true ) ;
}
}
@ -121,7 +122,7 @@ public class Events implements Listener{
return ;
}
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
@ -131,7 +132,7 @@ public class Events implements Listener{
@EventHandler
public void onBlockRedstone ( BlockRedstoneEvent e ) {
if ( e . getBlock ( ) . getWorld ( ) . getName ( ) . equalsIgnoreCase ( " EinfachAFK ") ) return ;
if ( e . getBlock ( ) . getWorld ( ) . getName ( ) . equalsIgnoreCase ( " world ") ) return ;
redstone + + ;
if ( redstone > 100 ) {
e . getBlock ( ) . setType ( Material . SIGN_POST ) ;
@ -147,11 +148,11 @@ public class Events implements Listener{
@EventHandler
public void onCreatureSpawn ( CreatureSpawnEvent e ) {
if ( e . getSpawnReason ( ) = = CreatureSpawnEvent . SpawnReason . CUSTOM ) return ;
if ( PlotManager . getPlotByLocation ( e . getEntity ( ) . getLocation ( ) ) = = null ) {
e . setCancelled ( tru e) ;
return ;
}
//if(e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.CUSTOM) e.setCancelled(true);
//if(e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.SPAWNER_EGG) e.setCancelled(true);
e . getEntity ( ) . setAI ( fals e) ;
e . getEntity ( ) . setSilent ( true ) ;
if ( e . getEntity ( ) . getWorld ( ) . getName ( ) . equalsIgnoreCase ( "world" ) ) return ;
Plot plot = PlotManager . getPlotByLocation ( e . getEntity ( ) . getLocation ( ) ) ;
assert plot ! = null ;
if ( e . getEntity ( ) . getType ( ) ! = EntityType . ITEM_FRAME & & e . getEntity ( ) . getType ( ) ! = EntityType . ARMOR_STAND & & e . getEntity ( ) . getType ( ) ! = EntityType . PAINTING ) {
@ -159,6 +160,12 @@ public class Events implements Listener{
}
}
@EventHandler
public void onEntityDeath ( EntityDeathEvent e ) {
e . getDrops ( ) . clear ( ) ;
e . setDroppedExp ( 0 ) ;
}
@EventHandler
public void onBlockFromTo ( BlockFromToEvent e ) {
Material type = e . getBlock ( ) . getType ( ) ;
@ -167,7 +174,14 @@ public class Events implements Listener{
}
@EventHandler
public void onPiston ( BlockPistonEvent e ) {
public void onPistonExtend ( BlockPistonExtendEvent e ) {
if ( e . getBlock ( ) . getWorld ( ) . getName ( ) . equalsIgnoreCase ( "world" ) ) return ;
e . setCancelled ( true ) ;
}
@EventHandler
public void onPistonRetract ( BlockPistonRetractEvent e ) {
if ( e . getBlock ( ) . getWorld ( ) . getName ( ) . equalsIgnoreCase ( "world" ) ) return ;
e . setCancelled ( true ) ;
}
@ -180,33 +194,35 @@ public class Events implements Listener{
Block block = e . getClickedBlock ( ) . getRelative ( BlockFace . UP ) ;
if ( ! e . getPlayer ( ) . getWorld ( ) . getName ( ) . equalsIgnoreCase ( "plots" ) ) return ;
if ( block . getType ( ) = = Material . FIRE ) {
if ( ! PlotManager . isAllowedToBuild ( p , e . getClickedBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getClickedBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
}
if ( e . getAction ( ) = = Action . RIGHT_CLICK_BLOCK ) {
if ( ! PlotManager . isAllowedToBuild ( p , e . getClickedBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( e . getAction ( ) = = Action . RIGHT_CLICK_BLOCK ) {
if ( ! PlotManager . isAllowedToBuild ( p , e . getClickedBlock ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
}
@EventHandler
public void onPlayerInteractEntity ( PlayerInteractEntityEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( e . getRightClicked ( ) . getType ( ) = = EntityType . ITEM_FRAME ) {
if ( ! PlotManager . isAllowedToBuild ( p , e . getRightClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( e . getRightClicked ( ) . getType ( ) = = EntityType . ITEM_FRAME ) {
if ( ! PlotManager . isAllowedToBuild ( p , e . getRightClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
}
@EventHandler
public void onArmorStandManipulate ( PlayerArmorStandManipulateEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getRightClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getRightClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
public void onDrop ( PlayerDropItemEvent e ) {
e . setCancelled ( true ) ;
}
/ *
@EventHandler
public void onPickup ( PlayerPickupItemEvent e ) {
e . setCancelled ( true ) ;
@ -219,8 +235,8 @@ public class Events implements Listener{
@EventHandler
public void onInventoryClick ( InventoryClickEvent e ) {
if ( e . getClickedInventory ( ) instanceof PlayerInventory ) {
if ( e . getSlot ( ) = = 8 | | e . getHotbarButton ( ) = = 8 ) {
if ( e . getClickedInventory ( ) instanceof PlayerInventory ) {
if ( e . getSlot ( ) = = 8 | | e . getHotbarButton ( ) = = 8 ) {
e . setCancelled ( true ) ;
}
}
@ -228,10 +244,11 @@ public class Events implements Listener{
@EventHandler
public void onSwapHands ( PlayerSwapHandItemsEvent e ) {
if ( e . getPlayer ( ) . getInventory ( ) . getHeldItemSlot ( ) = = 8 ) {
if ( e . getPlayer ( ) . getInventory ( ) . getHeldItemSlot ( ) = = 8 ) {
e . setCancelled ( true ) ;
}
}
* /
@EventHandler
public void onConsume ( PlayerItemConsumeEvent e ) {
@ -241,31 +258,31 @@ public class Events implements Listener{
@EventHandler
public void onBucketEmpty ( PlayerBucketEmptyEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlockClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlockClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
public void onBucketFill ( PlayerBucketFillEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlockClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
if ( ! PlotManager . isAllowedToBuild ( p , e . getBlockClicked ( ) . getLocation ( ) ) ) e . setCancelled ( true ) ;
}
@EventHandler
public void onBlockMove ( MoveEventFilter . PlayerBlockMoveEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
//plot enter
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) = = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) ! = null ) {
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) = = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) ! = null ) {
Plot plot = PlotManager . getPlotByLocation ( e . getTo ( ) ) ;
assert plot ! = null ;
p . setPlayerTime ( plot . getTime ( ) . getValue ( ) , false ) ;
p . setPlayerWeather ( plot . getWeatherType ( ) ) ;
if ( ! plot . isOwner ( p ) & & ! plot . getOwner ( ) . equals ( UUID . fromString ( "c35f6ece-c430-4fc0-b61e-18b55be19ee3" ) ) )
if ( ! plot . isOwner ( p ) & & ! plot . getOwner ( ) . equals ( UUID . fromString ( "c35f6ece-c430-4fc0-b61e-18b55be19ee3" ) ) )
p . addPotionEffect ( new PotionEffect ( PotionEffectType . INVISIBILITY , 999999 , 2 ) ) ;
if ( plot . getWeather ( ) = = Weather . THUNDER ) {
if ( plot . getWeather ( ) = = Weather . THUNDER ) {
BukkitTask task = Bukkit . getScheduler ( ) . runTaskTimerAsynchronously ( TeamVento . getInstance ( ) , ( ) - > {
Random random = new Random ( ) ;
int r = random . nextInt ( 100 ) ;
if ( r < 30 ) {
if ( r < 30 ) {
p . strikeLightning ( plot . getArea ( ) . getRandomLocation ( ) ) ;
}
} , 2L , 50L ) ;
@ -273,16 +290,16 @@ public class Events implements Listener{
}
}
//plot leave
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) ! = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) = = null ) {
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) ! = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) = = null ) {
p . setPlayerTime ( Time . DAY . getValue ( ) , false ) ;
p . setPlayerWeather ( WeatherType . CLEAR ) ;
p . clearPotionEffects ( ) ;
if ( lightningTasks . containsKey ( p ) )
if ( lightningTasks . containsKey ( p ) )
lightningTasks . get ( p ) . cancel ( ) ;
lightningTasks . remove ( p ) ;
lightningTasks . remove ( p ) ;
}
if ( e . getTo ( ) . getY ( ) < = - 5 ) {
if ( ! PlotManager . hasPlot ( p ) ) {
if ( e . getTo ( ) . getY ( ) < = - 5 ) {
if ( ! PlotManager . hasPlot ( p ) ) {
p . teleport ( Config . readLocation ( "Build.Locs.Spawn" ) ) ;
return ;
}
@ -292,16 +309,9 @@ public class Events implements Listener{
p . teleport ( new Location ( Bukkit . getWorld ( "plots" ) , loc . getX ( ) , loc . getY ( ) , loc . getZ ( ) , 89.0F , 6.0F ) ) ;
}
Block up = p . getLocation ( ) . subtract ( 0.0D , 1.0D , 0.0D ) . getBlock ( ) ;
Block down = p . getLocation ( ) . subtract ( 0.0D , 2.0D , 0.0D ) . getBlock ( ) ;
if ( p . getLocation ( ) . getBlock ( ) . getType ( ) = = Material . GOLD_PLATE & & up . getType ( ) = = Material . COAL_BLOCK ) {
Core . getCommons ( ) . getLoggingHandler ( ) . getTeamVento ( ) . info ( "Platte und Coal" ) ;
if ( down . getType ( ) = = Material . COMMAND_CHAIN & & p . getDatabasePlayer ( ) . isAllowed ( Rank . Supporter ) ) {
p . teleport ( Bukkit . getWorld ( "EinfachAFK" ) . getSpawnLocation ( ) ) ;
p . setGameMode ( GameMode . ADVENTURE ) ;
}
}
if ( up . getType ( ) = = Material . COAL_BLOCK & & down . getType ( ) = = Material . COMMAND_CHAIN ) {
Core . getCommons ( ) . getLoggingHandler ( ) . getTeamVento ( ) . info ( "Coal und Chain" ) ;
if ( p . getLocation ( ) . getBlock ( ) . getType ( ) = = Material . GOLD_PLATE & & up . getType ( ) = = Material . COAL_BLOCK & & p . getDatabasePlayer ( ) . isAllowed ( Rank . JrSupporter ) ) {
p . teleport ( Bukkit . getWorld ( "Planning" ) . getSpawnLocation ( ) ) ;
p . setGameMode ( GameMode . ADVENTURE ) ;
}
}
@ -309,18 +319,18 @@ public class Events implements Listener{
public void onTeleport ( PlayerTeleportEvent e ) {
CustomPlayer p = CustomPlayer . getPlayer ( e . getPlayer ( ) ) ;
//plot enter
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) = = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) ! = null ) {
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) = = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) ! = null ) {
Plot plot = PlotManager . getPlotByLocation ( e . getTo ( ) ) ;
assert plot ! = null ;
p . setPlayerTime ( plot . getTime ( ) . getValue ( ) , false ) ;
p . setPlayerWeather ( plot . getWeatherType ( ) ) ;
if ( ! plot . isOwner ( p ) & & ! plot . getOwner ( ) . equals ( UUID . fromString ( "c35f6ece-c430-4fc0-b61e-18b55be19ee3" ) ) )
if ( ! plot . isOwner ( p ) & & ! plot . getOwner ( ) . equals ( UUID . fromString ( "c35f6ece-c430-4fc0-b61e-18b55be19ee3" ) ) )
p . addPotionEffect ( new PotionEffect ( PotionEffectType . INVISIBILITY , 999999 , 2 ) ) ;
if ( plot . getWeather ( ) = = Weather . THUNDER ) {
if ( plot . getWeather ( ) = = Weather . THUNDER ) {
BukkitTask task = Bukkit . getScheduler ( ) . runTaskTimerAsynchronously ( TeamVento . getInstance ( ) , ( ) - > {
Random random = new Random ( ) ;
int r = random . nextInt ( 100 ) ;
if ( r < 30 ) {
if ( r < 30 ) {
p . strikeLightning ( plot . getArea ( ) . getRandomLocation ( ) ) ;
}
} , 2L , 50L ) ;
@ -328,11 +338,11 @@ public class Events implements Listener{
}
}
//plot leave
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) ! = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) = = null ) {
if ( PlotManager . getPlotByLocation ( e . getFrom ( ) ) ! = null & & PlotManager . getPlotByLocation ( e . getTo ( ) ) = = null ) {
p . setPlayerTime ( Time . DAY . getValue ( ) , false ) ;
p . setPlayerWeather ( WeatherType . CLEAR ) ;
p . clearPotionEffects ( ) ;
if ( lightningTasks . containsKey ( p ) )
if ( lightningTasks . containsKey ( p ) )
lightningTasks . get ( p ) . cancel ( ) ;