Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ public enum Setting {
FORCE_COORDS,
FORCE_STRUCTURE,

NO_HUNGER,
NO_DAMAGE,
BACKPACK,
CHAIN_MODE,
HIDE_POINTS,
Expand Down
16 changes: 10 additions & 6 deletions src/main/java/net/fameless/forcebattle/game/GameListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -214,7 +215,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);
Expand All @@ -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;
Expand All @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ 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"),
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,
Expand Down
6 changes: 6 additions & 0 deletions src/main/resources/languages/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
"gui.force_coords_lore" : " <br><gray>Click to toggle ForceCoords.<br><br><blue>Current Status<dark_gray>: <state>",
"gui.force_structure_name" : "<blue>Force Structure",
"gui.force_structure_lore" : " <br><gray>Click to toggle ForceStructure.<br><br><blue>Current Status<dark_gray>: <state>",
"gui.no_hunger_name" : "<blue>No Hunger",
"gui.no_hunger_lore" : " <br><gray>Click to toggle no Hunger.<br><br><blue>Current Status<dark_gray>: <state>",
"gui.no_damage_name" : "<blue>No Damage",
"gui.no_damage_lore" : " <br><gray>Click to toggle no Damage.<br><br><blue>Current Status<dark_gray>: <state>",
"gui.chain_mode_name" : "<blue>Chain Mode",
"gui.chain_mode_lore" : " <br><gray>Click to toggle Chain Mode.<br><br><blue>Current Status<dark_gray>: <state>",
"gui.result_title_all" : "Results | All Players",
Expand Down Expand Up @@ -78,6 +82,8 @@
"notification.force_height_changed" : "<prefix><blue>ForceHeight <gray>has been set to <blue><state>!",
"notification.force_coords_changed" : "<prefix><blue>ForceCoords <gray>has been set to <blue><state>!",
"notification.force_structure_changed" : "<prefix><blue>ForceStructure <gray>has been set to <blue><state>!",
"notification.no_hunger_changed" : "<prefix><blue>No Hunger <gray>has been set to <blue><state>!",
"notification.no_damage_changed" : "<prefix><blue>No Damage <gray>has been set to <blue><state>!",
"notification.chain_mode_changed" : "<prefix><blue>Chain Mode <gray>has been set to <blue><state>!",
"notification.no_duplicate_objectives_changed" : "<prefix><blue>No duplicate objectives <gray>has been set to <blue><state>!",
"notification.simplified_objectives_changed" : "<prefix><blue>Simplified objectives <gray>have been set to <blue><state>!",
Expand Down
Loading