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

СливПлатные

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

  • vcllebiwfsdg
  • devkyf
  • pe444encka
  • Vi4ozniy
  • sssasddas
  • Dagotygames
  • sPidRan_Rpg
  • rabinya111
  • potbee
  • capybara24252
  • итдлрапп
  • 2312
  • caneda33
  • DimanPwXx
  • MrArssenij
  • tiran84
  • kirilltwice
  • rus933
  • solothx
  • fefsa2
  • 12dwesqsq
  • tex08lol1
  • RayaFebrian
  • triumf
  • ZakiodYT
  • 2302114245
  • DrRaiker
  • nevejin
  • Volter
  • ridarik
  • Zhaitan
  • estereomance
  • DevKazuo
  • roman111
  • NemO_
  • t1rt1k
  • Demi34
  • super0ts0s
  • jifjifa
  • GameDom1231
  • asgfwergwerdfhb
  • VFVDFRRTE
  • naxllqq
  • xlove_forshine
  • Miller_00
  • koyyy07
  • subroutine
  • Whisky
  • FlickG870
  • Demon111222
  • hendikk
  • FaktSd
  • IrissCore
  • ps1nnabon
  • serega_top4ik
  • me1by
  • k1aSoTKA
  • Topicone
  • sphnx
  • MuPoBo
  • SIMBAY
  • dead_key

Помощь 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() на ваш способ получения экземпляра экономики, который вы используете в вашем плагине.
 
ВерхНиз