MainConfig.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. package com.gmail.nossr50.config;
  2. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  3. import com.gmail.nossr50.mcMMO;
  4. import com.gmail.nossr50.util.StringUtils;
  5. import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
  6. import org.bukkit.Material;
  7. import org.bukkit.block.data.BlockData;
  8. import org.bukkit.entity.EntityType;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. @ConfigSerializable
  12. public class MainConfig extends ConfigValidated {
  13. public static final String METRICS = "Metrics";
  14. public static final String BSTATS = "bstats";
  15. public static final String GENERAL = "General";
  16. public static final String RETRO_MODE = "RetroMode";
  17. public static final String ENABLED = "Enabled";
  18. public static final String LOCALE = "Locale";
  19. public static final String EN_US = "en_us";
  20. public static final String SHOW_PROFILE_LOADED = "Show_Profile_Loaded";
  21. public static final String DONATE_MESSAGE = "Donate_Message";
  22. public static final String MCMMO = "mcmmo";
  23. public static final String DATABASE_PREFIX = MCMMO + "_";
  24. public static final String COMMANDS = "Commands";
  25. public static final String SAVE_INTERVAL = "Save_Interval";
  26. public static final String STATS = "Stats";
  27. public static final String STATS_TRACKING = STATS + "_Tracking";
  28. public static final String UPDATE_CHECK = "Update_Check";
  29. public static final String PREFER_BETA = "Prefer_Beta";
  30. public static final String VERBOSE_LOGGING = "Verbose_Logging";
  31. public static final String PARTYCHAT = "partychat";
  32. public static final String CHAT_PREFIX_FORMAT = "Chat_Prefix_Format";
  33. public static final String NAME = "Name";
  34. public static final String GOLD_LEADER_NAME = "Gold_Leader_" + NAME;
  35. public static final String USE_DISPLAY_NAMES = "Use_Display_" + NAME + "s";
  36. public static final String ALLY = "_Ally";
  37. public static final String ADMINCHAT = "adminchat";
  38. public static final String GENERIC = "Generic";
  39. public static final String MATCH_OFFLINE_PLAYERS = "Match_OfflinePlayers";
  40. public static final String DATABASE = "Database";
  41. public static final String COOLDOWN = "Cooldown";
  42. public static final String PLAYER_COOLDOWN = "Player_" + COOLDOWN;
  43. public static final String LEVEL_UP = "LevelUp_";
  44. public static final String SOUND = "Sound";
  45. public static final String LEVEL_UP_SOUNDS = "LevelUp_Sounds";
  46. public static final String REFRESH_CHUNKS = "Refresh_Chunks";
  47. public static final String MOB_HEALTHBAR = "Mob_Healthbar";
  48. public static final String DISPLAY_TYPE = "Display_Type";
  49. public static final String HEARTS = "HEARTS";
  50. public static final String DISPLAY_TIME = "Display_Time";
  51. public static final String SCOREBOARD = "ConfigScoreboard";
  52. public static final String USE_SCOREBOARDS = "UseScoreboards";
  53. public static final String POWER = "Power_";
  54. public static final String POWER_LEVEL_TAGS = POWER + "Level_Tags";
  55. public static final String KEEP = "Keep";
  56. public static final String ALLOW_KEEP = "Allow_" + KEEP;
  57. public static final String TIPS_AMOUNT = "Tips_Amount";
  58. public static final String SHOW_STATS_AFTER_LOGIN = "Show_" + STATS + "_After_Login";
  59. public static final String RAINBOWS = "Rainbows";
  60. public static final String ABILITY_NAMES = "Ability_" + NAME + "s";
  61. public static final String TYPES = "Types";
  62. public static final String RANK = "Rank";
  63. public static final String PRINT = "Print";
  64. public static final String BOARD = "Board";
  65. public static final String TOP = "Top";
  66. public static final String INSPECT = "Inspect";
  67. public static final String SKILL = "Skill";
  68. public static final String TIME = "Time";
  69. public static final String PURGING = "_Purging";
  70. public static final String PURGE_INTERVAL = "Purge_Interval";
  71. public static final String OLD_USER_CUTOFF = "Old_User_Cutoff";
  72. public static final String BACKUPS = "Backups";
  73. public static final String KEEP_LAST_24_HOURS = KEEP + ".Last_24_Hours";
  74. public static final String DAILY_LAST_WEEK = "Daily_Last_Week";
  75. public static final String WEEKLY_PAST_MONTHS = "Weekly_Past_Months";
  76. public static final String MY_SQL = "MySQL";
  77. public static final String TABLE_PREFIX = "TablePrefix";
  78. public static final String USER_NAME = "User_" + NAME;
  79. public static final String SERVER = "Server";
  80. public static final String PORT = "Port";
  81. public static final String ADDRESS = "Address";
  82. public static final String LOCALHOST = "localhost";
  83. public static final String USER_PASSWORD = "User_Password";
  84. public static final String MAX_CONNECTIONS = "MaxConnections";
  85. public static final String MAX_POOL_SIZE = "MaxPoolSize";
  86. public static final String SSL = "SSL";
  87. public static final String HARDCORE = "Hardcore";
  88. public static final String DEATH_STAT_LOSS = "Death_Stat_Loss";
  89. public static final String PENALTY_PERCENTAGE = "Penalty_Percentage";
  90. public static final String LEVEL_THRESHOLD = "Level_Threshold";
  91. public static final String VAMPIRISM = "Vampirism";
  92. public static final String LEECH_PERCENTAGE = "Leech_Percentage";
  93. public static final String ITEMS = "Items";
  94. public static final String CHIMAERA_WING = "Chimaera_Wing";
  95. public static final String USE_COST = "Use_Cost";
  96. public static final String RECIPE_COST = "Recipe_Cost";
  97. public static final String ITEM = "Item_";
  98. public static final String FEATHER = "Feather";
  99. public static final String PREVENT = "Prevent_";
  100. public static final String PREVENT_USE_UNDERGROUND = PREVENT + "Use_Underground";
  101. public static final String USE_BED_SPAWN = "Use_Bed_Spawn";
  102. public static final String WARMUP = "Warmup";
  103. public static final String RECENTLY_HURT = "RecentlyHurt_";
  104. public static final String PARTICLES = "Particles";
  105. public static final String ACTIVATION = "Activation";
  106. public static final String ABILITY_ACTIVATION = "Ability_" + ACTIVATION;
  107. public static final String ABILITY_DEACTIVATION = "Ability_Deactivation";
  108. public static final String BLEED = "Bleed";
  109. public static final String DODGE = "Dodge";
  110. public static final String FLUX = "Flux";
  111. public static final String GREATER_IMPACT = "Greater_Impact";
  112. public static final String CALL_OF_THE_WILD = "Call_of_the_Wild";
  113. public static final String TIER = "Tier";
  114. public static final String LARGE_FIREWORKS = "LargeFireworks";
  115. public static final String PARTY = "Party";
  116. public static final String FRIENDLY_FIRE = "FriendlyFire";
  117. public static final String MAX_SIZE = "MaxSize";
  118. public static final String AUTO_KICK_INTERVAL = "AutoKick_Interval";
  119. public static final String OLD_PARTY_MEMBER_CUTOFF = "Old_Party_Member_Cutoff";
  120. public static final String SHARING = "Sharing";
  121. public static final String SHARING_EXP_SHARE_BONUS_BASE = SHARING + "ExpShare_bonus_base";
  122. public static final String EXP_SHARE_BONUS_INCREASE = "ExpShare_bonus_increase";
  123. public static final String EXP_SHARE_BONUS_CAP = "ExpShare_bonus_cap";
  124. public static final String RANGE = "Range";
  125. public static final String LEVELING = "Leveling";
  126. public static final String LEVEL_CAP = "Level_Cap";
  127. public static final String XP_CURVE_MODIFIER = "Xp_Curve_Modifier";
  128. public static final String NEAR_MEMBERS_NEEDED = "Near_Members_Needed";
  129. public static final String INFORM_ALL_PARTY_MEMBERS_ON_LEVEL_UP = "Inform_All_Party_Members_On_LevelUp";
  130. public static final String UNLOCK_LEVEL = "_UnlockLevel";
  131. public static final String PTP = "ptp";
  132. public static final String ACCEPT_REQUIRED = "Accept_Required";
  133. public static final String REQUEST_TIMEOUT = "Request_Timeout";
  134. public static final String WORLD_BASED_PERMISSIONS = "World_Based_Permissions";
  135. public static final String INSPECT1 = "inspect";
  136. public static final String MAX_DISTANCE = "Max_Distance";
  137. public static final String SKILLS = "Skills";
  138. public static final String URL_LINKS = "URL_Links";
  139. public static final String ABILITIES = "Abilities";
  140. public static final String MESSAGES = "Messages";
  141. public static final String ONLY_ACTIVATE_WHEN_SNEAKING = "Only_Activate_When_Sneaking";
  142. public static final String LEVEL_GATE_ABILITIES = "Level_Gate_Abilities";
  143. public static final String COOLDOWNS = "Cooldowns";
  144. public static final String MAX_SECONDS = "Max_Seconds";
  145. public static final String TOOLS = "Tools";
  146. public static final String DURABILITY_LOSS = "Durability_Loss";
  147. public static final String LIMITS = "Limits";
  148. public static final String TREE_FELLER = "Tree_Feller_";
  149. public static final String TREE_FELLER_THRESHOLD = TREE_FELLER + "Threshold";
  150. public static final String DOUBLE_DROPS = "Double_Drops";
  151. public static final String AXES = "Axes";
  152. public static final String TRUNCATE = "Truncate";
  153. public static final String FOR_PVP = "_For_PVP";
  154. public static final String FOR_PVE = "_For_PVE";
  155. public static final String ACROBATICS = "Acrobatics";
  156. public static final String PREVENT_AFK = PREVENT + "AFK_";
  157. public static final String WOODCUTTING = "Woodcutting";
  158. public static final String SOUNDS = "Sounds";
  159. public static final String MAX_TRIES_AT_SAME_LOCATION = "Max_Tries_At_Same_Location";
  160. public static final String HERBALISM = "Herbalism";
  161. public static final String TAMING = "Taming";
  162. public static final String CALL_OF_THE_WILD1 = "Call_Of_The_Wild";
  163. public static final String SUMMON_AMOUNT = "Summon_Amount";
  164. public static final String SUMMON_LENGTH = "Summon_Length";
  165. public static final String SUMMON_MAX_AMOUNT = "Summon_Max_Amount";
  166. public static final String AMOUNT = "Amount";
  167. public static final String MATERIAL = "Material";
  168. public static final String REPAIR = "Repair";
  169. public static final String CONFIRM_REQUIRED = "Confirm_Required";
  170. public static final String ANVIL = "Anvil_";
  171. public static final String ANVIL_MATERIAL = ANVIL + "Material";
  172. public static final String IRON_BLOCK = "IRON_BLOCK";
  173. public static final String ANVIL_USE = ANVIL + "Use_";
  174. public static final String ANVIL_PLACED = ANVIL + "Placed_";
  175. public static final String SALVAGE = "Salvage";
  176. public static final String UNARMED = "Unarmed";
  177. public static final String BLOCK_CRACKER = "Block_Cracker";
  178. public static final String SMOOTH_BRICK_TO_CRACKED_BRICK = "SmoothBrick_To_CrackedBrick";
  179. public static final String PICKUP_DISABLED_FULL_INVENTORY = "Pickup_Disabled_Full_Inventory";
  180. public static final String AS = "_As_";
  181. public static final String MINING = "Mining";
  182. public static final String DETONATOR = "Detonator_";
  183. public static final String FLINT_AND_STEEL = "FLINT_AND_STEEL";
  184. public static final String FISHING = "Fishing";
  185. public static final String LURE_MODIFIER = "Lure_Modifier";
  186. public static final String EXTRA_FISH = "Extra_Fish";
  187. public static final String OVERRIDE_VANILLA_TREASURES = "Override_Vanilla_Treasures";
  188. public static final String DROPS = "Drops_";
  189. public static final String ALCHEMY = "Alchemy";
  190. public static final String PREVENT_HOPPER_TRANSFER_BOTTLES = PREVENT + "Hopper_Transfer_Bottles";
  191. public static final String PREVENT_HOPPER_TRANSFER_INGREDIENTS = PREVENT + "Hopper_Transfer_Ingredients";
  192. public static final String FOR_HOPPERS = "_for_Hoppers";
  193. public static final String XP_AFTER_TELEPORT = "XP_After_Teleport_";
  194. public static final String LIGHTNING = "_Lightning";
  195. public static final String GOLD_BLOCK = "GOLD_BLOCK";
  196. public static final String PICKAXE = "_Pickaxe";
  197. public static final String EXP_SHARE_BONUS_BASE = "ExpShare_bonus_base";
  198. public MainConfig() {
  199. //super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "config.yml", true);
  200. super("main", mcMMO.p.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
  201. }
  202. /**
  203. * This grabs an instance of this config class from the Config Manager
  204. * This method is deprecated and will be removed in the future
  205. *
  206. * @return the instance of this config
  207. * @see mcMMO#getConfigManager()
  208. * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
  209. */
  210. @Deprecated
  211. public static MainConfig getInstance() {
  212. return mcMMO.getConfigManager().getMainConfig();
  213. }
  214. /**
  215. * The version of this config
  216. *
  217. * @return
  218. */
  219. @Override
  220. public double getConfigVersion() {
  221. return 1;
  222. }
  223. @Override
  224. public List<String> validateKeys() {
  225. // Validate all the settings!
  226. List<String> reason = new ArrayList<>();
  227. return reason;
  228. }
  229. /*
  230. * GENERAL SETTINGS
  231. */
  232. public boolean getShowProfileLoadedMessage() {
  233. return getBooleanValue(GENERAL, SHOW_PROFILE_LOADED);
  234. }
  235. public boolean getMatchOfflinePlayers() {
  236. return getBooleanValue(COMMANDS, GENERIC, MATCH_OFFLINE_PLAYERS);
  237. }
  238. public long getDatabasePlayerCooldown() {
  239. return getLongValue(COMMANDS, DATABASE, PLAYER_COOLDOWN);
  240. }
  241. public boolean getLevelUpSoundsEnabled() {
  242. return getBooleanValue(GENERAL, LEVEL_UP_SOUNDS);
  243. }
  244. public boolean getRefreshChunksEnabled() {
  245. return getBooleanValue(GENERAL, REFRESH_CHUNKS);
  246. }
  247. /* Particles */
  248. public boolean getAbilityActivationEffectEnabled() {
  249. return getBooleanValue(PARTICLES, ABILITY_ACTIVATION);
  250. }
  251. public boolean getAbilityDeactivationEffectEnabled() {
  252. return getBooleanValue(PARTICLES, ABILITY_DEACTIVATION);
  253. }
  254. public boolean getBleedEffectEnabled() {
  255. return getBooleanValue(PARTICLES, BLEED);
  256. }
  257. public boolean getDodgeEffectEnabled() {
  258. return getBooleanValue(PARTICLES, DODGE);
  259. }
  260. public boolean getFluxEffectEnabled() {
  261. return getBooleanValue(PARTICLES, FLUX);
  262. }
  263. public boolean getGreaterImpactEffectEnabled() {
  264. return getBooleanValue(PARTICLES, GREATER_IMPACT);
  265. }
  266. public boolean getCallOfTheWildEffectEnabled() {
  267. return getBooleanValue(PARTICLES, CALL_OF_THE_WILD);
  268. }
  269. public boolean getLevelUpEffectsEnabled() {
  270. return getBooleanValue(PARTICLES, LEVEL_UP + ENABLED);
  271. }
  272. public int getLevelUpEffectsTier() {
  273. return getIntValue(PARTICLES, LEVEL_UP + TIER);
  274. }
  275. /*
  276. * SKILL SETTINGS
  277. */
  278. public boolean getDoubleDropsEnabled(PrimarySkillType skill, Material material) {
  279. return getBooleanValue(DOUBLE_DROPS, StringUtils.getCapitalized(skill.toString()), StringUtils.getPrettyItemString(material).replace(" ", "_"));
  280. }
  281. public boolean getPreventHopperTransferIngredients() {
  282. return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_INGREDIENTS);
  283. }
  284. public boolean getPreventHopperTransferBottles() {
  285. return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_BOTTLES);
  286. }
  287. /* Taming */
  288. public Material getTamingCOTWMaterial(EntityType type) {
  289. return Material.matchMaterial(getStringValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), ITEM + MATERIAL));
  290. }
  291. public int getTamingCOTWCost(EntityType type) {
  292. return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), ITEM + AMOUNT);
  293. }
  294. public int getTamingCOTWAmount(EntityType type) {
  295. return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_AMOUNT);
  296. }
  297. public int getTamingCOTWLength(EntityType type) {
  298. return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_LENGTH);
  299. }
  300. public int getTamingCOTWMaxAmount(EntityType type) {
  301. return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_MAX_AMOUNT);
  302. }
  303. public double getTamingCOTWRange() {
  304. return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD1, RANGE);
  305. }
  306. }