- Баллы
- 76
- Имя в Minecraft
- Solomka
По идее он должен возращать значение, которое обработано скиллом, то есть умножено, но это не происходит и он возращает игроку стандартное значение из конфига(Стоимость за руду)
Класс, в котором обрабатывается зарплата:
Обработка скиллом:
Вызов в команде:
Класс, в котором обрабатывается зарплата:
Код:
public class MathSalary implements IMathSalaryM {
@Getter @Setter private int cash;
private final File file = new File(Main.getInstance().getDataFolder() + "/" + "data.yml");
private final DataM data = new DataM();
private final ConfigManager config = new ConfigManager();
private final int[] salary = {
config.getInt("Ore.COAL_ORE.Cost", Main.getInstance()),
config.getInt("Ore.IRON_ORE.Cost", Main.getInstance()),
config.getInt("Ore.GOLD_ORE.Cost", Main.getInstance()),
config.getInt("Ore.DIAMOND_ORE.Cost", Main.getInstance()),
config.getInt("Ore.EMERALD_ORE.Cost", Main.getInstance())
};
private final String[] sections = { "COAL_ORE", "IRON_ORE", "GOLD_ORE", "DIAMOND_ORE", "EMERALD_ORE" };
@Override
public int salary(Player p) {
FileConfiguration dFile = YamlConfiguration.loadConfiguration(file);
int[] blocks = { data.getInt(dFile,"Data." + p.getName() + ".Blocks.COAL_ORE"),
data.getInt(dFile,"Data." + p.getName() + ".Blocks.IRON_ORE"),
data.getInt(dFile,"Data." + p.getName() + ".Blocks.GOLD_ORE"),
data.getInt(dFile,"Data." + p.getName() + ".Blocks.DIAMOND_ORE"),
data.getInt(dFile,"Data." + p.getName() + ".Blocks.EMERALD_ORE") };
cash = salary[0] * blocks[0] + salary[1] * blocks[1] + salary[2] *
blocks[2] + salary[3] * blocks[3] + salary[4] * blocks[4];
CashM cashM = new CashM(cash);
int multiplyCash = cashM.getMultiplySalary();
int nowCash = cashM.getNowSalary();
for(String s : sections) {
data.setValue(dFile, file, FormatType.CLEAR, "Data." + p.getName() + ".Blocks." + s);
}
if(data.getInt(dFile, "Data." + p.getName() + ".CASH") <= 0) return nowCash;
return multiplyCash;
}
}
Обработка скиллом:
Код:
public class CashM implements ICashM {
private final ConfigManager config = new ConfigManager();
private final SkillM skill = new SkillM();
@Getter @Setter private int nowSalary;
@Getter private int multiplySalary;
private final File file = new File(Main.getInstance().getDataFolder() + "/" + "data.yml");
public CashM(int nowSalary) {
this.nowSalary = nowSalary;
}
@Override
public int multiply(Player p) {
FileConfiguration dFile = YamlConfiguration.loadConfiguration(file);
switch (skill.getLevel(dFile, "Data." + p.getName() + ".CASH")) {
case 1 : {
multiplySalary = (int) (nowSalary * config.getDouble("Updates.CASH.Levels.1", Main.getInstance()));
return multiplySalary;
}
case 2 : {
multiplySalary = (int) (nowSalary * config.getDouble("Updates.CASH.Levels.2", Main.getInstance()));
return multiplySalary;
}
case 3 : {
multiplySalary = (int) (nowSalary * config.getDouble("Updates.CASH.Levels.3", Main.getInstance()));
return multiplySalary;
}
default : return nowSalary;
}
}
}
Вызов в команде:
Код:
func = (sender, args) -> {
final List<ECommand> cmds = new ArrayList<>(instance.getRegisteredCommands());
cmds.add(this);
if (!(sender instanceof Player)) return;
Player p = (Player) sender;
if (p.hasPermission(getPermission()) || p.isOp()) {
giveMoney(p, math.salary(p));
send(p, translateAlternateColorCodes('&', config.getString("Message.Blocks.SalaryGive",
Main.getInstance()).replace("%salary%", String.valueOf(math.getCash()))));
}
};
}