From cf3d0da0ade0e7a28d3feaed9f38605c26134d82 Mon Sep 17 00:00:00 2001
From: ItzKatze <136186750+ItzKatze@users.noreply.github.com>
Date: Fri, 24 Oct 2025 21:09:04 +0200
Subject: [PATCH 1/2] feat: no hunger setting
---
.../fameless/forcebattle/configuration/SettingsManager.java | 1 +
src/main/java/net/fameless/forcebattle/game/GameListener.java | 2 +-
.../java/net/fameless/forcebattle/gui/impl/SettingsGUI.java | 2 ++
src/main/resources/languages/en_US.json | 3 +++
4 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java b/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java
index cbf7ed4..5bbe41a 100644
--- a/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java
+++ b/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java
@@ -82,6 +82,7 @@ public enum Setting {
FORCE_COORDS,
FORCE_STRUCTURE,
+ NO_HUNGER,
BACKPACK,
CHAIN_MODE,
HIDE_POINTS,
diff --git a/src/main/java/net/fameless/forcebattle/game/GameListener.java b/src/main/java/net/fameless/forcebattle/game/GameListener.java
index 72af389..17bbe2d 100644
--- a/src/main/java/net/fameless/forcebattle/game/GameListener.java
+++ b/src/main/java/net/fameless/forcebattle/game/GameListener.java
@@ -214,7 +214,7 @@ public void onGameEnd(TimerEndEvent event) {
public void onHungerChange(FoodLevelChangeEvent event) {
if (!(event.getEntity() instanceof Player player)) return;
- if (!ForceBattle.getTimer().isRunning()) {
+ if (!ForceBattle.getTimer().isRunning() || SettingsManager.isEnabled(SettingsManager.Setting.NO_HUNGER)) {
event.setCancelled(true);
player.setFoodLevel(20);
diff --git a/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java b/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java
index 7301b9a..08cf05b 100644
--- a/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java
+++ b/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java
@@ -42,6 +42,8 @@ public enum SettingButton {
FORCE_STRUCTURE(6, Material.STRUCTURE_BLOCK, SettingsManager.Setting.FORCE_STRUCTURE, true,
"gui.force_structure_name", "gui.force_structure_lore", "notification.force_structure_changed"),
+ NO_HUNGER(18, Material.COOKED_BEEF, SettingsManager.Setting.NO_HUNGER, false,
+ "gui.no_hunger_name", "gui.no_hunger_lore", "notification.no_hunger_changed"),
CHAIN_MODE(27, Material.CHAIN, SettingsManager.Setting.CHAIN_MODE, false,
"gui.chain_mode_name", "gui.chain_mode_lore", "notification.chain_mode_changed"),
BACKPACK(28, Material.CHEST, SettingsManager.Setting.BACKPACK, false,
diff --git a/src/main/resources/languages/en_US.json b/src/main/resources/languages/en_US.json
index 2a3ded8..c7b2d3d 100644
--- a/src/main/resources/languages/en_US.json
+++ b/src/main/resources/languages/en_US.json
@@ -30,6 +30,8 @@
"gui.force_coords_lore" : "
Click to toggle ForceCoords.
Current Status: ",
"gui.force_structure_name" : "Force Structure",
"gui.force_structure_lore" : "
Click to toggle ForceStructure.
Current Status: ",
+ "gui.no_hunger_name" : "No Hunger",
+ "gui.no_hunger_lore" : "
Click to toggle no Hunger.
Current Status: ",
"gui.chain_mode_name" : "Chain Mode",
"gui.chain_mode_lore" : "
Click to toggle Chain Mode.
Current Status: ",
"gui.result_title_all" : "Results | All Players",
@@ -78,6 +80,7 @@
"notification.force_height_changed" : "ForceHeight has been set to !",
"notification.force_coords_changed" : "ForceCoords has been set to !",
"notification.force_structure_changed" : "ForceStructure has been set to !",
+ "notification.no_hunger_changed" : "No Hunger has been set to !",
"notification.chain_mode_changed" : "Chain Mode has been set to !",
"notification.no_duplicate_objectives_changed" : "No duplicate objectives has been set to !",
"notification.simplified_objectives_changed" : "Simplified objectives have been set to !",
From ed2c7abc5e213ce6dbd2852caea54a6acc535e90 Mon Sep 17 00:00:00 2001
From: ItzKatze <136186750+ItzKatze@users.noreply.github.com>
Date: Fri, 24 Oct 2025 21:21:08 +0200
Subject: [PATCH 2/2] feat: no damage setting
---
.../forcebattle/configuration/SettingsManager.java | 1 +
.../fameless/forcebattle/game/GameListener.java | 14 +++++++++-----
.../fameless/forcebattle/gui/impl/SettingsGUI.java | 2 ++
src/main/resources/languages/en_US.json | 3 +++
4 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java b/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java
index 5bbe41a..b38489c 100644
--- a/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java
+++ b/src/main/java/net/fameless/forcebattle/configuration/SettingsManager.java
@@ -83,6 +83,7 @@ public enum Setting {
FORCE_STRUCTURE,
NO_HUNGER,
+ NO_DAMAGE,
BACKPACK,
CHAIN_MODE,
HIDE_POINTS,
diff --git a/src/main/java/net/fameless/forcebattle/game/GameListener.java b/src/main/java/net/fameless/forcebattle/game/GameListener.java
index 17bbe2d..9784739 100644
--- a/src/main/java/net/fameless/forcebattle/game/GameListener.java
+++ b/src/main/java/net/fameless/forcebattle/game/GameListener.java
@@ -39,6 +39,7 @@
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.PlayerInteractEvent;
@@ -224,11 +225,6 @@ public void onHungerChange(FoodLevelChangeEvent event) {
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
- if (!ForceBattle.getTimer().isRunning() && event.getEntity() instanceof Player) {
- event.setCancelled(true);
- return;
- }
-
if (!SettingsManager.isEnabled(SettingsManager.Setting.FORCE_MOB)) return;
if (!(event.getDamager() instanceof Player damager)) return;
@@ -243,6 +239,14 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
checkTeamObjective(battlePlayer, target);
}
+ @EventHandler
+ public void onPlayerDamage(EntityDamageEvent event) {
+ if (!(event.getEntity() instanceof Player)) return;
+ if (!ForceBattle.getTimer().isRunning() || SettingsManager.isEnabled(SettingsManager.Setting.NO_DAMAGE)) {
+ event.setCancelled(true);
+ }
+ }
+
private void checkPlayerObjective(BattlePlayer battlePlayer, LivingEntity target) {
if (battlePlayer.getObjective().getBattleType() != BattleType.FORCE_MOB) return;
diff --git a/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java b/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java
index 08cf05b..50f482a 100644
--- a/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java
+++ b/src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java
@@ -44,6 +44,8 @@ public enum SettingButton {
NO_HUNGER(18, Material.COOKED_BEEF, SettingsManager.Setting.NO_HUNGER, false,
"gui.no_hunger_name", "gui.no_hunger_lore", "notification.no_hunger_changed"),
+ NO_DAMAGE(19, Material.IRON_SWORD, SettingsManager.Setting.NO_DAMAGE, false,
+ "gui.no_damage_name", "gui.no_damage_lore", "notification.no_damage_changed"),
CHAIN_MODE(27, Material.CHAIN, SettingsManager.Setting.CHAIN_MODE, false,
"gui.chain_mode_name", "gui.chain_mode_lore", "notification.chain_mode_changed"),
BACKPACK(28, Material.CHEST, SettingsManager.Setting.BACKPACK, false,
diff --git a/src/main/resources/languages/en_US.json b/src/main/resources/languages/en_US.json
index c7b2d3d..d7a5db0 100644
--- a/src/main/resources/languages/en_US.json
+++ b/src/main/resources/languages/en_US.json
@@ -32,6 +32,8 @@
"gui.force_structure_lore" : "
Click to toggle ForceStructure.
Current Status: ",
"gui.no_hunger_name" : "No Hunger",
"gui.no_hunger_lore" : "
Click to toggle no Hunger.
Current Status: ",
+ "gui.no_damage_name" : "No Damage",
+ "gui.no_damage_lore" : "
Click to toggle no Damage.
Current Status: ",
"gui.chain_mode_name" : "Chain Mode",
"gui.chain_mode_lore" : "
Click to toggle Chain Mode.
Current Status: ",
"gui.result_title_all" : "Results | All Players",
@@ -81,6 +83,7 @@
"notification.force_coords_changed" : "ForceCoords has been set to !",
"notification.force_structure_changed" : "ForceStructure has been set to !",
"notification.no_hunger_changed" : "No Hunger has been set to !",
+ "notification.no_damage_changed" : "No Damage has been set to !",
"notification.chain_mode_changed" : "Chain Mode has been set to !",
"notification.no_duplicate_objectives_changed" : "No duplicate objectives has been set to !",
"notification.simplified_objectives_changed" : "Simplified objectives have been set to !",