mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-12-02 01:46:45 +01:00
Ranks config idea
This commit is contained in:
parent
b8e937a234
commit
63ae7e97e1
@ -0,0 +1,45 @@
|
|||||||
|
package com.gmail.nossr50.config.tiers;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
public class BlastMiningRank extends Rank {
|
||||||
|
|
||||||
|
private double blastDamageDecrease;
|
||||||
|
private double oreBonus;
|
||||||
|
private double debrisReduction;
|
||||||
|
private int dropMultiplier;
|
||||||
|
private double blastRadiusModifier;
|
||||||
|
|
||||||
|
public BlastMiningRank(int level, double blastDamageDecrease, double oreBonus, double debrisReduction, int dropMultiplier, double blastRadiusModifier) {
|
||||||
|
super(level);
|
||||||
|
this.blastDamageDecrease = blastDamageDecrease;
|
||||||
|
this.oreBonus = oreBonus;
|
||||||
|
this.debrisReduction = debrisReduction;
|
||||||
|
this.dropMultiplier = dropMultiplier;
|
||||||
|
this.blastRadiusModifier = blastRadiusModifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlastMiningRank(ConfigurationSection section) {
|
||||||
|
this(section.getInt("Level"), section.getDouble("BlastDamageDecrease"), section.getDouble("OreBonus"), section.getDouble("DebrisReduction"), section.getInt("DropMultiplier"), section.getDouble("BlastRadiusModifier"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getBlastDamageDecrease() {
|
||||||
|
return blastDamageDecrease;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getOreBonus() {
|
||||||
|
return oreBonus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getDebrisReduction() {
|
||||||
|
return debrisReduction;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDropMultiplier() {
|
||||||
|
return dropMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getBlastRadiusModifier() {
|
||||||
|
return blastRadiusModifier;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.gmail.nossr50.config.tiers;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
public class FishingRank extends Rank {
|
||||||
|
|
||||||
|
private double shakeChance;
|
||||||
|
private int xpBoost;
|
||||||
|
|
||||||
|
private FishingRank(int level, double shakeChance, int xpBoost) {
|
||||||
|
super(level);
|
||||||
|
this.shakeChance = shakeChance;
|
||||||
|
this.xpBoost = xpBoost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FishingRank(ConfigurationSection section) {
|
||||||
|
this(section.getInt("Level"), section.getDouble("ShakeChance"), section.getInt("VanillaXPBoost"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getShakeChance() {
|
||||||
|
return shakeChance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getXpBoost() {
|
||||||
|
return xpBoost;
|
||||||
|
}
|
||||||
|
}
|
13
src/main/java/com/gmail/nossr50/config/tiers/Rank.java
Normal file
13
src/main/java/com/gmail/nossr50/config/tiers/Rank.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package com.gmail.nossr50.config.tiers;
|
||||||
|
|
||||||
|
public abstract class Rank {
|
||||||
|
private int level;
|
||||||
|
|
||||||
|
public Rank(int level) {
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLevel() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
}
|
117
src/main/java/com/gmail/nossr50/config/tiers/RankLoader.java
Normal file
117
src/main/java/com/gmail/nossr50/config/tiers/RankLoader.java
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
package com.gmail.nossr50.config.tiers;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.ConfigLoader;
|
||||||
|
|
||||||
|
public class RankLoader extends ConfigLoader {
|
||||||
|
|
||||||
|
private List<FishingRank> fishingRanks;
|
||||||
|
private List<SmeltingRank> smeltingRanks;
|
||||||
|
private List<BlastMiningRank> blastMiningRanks;
|
||||||
|
private List<RepairRank> repairRanks;
|
||||||
|
private static RankLoader instance;
|
||||||
|
|
||||||
|
private RankLoader() {
|
||||||
|
super("ranks.yml");
|
||||||
|
fishingRanks = new ArrayList<FishingRank>();
|
||||||
|
smeltingRanks = new ArrayList<SmeltingRank>();
|
||||||
|
blastMiningRanks = new ArrayList<BlastMiningRank>();
|
||||||
|
repairRanks = new ArrayList<RepairRank>();
|
||||||
|
loadKeys();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RankLoader getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new RankLoader();
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void loadKeys() {
|
||||||
|
ConfigurationSection section = config.getConfigurationSection("Ranks.Fishing");
|
||||||
|
RankComparator rankComparator = new RankComparator();
|
||||||
|
for (String rank : section.getKeys(false)) {
|
||||||
|
fishingRanks.add(new FishingRank(section.getConfigurationSection(rank)));
|
||||||
|
}
|
||||||
|
Collections.sort(fishingRanks, rankComparator);
|
||||||
|
|
||||||
|
section = config.getConfigurationSection("Ranks.BlastMining");
|
||||||
|
for (String rank : section.getKeys(false)) {
|
||||||
|
blastMiningRanks.add(new BlastMiningRank(section.getConfigurationSection(rank)));
|
||||||
|
}
|
||||||
|
Collections.sort(blastMiningRanks, rankComparator);
|
||||||
|
|
||||||
|
section = config.getConfigurationSection("Ranks.Repair");
|
||||||
|
for (String rank : section.getKeys(false)) {
|
||||||
|
repairRanks.add(new RepairRank(section.getConfigurationSection(rank)));
|
||||||
|
}
|
||||||
|
Collections.sort(repairRanks, rankComparator);
|
||||||
|
|
||||||
|
section = config.getConfigurationSection("Ranks.Smelting");
|
||||||
|
for (String rank : section.getKeys(false)) {
|
||||||
|
smeltingRanks.add(new SmeltingRank(section.getConfigurationSection(rank)));
|
||||||
|
}
|
||||||
|
Collections.sort(smeltingRanks, rankComparator);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FishingRank getFishingRank(int level) {
|
||||||
|
Iterator<FishingRank> it = fishingRanks.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
FishingRank rank = it.next();
|
||||||
|
if (rank.getLevel() > level) {
|
||||||
|
return rank;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RepairRank getRepairRank(int level) {
|
||||||
|
Iterator<RepairRank> it = repairRanks.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
RepairRank rank = it.next();
|
||||||
|
if (rank.getLevel() > level) {
|
||||||
|
return rank;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SmeltingRank getSmeltingRank(int level) {
|
||||||
|
Iterator<SmeltingRank> it = smeltingRanks.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
SmeltingRank rank = it.next();
|
||||||
|
if (rank.getLevel() > level) {
|
||||||
|
return rank;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlastMiningRank getBlastMiningRank(int level) {
|
||||||
|
Iterator<BlastMiningRank> it = blastMiningRanks.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
BlastMiningRank rank = it.next();
|
||||||
|
if (rank.getLevel() > level) {
|
||||||
|
return rank;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RankComparator implements Comparator<Rank> {
|
||||||
|
@Override
|
||||||
|
public int compare(Rank o1, Rank o2) {
|
||||||
|
return Integer.valueOf(o1.getLevel()).compareTo(Integer.valueOf(o2.getLevel()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
27
src/main/java/com/gmail/nossr50/config/tiers/RepairRank.java
Normal file
27
src/main/java/com/gmail/nossr50/config/tiers/RepairRank.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.gmail.nossr50.config.tiers;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
public class RepairRank extends Rank {
|
||||||
|
|
||||||
|
private double downgradeChance;
|
||||||
|
private double keepEnchantsChance;
|
||||||
|
|
||||||
|
public RepairRank(int level, double downgradeChance, double keepEnchantsChance) {
|
||||||
|
super(level);
|
||||||
|
this.downgradeChance = downgradeChance;
|
||||||
|
this.keepEnchantsChance = keepEnchantsChance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RepairRank(ConfigurationSection section) {
|
||||||
|
this(section.getInt("Level"), section.getDouble("DowngradeChance"), section.getDouble("KeepEnchantsChance"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getDowngradeChance() {
|
||||||
|
return downgradeChance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getKeepEnchantsChance() {
|
||||||
|
return keepEnchantsChance;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.gmail.nossr50.config.tiers;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
public class SmeltingRank extends Rank {
|
||||||
|
|
||||||
|
private int xpMultiplier;
|
||||||
|
|
||||||
|
public SmeltingRank(int level, int xpMultiplier) {
|
||||||
|
super(level);
|
||||||
|
this.xpMultiplier = xpMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SmeltingRank(ConfigurationSection section) {
|
||||||
|
this(section.getInt("Level"), section.getInt("VanillaXPMultiplier"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getXpMultiplier() {
|
||||||
|
return xpMultiplier;
|
||||||
|
}
|
||||||
|
}
|
41
src/main/resources/ranks.yml
Normal file
41
src/main/resources/ranks.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Ranks:
|
||||||
|
Fishing:
|
||||||
|
Rank1:
|
||||||
|
Level: 0
|
||||||
|
ShakeChance: 1.0
|
||||||
|
VanillaXPBoost: 1
|
||||||
|
ect:
|
||||||
|
Level: 1
|
||||||
|
ShakeChance: 1.0
|
||||||
|
VanillaXPBoost: 1
|
||||||
|
Smelting:
|
||||||
|
Rank1:
|
||||||
|
Level: 0
|
||||||
|
VanillaXPBoost: 1
|
||||||
|
ect:
|
||||||
|
Level: 1
|
||||||
|
VanillaXPBoost: 1
|
||||||
|
BlastMining:
|
||||||
|
Rank1:
|
||||||
|
Level: 0
|
||||||
|
BlastDamageDecrease: 1.0
|
||||||
|
OreBonus: 1.0
|
||||||
|
DebrisReduction: 1.0
|
||||||
|
DropMultiplier: 1
|
||||||
|
BlastRadiusModifier: 1
|
||||||
|
ect:
|
||||||
|
Level: 1
|
||||||
|
BlastDamageDecrease: 1.0
|
||||||
|
OreBonus: 1.0
|
||||||
|
DebrisReduction: 1.0
|
||||||
|
DropMultiplier: 1
|
||||||
|
BlastRadiusModifier: 1
|
||||||
|
Repair:
|
||||||
|
Rank1:
|
||||||
|
Level: 0
|
||||||
|
DowngradeChance: 1.0
|
||||||
|
KeepEnchantsChance: 1.0
|
||||||
|
ect:
|
||||||
|
Level: 1
|
||||||
|
DowngradeChance: 1.0
|
||||||
|
KeepEnchantsChance: 1.0
|
Loading…
Reference in New Issue
Block a user