Сборки серверов

СливПлатные

Сейчас онлайн

  • vanio5453
  • ddd_3213132
  • gjgjdhdjh
  • hllper
  • Whonde
  • TakumiHiji
  • WhisAlly
  • Pyrexi61
  • qwqeed
  • Soldi_n
  • Frenkinofficial
  • VertoZo
  • GidexPlay
  • Valkryqwees
  • grigorijvasilenko300
  • Omn1xz
  • Blanche
  • bobobo
  • Krintek
  • girov555
  • vinhky123
  • Miller_00
  • don't
  • kingclutch23
  • youbileev
  • Whisky
  • VaporyGorilla5
  • nevejin
  • Anrelax
  • пкуер
  • easyder
  • GotyYE_
  • zero_0
  • KrejziBro
  • Joyyys
  • jezza
  • t0rpedv
  • gjhl1q
  • maksimw222
  • Extr1se_
  • Masterok
  • yrnero
  • rjignow
  • артур-дц
  • kal200
  • Smallston
  • dimsskiy
  • Kapybarka
  • tytytuyytty
  • LiDeRoN
  • Headus
  • vancorl
  • TheCatCAER
  • фнафер
  • MrGavrik
  • mrmesniy
  • FlickG870
  • homeffgg
  • Kforak152
  • Аrtemchiks
  • KabanKazah
  • Kobalew
  • VilloniHVH
  • KitaKitsune
  • skymonix
  • MineZona
  • grandikkk1
  • Rift Studio
  • MrGerst

Помощь MyCommands - создание /pay

akp1ded
Ссылка на лог
https://mclo.gs/VB1ajbz
Версия ядра сервера
1.16+
Всем привет.. столкнулся с такой проблемой!
В общем, мне нужно чтобы когда игрок писал /pay отправлялось сообщение &b[$] &a1$ &fотправлен игроку &6ник игрока *при этом дефолтное сообщение о том что деньги списаны от Essentials быть не должно) игрок которому пришли деньги должен получить это сообщение &fИгрок &6его ник отправил вам &aсумма$, а так же второй скрипт для /eco give &b[$] &fНа ваш баланс начилено &aсумма$ помогите пожалуйста.... сделал примерное, но сообщения просто показываются, а деньги не приходят! ( а так же баланс не должен уходить в отрицательный, т.е баланс игрока 10руб, он отправил 15руб и у него не списалось, а вывело сообщение о том что у него нет столько) (лог вставил левый, он не от того что надо)
 
GPT-4o
Для решения вашей задачи вам нужно будет создать два командных обработчика: один для команды /pay, а другой для команды /eco give. Предполагается, что вы используете плагин Essentials для управления экономикой. Ниже приведен пример кода для обеих команд.

Java:
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class EconomyPlugin extends JavaPlugin {

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("pay") && sender instanceof Player) {
            Player payer = (Player) sender;
            if (args.length < 2) {
                payer.sendMessage("Укажите игрока и сумму.");
                return true;
            }

            Player payee = getServer().getPlayer(args[0]);
            if (payee == null) {
                payer.sendMessage("Игрок не найден.");
                return true;
            }

            double amount;
            try {
                amount = Double.parseDouble(args[1]);
            } catch (NumberFormatException e) {
                payer.sendMessage("Некорректная сумма.");
                return true;
            }

            double balance = getEconomy().getBalance(payer);
            if (balance < amount) {
                payer.sendMessage("У вас недостаточно средств.");
                return true;
            }

            // Списываем деньги
            getEconomy().withdrawPlayer(payer, amount);
            getEconomy().depositPlayer(payee, amount);

            // Отправляем сообщения
            payer.sendMessage("&amp;b[$] &amp;a1$ &amp;fотправлен игроку &amp;6" + payee.getName());
            payee.sendMessage("&amp;fИгрок &amp;6" + payer.getName() + " отправил вам &amp;a" + amount + "$");

            return true;
        }

        if (cmd.getName().equalsIgnoreCase("eco") && args.length > 0 && args[0].equalsIgnoreCase("give")) {
            if (sender instanceof Player) {
                Player player = (Player) sender;
                if (args.length < 2) {
                    player.sendMessage("Укажите игрока и сумму.");
                    return true;
                }

                Player target = getServer().getPlayer(args[1]);
                if (target == null) {
                    player.sendMessage("Игрок не найден.");
                    return true;
                }

                double amount;
                try {
                    amount = Double.parseDouble(args[2]);
                } catch (NumberFormatException e) {
                    player.sendMessage("Некорректная сумма.");
                    return true;
                }

                // Начисляем деньги
                getEconomy().depositPlayer(target, amount);
                player.sendMessage("&amp;b[$] &amp;fНа ваш баланс начилено &amp;a" + amount + "$");

                return true;
            }
        }

        return false;
    }

    private Economy getEconomy() {
        // Получите экземпляр вашей экономики
        return null; // Замените на ваш метод получения экономики
    }
}

Не забудьте заменить метод getEconomy() на ваш способ получения экземпляра экономики, который вы используете в вашем плагине.
 
ВерхНиз