fix reinforcements

This commit is contained in:
okx-code
2025-03-18 22:35:19 +00:00
parent bad9173a91
commit 02edc4c020
4 changed files with 18 additions and 7 deletions

View File

@@ -395,6 +395,7 @@ public class ConfigParser {
public BlockRestrictionHandler parseBlockRestrictionHandler(ConfigurationSection config) {
boolean enabled = config.getBoolean("enabled");
boolean reinforce = config.getBoolean("reinforce");
BlockRestrictionHandler.RestrictionMode restrictionMode = BlockRestrictionHandler.RestrictionMode.valueOf(config.getString("mode"));
List<Material> blacklist = config.getStringList("blacklist").stream()
.map(s -> Material.valueOf(s.toUpperCase()))
@@ -428,7 +429,7 @@ public class ConfigParser {
}
}
return new BlockRestrictionHandler(enabled, restrictionMode, zoneRadii, blacklist, whitelist, materialCooldowns);
return new BlockRestrictionHandler(enabled, reinforce, restrictionMode, zoneRadii, blacklist, whitelist, materialCooldowns);
}
public AllyHandler parseAllyHandler(ConfigurationSection config) {

View File

@@ -123,7 +123,9 @@ public class Finale extends ACivMod {
Bukkit.getPluginManager().registerEvents(new WarpFruitListener(), this);
Bukkit.getPluginManager().registerEvents(new TridentListener(), this);
Bukkit.getPluginManager().registerEvents(new ShieldListener(), this);
Bukkit.getPluginManager().registerEvents(new BlockListener(), this);
if (manager.getBlockRestrictionHandler().isEnabled()) {
Bukkit.getPluginManager().registerEvents(new BlockListener(), this);
}
Bukkit.getPluginManager().registerEvents(new CrossbowListener(config.isFireworkExplosions()), this);
Bukkit.getPluginManager().registerEvents(new GappleListener(), this);
}

View File

@@ -52,10 +52,12 @@ public class BlockListener implements Listener {
}
}
if (blockRestrictionHandler.isOnCooldown(player, blockPlacedType)) {
restrictPlacement(event);
} else {
blockRestrictionHandler.putOnCooldown(player, blockPlacedType);
if (!blockRestrictionHandler.isReinforce()) {
if (blockRestrictionHandler.isOnCooldown(player, blockPlacedType)) {
restrictPlacement(event);
} else {
blockRestrictionHandler.putOnCooldown(player, blockPlacedType);
}
}
}

View File

@@ -16,14 +16,16 @@ public class BlockRestrictionHandler {
}
private boolean enabled;
private boolean reinforce;
private RestrictionMode mode;
private Map<Material, Integer> zoneRadii;
private List<Material> blacklist;
private List<Material> whitelist;
private Map<Material, CooldownHandler> materialCooldownHandlers;
public BlockRestrictionHandler(boolean enabled, RestrictionMode mode, Map<Material, Integer> zoneRadii, List<Material> blacklist, List<Material> whitelist, Map<Material, CooldownHandler> materialCooldownHandlers) {
public BlockRestrictionHandler(boolean enabled, boolean reinforce, RestrictionMode mode, Map<Material, Integer> zoneRadii, List<Material> blacklist, List<Material> whitelist, Map<Material, CooldownHandler> materialCooldownHandlers) {
this.enabled = enabled;
this.reinforce = reinforce;
this.mode = mode;
this.zoneRadii = zoneRadii;
this.blacklist = blacklist;
@@ -35,6 +37,10 @@ public class BlockRestrictionHandler {
return enabled;
}
public boolean isReinforce() {
return reinforce;
}
public RestrictionMode getMode() {
return mode;
}