mirror of
https://github.com/CivMC/Civ.git
synced 2026-07-18 00:20:44 +00:00
Make reinforcement damage also deal tool damage
This commit is contained in:
@@ -435,3 +435,7 @@ reinforcementBreakMultipliers:
|
||||
- WAXED_EXPOSED_COPPER_DOOR
|
||||
- WAXED_OXIDIZED_COPPER_DOOR
|
||||
- WAXED_WEATHERED_COPPER_DOOR
|
||||
|
||||
# number of times a tool can break a reinforcement before it gets damaged by one durability
|
||||
# set to 0 to disable
|
||||
reinforcementBreaksPerToolDamage: 50
|
||||
|
||||
@@ -57,6 +57,8 @@ public class CitadelConfigManager extends ConfigParser {
|
||||
private long activityDefault;
|
||||
private List<String> activityWorlds;
|
||||
|
||||
private int reinforcementBreaksPerToolDamage;
|
||||
|
||||
private Map<UUID, WorldBorderBuffers> buffers;
|
||||
|
||||
private ReinforcementMultiplier multiplier;
|
||||
@@ -113,6 +115,10 @@ public class CitadelConfigManager extends ConfigParser {
|
||||
return multiplier;
|
||||
}
|
||||
|
||||
public int getReinforcementBreaksPerToolDamage() {
|
||||
return reinforcementBreaksPerToolDamage;
|
||||
}
|
||||
|
||||
private ReinforcementEffect getReinforcementEffect(ConfigurationSection config) {
|
||||
if (config == null) {
|
||||
return null;
|
||||
@@ -185,6 +191,7 @@ public class CitadelConfigManager extends ConfigParser {
|
||||
activityDefault = config.getLong("activity-default", System.currentTimeMillis());
|
||||
activityWorlds = config.getStringList("activity-map-worlds");
|
||||
multiplier = ReinforcementMultiplier.parse(config.getMapList("reinforcementBreakMultipliers"));
|
||||
reinforcementBreaksPerToolDamage = config.getInt("reinforcementBreaksPerToolDamage");
|
||||
|
||||
parseWorldBorderBuffers(config.getConfigurationSection("world-border-buffers"));
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package vg.civcraft.mc.citadel.playerstate;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
@@ -10,6 +11,7 @@ import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import vg.civcraft.mc.citadel.Citadel;
|
||||
import vg.civcraft.mc.citadel.CitadelPermissionHandler;
|
||||
import vg.civcraft.mc.citadel.CitadelUtility;
|
||||
import vg.civcraft.mc.citadel.ReinforcementLogic;
|
||||
@@ -79,6 +81,10 @@ public abstract class AbstractPlayerState {
|
||||
if (dre.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
int reinforcementBreaksPerToolDamage = Citadel.getInstance().getConfigManager().getReinforcementBreaksPerToolDamage();
|
||||
if (reinforcementBreaksPerToolDamage > 0 && ThreadLocalRandom.current().nextInt(reinforcementBreaksPerToolDamage) == 0) {
|
||||
e.getPlayer().getInventory().getItemInMainHand().damage(1, e.getPlayer());
|
||||
}
|
||||
damage = dre.getDamageDone();
|
||||
ReinforcementLogic.damageReinforcement(rein, damage, e.getPlayer());
|
||||
if (rein.getHealth() <= 0) {
|
||||
|
||||
@@ -269,3 +269,7 @@ world-border-buffers:
|
||||
z: 0.5
|
||||
|
||||
reinforcementBreakMultipliers: []
|
||||
|
||||
# number of times a tool can break a reinforcement before it gets damaged by one durability
|
||||
# set to 0 to disable
|
||||
reinforcementBreaksPerToolDamage: 50
|
||||
|
||||
Reference in New Issue
Block a user