mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-10-31 17:23:42 +01:00 
			
		
		
		
	Repair Config Pt 2
This commit is contained in:
		| @@ -9,6 +9,7 @@ Key: | ||||
|  | ||||
| Version 2.2.0 | ||||
|     mcMMO's config system has been rewritten | ||||
|     mcMMO will now warn you in the console if it thinks you are running incompatible server software | ||||
|     Parties no longer have a cap, you can level them forever for bragging rights | ||||
|     Optimizations were made for many anti-exploit behaviours | ||||
|     Acrobatic's Dodge will no longer reward XP for a few seconds after a TP | ||||
|   | ||||
| @@ -0,0 +1,33 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigScalingSubSkill { | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Scaling-Settings", comment = "Standard mode is the new default level scaling for mcMMO" + | ||||
|             "\nMost skills in standard mode scale from 1-100, maxing out at 100." + | ||||
|             "\nStandard scaling is fairly new, and it replaced the previous scaling method which is now known as RetroMode scaling." + | ||||
|             "\nYou are either using Standard or Retro mode on your server, which one you are using is setup in the leveling config file." + | ||||
|             "\nSettings from here are only applied when using Standard mode scaling.") | ||||
|     private ConfigScalingSubSkillStandard standardSettings = new ConfigScalingSubSkillStandard(); | ||||
|  | ||||
|     @Setting(value = "Retro-Mode-Scaling-Settings", comment = "Retro mode is the optional level scaling for mcMMO, which was replaced by Standard scaling." + | ||||
|             "\nMost skills in retro mode scale from 1-1000, maxing out at 1000." + | ||||
|             "\nRetro scaling was the main method of scaling in mcMMO for almost 8 years," + | ||||
|             "\n    and it was replaced in 2.1 with the new 1-100 scaling method which is known as Standard mode scaling." + | ||||
|             "\nYou can still use Retro Mode scaling, it will never be removed from mcMMO so do not worry about using it!" + | ||||
|             "\nYou are either using Standard or Retro mode on your server, which one you are using is setup in the leveling config file." + | ||||
|             "\nSettings from here are only applied when using Retro mode scaling.") | ||||
|     private ConfigScalingSubSkillRetro retroSettings = new ConfigScalingSubSkillRetro(); | ||||
|  | ||||
|  | ||||
|     public ConfigScalingSubSkillStandard getStandardSettings() { | ||||
|         return standardSettings; | ||||
|     } | ||||
|  | ||||
|     public ConfigScalingSubSkillRetro getRetroSettings() { | ||||
|         return retroSettings; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,26 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigScalingSubSkillPercentage { | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Scaling-Settings", comment = "Standard mode is the new default level scaling for mcMMO" + | ||||
|             "\nMost skills in standard mode scale from 1-100, maxing out at 100." + | ||||
|             "\nStandard scaling is fairly new, and it replaced the previous scaling method which is now known as RetroMode scaling." + | ||||
|             "\nYou are either using Standard or Retro mode on your server, which one you are using is setup in the leveling config file." + | ||||
|             "\nSettings from here are only applied when using Standard mode scaling.") | ||||
|     private ConfigScalingSubSkillStandard standardSettings; | ||||
|  | ||||
|     @Setting(value = "Retro-Mode-Scaling-Settings", comment = "Retro mode is the optional level scaling for mcMMO, which was replaced by Standard scaling." + | ||||
|             "\nMost skills in retro mode scale from 1-1000, maxing out at 1000." + | ||||
|             "\nRetro scaling was the main method of scaling in mcMMO for almost 8 years," + | ||||
|             "\n    and it was replaced in 2.1 with the new 1-100 scaling method which is known as Standard mode scaling." + | ||||
|             "\nYou can still use Retro Mode scaling, it will never be removed from mcMMO so do not worry about using it!" + | ||||
|             "\nYou are either using Standard or Retro mode on your server, which one you are using is setup in the leveling config file." + | ||||
|             "\nSettings from here are only applied when using Retro mode scaling.") | ||||
|     private ConfigScalingSubSkillRetro retroSettings; | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,38 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigScalingSubSkillRetro { | ||||
|  | ||||
|     public static final String FIFTY_PERCENT_EXAMPLE = "500"; | ||||
|     public static final String MAX_BONUS_LEVEL_EXAMPLE = "1000"; | ||||
|     public static final String ODDS_PERCENTAGE_EXAMPLE = "25%"; | ||||
|     public static final int MAX_BONUS_LEVEL_DEFAULT = 1000; | ||||
|     public static final double CHANCE_AT_MAX_SKILL_DEFAULT = 100.0D; | ||||
|  | ||||
|     @Setting(value = "Retro-Mode-Max-Bonus-Level", comment = "At the max bonus level a player will have full benefits from this scaling skill." + | ||||
|             "\nSkills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + | ||||
|             "\n   a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of the sub-skill." + | ||||
|             "\nNote: This is the setting for RETRO MODE!" + | ||||
|             "\nDefault value: "+MAX_BONUS_LEVEL_DEFAULT) | ||||
|     private int maxBonusLevel = MAX_BONUS_LEVEL_DEFAULT; | ||||
|  | ||||
|     @Setting(value = "Retro-Mode-Success-Rate-Cap-Percentage", comment = "This is the odds for RNG components of this sub-skill to succeed when a player has reached \"Max-Bonus-Level\"." + | ||||
|             "\nMax skill chance is dynamically adjusted based on the players level difference from the \"Max-Bonus-Level\", you can think of it as a curve where reaching \"Max-Bonus-Level\" is the peak." + | ||||
|             "\nAs an example, imagine \"Retro-Mode-Success-Rate-Cap-Percentage\" was set to " + FIFTY_PERCENT_EXAMPLE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + | ||||
|             "\n   and the player was level " + FIFTY_PERCENT_EXAMPLE + " for this skill, that would give the player " + ODDS_PERCENTAGE_EXAMPLE + " odds to succeed with this skill." + | ||||
|             "\nNote: This is the setting for RETRO MODE!" + | ||||
|             "\nDefault value: "+CHANCE_AT_MAX_SKILL_DEFAULT) | ||||
|     private double chanceAtMaxSkill = CHANCE_AT_MAX_SKILL_DEFAULT; | ||||
|  | ||||
|     public int getMaxBonusLevel() { | ||||
|         return maxBonusLevel; | ||||
|     } | ||||
|  | ||||
|     public double getChanceAtMaxSkill() { | ||||
|         return chanceAtMaxSkill; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,37 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigScalingSubSkillStandard { | ||||
|  | ||||
|     public static final String FIFTY_PERCENT_EXAMPLE = "50"; | ||||
|     public static final String MAX_BONUS_LEVEL_EXAMPLE = "100"; | ||||
|     public static final String ODDS_PERCENTAGE_EXAMPLE = "25%"; | ||||
|     public static final int MAX_BONUS_LEVEL_DEFAULT = 100; | ||||
|     public static final double CHANCE_AT_MAX_SKILL_DEFAULT = 100.0D; | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Max-Bonus-Level", comment = "At the max bonus level a player will have full benefits from this scaling skill." + | ||||
|             "\nSkills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + | ||||
|             "\n   a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of the sub-skill." + | ||||
|             "\nNote: This is the setting for STANDARD MODE!" + | ||||
|             "\nDefault value: "+MAX_BONUS_LEVEL_DEFAULT) | ||||
|     private int maxBonusLevel = MAX_BONUS_LEVEL_DEFAULT; | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Success-Rate-Cap-Percentage", comment = "This is the odds for RNG components of this sub-skill to succeed when a player has reached \"Max-Bonus-Level\"." + | ||||
|             "\nMax skill chance is dynamically adjusted based on the players level difference from the \"Max-Bonus-Level\", you can think of it as a curve where reaching \"Max-Bonus-Level\" is the peak." + | ||||
|             "\nAs an example, imagine \"Standard-Mode-Success-Rate-Cap-Percentage\" was set to " + FIFTY_PERCENT_EXAMPLE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + | ||||
|             "\n   and the player was level " + FIFTY_PERCENT_EXAMPLE + " for this skill, that would give the player " + ODDS_PERCENTAGE_EXAMPLE + " odds to succeed with this skill." + | ||||
|             "\nNote: This is the setting for STANDARD MODE!" + | ||||
|             "\nDefault value: "+CHANCE_AT_MAX_SKILL_DEFAULT) | ||||
|     private double chanceAtMaxSkill = CHANCE_AT_MAX_SKILL_DEFAULT; | ||||
|  | ||||
|     public int getMaxBonusLevel() { | ||||
|         return maxBonusLevel; | ||||
|     } | ||||
|  | ||||
|     public double getChanceAtMaxSkill() { | ||||
|         return chanceAtMaxSkill; | ||||
|     } | ||||
| } | ||||
| @@ -1,8 +1,30 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair; | ||||
|  | ||||
| import com.gmail.nossr50.config.hocon.skills.repair.repairmastery.ConfigRepairMastery; | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigRepair { | ||||
|  | ||||
|     @Setting(value = "Repair-Mastery", comment = "Settings related to the repair mastery subskill") | ||||
|     private ConfigRepairMastery repairMastery = new ConfigRepairMastery(); | ||||
|  | ||||
|     @Setting(value = "Super-Repair", comment = "Settings related to the super repair subskill") | ||||
|     private ConfigRepairSuperRepair superRepair = new ConfigRepairSuperRepair(); | ||||
|  | ||||
|     @Setting(value = "Arcane-Forging", comment = "Settings related to the arcane forging subskill") | ||||
|     private ConfigRepairArcaneForging arcaneForging = new ConfigRepairArcaneForging(); | ||||
|  | ||||
|     public ConfigRepairMastery getRepairMastery() { | ||||
|         return repairMastery; | ||||
|     } | ||||
|  | ||||
|     public ConfigRepairSuperRepair getSuperRepair() { | ||||
|         return superRepair; | ||||
|     } | ||||
|  | ||||
|     public ConfigRepairArcaneForging getArcaneForging() { | ||||
|         return arcaneForging; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,29 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigRepairArcaneForging { | ||||
|  | ||||
|     public static final boolean LOSE_ENCHANTS_DEFAULT = true; | ||||
|     public static final boolean DOWNGRADES_ENABLED_DEFAULT = true; | ||||
|     @Setting(value = "May-Lose-Enchants", comment = "With this on, players have a chance to have enchantments stripped from" + | ||||
|             "\n    their item when repairing." + | ||||
|             "\nThe odds to lose your enchants decrease with higher levels of skill." + | ||||
|             "\nDefault value: "+LOSE_ENCHANTS_DEFAULT) | ||||
|     private boolean mayLoseEnchants = LOSE_ENCHANTS_DEFAULT; | ||||
|  | ||||
|     @Setting(value = "Chance-To-Downgrade-Enchants", comment = "With this on, players have a chance to have enchants downgraded when repairing." + | ||||
|             "\nThe chance to downgrade decreases with higher levels of skill." + | ||||
|             "\nDefault value: "+DOWNGRADES_ENABLED_DEFAULT) | ||||
|     private boolean downgradesEnabled = DOWNGRADES_ENABLED_DEFAULT; | ||||
|  | ||||
|     public boolean isMayLoseEnchants() { | ||||
|         return mayLoseEnchants; | ||||
|     } | ||||
|  | ||||
|     public boolean isDowngradesEnabled() { | ||||
|         return downgradesEnabled; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair; | ||||
|  | ||||
| import com.gmail.nossr50.config.hocon.skills.ConfigScalingSubSkill; | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigRepairSuperRepair { | ||||
|  | ||||
|     @Setting(value = "Settings") | ||||
|     private ConfigScalingSubSkill superRepair = new ConfigScalingSubSkill(); | ||||
|  | ||||
|     public ConfigScalingSubSkill getSuperRepair() { | ||||
|         return superRepair; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair.repairmastery; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class ConfigRepairMastery { | ||||
|  | ||||
|     @Setting(value = "Settings") | ||||
|     private RepairMasterySettings settings = new RepairMasterySettings(); | ||||
|  | ||||
|     public RepairMasterySettings getSettings() { | ||||
|         return settings; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,38 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair.repairmastery; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class RepairMasteryRetro { | ||||
|  | ||||
|     public static final int MAX_BONUS_LEVEL_DEFAULT = 1000; | ||||
|     public static final double MAX_BONUS_PERCENTAGE = 200.0D; | ||||
|     public static final String PLAYER_LEVEL_FIFTY_PERCENT_EXAMPLE = "500"; | ||||
|     public static final String MAX_BONUS_LEVEL_EXAMPLE = "1000"; | ||||
|     public static final String BONUS_PERCENTAGE_EXAMPLE = "100%"; | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Max-Bonus-Level", comment = "At the max bonus level a player will have full benefits from this scaling skill." + | ||||
|             "\nSkills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + | ||||
|             "\n   a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of the sub-skill." + | ||||
|             "\nNote: This is the setting for STANDARD MODE!" + | ||||
|             "\nDefault value: "+MAX_BONUS_LEVEL_DEFAULT) | ||||
|     private int maxBonusLevel = MAX_BONUS_LEVEL_DEFAULT; | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Max-Bonus-Percentage", comment = "This is the maximum benefit for additional repair amount from this skill when the player reaches \"Max-Bonus-Level\"." + | ||||
|             "\nRepair Mastery's bonus to repair is dynamically adjusted based on the players level difference from the \"Max-Bonus-Level\", you can think of it as a curve where reaching \"Max-Bonus-Level\" is the peak." + | ||||
|             "\nAs an example, imagine \"Standard-Mode-Max-Bonus-Percentage\" was set to " + MAX_BONUS_PERCENTAGE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + | ||||
|             "\n   and the player was level " + PLAYER_LEVEL_FIFTY_PERCENT_EXAMPLE + " for this skill, that would give the player " + BONUS_PERCENTAGE_EXAMPLE + "% added to the repair amount on the item before other bonuses." + | ||||
|             "\nNote: This is the setting for STANDARD MODE!" + | ||||
|             "\nDefault value: "+MAX_BONUS_PERCENTAGE) | ||||
|     private double maxBonusPercentage = MAX_BONUS_PERCENTAGE; | ||||
|  | ||||
|     public int getMaxBonusLevel() { | ||||
|         return maxBonusLevel; | ||||
|     } | ||||
|  | ||||
|     public double getMaxBonusPercentage() { | ||||
|         return maxBonusPercentage; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,32 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair.repairmastery; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class RepairMasterySettings { | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Scaling-Settings", comment = "Standard mode is the new default level scaling for mcMMO" + | ||||
|             "\nMost skills in standard mode scale from 1-100, maxing out at 100." + | ||||
|             "\nStandard scaling is fairly new, and it replaced the previous scaling method which is now known as RetroMode scaling." + | ||||
|             "\nYou are either using Standard or Retro mode on your server, which one you are using is setup in the leveling config file." + | ||||
|             "\nSettings from here are only applied when using Standard mode scaling.") | ||||
|     private RepairMasteryStandard standard = new RepairMasteryStandard(); | ||||
|  | ||||
|     @Setting(value = "Retro-Mode-Scaling-Settings", comment = "Retro mode is the optional level scaling for mcMMO, which was replaced by Standard scaling." + | ||||
|             "\nMost skills in retro mode scale from 1-1000, maxing out at 1000." + | ||||
|             "\nRetro scaling was the main method of scaling in mcMMO for almost 8 years," + | ||||
|             "\n    and it was replaced in 2.1 with the new 1-100 scaling method which is known as Standard mode scaling." + | ||||
|             "\nYou can still use Retro Mode scaling, it will never be removed from mcMMO so do not worry about using it!" + | ||||
|             "\nYou are either using Standard or Retro mode on your server, which one you are using is setup in the leveling config file." + | ||||
|             "\nSettings from here are only applied when using Retro mode scaling.") | ||||
|     private RepairMasteryRetro retro = new RepairMasteryRetro(); | ||||
|  | ||||
|     public RepairMasteryStandard getStandard() { | ||||
|         return standard; | ||||
|     } | ||||
|  | ||||
|     public RepairMasteryRetro getRetro() { | ||||
|         return retro; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,37 @@ | ||||
| package com.gmail.nossr50.config.hocon.skills.repair.repairmastery; | ||||
|  | ||||
| import ninja.leaping.configurate.objectmapping.Setting; | ||||
| import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||
|  | ||||
| @ConfigSerializable | ||||
| public class RepairMasteryStandard { | ||||
|  | ||||
|     public static final int MAX_BONUS_LEVEL_DEFAULT = 100; | ||||
|     public static final double MAX_BONUS_PERCENTAGE = 200.0D; | ||||
|     public static final String PLAYER_LEVEL_FIFTY_PERCENT_EXAMPLE = "50"; | ||||
|     public static final String MAX_BONUS_LEVEL_EXAMPLE = "100"; | ||||
|     public static final String BONUS_PERCENTAGE_EXAMPLE = "100%"; | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Max-Bonus-Level", comment = "At the max bonus level a player will have full benefits from this scaling skill." + | ||||
|             "\nSkills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + | ||||
|             "\n   a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of the sub-skill." + | ||||
|             "\nNote: This is the setting for STANDARD MODE!" + | ||||
|             "\nDefault value: "+MAX_BONUS_LEVEL_DEFAULT) | ||||
|     private int maxBonusLevel = MAX_BONUS_LEVEL_DEFAULT; | ||||
|  | ||||
|     @Setting(value = "Standard-Mode-Max-Bonus-Percentage", comment = "This is the maximum benefit for additional repair amount from this skill when the player reaches \"Max-Bonus-Level\"." + | ||||
|             "\nRepair Mastery's bonus to repair is dynamically adjusted based on the players level difference from the \"Max-Bonus-Level\", you can think of it as a curve where reaching \"Max-Bonus-Level\" is the peak." + | ||||
|             "\nAs an example, imagine \"Standard-Mode-Max-Bonus-Percentage\" was set to " + MAX_BONUS_PERCENTAGE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + | ||||
|             "\n   and the player was level " + PLAYER_LEVEL_FIFTY_PERCENT_EXAMPLE + " for this skill, that would give the player " + BONUS_PERCENTAGE_EXAMPLE + "% added to the repair amount on the item before other bonuses." + | ||||
|             "\nNote: This is the setting for STANDARD MODE!" + | ||||
|             "\nDefault value: "+MAX_BONUS_PERCENTAGE) | ||||
|     private double maxBonusPercentage = MAX_BONUS_PERCENTAGE; | ||||
|  | ||||
|     public int getMaxBonusLevel() { | ||||
|         return maxBonusLevel; | ||||
|     } | ||||
|  | ||||
|     public double getMaxBonusPercentage() { | ||||
|         return maxBonusPercentage; | ||||
|     } | ||||
| } | ||||
| @@ -50,6 +50,10 @@ import java.io.File; | ||||
| import java.io.IOException; | ||||
|  | ||||
| public class mcMMO extends JavaPlugin { | ||||
|     public static final String COMPATIBLE_SERVER_SOFTWARE = "Spigot, Paper"; | ||||
|     public static final String INCOMPATIBLE_SERVER_SOFTWARE = "CraftBukkit"; | ||||
|     public static final String COMPATIBLE_MINECRAFT_VERSIONS = "1.13.2"; | ||||
|  | ||||
|     /* Managers */ | ||||
|     private static ChunkManager       placeStore; | ||||
|     private static ConfigManager      configManager; | ||||
| @@ -110,6 +114,11 @@ public class mcMMO extends JavaPlugin { | ||||
|         try { | ||||
|             p = this; | ||||
|             getLogger().setFilter(new LogFilter(this)); | ||||
|  | ||||
|             //DEBUG | ||||
|             /*getLogger().info(Bukkit.getBukkitVersion()); | ||||
|             getLogger().info(Bukkit.getVersion());*/ | ||||
|  | ||||
|             metadataValue = new FixedMetadataValue(this, true); | ||||
|  | ||||
|             PluginManager pluginManager = getServer().getPluginManager(); | ||||
| @@ -175,11 +184,11 @@ public class mcMMO extends JavaPlugin { | ||||
|                     metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Retro")); | ||||
|  | ||||
|                 //Simplified Server Software Tracking | ||||
|                 if(Bukkit.getServer().getBukkitVersion().contains("paper")) | ||||
|                 if(Bukkit.getServer().getVersion().contains("paper")) | ||||
|                     metrics.addCustomChart(new Metrics.SimplePie("Server_software", () -> "Paper")); | ||||
|                 else if(Bukkit.getServer().getBukkitVersion().contains("spigot")) | ||||
|                 else if(Bukkit.getServer().getVersion().contains("spigot") && !Bukkit.getServer().getVersion().contains("paper")) | ||||
|                     metrics.addCustomChart(new Metrics.SimplePie("Server_software", () -> "Spigot")); | ||||
|                 else if(Bukkit.getServer().getBukkitVersion().contains("bukkit")) | ||||
|                 else if(Bukkit.getServer().getVersion().contains("bukkit")) | ||||
|                     metrics.addCustomChart(new Metrics.SimplePie("Server_software", () -> "CraftBukkit")); | ||||
|                 else | ||||
|                     metrics.addCustomChart(new Metrics.SimplePie("Server_software", () -> "Unknown")); | ||||
| @@ -191,8 +200,52 @@ public class mcMMO extends JavaPlugin { | ||||
|             getLogger().severe("End of error report for mcMMO"); | ||||
|             getLogger().info("Please do not replace the mcMMO jar while the server is running."); | ||||
|  | ||||
|             getServer().getPluginManager().disablePlugin(this); | ||||
|             //getServer().getPluginManager().disablePlugin(this); | ||||
|         } | ||||
|  | ||||
|         if(isIncompatibleVersion(Bukkit.getVersion(), Bukkit.getBukkitVersion())) | ||||
|         { | ||||
|             getLogger().severe("mcMMO is not supported for your current server software and or Minecraft version"); | ||||
|  | ||||
|             if(isServerSoftwareIncompatible(Bukkit.getVersion())) | ||||
|             { | ||||
|                 getLogger().severe("mcMMO does not recognize your server software as being compatible!"); | ||||
|                 getLogger().severe("Compatible Server Software: "+ COMPATIBLE_SERVER_SOFTWARE); | ||||
|                 getLogger().severe("Incompatible Server Software: "+ INCOMPATIBLE_SERVER_SOFTWARE); | ||||
|             } | ||||
|  | ||||
|             if(isServerMinecraftVersionIncompatible(Bukkit.getBukkitVersion())) | ||||
|             { | ||||
|                 getLogger().severe("mcMMO does not recognize your Minecraft Version as being compatible!"); | ||||
|                 getLogger().severe("Compatible Minecraft Versions: "+ COMPATIBLE_MINECRAFT_VERSIONS); | ||||
|                 getLogger().info("TIP: Paper and Spigot are extensions of CraftBukkit and are completely safe to upgrade to from CraftBukkit, please consider upgrading."); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private boolean isIncompatibleVersion(String serverSoftwareString, String serverVersionString) | ||||
|     { | ||||
|         if (isServerSoftwareIncompatible(serverSoftwareString)) | ||||
|             return true; | ||||
|  | ||||
|         if (isServerMinecraftVersionIncompatible(serverVersionString)) | ||||
|             return true; | ||||
|  | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     private boolean isServerMinecraftVersionIncompatible(String serverVersionString) { | ||||
|         if(!serverVersionString.contains("1.13.2")) | ||||
|             return true; | ||||
|  | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     private boolean isServerSoftwareIncompatible(String serverSoftwareString) { | ||||
|         if(!serverSoftwareString.contains("paper") && !serverSoftwareString.contains("spigot")) | ||||
|             return true; | ||||
|  | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 nossr50
					nossr50