From bf989cf42941824659ec18eeb794dee4d9765358 Mon Sep 17 00:00:00 2001 From: CitralFlo Date: Tue, 29 Oct 2024 19:26:55 +0100 Subject: [PATCH 1/4] Add creative setting, reformat name of config value --- .../combat/config/implementation/PluginConfig.java | 8 +++++++- .../combat/fight/controller/FightTagController.java | 7 +++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/PluginConfig.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/PluginConfig.java index dbdcb0e5..32c1ac95 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/PluginConfig.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/PluginConfig.java @@ -68,7 +68,13 @@ public static class Settings extends OkaeriConfig { "# Setting this to true - admins cannot be tagged and will not tag other players on hit", "# Setting this to false - admins can be tagged and can tag other players on hit" }) - public boolean excludeAdminFromCombat = false; + public boolean excludeOpFromCombat = false; + + @Comment({"# If you want to exclude players in creative mode from combat, ", + "# Setting this to true - players in creative mode cannot be tagged and will not tag other players on hit", + "# Setting this to false - players in creative mode can be tag others" + }) + public boolean excludeCreativeFromCombat = false; @Comment("# Command blocking mode, available modes: WHITELIST, BLACKLIST") public WhitelistBlacklistMode commandBlockingMode = WhitelistBlacklistMode.BLACKLIST; diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java index c7c78642..a0dde19a 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java @@ -4,6 +4,7 @@ import com.eternalcode.combat.config.implementation.PluginConfig; import com.eternalcode.combat.fight.FightManager; import com.eternalcode.combat.fight.event.CauseOfTag; +import org.bukkit.GameMode; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; @@ -54,11 +55,13 @@ void onEntityDamageByEntity(EntityDamageByEntityEvent event) { UUID attackedUniqueId = attackedPlayerByPerson.getUniqueId(); UUID attackerUniqueId = attacker.getUniqueId(); - if (attacker.isOp() && this.config.settings.excludeAdminFromCombat) { + if (attacker.isOp() && this.config.settings.excludeOpFromCombat || + attacker.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat ) { return; } - if (attackedPlayerByPerson.isOp() && this.config.settings.excludeAdminFromCombat) { + if (attackedPlayerByPerson.isOp() && this.config.settings.excludeOpFromCombat || + attackedPlayerByPerson.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat) { return; } From b4d039b5366b846dc625a49e65bdb1c663fde9ee Mon Sep 17 00:00:00 2001 From: CitralFlo Date: Tue, 29 Oct 2024 20:22:23 +0100 Subject: [PATCH 2/4] Extract method --- .../fight/controller/FightTagController.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java index a0dde19a..8db3768b 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java @@ -55,13 +55,11 @@ void onEntityDamageByEntity(EntityDamageByEntityEvent event) { UUID attackedUniqueId = attackedPlayerByPerson.getUniqueId(); UUID attackerUniqueId = attacker.getUniqueId(); - if (attacker.isOp() && this.config.settings.excludeOpFromCombat || - attacker.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat ) { + if (this.cannotBeTagged(attacker)) { return; } - if (attackedPlayerByPerson.isOp() && this.config.settings.excludeOpFromCombat || - attackedPlayerByPerson.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat) { + if (this.cannotBeTagged(attackedPlayerByPerson)) { return; } @@ -95,6 +93,10 @@ void onEntityDamage(EntityDamageEvent event) { return; } + if (this.cannotBeTagged(player)) { + return; + } + Duration combatTime = this.config.settings.combatDuration; UUID uuid = player.getUniqueId(); @@ -132,4 +134,9 @@ private boolean isPlayerInDisabledWorld(Player player) { return this.config.settings.worldsToIgnore.contains(worldName); } + private boolean cannotBeTagged(Player player) { + return (player.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat) || + (player.isOp() && this.config.settings.excludeOpFromCombat); + } + } From e2788ef049e4dc9c202d754e7018f20f9c1efc13 Mon Sep 17 00:00:00 2001 From: CitralFlo Date: Thu, 31 Oct 2024 01:33:59 +0100 Subject: [PATCH 3/4] Devide method to two ifs. Following @Rollczi's advice --- .../combat/fight/controller/FightTagController.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java index 8db3768b..590b32cc 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java @@ -135,8 +135,15 @@ private boolean isPlayerInDisabledWorld(Player player) { } private boolean cannotBeTagged(Player player) { - return (player.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat) || - (player.isOp() && this.config.settings.excludeOpFromCombat); + if (player.getGameMode().equals(GameMode.CREATIVE) && this.config.settings.excludeCreativeFromCombat) { + return true; + } + + if (player.isOp() && this.config.settings.excludeOpFromCombat) { + return true; + } + + return false; } } From 429d6396a00344afd84daa7b8e7e60b4d7efc09e Mon Sep 17 00:00:00 2001 From: CitralFlo Date: Thu, 31 Oct 2024 01:34:54 +0100 Subject: [PATCH 4/4] Devide method to two ifs. Following @Rollczi's advice --- .../eternalcode/combat/fight/controller/FightTagController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java index 590b32cc..66602d39 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/controller/FightTagController.java @@ -145,5 +145,4 @@ private boolean cannotBeTagged(Player player) { return false; } - }