AdvancedConfig.java 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058
  1. package com.gmail.nossr50.config;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class AdvancedConfig extends AutoUpdateConfigLoader {
  5. private static AdvancedConfig instance;
  6. private AdvancedConfig() {
  7. super("advanced.yml");
  8. validate();
  9. }
  10. public static AdvancedConfig getInstance() {
  11. if (instance == null) {
  12. instance = new AdvancedConfig();
  13. }
  14. return instance;
  15. }
  16. @Override
  17. protected boolean validateKeys() {
  18. // Validate all the settings!
  19. List<String> reason = new ArrayList<String>();
  20. /* GENERAL */
  21. if (getAbilityLength() < 1) {
  22. reason.add("Skills.General.Ability_IncreaseLevel should be at least 1!");
  23. }
  24. if (getEnchantBuff() < 1) {
  25. reason.add("Skills.General.Ability_EnchantBuff should be at least 1!");
  26. }
  27. /* ACROBATICS */
  28. if (getDodgeChanceMax() < 1) {
  29. reason.add("Skills.Acrobatics.Dodge_ChanceMax should be at least 1!");
  30. }
  31. if (getDodgeMaxBonusLevel() < 1) {
  32. reason.add("Skills.Acrobatics.Dodge_MaxBonusLevel should be at least 1!");
  33. }
  34. if (getDodgeDamageModifier() <= 1) {
  35. reason.add("Skills.Acrobatics.Dodge_DamageModifier should be greater than 1!");
  36. }
  37. if (getRollChanceMax() < 1) {
  38. reason.add("Skills.Acrobatics.Roll_ChanceMax should be at least 1!");
  39. }
  40. if (getRollMaxBonusLevel() < 1) {
  41. reason.add("Skills.Acrobatics.Roll_MaxBonusLevel should be at least 1!");
  42. }
  43. if (getRollDamageThreshold() < 0) {
  44. reason.add("Skills.Acrobatics.Roll_DamageThreshold should be at least 0!");
  45. }
  46. if (getGracefulRollChanceMax() < 1) {
  47. reason.add("Skills.Acrobatics.GracefulRoll_ChanceMax should be at least 1!");
  48. }
  49. if (getGracefulRollMaxBonusLevel() < 1) {
  50. reason.add("Skills.Acrobatics.GracefulRoll_MaxBonusLevel should be at least 1!");
  51. }
  52. if (getGracefulRollDamageThreshold() < 0) {
  53. reason.add("Skills.Acrobatics.GracefulRoll_DamageThreshold should be at least 0!");
  54. }
  55. if (getDodgeXPModifier() < 0) {
  56. reason.add("Skills.Acrobatics.Dodge_XP_Modifier should be at least 0!");
  57. }
  58. if (getRollXPModifier() < 0) {
  59. reason.add("Skills.Acrobatics.Roll_XP_Modifier should be at least 0!");
  60. }
  61. if (getFallXPModifier() < 0) {
  62. reason.add("Skills.Acrobatics.Fall_XP_Modifier should be at least 0!");
  63. }
  64. /* ARCHERY */
  65. if (getSkillShotIncreaseLevel() < 1) {
  66. reason.add("Skills.Archery.SkillShot_IncreaseLevel should be at least 1!");
  67. }
  68. if (getSkillShotIncreasePercentage() <= 0) {
  69. reason.add("Skills.Archery.SkillShot_IncreasePercentage should be greater than 0!");
  70. }
  71. if (getSkillShotBonusMax() < 0) {
  72. reason.add("Skills.Archery.SkillShot_MaxBonus should be at least 0!");
  73. }
  74. if (getDazeBonusMax() < 1) {
  75. reason.add("Skills.Acrobatics.Daze_MaxChance should be at least 1!");
  76. }
  77. if (getDazeMaxBonusLevel() < 1) {
  78. reason.add("Skills.Acrobatics.Daze_MaxBonusLevel should be at least 1!");
  79. }
  80. if (getDazeModifier() < 0) {
  81. reason.add("Skills.Acrobatics.Daze_BonusDamage should be at least 0!");
  82. }
  83. if (getRetrieveChanceMax() < 1) {
  84. reason.add("Skills.Acrobatics.Retrieve_MaxBonus should be at least 1!");
  85. }
  86. if (getRetrieveMaxBonusLevel() < 1) {
  87. reason.add("Skills.Acrobatics.Retrieve_MaxBonusLevel should be at least 1!");
  88. }
  89. if (getForceMultiplier() < 0) {
  90. reason.add("Skills.Acrobatics.Force_Multiplier should be at least 0!");
  91. }
  92. /* AXES */
  93. if (getBonusDamageAxesBonusMax() < 1) {
  94. reason.add("Skills.Axes.DamageIncrease_MaxBonus should be at least 1!");
  95. }
  96. if (getBonusDamageAxesMaxBonusLevel() < 1) {
  97. reason.add("Skills.Axes.DamageIncrease_MaxBonusLevel should be at least 1!");
  98. }
  99. if (getAxesCriticalChance() < 1) {
  100. reason.add("Skills.Axes.AxesCritical_MaxChance should be at least 1!");
  101. }
  102. if (getAxesCriticalMaxBonusLevel() < 1) {
  103. reason.add("Skills.Axes.AxesCritical_MaxBonusLevel should be at least 1!");
  104. }
  105. if (getAxesCriticalPVPModifier() < 1) {
  106. reason.add("Skills.Axes.AxesCritical_PVP_Modifier should be at least 1!");
  107. }
  108. if (getAxesCriticalPVEModifier() < 1) {
  109. reason.add("Skills.Axes.AxesCritical_PVE_Modifier should be at least 1!");
  110. }
  111. if (getGreaterImpactChance() < 1) {
  112. reason.add("Skills.Axes.GreaterImpact_Chance should be at least 1!");
  113. }
  114. if (getGreaterImpactModifier() < 1) {
  115. reason.add("Skills.Axes.GreaterImpact_KnockbackModifier should be at least 1!");
  116. }
  117. if (getGreaterImpactBonusDamage() < 1) {
  118. reason.add("Skills.Axes.GreaterImpact_BonusDamage should be at least 1!");
  119. }
  120. if (getArmorImpactIncreaseLevel() < 1) {
  121. reason.add("Skills.Axes.ArmorImpact_IncreaseLevel should be at least 1!");
  122. }
  123. if (getImpactChance() < 1) {
  124. reason.add("Skills.Axes.ArmorImpact_Chance should be at least 1!");
  125. }
  126. if (getArmorImpactMaxDurabilityDamage() < 1) {
  127. reason.add("Skills.Axes.ArmorImpact_MaxPercentageDurabilityDamage should be at least 1!");
  128. }
  129. if (getSkullSplitterModifier() < 1) {
  130. reason.add("Skills.Axes.SkullSplitter_DamagerModifier should be at least 1!");
  131. }
  132. /* FISHING */
  133. if (getFishingTierLevelsTier1() >= getFishingTierLevelsTier2()) {
  134. reason.add("Skills.Fishing.Tier_Levels.Tier1 should be less than Skills.Fishing.Tier_Levels.Tier2!");
  135. }
  136. if (getFishingTierLevelsTier2() >= getFishingTierLevelsTier3()) {
  137. reason.add("Skills.Fishing.Tier_Levels.Tier2 should be less than Skills.Fishing.Tier_Levels.Tier3!");
  138. }
  139. if (getFishingTierLevelsTier3() >= getFishingTierLevelsTier4()) {
  140. reason.add("Skills.Fishing.Tier_Levels.Tier3 should be less than Skills.Fishing.Tier_Levels.Tier4!");
  141. }
  142. if (getFishingTierLevelsTier4() >= getFishingTierLevelsTier5()) {
  143. reason.add("Skills.Fishing.Tier_Levels.Tier4 should be less than Skills.Fishing.Tier_Levels.Tier5!");
  144. }
  145. if (getFishingMagicMultiplier() <= 0) {
  146. reason.add("Skills.Fishing.MagicHunter_Multiplier should be greater than 0!");
  147. }
  148. if (getFishermanDietRankChange() < 1) {
  149. reason.add("Skills.Fishing.Fisherman_Diet_RankChange should be at least 1!");
  150. }
  151. if (getIceFishingUnlockLevel() < 1) {
  152. reason.add("Skills.Fishing.Ice_Fishing_UnlockLevel should be at least 1!");
  153. }
  154. if (getShakeUnlockLevel() < 1) {
  155. reason.add("Skills.Fishing.Shake_UnlockLevel should be at least 1!");
  156. }
  157. if (getShakeChanceRank1() > getShakeChanceRank2()) {
  158. reason.add("Skills.Fishing.Shake_Chance.Rank_1 should be less or equal to Skills.Fishing.Shake_Chance.Rank_2!");
  159. }
  160. if (getShakeChanceRank2() > getShakeChanceRank3()) {
  161. reason.add("Skills.Fishing.Shake_Chance.Rank_2 should be less or equal to Skills.Fishing.Shake_Chance.Rank_3!");
  162. }
  163. if (getShakeChanceRank3() > getShakeChanceRank4()) {
  164. reason.add("Skills.Fishing.Shake_Chance.Rank_3 should be less or equal to Skills.Fishing.Shake_Chance.Rank_4!");
  165. }
  166. if (getShakeChanceRank4() > getShakeChanceRank5()) {
  167. reason.add("Skills.Fishing.Shake_Chance.Rank_4 should be less or equal to Skills.Fishing.Shake_Chance.Rank_5!");
  168. }
  169. if (getFishingVanillaXPModifierRank1() > getFishingVanillaXPModifierRank2()) {
  170. reason.add("Skills.Fishing.VanillaXPBoost.Rank_1 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_2!");
  171. }
  172. if (getFishingVanillaXPModifierRank2() > getFishingVanillaXPModifierRank3()) {
  173. reason.add("Skills.Fishing.VanillaXPBoost.Rank_2 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_3!");
  174. }
  175. if (getFishingVanillaXPModifierRank3() > getFishingVanillaXPModifierRank4()) {
  176. reason.add("Skills.Fishing.VanillaXPBoost.Rank_3 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_4!");
  177. }
  178. if (getFishingVanillaXPModifierRank4() > getFishingVanillaXPModifierRank5()) {
  179. reason.add("Skills.Fishing.VanillaXPBoost.Rank_4 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_5!");
  180. }
  181. if (getFishingVanillaXPModifierRank1() < 0) {
  182. reason.add("Skills.Fishing.VanillaXPBoost.Rank_1 should be at least 0!");
  183. }
  184. if (getFishingVanillaXPModifierRank2() < 0) {
  185. reason.add("Skills.Fishing.VanillaXPBoost.Rank_2 should be at least 0!");
  186. }
  187. if (getFishingVanillaXPModifierRank3() < 0) {
  188. reason.add("Skills.Fishing.VanillaXPBoost.Rank_3 should be at least 0!");
  189. }
  190. if (getFishingVanillaXPModifierRank4() < 0) {
  191. reason.add("Skills.Fishing.VanillaXPBoost.Rank_4 should be at least 0!");
  192. }
  193. if (getFishingVanillaXPModifierRank5() < 0) {
  194. reason.add("Skills.Fishing.VanillaXPBoost.Rank_5 should be at least 0!");
  195. }
  196. /* HERBALISM */
  197. if (getFarmerDietRankChange() < 1) {
  198. reason.add("Skills.Herbalism.Farmer_Diet_RankChange should be at least 1!");
  199. }
  200. if (getGreenThumbStageChange() < 1) {
  201. reason.add("Skills.Herbalism.GreenThumb_StageChange should be at least 1!");
  202. }
  203. if (getGreenThumbChanceMax() < 1) {
  204. reason.add("Skills.Herbalism.GreenThumb_ChanceMax should be at least 1!");
  205. }
  206. if (getGreenThumbMaxLevel() < 1) {
  207. reason.add("Skills.Herbalism.GreenThumb_MaxBonusLevel should be at least 1!");
  208. }
  209. if (getHerbalismDoubleDropsChanceMax() < 1) {
  210. reason.add("Skills.Herbalism.DoubleDrops_ChanceMax should be at least 1!");
  211. }
  212. if (getHerbalismDoubleDropsMaxLevel() < 1) {
  213. reason.add("Skills.Herbalism.DoubleDrops_MaxBonusLevel should be at least 1!");
  214. }
  215. if (getHylianLuckChanceMax() < 1) {
  216. reason.add("Skills.Herbalism.HylianLuck_ChanceMax should be at least 1!");
  217. }
  218. if (getHylianLuckMaxLevel() < 1) {
  219. reason.add("Skills.Herbalism.HylianLuck_MaxBonusLevel should be at least 1!");
  220. }
  221. if (getShroomThumbChanceMax() < 1) {
  222. reason.add("Skills.Herbalism.ShroomThumb_ChanceMax should be at least 1!");
  223. }
  224. if (getShroomThumbMaxLevel() < 1) {
  225. reason.add("Skills.Herbalism.ShroomThumb_MaxBonusLevel should be at least 1!");
  226. }
  227. /* MINING */
  228. if (getMiningDoubleDropChance() < 1) {
  229. reason.add("Skills.Mining.DoubleDrops_ChanceMax should be at least 1!");
  230. }
  231. if (getMiningDoubleDropMaxLevel() < 1) {
  232. reason.add("Skills.Mining.DoubleDrops_MaxBonusLevel should be at least 1!");
  233. }
  234. if (getBlastMiningRank1() > getBlastMiningRank2()) {
  235. reason.add("Skills.Mining.BlastMining_Rank1 should be less or equal to Skills.Mining.BlastMining_Rank2!");
  236. }
  237. if (getBlastMiningRank2() > getBlastMiningRank3()) {
  238. reason.add("Skills.Mining.BlastMining_Rank2 should be less or equal to Skills.Mining.BlastMining_Rank3!");
  239. }
  240. if (getBlastMiningRank3() > getBlastMiningRank4()) {
  241. reason.add("Skills.Mining.BlastMining_Rank3 should be less or equal to Skills.Mining.BlastMining_Rank4!");
  242. }
  243. if (getBlastMiningRank4() > getBlastMiningRank5()) {
  244. reason.add("Skills.Mining.BlastMining_Rank4 should be less or equal to Skills.Mining.BlastMining_Rank5!");
  245. }
  246. if (getBlastMiningRank5() > getBlastMiningRank6()) {
  247. reason.add("Skills.Mining.BlastMining_Rank5 should be less or equal to Skills.Mining.BlastMining_Rank6!");
  248. }
  249. if (getBlastMiningRank6() > getBlastMiningRank7()) {
  250. reason.add("Skills.Mining.BlastMining_Rank6 should be less or equal to Skills.Mining.BlastMining_Rank7!");
  251. }
  252. if (getBlastMiningRank7() > getBlastMiningRank8()) {
  253. reason.add("Skills.Mining.BlastMining_Rank7 should be less or equal to Skills.Mining.BlastMining_Rank8!");
  254. }
  255. if (getBlastDamageDecreaseRank1() > getBlastDamageDecreaseRank2()) {
  256. reason.add("Skills.Mining.BlastDamageDecrease_Rank1 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank2!");
  257. }
  258. if (getBlastDamageDecreaseRank2() > getBlastDamageDecreaseRank3()) {
  259. reason.add("Skills.Mining.BlastDamageDecrease_Rank2 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank3!");
  260. }
  261. if (getBlastDamageDecreaseRank3() > getBlastDamageDecreaseRank4()) {
  262. reason.add("Skills.Mining.BlastDamageDecrease_Rank3 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank4!");
  263. }
  264. if (getBlastDamageDecreaseRank4() > getBlastDamageDecreaseRank5()) {
  265. reason.add("Skills.Mining.BlastDamageDecrease_Rank4 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank5!");
  266. }
  267. if (getBlastDamageDecreaseRank5() > getBlastDamageDecreaseRank6()) {
  268. reason.add("Skills.Mining.BlastDamageDecrease_Rank5 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank6!");
  269. }
  270. if (getBlastDamageDecreaseRank6() > getBlastDamageDecreaseRank7()) {
  271. reason.add("Skills.Mining.BlastDamageDecrease_Rank6 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank7!");
  272. }
  273. if (getBlastDamageDecreaseRank7() > getBlastDamageDecreaseRank8()) {
  274. reason.add("Skills.Mining.BlastDamageDecrease_Rank7 should be less or equal to Skills.Mining.BlastDamageDecrease_Rank8!");
  275. }
  276. if (getOreBonusRank1() > getOreBonusRank2()) {
  277. reason.add("Skills.Mining.OreBonus_Rank1 should be less or equal to Skills.Mining.OreBonus_Rank2!");
  278. }
  279. if (getOreBonusRank2() > getOreBonusRank3()) {
  280. reason.add("Skills.Mining.OreBonus_Rank2 should be less or equal to Skills.Mining.OreBonus_Rank3!");
  281. }
  282. if (getOreBonusRank3() > getOreBonusRank4()) {
  283. reason.add("Skills.Mining.OreBonus_Rank3 should be less or equal to Skills.Mining.OreBonus_Rank4!");
  284. }
  285. if (getOreBonusRank4() > getOreBonusRank5()) {
  286. reason.add("Skills.Mining.OreBonus_Rank4 should be less or equal to Skills.Mining.OreBonus_Rank5!");
  287. }
  288. if (getOreBonusRank5() > getOreBonusRank6()) {
  289. reason.add("Skills.Mining.OreBonus_Rank5 should be less or equal to Skills.Mining.OreBonus_Rank6!");
  290. }
  291. if (getOreBonusRank6() > getOreBonusRank7()) {
  292. reason.add("Skills.Mining.OreBonus_Rank6 should be less or equal to Skills.Mining.OreBonus_Rank7!");
  293. }
  294. if (getOreBonusRank7() > getOreBonusRank8()) {
  295. reason.add("Skills.Mining.OreBonus_Rank7 should be less or equal to Skills.Mining.OreBonus_Rank8!");
  296. }
  297. if (getDebrisReductionRank1() > getDebrisReductionRank2()) {
  298. reason.add("Skills.Mining.DebrisReduction_Rank1 should be less or equal to Skills.Mining.DebrisReduction_Rank2!");
  299. }
  300. if (getDebrisReductionRank2() > getDebrisReductionRank3()) {
  301. reason.add("Skills.Mining.DebrisReduction_Rank2 should be less or equal to Skills.Mining.DebrisReduction_Rank3!");
  302. }
  303. if (getDebrisReductionRank3() > getDebrisReductionRank4()) {
  304. reason.add("Skills.Mining.DebrisReduction_Rank3 should be less or equal to Skills.Mining.DebrisReduction_Rank4!");
  305. }
  306. if (getDebrisReductionRank4() > getDebrisReductionRank5()) {
  307. reason.add("Skills.Mining.DebrisReduction_Rank4 should be less or equal to Skills.Mining.DebrisReduction_Rank5!");
  308. }
  309. if (getDebrisReductionRank5() > getDebrisReductionRank6()) {
  310. reason.add("Skills.Mining.DebrisReduction_Rank5 should be less or equal to Skills.Mining.DebrisReduction_Rank6!");
  311. }
  312. if (getDebrisReductionRank6() > getDebrisReductionRank7()) {
  313. reason.add("Skills.Mining.DebrisReduction_Rank6 should be less or equal to Skills.Mining.DebrisReduction_Rank7!");
  314. }
  315. if (getDebrisReductionRank7() > getDebrisReductionRank8()) {
  316. reason.add("Skills.Mining.DebrisReduction_Rank7 should be less or equal to Skills.Mining.DebrisReduction_Rank8!");
  317. }
  318. if (getDropMultiplierRank1() > getDropMultiplierRank2()) {
  319. reason.add("Skills.Mining.DropMultiplier_Rank1 should be less or equal to Skills.Mining.DropMultiplier_Rank2!");
  320. }
  321. if (getDropMultiplierRank2() > getDropMultiplierRank3()) {
  322. reason.add("Skills.Mining.DropMultiplier_Rank2 should be less or equal to Skills.Mining.DropMultiplier_Rank3!");
  323. }
  324. if (getDropMultiplierRank3() > getDropMultiplierRank4()) {
  325. reason.add("Skills.Mining.DropMultiplier_Rank3 should be less or equal to Skills.Mining.DropMultiplier_Rank4!");
  326. }
  327. if (getDropMultiplierRank4() > getDropMultiplierRank5()) {
  328. reason.add("Skills.Mining.DropMultiplier_Rank4 should be less or equal to Skills.Mining.DropMultiplier_Rank5!");
  329. }
  330. if (getDropMultiplierRank5() > getDropMultiplierRank6()) {
  331. reason.add("Skills.Mining.DropMultiplier_Rank5 should be less or equal to Skills.Mining.DropMultiplier_Rank6!");
  332. }
  333. if (getDropMultiplierRank6() > getDropMultiplierRank7()) {
  334. reason.add("Skills.Mining.DropMultiplier_Rank6 should be less or equal to Skills.Mining.DropMultiplier_Rank7!");
  335. }
  336. if (getDropMultiplierRank7() > getDropMultiplierRank8()) {
  337. reason.add("Skills.Mining.DropMultiplier_Rank7 should be less or equal to Skills.Mining.DropMultiplier_Rank8!");
  338. }
  339. if (getBlastRadiusModifierRank1() > getBlastRadiusModifierRank2()) {
  340. reason.add("Skills.Mining.BlastRadiusModifier_Rank1 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank2!");
  341. }
  342. if (getBlastRadiusModifierRank2() > getBlastRadiusModifierRank3()) {
  343. reason.add("Skills.Mining.BlastRadiusModifier_Rank2 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank3!");
  344. }
  345. if (getBlastRadiusModifierRank3() > getBlastRadiusModifierRank4()) {
  346. reason.add("Skills.Mining.BlastRadiusModifier_Rank3 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank4!");
  347. }
  348. if (getBlastRadiusModifierRank4() > getBlastRadiusModifierRank5()) {
  349. reason.add("Skills.Mining.BlastRadiusModifier_Rank4 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank5!");
  350. }
  351. if (getBlastRadiusModifierRank5() > getBlastRadiusModifierRank6()) {
  352. reason.add("Skills.Mining.BlastRadiusModifier_Rank5 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank6!");
  353. }
  354. if (getBlastRadiusModifierRank6() > getBlastRadiusModifierRank7()) {
  355. reason.add("Skills.Mining.BlastRadiusModifier_Rank6 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank7!");
  356. }
  357. if (getBlastRadiusModifierRank7() > getBlastRadiusModifierRank8()) {
  358. reason.add("Skills.Mining.BlastRadiusModifier_Rank7 should be less or equal to Skills.Mining.BlastRadiusModifier_Rank8!");
  359. }
  360. /* REPAIR */
  361. if (getRepairMasteryMaxBonus() < 1) {
  362. reason.add("Skills.Repair.RepairMastery_MaxBonusPercentage should be at least 1!");
  363. }
  364. if (getRepairMasteryMaxLevel() < 1) {
  365. reason.add("Skills.Repair.RepairMastery_MaxBonusLevel should be at least 1!");
  366. }
  367. if (getSuperRepairChanceMax() < 1) {
  368. reason.add("Skills.Repair.SuperRepair_ChanceMax should be at least 1!");
  369. }
  370. if (getSuperRepairMaxLevel() < 1) {
  371. reason.add("Skills.Repair.SuperRepair_MaxBonusLevel should be at least 1!");
  372. }
  373. if (getSalvageUnlockLevel() < 1) {
  374. reason.add("Skills.Repair.Salvage_UnlockLevel should be at least 1!");
  375. }
  376. if (getArcaneForgingDowngradeChanceRank1() < 0 || getArcaneForgingDowngradeChanceRank1() > 100) {
  377. reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_1 only accepts values from 0 to 100!");
  378. }
  379. if (getArcaneForgingDowngradeChanceRank2() < 0 || getArcaneForgingDowngradeChanceRank2() > 100) {
  380. reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_2 only accepts values from 0 to 100!");
  381. }
  382. if (getArcaneForgingDowngradeChanceRank3() < 0 || getArcaneForgingDowngradeChanceRank3() > 100) {
  383. reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_3 only accepts values from 0 to 100!");
  384. }
  385. if (getArcaneForgingDowngradeChanceRank4() < 0 || getArcaneForgingDowngradeChanceRank4() > 100) {
  386. reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_4 only accepts values from 0 to 100!");
  387. }
  388. if (getArcaneForgingKeepEnchantsChanceRank1() < 0 || getArcaneForgingKeepEnchantsChanceRank1() > 100) {
  389. reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_1 only accepts values from 0 to 100!");
  390. }
  391. if (getArcaneForgingKeepEnchantsChanceRank2() < 0 || getArcaneForgingKeepEnchantsChanceRank2() > 100) {
  392. reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_2 only accepts values from 0 to 100!");
  393. }
  394. if (getArcaneForgingKeepEnchantsChanceRank3() < 0 || getArcaneForgingKeepEnchantsChanceRank3() > 100) {
  395. reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_3 only accepts values from 0 to 100!");
  396. }
  397. if (getArcaneForgingKeepEnchantsChanceRank4() < 0 || getArcaneForgingKeepEnchantsChanceRank4() > 100) {
  398. reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_4 only accepts values from 0 to 100!");
  399. }
  400. if (getArcaneForgingRankLevels1() < 0) {
  401. reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_1 should be at least 0!");
  402. }
  403. if (getArcaneForgingRankLevels2() < 0) {
  404. reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_2 should be at least 0!");
  405. }
  406. if (getArcaneForgingRankLevels3() < 0) {
  407. reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_3 should be at least 0!");
  408. }
  409. if (getArcaneForgingRankLevels4() < 0) {
  410. reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_4 should be at least 0!");
  411. }
  412. /* SMELTING */
  413. if (getBurnModifierMaxLevel() < 1) {
  414. reason.add("Skills.Smelting.FuelEfficiency_MaxBonusLevel should be at least 1!");
  415. }
  416. if (getBurnTimeMultiplier() < 1) {
  417. reason.add("Skills.Smelting.FuelEfficiency_Multiplier should be at least 1!");
  418. }
  419. if (getSecondSmeltMaxLevel() < 1) {
  420. reason.add("Skills.Smelting.SecondSmelt_MaxBonusLevel should be at least 1!");
  421. }
  422. if (getSecondSmeltMaxChance() < 1) {
  423. reason.add("Skills.Smelting.SecondSmelt_MaxBonusChance should be at least 1!");
  424. }
  425. if (getFluxMiningUnlockLevel() < 1) {
  426. reason.add("Skills.Smelting.FluxMining_UnlockLevel should be at least 1!");
  427. }
  428. if (getFluxMiningChance() < 1) {
  429. reason.add("Skills.Smelting.FluxMining_Chance should be at least 1!");
  430. }
  431. if (getSmeltingVanillaXPBoostRank1Level() > getSmeltingVanillaXPBoostRank2Level()) {
  432. reason.add("Skills.Smelting.VanillaXPBoost_Rank1Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank2Level!");
  433. }
  434. if (getSmeltingVanillaXPBoostRank2Level() > getSmeltingVanillaXPBoostRank3Level()) {
  435. reason.add("Skills.Smelting.VanillaXPBoost_Rank2Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank3Level!");
  436. }
  437. if (getSmeltingVanillaXPBoostRank3Level() > getSmeltingVanillaXPBoostRank4Level()) {
  438. reason.add("Skills.Smelting.VanillaXPBoost_Rank3Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank4Level!");
  439. }
  440. if (getSmeltingVanillaXPBoostRank4Level() > getSmeltingVanillaXPBoostRank5Level()) {
  441. reason.add("Skills.Smelting.VanillaXPBoost_Rank4Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank5Level!");
  442. }
  443. if (getSmeltingVanillaXPBoostRank1Multiplier() < 1) {
  444. reason.add("Skills.Smelting.VanillaXPBoost_Rank1Multiplier should be at least 1!");
  445. }
  446. if (getSmeltingVanillaXPBoostRank2Multiplier() < 1) {
  447. reason.add("Skills.Smelting.VanillaXPBoost_Rank2Multiplier should be at least 1!");
  448. }
  449. if (getSmeltingVanillaXPBoostRank3Multiplier() < 1) {
  450. reason.add("Skills.Smelting.VanillaXPBoost_Rank3Multiplier should be at least 1!");
  451. }
  452. if (getSmeltingVanillaXPBoostRank4Multiplier() < 1) {
  453. reason.add("Skills.Smelting.VanillaXPBoost_Rank4Multiplier should be at least 1!");
  454. }
  455. if (getSmeltingVanillaXPBoostRank5Multiplier() < 1) {
  456. reason.add("Skills.Smelting.VanillaXPBoost_Rank5Multiplier should be at least 1!");
  457. }
  458. /* SWORDS */
  459. if (getBleedChanceMax() < 1) {
  460. reason.add("Skills.Swords.Bleed_ChanceMax should be at least 1!");
  461. }
  462. if (getBleedMaxBonusLevel() < 1) {
  463. reason.add("Skills.Swords.Bleed_MaxBonusLevel should be at least 1!");
  464. }
  465. if (getBleedMaxTicks() < 1) {
  466. reason.add("Skills.Swords.Bleed_MaxTicks should be at least 1!");
  467. }
  468. if (getBleedMaxTicks() < getBleedBaseTicks()) {
  469. reason.add("Skills.Swords.Bleed_MaxTicks should be at least Skills.Swords.Bleed_BaseTicks!");
  470. }
  471. if (getBleedBaseTicks() < 1) {
  472. reason.add("Skills.Swords.Bleed_BaseTicks should be at least 1!");
  473. }
  474. if (getCounterChanceMax() < 1) {
  475. reason.add("Skills.Swords.Counter_ChanceMax should be at least 1!");
  476. }
  477. if (getCounterMaxBonusLevel() < 1) {
  478. reason.add("Skills.Swords.Counter_MaxBonusLevel should be at least 1!");
  479. }
  480. if (getCounterModifier() < 1) {
  481. reason.add("Skills.Swords.Counter_DamageModifier should be at least 1!");
  482. }
  483. if (getSerratedStrikesModifier() < 1) {
  484. reason.add("Skills.Swords.SerratedStrikes_DamageModifier should be at least 1!");
  485. }
  486. if (getSerratedStrikesTicks() < 1) {
  487. reason.add("Skills.Swords.SerratedStrikes_BleedTicks should be at least 1!");
  488. }
  489. /* TAMING */
  490. if (getGoreChanceMax() < 1) {
  491. reason.add("Skills.Taming.Gore_ChanceMax should be at least 1!");
  492. }
  493. if (getGoreMaxBonusLevel() < 1) {
  494. reason.add("Skills.Taming.Gore_MaxBonusLevel should be at least 1!");
  495. }
  496. if (getGoreBleedTicks() < 1) {
  497. reason.add("Skills.Taming.Gore_BleedTicks should be at least 1!");
  498. }
  499. if (getGoreModifier() < 1) {
  500. reason.add("Skills.Taming.Gore_Modifier should be at least 1!");
  501. }
  502. if (getFastFoodUnlock() < 1) {
  503. reason.add("Skills.Taming.FastFood_UnlockLevel should be at least 1!");
  504. }
  505. if (getFastFoodChance() < 1) {
  506. reason.add("Skills.Taming.FastFood_Chance should be at least 1!");
  507. }
  508. if (getEnviromentallyAwareUnlock() < 1) {
  509. reason.add("Skills.Taming.EnvironmentallyAware_UnlockLevel should be at least 1!");
  510. }
  511. if (getThickFurUnlock() < 1) {
  512. reason.add("Skills.Taming.ThickFur_UnlockLevel should be at least 1!");
  513. }
  514. if (getThickFurModifier() < 1) {
  515. reason.add("Skills.Taming.ThickFur_Modifier should be at least 1!");
  516. }
  517. if (getHolyHoundUnlock() < 1) {
  518. reason.add("Skills.Taming.HolyHound_UnlockLevel should be at least 1!");
  519. }
  520. if (getShockProofUnlock() < 1) {
  521. reason.add("Skills.Taming.ShockProof_UnlockLevel should be at least 1!");
  522. }
  523. if (getShockProofModifier() < 1) {
  524. reason.add("Skills.Taming.ShockProof_Modifier should be at least 1!");
  525. }
  526. if (getSharpenedClawsUnlock() < 1) {
  527. reason.add("Skills.Taming.SharpenedClaws_UnlockLevel should be at least 1!");
  528. }
  529. if (getSharpenedClawsBonus() < 1) {
  530. reason.add("Skills.Taming.SharpenedClaws_Bonus should be at least 1!");
  531. }
  532. /* UNARMED */
  533. if (getDisarmChanceMax() < 1) {
  534. reason.add("Skills.Unarmed.Disarm_ChanceMax should be at least 1!");
  535. }
  536. if (getDisarmMaxBonusLevel() < 1) {
  537. reason.add("Skills.Unarmed.Disarm_MaxBonusLevel should be at least 1!");
  538. }
  539. if (getDeflectChanceMax() < 1) {
  540. reason.add("Skills.Unarmed.Deflect_ChanceMax should be at least 1!");
  541. }
  542. if (getDeflectMaxBonusLevel() < 1) {
  543. reason.add("Skills.Unarmed.Deflect_MaxBonusLevel should be at least 1!");
  544. }
  545. if (getIronGripChanceMax() < 1) {
  546. reason.add("Skills.Unarmed.IronGrip_ChanceMax should be at least 1!");
  547. }
  548. if (getIronGripMaxBonusLevel() < 1) {
  549. reason.add("Skills.Unarmed.IronGrip_MaxBonusLevel should be at least 1!");
  550. }
  551. if (getIronArmMinBonus() < 0) {
  552. reason.add("Skills.Unarmed.IronArm_BonusMin should be at least 0!");
  553. }
  554. if (getIronArmMaxBonus() < 0) {
  555. reason.add("Skills.Unarmed.IronArm_BonusMax should be at least 0!");
  556. }
  557. if (getIronArmMaxBonus() < getIronArmMinBonus()) {
  558. reason.add("Skills.Unarmed.IronArm_BonusMax should be greater than or equal to Skills.Unarmed.IronArm_BonusMin!");
  559. }
  560. if (getIronArmIncreaseLevel() < 1) {
  561. reason.add("Skills.Unarmed.IronArm_IncreaseLevel should be at least 1!");
  562. }
  563. /* WOODCUTTING */
  564. if (getLeafBlowUnlockLevel() < 1) {
  565. reason.add("Skills.Woodcutting.LeafBlower_UnlockLevel should be at least 1!");
  566. }
  567. if (getWoodcuttingDoubleDropChance() < 1) {
  568. reason.add("Skills.Woodcutting.DoubleDrops_ChanceMax should be at least 1!");
  569. }
  570. if (getWoodcuttingDoubleDropMaxLevel() < 1) {
  571. reason.add("Skills.Woodcutting.DoubleDrops_MaxBonusLevel should be at least 1!");
  572. }
  573. /* KRAKEN */
  574. if (getKrakenTriesBeforeRelease() < 1) {
  575. reason.add("Kraken.Tries_Before_Release should be at least 1!");
  576. }
  577. if (getKrakenHealth() < 1) {
  578. reason.add("Kraken.Health should be at least 1!");
  579. }
  580. if (getKrakenAttackInterval() < 1) {
  581. reason.add("Kraken.Attack_Interval_Seconds should be at least 1!");
  582. }
  583. if (getKrakenAttackDamage() < 1) {
  584. reason.add("Kraken.Attack_Damage should be at least 1!");
  585. }
  586. return noErrorsInConfig(reason);
  587. }
  588. @Override
  589. protected void loadKeys() {}
  590. /* GENERAL */
  591. public int getAbilityLength() { return config.getInt("Skills.General.Ability_IncreaseLevel", 50); }
  592. public int getEnchantBuff() { return config.getInt("Skills.General.Ability_EnchantBuff", 5); }
  593. /* ACROBATICS */
  594. public double getDodgeChanceMax() { return config.getDouble("Skills.Acrobatics.Dodge_ChanceMax", 20.0D); }
  595. public int getDodgeMaxBonusLevel() { return config.getInt("Skills.Acrobatics.Dodge_MaxBonusLevel", 800); }
  596. public int getDodgeDamageModifier() { return config.getInt("Skills.Acrobatics.Dodge_DamageModifier", 2); }
  597. public double getRollChanceMax() { return config.getDouble("Skills.Acrobatics.Roll_ChanceMax", 100.0D); }
  598. public int getRollMaxBonusLevel() { return config.getInt("Skills.Acrobatics.Roll_MaxBonusLevel", 1000); }
  599. public int getRollDamageThreshold() { return config.getInt("Skills.Acrobatics.Roll_DamageThreshold", 7); }
  600. public double getGracefulRollChanceMax() { return config.getDouble("Skills.Acrobatics.GracefulRoll_ChanceMax", 100.0D); }
  601. public int getGracefulRollMaxBonusLevel() { return config.getInt("Skills.Acrobatics.GracefulRoll_MaxBonusLevel", 500); }
  602. public int getGracefulRollDamageThreshold() { return config.getInt("Skills.Acrobatics.GracefulRoll_DamageThreshold", 14); }
  603. public int getDodgeXPModifier() { return config.getInt("Skills.Acrobatics.Dodge_XP_Modifier", 120); }
  604. public int getRollXPModifier() { return config.getInt("Skills.Acrobatics.Roll_XP_Modifier", 80); }
  605. public int getFallXPModifier() { return config.getInt("Skills.Acrobatics.Fall_XP_Modifier", 120); }
  606. /* ARCHERY */
  607. public int getSkillShotIncreaseLevel() { return config.getInt("Skills.Archery.SkillShot_IncreaseLevel", 50); }
  608. public double getSkillShotIncreasePercentage() { return config.getDouble("Skills.Archery.SkillShot_IncreasePercentage", 0.1D); }
  609. public double getSkillShotBonusMax() { return config.getDouble("Skills.Archery.SkillShot_MaxBonus", 2.0D); }
  610. public double getDazeBonusMax() { return config.getDouble("Skills.Archery.Daze_MaxChance", 50.0D); }
  611. public int getDazeMaxBonusLevel() { return config.getInt("Skills.Archery.Daze_MaxBonusLevel", 1000); }
  612. public int getDazeModifier() { return config.getInt("Skills.Archery.Daze_BonusDamage", 4); }
  613. public double getRetrieveChanceMax() { return config.getDouble("Skills.Archery.Retrieve_MaxBonus", 100.0D); }
  614. public int getRetrieveMaxBonusLevel() { return config.getInt("Skills.Archery.Retrieve_MaxBonusLevel", 1000); }
  615. public double getForceMultiplier() { return config.getDouble("Skills.Archery.Force_Multiplier", 2.0D); }
  616. /* AXES */
  617. public int getBonusDamageAxesBonusMax() { return config.getInt("Skills.Axes.DamageIncrease_MaxBonus", 4); }
  618. public int getBonusDamageAxesMaxBonusLevel() { return config.getInt("Skills.Axes.DamageIncrease_MaxBonusLevel", 200); }
  619. public double getAxesCriticalChance() { return config.getDouble("Skills.Axes.AxesCritical_MaxChance", 37.50D); }
  620. public int getAxesCriticalMaxBonusLevel() { return config.getInt("Skills.Axes.AxesCritical_MaxBonusLevel", 750); }
  621. public double getAxesCriticalPVPModifier() { return config.getDouble("Skills.Axes.AxesCritical_PVP_Modifier", 1.5D); }
  622. public double getAxesCriticalPVEModifier() { return config.getDouble("Skills.Axes.AxesCritical_PVE_Modifier", 2.0D); }
  623. public double getGreaterImpactChance() { return config.getDouble("Skills.Axes.GreaterImpact_Chance", 25.0D); }
  624. public double getGreaterImpactModifier() { return config.getDouble("Skills.Axes.GreaterImpact_KnockbackModifier", 1.5); }
  625. public int getGreaterImpactBonusDamage() { return config.getInt("Skills.Axes.GreaterImpact_BonusDamage", 2); }
  626. public int getArmorImpactIncreaseLevel() { return config.getInt("Skills.Axes.ArmorImpact_IncreaseLevel", 50); }
  627. public double getImpactChance() { return config.getDouble("Skills.Axes.ArmorImpact_Chance", 25.0D); }
  628. public double getArmorImpactMaxDurabilityDamage() { return config.getDouble("Skills.Axes.ArmorImpact_MaxPercentageDurabilityDamage", 20.0D); }
  629. public int getSkullSplitterModifier() { return config.getInt("Skills.Axes.SkullSplitter_DamagerModifier", 2); }
  630. /* EXCAVATION */
  631. //Nothing to configure, everything is already configurable in config.yml
  632. /* FISHING */
  633. public int getFishingTierLevelsTier1() { return config.getInt("Skills.Fishing.Tier_Levels.Tier1", 0); }
  634. public int getFishingTierLevelsTier2() { return config.getInt("Skills.Fishing.Tier_Levels.Tier2", 200); }
  635. public int getFishingTierLevelsTier3() { return config.getInt("Skills.Fishing.Tier_Levels.Tier3", 400); }
  636. public int getFishingTierLevelsTier4() { return config.getInt("Skills.Fishing.Tier_Levels.Tier4", 600); }
  637. public int getFishingTierLevelsTier5() { return config.getInt("Skills.Fishing.Tier_Levels.Tier5", 800); }
  638. public int getFishingMagicMultiplier() { return config.getInt("Skills.Fishing.MagicHunter_Multiplier", 5); }
  639. public int getFishermanDietRankChange() { return config.getInt("Skills.Fishing.Fisherman_Diet_RankChange", 200); }
  640. public int getIceFishingUnlockLevel() { return config.getInt("Skills.Fishing.Ice_Fishing_UnlockLevel", 50); }
  641. /* Shake */
  642. public int getShakeUnlockLevel() { return config.getInt("Skills.Fishing.Shake_UnlockLevel", 150); }
  643. public int getShakeChanceRank1() { return config.getInt("Skills.Fishing.Shake_Chance.Rank_1", 25); }
  644. public int getShakeChanceRank2() { return config.getInt("Skills.Fishing.Shake_Chance.Rank_2", 40); }
  645. public int getShakeChanceRank3() { return config.getInt("Skills.Fishing.Shake_Chance.Rank_3", 55); }
  646. public int getShakeChanceRank4() { return config.getInt("Skills.Fishing.Shake_Chance.Rank_4", 60); }
  647. public int getShakeChanceRank5() { return config.getInt("Skills.Fishing.Shake_Chance.Rank_5", 75); }
  648. /* Vanilla XP Boost */
  649. public int getFishingVanillaXPModifierRank1() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_1", 1); }
  650. public int getFishingVanillaXPModifierRank2() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_2", 2); }
  651. public int getFishingVanillaXPModifierRank3() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_3", 3); }
  652. public int getFishingVanillaXPModifierRank4() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_4", 4); }
  653. public int getFishingVanillaXPModifierRank5() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_5", 5); }
  654. /* HERBALISM */
  655. public int getFarmerDietRankChange() { return config.getInt("Skills.Herbalism.Farmer_Diet_RankChange", 200); }
  656. public int getGreenThumbStageChange() { return config.getInt("Skills.Herbalism.GreenThumb_StageChange", 200); }
  657. public double getGreenThumbChanceMax() { return config.getDouble("Skills.Herbalism.GreenThumb_ChanceMax", 100.0D); }
  658. public int getGreenThumbMaxLevel() { return config.getInt("Skills.Herbalism.GreenThumb_MaxBonusLevel", 1500); }
  659. public double getHerbalismDoubleDropsChanceMax() { return config.getDouble("Skills.Herbalism.DoubleDrops_ChanceMax", 100.0D); }
  660. public int getHerbalismDoubleDropsMaxLevel() { return config.getInt("Skills.Herbalism.DoubleDrops_MaxBonusLevel", 1000); }
  661. public double getHylianLuckChanceMax() { return config.getDouble("Skills.Herbalism.HylianLuck_ChanceMax", 10.0D); }
  662. public int getHylianLuckMaxLevel() { return config.getInt("Skills.Herbalism.HylianLuck_MaxBonusLevel", 1000); }
  663. public double getShroomThumbChanceMax() { return config.getDouble("Skills.Herbalism.ShroomThumb_ChanceMax", 50.0D); }
  664. public int getShroomThumbMaxLevel() { return config.getInt("Skills.Herbalism.ShroomThumb_MaxBonusLevel", 1500); }
  665. /* MINING */
  666. public double getMiningDoubleDropChance() { return config.getDouble("Skills.Mining.DoubleDrops_ChanceMax", 100.0D); }
  667. public int getMiningDoubleDropMaxLevel() { return config.getInt("Skills.Mining.DoubleDrops_MaxBonusLevel", 1000); }
  668. public int getBlastMiningRank1() { return config.getInt("Skills.Mining.BlastMining_Rank1", 125); }
  669. public int getBlastMiningRank2() { return config.getInt("Skills.Mining.BlastMining_Rank2", 250); }
  670. public int getBlastMiningRank3() { return config.getInt("Skills.Mining.BlastMining_Rank3", 375); }
  671. public int getBlastMiningRank4() { return config.getInt("Skills.Mining.BlastMining_Rank4", 500); }
  672. public int getBlastMiningRank5() { return config.getInt("Skills.Mining.BlastMining_Rank5", 625); }
  673. public int getBlastMiningRank6() { return config.getInt("Skills.Mining.BlastMining_Rank6", 750); }
  674. public int getBlastMiningRank7() { return config.getInt("Skills.Mining.BlastMining_Rank7", 875); }
  675. public int getBlastMiningRank8() { return config.getInt("Skills.Mining.BlastMining_Rank8", 1000); }
  676. public double getBlastDamageDecreaseRank1() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank1", 0.0D); }
  677. public double getBlastDamageDecreaseRank2() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank2", 0.0D); }
  678. public double getBlastDamageDecreaseRank3() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank3", 0.0D); }
  679. public double getBlastDamageDecreaseRank4() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank4", 25.0D); }
  680. public double getBlastDamageDecreaseRank5() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank5", 25.0D); }
  681. public double getBlastDamageDecreaseRank6() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank6", 50.0D); }
  682. public double getBlastDamageDecreaseRank7() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank7", 50.0D); }
  683. public double getBlastDamageDecreaseRank8() { return config.getDouble("Skills.Mining.BlastDamageDecrease_Rank8", 100.0D); }
  684. public double getOreBonusRank1() { return config.getDouble("Skills.Mining.OreBonus_Rank1", 35.0D); }
  685. public double getOreBonusRank2() { return config.getDouble("Skills.Mining.OreBonus_Rank2", 40.0D); }
  686. public double getOreBonusRank3() { return config.getDouble("Skills.Mining.OreBonus_Rank3", 45.0D); }
  687. public double getOreBonusRank4() { return config.getDouble("Skills.Mining.OreBonus_Rank4", 50.0D); }
  688. public double getOreBonusRank5() { return config.getDouble("Skills.Mining.OreBonus_Rank5", 55.0D); }
  689. public double getOreBonusRank6() { return config.getDouble("Skills.Mining.OreBonus_Rank6", 60.0D); }
  690. public double getOreBonusRank7() { return config.getDouble("Skills.Mining.OreBonus_Rank7", 65.0D); }
  691. public double getOreBonusRank8() { return config.getDouble("Skills.Mining.OreBonus_Rank8", 70.0D); }
  692. public double getDebrisReductionRank1() { return config.getDouble("Skills.Mining.DebrisReduction_Rank1", 10.0D); }
  693. public double getDebrisReductionRank2() { return config.getDouble("Skills.Mining.DebrisReduction_Rank2", 20.0D); }
  694. public double getDebrisReductionRank3() { return config.getDouble("Skills.Mining.DebrisReduction_Rank3", 30.0D); }
  695. public double getDebrisReductionRank4() { return config.getDouble("Skills.Mining.DebrisReduction_Rank4", 30.0D); }
  696. public double getDebrisReductionRank5() { return config.getDouble("Skills.Mining.DebrisReduction_Rank5", 30.0D); }
  697. public double getDebrisReductionRank6() { return config.getDouble("Skills.Mining.DebrisReduction_Rank6", 30.0D); }
  698. public double getDebrisReductionRank7() { return config.getDouble("Skills.Mining.DebrisReduction_Rank7", 30.0D); }
  699. public double getDebrisReductionRank8() { return config.getDouble("Skills.Mining.DebrisReduction_Rank8", 30.0D); }
  700. public int getDropMultiplierRank1() { return config.getInt("Skills.Mining.DropMultiplier_Rank1", 1); }
  701. public int getDropMultiplierRank2() { return config.getInt("Skills.Mining.DropMultiplier_Rank2", 1); }
  702. public int getDropMultiplierRank3() { return config.getInt("Skills.Mining.DropMultiplier_Rank3", 1); }
  703. public int getDropMultiplierRank4() { return config.getInt("Skills.Mining.DropMultiplier_Rank4", 1); }
  704. public int getDropMultiplierRank5() { return config.getInt("Skills.Mining.DropMultiplier_Rank5", 2); }
  705. public int getDropMultiplierRank6() { return config.getInt("Skills.Mining.DropMultiplier_Rank6", 2); }
  706. public int getDropMultiplierRank7() { return config.getInt("Skills.Mining.DropMultiplier_Rank7", 3); }
  707. public int getDropMultiplierRank8() { return config.getInt("Skills.Mining.DropMultiplier_Rank8", 3); }
  708. public double getBlastRadiusModifierRank1() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank1", 1.0); }
  709. public double getBlastRadiusModifierRank2() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank2", 1.0); }
  710. public double getBlastRadiusModifierRank3() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank3", 2.0); }
  711. public double getBlastRadiusModifierRank4() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank4", 2.0); }
  712. public double getBlastRadiusModifierRank5() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank5", 3.0); }
  713. public double getBlastRadiusModifierRank6() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank6", 3.0); }
  714. public double getBlastRadiusModifierRank7() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank7", 4.0); }
  715. public double getBlastRadiusModifierRank8() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank8", 4.0); }
  716. /* REPAIR */
  717. public double getRepairMasteryMaxBonus() { return config.getDouble("Skills.Repair.RepairMastery_MaxBonusPercentage", 200.0D); }
  718. public int getRepairMasteryMaxLevel() { return config.getInt("Skills.Repair.RepairMastery_MaxBonusLevel", 1000); }
  719. public double getSuperRepairChanceMax() { return config.getDouble("Skills.Repair.SuperRepair_ChanceMax", 100.0D); }
  720. public int getSuperRepairMaxLevel() { return config.getInt("Skills.Repair.SuperRepair_MaxBonusLevel", 1000); }
  721. public int getSalvageUnlockLevel() { return config.getInt("Skills.Repair.Salvage_UnlockLevel", 600); }
  722. /* Arcane Forging */
  723. public boolean getArcaneForgingDowngradeEnabled() { return config.getBoolean("Skills.Repair.Arcane_Forging.Downgrades.Enabled", true); }
  724. public int getArcaneForgingDowngradeChanceRank1() { return config.getInt("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_1", 75); }
  725. public int getArcaneForgingDowngradeChanceRank2() { return config.getInt("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_2", 50); }
  726. public int getArcaneForgingDowngradeChanceRank3() { return config.getInt("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_3", 25); }
  727. public int getArcaneForgingDowngradeChanceRank4() { return config.getInt("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_4", 15); }
  728. public boolean getArcaneForgingEnchantLossEnabled() { return config.getBoolean("Skills.Repair.Arcane_Forging.May_Lose_Enchants", true); }
  729. public int getArcaneForgingKeepEnchantsChanceRank1() { return config.getInt("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_1", 10); }
  730. public int getArcaneForgingKeepEnchantsChanceRank2() { return config.getInt("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_2", 20); }
  731. public int getArcaneForgingKeepEnchantsChanceRank3() { return config.getInt("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_3", 30); }
  732. public int getArcaneForgingKeepEnchantsChanceRank4() { return config.getInt("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_4", 40); }
  733. public int getArcaneForgingRankLevels1() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_1", 100); }
  734. public int getArcaneForgingRankLevels2() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_2", 250); }
  735. public int getArcaneForgingRankLevels3() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_3", 500); }
  736. public int getArcaneForgingRankLevels4() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_4", 750); }
  737. /* SMELTING */
  738. public int getBurnModifierMaxLevel() { return config.getInt("Skills.Smelting.FuelEfficiency_MaxBonusLevel", 1000); }
  739. public double getBurnTimeMultiplier() { return config.getDouble("Skills.Smelting.FuelEfficiency_Multiplier", 3.0D); }
  740. public int getSecondSmeltMaxLevel() { return config.getInt("Skills.Smelting.SecondSmelt_MaxBonusLevel", 1000); }
  741. public double getSecondSmeltMaxChance() { return config.getDouble("Skills.Smelting.SecondSmelt_MaxBonusChance", 100.0D); }
  742. public int getFluxMiningUnlockLevel() { return config.getInt("Skills.Smelting.FluxMining_UnlockLevel", 250); }
  743. public double getFluxMiningChance() { return config.getDouble("Skills.Smelting.FluxMining_Chance", 33.0D); }
  744. public int getSmeltingVanillaXPBoostRank1Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank1Level", 100); }
  745. public int getSmeltingVanillaXPBoostRank2Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank2Level", 300); }
  746. public int getSmeltingVanillaXPBoostRank3Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank3Level", 500); }
  747. public int getSmeltingVanillaXPBoostRank4Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank4Level", 700); }
  748. public int getSmeltingVanillaXPBoostRank5Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank5Level", 900); }
  749. public int getSmeltingVanillaXPBoostRank1Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank1Multiplier", 2); }
  750. public int getSmeltingVanillaXPBoostRank2Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank2Multiplier", 3); }
  751. public int getSmeltingVanillaXPBoostRank3Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank3Multiplier", 4); }
  752. public int getSmeltingVanillaXPBoostRank4Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank4Multiplier", 5); }
  753. public int getSmeltingVanillaXPBoostRank5Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank5Multiplier", 6); }
  754. /* SWORDS */
  755. public double getBleedChanceMax() { return config.getDouble("Skills.Swords.Bleed_ChanceMax", 75.0D); }
  756. public int getBleedMaxBonusLevel() { return config.getInt("Skills.Swords.Bleed_MaxBonusLevel", 750); }
  757. public int getBleedMaxTicks() { return config.getInt("Skills.Swords.Bleed_MaxTicks", 3); }
  758. public int getBleedBaseTicks() { return config.getInt("Skills.Swords.Bleed_BaseTicks", 2); }
  759. public boolean getCounterRequiresBlock() { return config.getBoolean("Skills.Swords.Counter_RequiresBlock"); }
  760. public double getCounterChanceMax() { return config.getDouble("Skills.Swords.Counter_ChanceMax", 30.0D); }
  761. public int getCounterMaxBonusLevel() { return config.getInt("Skills.Swords.Counter_MaxBonusLevel", 600); }
  762. public int getCounterModifier() { return config.getInt("Skills.Swords.Counter_DamageModifier", 2); }
  763. public int getSerratedStrikesModifier() { return config.getInt("Skills.Swords.SerratedStrikes_DamageModifier", 4); }
  764. public int getSerratedStrikesTicks() { return config.getInt("Skills.Swords.SerratedStrikes_BleedTicks", 5); }
  765. /* TAMING */
  766. public double getGoreChanceMax() { return config.getInt("Skills.Taming.Gore_ChanceMax", 100); }
  767. public int getGoreMaxBonusLevel() { return config.getInt("Skills.Taming.Gore_MaxBonusLevel", 1000); }
  768. public int getGoreBleedTicks() { return config.getInt("Skills.Taming.Gore_BleedTicks", 2); }
  769. public int getGoreModifier() { return config.getInt("Skills.Taming.Gore_Modifier", 2); }
  770. public int getFastFoodUnlock() { return config.getInt("Skills.Taming.FastFood_UnlockLevel", 50); }
  771. public double getFastFoodChance() { return config.getInt("Skills.Taming.FastFood_Chance", 50); }
  772. public int getEnviromentallyAwareUnlock() { return config.getInt("Skills.Taming.EnvironmentallyAware_UnlockLevel", 100); }
  773. public int getThickFurUnlock() { return config.getInt("Skills.Taming.ThickFur_UnlockLevel", 250); }
  774. public int getThickFurModifier() { return config.getInt("Skills.Taming.ThickFur_Modifier", 2); }
  775. public int getHolyHoundUnlock() {return config.getInt("Skills.Taming.HolyHound_UnlockLevel", 375); }
  776. public int getShockProofUnlock() { return config.getInt("Skills.Taming.ShockProof_UnlockLevel", 500); }
  777. public int getShockProofModifier() { return config.getInt("Skills.Taming.ShockProof_Modifier", 6); }
  778. public int getSharpenedClawsUnlock() { return config.getInt("Skills.Taming.SharpenedClaws_UnlockLevel", 750); }
  779. public int getSharpenedClawsBonus() { return config.getInt("Skills.Taming.SharpenedClaws_Bonus", 2); }
  780. /* UNARMED */
  781. public double getDisarmChanceMax() { return config.getDouble("Skills.Unarmed.Disarm_ChanceMax", 33.0D); }
  782. public int getDisarmMaxBonusLevel() { return config.getInt("Skills.Unarmed.Disarm_MaxBonusLevel", 1000); }
  783. public double getDeflectChanceMax() { return config.getDouble("Skills.Unarmed.Deflect_ChanceMax", 50.0D); }
  784. public int getDeflectMaxBonusLevel() { return config.getInt("Skills.Unarmed.Deflect_MaxBonusLevel", 1000); }
  785. public double getIronGripChanceMax() { return config.getDouble("Skills.Unarmed.IronGrip_ChanceMax", 100.0D); }
  786. public int getIronGripMaxBonusLevel() { return config.getInt("Skills.Unarmed.IronGrip_MaxBonusLevel", 1000); }
  787. public int getIronArmMinBonus() { return config.getInt("Skills.Unarmed.IronArm_BonusMin", 3); }
  788. public int getIronArmMaxBonus() { return config.getInt("Skills.Unarmed.IronArm_BonusMax", 8); }
  789. public int getIronArmIncreaseLevel() { return config.getInt("Skills.Unarmed.IronArm_IncreaseLevel", 50); }
  790. /* WOODCUTTING */
  791. public int getLeafBlowUnlockLevel() { return config.getInt("Skills.Woodcutting.LeafBlower_UnlockLevel", 100); }
  792. public double getWoodcuttingDoubleDropChance() { return config.getDouble("Skills.Woodcutting.DoubleDrops_ChanceMax", 100.0D); }
  793. public int getWoodcuttingDoubleDropMaxLevel() { return config.getInt("Skills.Woodcutting.DoubleDrops_MaxBonusLevel", 1000); }
  794. /* KRAKEN STUFF */
  795. public boolean getKrakenEnabled() { return config.getBoolean("Kraken.Enabled", true); }
  796. public boolean getKrakenGlobalSoundsEnabled() { return config.getBoolean("Kraken.Global_Sounds", true); }
  797. public boolean getKrakenEscapeAllowed() { return config.getBoolean("Kraken.Allow_Escaping", false); }
  798. public int getKrakenTriesBeforeRelease() { return config.getInt("Kraken.Tries_Before_Release", 50); }
  799. public int getKrakenHealth() { return config.getInt("Kraken.Health", 50); }
  800. public String getKrakenName() { return config.getString("Kraken.Name", "The Kraken"); }
  801. public String getServerUnleashMessage() { return config.getString("Kraken.Unleashed_Message.Server", "(PLAYER) has unleashed the kraken!"); }
  802. public String getPlayerUnleashMessage() { return config.getString("Kraken.Unleashed_Message.Player", "THE KRAKEN HAS BEEN UNLEASHED!"); }
  803. public String getPlayerDefeatMessage() { return config.getString("Kraken.Defeated_Message.Killed", "You have slain the kraken!"); }
  804. public String getPlayerEscapeMessage() { return config.getString("Kraken.Defeated_Message.Escape", "You have escaped from the kraken!"); }
  805. public int getKrakenAttackInterval() { return config.getInt("Kraken.Attack_Interval_Seconds", 1); }
  806. public int getKrakenAttackDamage() { return config.getInt("Kraken.Attack_Damage", 1); }
  807. }