Помогите Почему значение не изменяется?

  • Автор темы Автор темы Sergeo
  • Дата начала Дата начала

Sergeo

Активный участник
Пользователь
Баллы
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()))));
                }
            };
        }
 
Назад
Верх