Address max comments
This commit is contained in:
1 parent
6ceb63af9f
commit
13b1428aad
1 file changed
+8
-3
+8
-3
@@ -12,6 +12,7 @@ import org.bukkit.entity.EnderPearl;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
@@ -21,14 +22,16 @@ public class AntiStatisChamber extends BasicHack {
|
||||
|
||||
@AutoLoad
|
||||
private String pearlLifetime;
|
||||
private long lifetimeValue;
|
||||
private NamespacedKey key;
|
||||
|
||||
public AntiStatisChamber(SimpleAdminHacks plugin, BasicHackConfig config) {
|
||||
super(plugin, config);
|
||||
this.key = new NamespacedKey(plugin, "pearl_thrown_time");
|
||||
this.lifetimeValue = ConfigParsing.parseTime(pearlLifetime);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerThrowPearl(PlayerLaunchProjectileEvent event) {
|
||||
Projectile projectile = event.getProjectile();
|
||||
if (!(projectile instanceof EnderPearl)) {
|
||||
@@ -39,7 +42,7 @@ public class AntiStatisChamber extends BasicHack {
|
||||
pdc.set(key, PersistentDataType.LONG, System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPearlLand(ProjectileHitEvent event) {
|
||||
Projectile projectile = event.getEntity();
|
||||
if (!(projectile instanceof EnderPearl)) {
|
||||
@@ -50,14 +53,16 @@ public class AntiStatisChamber extends BasicHack {
|
||||
Long pearlThrownTime = pdc.get(key, PersistentDataType.LONG);
|
||||
if (pearlThrownTime == null) {
|
||||
pearl.remove();
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if ((System.currentTimeMillis() - pearlThrownTime) > ConfigParsing.parseTime(pearlLifetime)) {
|
||||
if ((System.currentTimeMillis() - pearlThrownTime) > lifetimeValue) {
|
||||
//We remove the pearl here because cancelling the event doesn't prevent the pearl from actually landing
|
||||
pearl.remove();
|
||||
if (pearl.getShooter() instanceof Player) {
|
||||
((Player) pearl.getShooter()).sendMessage(Component.text("Your pearl failed to land for being in flight for more than " + pearlLifetime).color(NamedTextColor.RED));
|
||||
}
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user