Address max comments

This commit is contained in:
Cola committed 2021-09-26 14:33:38 +01:00
1 parent 6ceb63af9f
commit 13b1428aad
1 file changed
+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);
}
}
}