Skip to content

Commit

Permalink
What was i thinking
Browse files Browse the repository at this point in the history
  • Loading branch information
zavdav committed Jan 4, 2025
1 parent ddefeb9 commit b6fdb73
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public FundamentalsEntityListener(Fundamentals plugin) {
public void onEntityCombust(EntityCombustEvent event) {
if (event.getEntity() instanceof Player) {
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) event.getEntity());
if(fPlayer.isAFK() || fPlayer.getFileGodModeStatus()){
if (fPlayer.isAFK() || fPlayer.getFileGodModeStatus()) {
event.setCancelled(true);
}
}
Expand All @@ -29,31 +29,30 @@ public void onEntityCombust(EntityCombustEvent event) {
@EventHandler
public void onEntityDamage(EntityDamageEvent event) {
if (event.getEntity() instanceof Player) {
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) event.getEntity());
if(fPlayer.isAFK() || fPlayer.getFileGodModeStatus()){
final Player player = (Player) event.getEntity();
Player player = (Player) event.getEntity();
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer(player);
if (fPlayer.isAFK() || fPlayer.getFileGodModeStatus()) {
player.setFireTicks(0);
player.setRemainingAir(player.getMaximumAir());
event.setCancelled(true);
return;
}
}
if(event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_ATTACK)){
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) event;
if(damageEvent.getDamager() != null && damageEvent.getDamager() instanceof Player){
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) damageEvent.getDamager());
if(fPlayer.isAFK()){
event.setCancelled(true);
}

if (!(event instanceof EntityDamageByEntityEvent)) return;
EntityDamageByEntityEvent dmgEvent = (EntityDamageByEntityEvent) event;

switch (event.getCause()) {
case ENTITY_ATTACK: {
if (dmgEvent.getDamager() == null || !(dmgEvent.getDamager() instanceof Player)) return;
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) dmgEvent.getDamager());
if (fPlayer.isAFK()) event.setCancelled(true);
}
} else if(event.getCause().equals(EntityDamageEvent.DamageCause.PROJECTILE)){
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) event;
LivingEntity shooter = ((Projectile) damageEvent.getDamager()).getShooter();
if(shooter instanceof Player){
case PROJECTILE: {
LivingEntity shooter = ((Projectile) dmgEvent.getDamager()).getShooter();
if (!(shooter instanceof Player)) return;
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) shooter);
if(fPlayer.isAFK()){
event.setCancelled(true);
}
if (fPlayer.isAFK()) event.setCancelled(true);
}
}
}
Expand All @@ -62,7 +61,7 @@ public void onEntityDamage(EntityDamageEvent event) {
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
if (event.getEntity() instanceof Player) {
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) event.getEntity());
if(fPlayer.isAFK() || fPlayer.getFileGodModeStatus()){
if (fPlayer.isAFK() || fPlayer.getFileGodModeStatus()) {
event.setCancelled(true);
}
}
Expand All @@ -72,11 +71,11 @@ public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
public void onEntityTarget(EntityTargetEvent event) {
if (event.getTarget() instanceof Player) {
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer((Player) event.getTarget());
if(fPlayer.isVanished()){
if(plugin.getFundamentalConfig().getConfigBoolean("settings.vanish-hidden-from-mobs")) {
if (fPlayer.isVanished()) {
if (plugin.getFundamentalConfig().getConfigBoolean("settings.vanish-hidden-from-mobs")) {
event.setCancelled(true);
}
} else if(fPlayer.isAFK()){
} else if (fPlayer.isAFK()) {
event.setCancelled(true);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.*;

import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
import java.util.UUID;
import java.util.logging.Level;

import static com.johnymuffin.beta.fundamentals.FundamentalPermission.isPlayerAuthorized;
import static com.johnymuffin.beta.fundamentals.util.Utils.*;

public class FundamentalsPlayerListener implements Listener {
Expand Down Expand Up @@ -177,15 +178,15 @@ public void onPlayerChat(final PlayerChatEvent event) {
@EventHandler(ignoreCancelled = true)
public void onPlayerCommand(PlayerCommandPreprocessEvent event) {
String command = event.getMessage();
if(plugin.getPlayerMap().getPlayer(event.getPlayer()).isAFK() &&
(!command.equalsIgnoreCase("/afk") && !command.equalsIgnoreCase("/afk " + event.getPlayer().getName()))){
if (plugin.getPlayerMap().getPlayer(event.getPlayer()).isAFK() &&
(!command.equalsIgnoreCase("/afk") && !command.equalsIgnoreCase("/afk " + event.getPlayer().getName()))) {
plugin.getPlayerMap().getPlayer(event.getPlayer()).updateActivity();
}

UUID uuid = event.getPlayer().getUniqueId();

//Run nickname color check
if(command.toLowerCase().startsWith("/nick") || command.toLowerCase().startsWith("/nickname")) {
if (command.toLowerCase().startsWith("/nick") || command.toLowerCase().startsWith("/nickname")) {
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
Expand All @@ -200,40 +201,44 @@ public void run() {

@EventHandler(ignoreCancelled = true)
public void onPlayerMove(final PlayerMoveEvent event) {
if(!plugin.getPlayerMap().getPlayer(event.getPlayer().getUniqueId()).isAFK()){
if (!((event.getFrom().getBlockX() == event.getTo().getBlockX()) && (event.getFrom().getBlockZ() == event.getTo().getBlockZ()))){
FundamentalsPlayerMap.getInstance().getPlayer(event.getPlayer()).updateActivity();
}
Player player = event.getPlayer();
FundamentalsPlayer fPlayer = plugin.getPlayerMap().getPlayer(player);
Location from = event.getFrom();
Location to = event.getTo();
boolean playerMoved =
from.getBlockX() != to.getBlockX() ||
from.getBlockY() != to.getBlockY() ||
from.getBlockZ() != to.getBlockZ();

if (!fPlayer.isAFK()) {
if (playerMoved) fPlayer.updateActivity();
return;
}
if(event.getFrom().getBlockX() == event.getTo().getBlockX() &&
event.getFrom().getBlockY() == event.getTo().getBlockY() &&
event.getFrom().getBlockZ() == event.getTo().getBlockZ()) return;
if(!event.getPlayer().hasPermission("fundamentals.afk") && !event.getPlayer().isOp()){
plugin.getPlayerMap().getPlayer(event.getPlayer().getUniqueId()).updateActivity();
if (!playerMoved) return;

// If player can't run /afk to unfreeze, let them move
if (!isPlayerAuthorized(player, "fundamentals.afk")) {
fPlayer.updateActivity();
return;
}
Location location = event.getFrom();
location.setPitch(event.getTo().getPitch());
location.setYaw(event.getTo().getYaw());
if(event.getFrom().getY() > event.getTo().getY()){
location.setY(event.getTo().getY());
}else{
location.setY(event.getFrom().getY());
}
event.setTo(location);
if(!afkMovingPlayers.contains(event.getPlayer().getUniqueId())){
afkMovingPlayers.add(event.getPlayer().getUniqueId());
event.getPlayer().sendMessage(FundamentalsLanguage.getInstance().getMessage("moving_while_afk"));
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
() -> afkMovingPlayers.remove(event.getPlayer().getUniqueId()), 100);

from.setPitch(to.getPitch());
from.setYaw(to.getYaw());
if (from.getY() > to.getY()) from.setY(to.getY());
event.setTo(from);

// Notify player to run /afk
if (!afkMovingPlayers.contains(player.getUniqueId())) {
afkMovingPlayers.add(player.getUniqueId());
player.sendMessage(FundamentalsLanguage.getInstance().getMessage("moving_while_afk"));
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () ->
afkMovingPlayers.remove(player.getUniqueId()), 100);
}
}

@EventHandler(ignoreCancelled = true)
public void onPlayerPickupItem(PlayerPickupItemEvent event){
if(plugin.getPlayerMap().getPlayer(event.getPlayer().getUniqueId()).isAFK()){
public void onPlayerPickupItem(PlayerPickupItemEvent event) {
if (plugin.getPlayerMap().getPlayer(event.getPlayer()).isAFK()) {
event.setCancelled(true);
}
}
Expand Down

0 comments on commit b6fdb73

Please sign in to comment.