11package com .flyaway .smartmobs ;
22
33import org .bukkit .configuration .file .FileConfiguration ;
4- import org .bukkit .configuration .ConfigurationSection ;
54import org .bukkit .entity .EntityType ;
65
7- import java .util .List ;
8- import java .util .ArrayList ;
9- import java .util .HashMap ;
10- import java .util .Map ;
6+ import java .util .*;
117
128public class ConfigManager {
139
1410 private FileConfiguration config ;
15- private Map <EntityType , Boolean > enabledMobs = new HashMap <>();
16- private Map <String , Map <EntityType , String >> displayNames = new HashMap <>();
17- private Map <EntityType , Map <String , Object >> specialAbilities = new HashMap <>();
11+ private final Map <EntityType , Boolean > enabledMobs = new HashMap <>();
12+ private final Map <String , Map <EntityType , String >> displayNames = new HashMap <>();
13+ private final Map <EntityType , Map <String , Object >> specialAbilities = new HashMap <>();
1814
1915 // Вероятности
2016 private double hardenedChance = 0.15 ;
@@ -28,15 +24,13 @@ public class ConfigManager {
2824 private double hardenedDamageMultiplier = 1.25 ;
2925 private double hardenedKnockbackResistance = 0.5 ;
3026 private boolean hardenedNameVisible = true ;
31- private int hardenedShowDuration = 3 ;
3227
3328 // Множители для elite
3429 private double eliteHpMultiplier = 1.5 ;
3530 private double eliteDamageMultiplier = 1.5 ;
3631 private double eliteSpeedMultiplier = 1.4 ;
3732 private double eliteKnockbackResistance = 0.8 ;
3833 private boolean eliteNameVisible = true ;
39- private int eliteShowDuration = 3 ;
4034 private boolean eliteStrengthEnabled = true ;
4135 private int eliteStrengthLevel = 0 ;
4236
@@ -114,7 +108,6 @@ private void loadHardenedSettings() {
114108 hardenedDamageMultiplier = config .getDouble ("hardened.damage-multiplier" , hardenedDamageMultiplier );
115109 hardenedKnockbackResistance = config .getDouble ("hardened.knockback-resistance" , hardenedKnockbackResistance );
116110 hardenedNameVisible = config .getBoolean ("hardened.name-visible" , hardenedNameVisible );
117- hardenedShowDuration = config .getInt ("hardened.show-duration" , hardenedShowDuration );
118111 }
119112
120113 private void loadEliteSettings () {
@@ -124,7 +117,6 @@ private void loadEliteSettings() {
124117 eliteSpeedMultiplier = config .getDouble ("elite.speed-multiplier" , eliteSpeedMultiplier );
125118 eliteKnockbackResistance = config .getDouble ("elite.knockback-resistance" , eliteKnockbackResistance );
126119 eliteNameVisible = config .getBoolean ("elite.name-visible" , eliteNameVisible );
127- eliteShowDuration = config .getInt ("elite.show-duration" , eliteShowDuration );
128120 eliteStrengthEnabled = config .getBoolean ("elite.strength.enabled" , eliteStrengthEnabled );
129121 eliteStrengthLevel = config .getInt ("elite.strength.level" , eliteStrengthLevel );
130122 }
@@ -190,9 +182,22 @@ private void loadSpecialAbilities() {
190182 }
191183
192184 // Getters
193- public double getHardenedChance () { return hardenedChance ; }
194- public double getEliteChance () { return eliteChance ; }
195- public boolean isMobEnabled (EntityType type ) { return enabledMobs .getOrDefault (type , false ); }
185+ public double getHardenedChance () {
186+ return hardenedChance ;
187+ }
188+
189+ public double getEliteChance () {
190+ return eliteChance ;
191+ }
192+
193+ public boolean isMobEnabled (EntityType type ) {
194+ return enabledMobs .getOrDefault (type , false );
195+ }
196+
197+ public String getMessage (String key ) {
198+ return config .getString ("messages." + key , "message-not-found: " + key );
199+ }
200+
196201 public boolean isMobEnabled (String mobName ) {
197202 if (mobName == null ) return false ;
198203
@@ -204,19 +209,42 @@ public boolean isMobEnabled(String mobName) {
204209 return false ;
205210 }
206211 }
207- public double getHardenedHpMultiplier () { return hardenedHpMultiplier ; }
208- public double getHardenedDamageMultiplier () { return hardenedDamageMultiplier ; }
209- public double getHardenedKnockbackResistance () { return hardenedKnockbackResistance ; }
210- public boolean isHardenedNameVisible () { return hardenedNameVisible ; }
211- public int getHardenedShowDuration () { return hardenedShowDuration ; }
212- public double getEliteHpMultiplier () { return eliteHpMultiplier ; }
213- public double getEliteDamageMultiplier () { return eliteDamageMultiplier ; }
214- public double getEliteSpeedMultiplier () { return eliteSpeedMultiplier ; }
215- public double getEliteKnockbackResistance () { return eliteKnockbackResistance ; }
216- public boolean isEliteNameVisible () { return eliteNameVisible ; }
217- public int getEliteShowDuration () { return eliteShowDuration ; }
218- public boolean isEliteStrengthEnabled () { return eliteStrengthEnabled ; }
219- public int getEliteStrengthLevel () { return eliteStrengthLevel ; }
212+
213+ public double getHardenedHpMultiplier () {
214+ return hardenedHpMultiplier ;
215+ }
216+
217+ public double getHardenedDamageMultiplier () {
218+ return hardenedDamageMultiplier ;
219+ }
220+
221+ public double getHardenedKnockbackResistance () {
222+ return hardenedKnockbackResistance ;
223+ }
224+
225+ public double getEliteHpMultiplier () {
226+ return eliteHpMultiplier ;
227+ }
228+
229+ public double getEliteDamageMultiplier () {
230+ return eliteDamageMultiplier ;
231+ }
232+
233+ public double getEliteSpeedMultiplier () {
234+ return eliteSpeedMultiplier ;
235+ }
236+
237+ public double getEliteKnockbackResistance () {
238+ return eliteKnockbackResistance ;
239+ }
240+
241+ public boolean isEliteStrengthEnabled () {
242+ return eliteStrengthEnabled ;
243+ }
244+
245+ public int getEliteStrengthLevel () {
246+ return eliteStrengthLevel ;
247+ }
220248
221249 public List <String > getEnabledMobTypes () {
222250 List <String > result = new ArrayList <>();
@@ -229,7 +257,14 @@ public List<String> getEnabledMobTypes() {
229257 return result ;
230258 }
231259
260+ public boolean isNameVisible (String type ) {
261+ if (Objects .equals (type , "hardened" )) return hardenedNameVisible ;
262+ else if (Objects .equals (type , "elite" )) return eliteNameVisible ;
263+ return false ;
264+ }
265+
232266 public String getDisplayName (String type , EntityType mobType ) {
267+ if (!isNameVisible (type )) return null ;
233268 Map <EntityType , String > names = displayNames .get (type );
234269 return names != null ? names .get (mobType ) : null ;
235270 }
@@ -265,7 +300,8 @@ private double parseDouble(Object obj, double def) {
265300 if (obj instanceof String str ) {
266301 try {
267302 return Double .parseDouble (str );
268- } catch (NumberFormatException ignored ) {}
303+ } catch (NumberFormatException ignored ) {
304+ }
269305 }
270306 return def ;
271307 }
0 commit comments