Сделаем папку Bank, а в ней класс MaxMoneyPlayer. Мы ставим ограничение, игрок не может держать больше 1000 долларов Vault на аккаунте. Если, у него 999 долларов, лимит 1000, а ему приходит 100 долларов, то 1 доллар мы переводим ему, а 99 долларов мы переводим игроку Oluni_Official. Данный лимит не работает на игрока Oluni_Official. При том, когда игрок теряет деньги от лимита, как было в примере выше, мы пишем ему в чат: "&#A7F6FF[🎣 ғɪsʜɪɴɢ | Банк] &rХей! Вы только что потеряли &#A7F6FF(Сколько игрок потерял при получении денег, как в примере)$&r. Может, лучше откроете карту в нашем банке и не будете терять ваши доллары? &7(Вы можете изначально носить только 1000 долларов, для большего нужно открыть карту)"

package oluni.official.fishcore;

import net.milkbowl.vault.economy.Economy;
import oluni.official.fishcore.Admins.AdminChat;
import oluni.official.fishcore.Admins.ReportManager;
import oluni.official.fishcore.Admins.ReportReplyManager;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Objects;

public class FishCore extends JavaPlugin implements Listener {
    private static Economy econ = null;

    @Override
    public void onEnable() {
        if (!setupEconomy()) {
            getLogger().severe("Vault не найден! Отключение плагина...");
            getServer().getPluginManager().disablePlugin(this);
            return;
        }
        // Регистрируем событие на присоединение игрока
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("FishCore плагин успешно включен!");
        getServer().getPluginManager().registerEvents(new MoneyTransferListener(), this);
        getServer().getPluginManager().registerEvents(new KillRewards(), this);
        getServer().getPluginManager().registerEvents(new HelloMoney(), this);
        Objects.requireNonNull(getCommand("wiki")).setExecutor(new WikiCommand());
        Objects.requireNonNull(getCommand("tutorial")).setExecutor(new TutorialManage());
        Objects.requireNonNull(getCommand("a")).setExecutor(new AdminChat(this));
        ReportManager reportManager = new ReportManager(this);
        Objects.requireNonNull(getCommand("report")).setExecutor(reportManager);

        // Создание экземпляра ReportReplyManager и его регистрация
        ReportReplyManager reportReplyManager = new ReportReplyManager(reportManager);
        Objects.requireNonNull(getCommand("reports")).setExecutor(reportReplyManager);

        // Регистрация других слушателей команд и событий, если необходимо
    }

    @Override
    public void onDisable() {
        getLogger().info("FishCore плагин успешно отключен!");
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        // Сообщение при заходе игрока
        String tutorialMessage = "&#A7F6FF[🎣 | ғɪsʜɪɴɢ] &fПриветствую вас, уважаемый игрок. " +
                "Для того что бы лучше разобраться в нашем режиме, можете заглянуть на вики &7(TAB)&f, " +
                "или же пропишите &#72F2A1/tutorial &fдля краткого туториала по режиму.";
        event.getPlayer().sendMessage(colorizeHex(tutorialMessage));
    }

    // Метод для обработки HEX-кодов
    private String colorizeHex(String message) {
        StringBuilder result = new StringBuilder();
        char[] chars = message.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (i + 7 < chars.length && chars[i] == '&' && chars[i + 1] == '#' && isHexCode(message.substring(i + 2, i + 8))) {
                result.append("§x");
                for (int j = i + 2; j < i + 8; j++) {
                    result.append("§").append(chars[j]);
                }
                i += 7; // Пропускаем обработанный HEX-код
            } else if (chars[i] == '&') {
                result.append("§");
            } else {
                result.append(chars[i]);
            }
        }
        return result.toString();
    }

    // Проверяем, является ли строка HEX-кодом
    private boolean isHexCode(String code) {
        return code.matches("[A-Fa-f0-9]{6}");
    }
    private boolean setupEconomy() {
        RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp == null) {
            return false;
        }
        econ = rsp.getProvider();
        return true;
    }

    public static Economy getEconomy() {
        return econ;
    }
}