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

СливПлатные

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

  • WEKBA
  • pro_god_pro
  • pe444encka
  • saksansd
  • VFVDFRRTE
  • Ichi
  • grigorijvasilenko300
  • Tarteen228
  • Entarosgel
  • KrejziBro
  • zylang
  • Itachiiiiiii
  • t1rt1k
  • deezzee777
  • IIuoneXtor
  • Kewl
  • asdfg123
  • bebra3214
  • VuTuV
  • Sashadragon
  • PlanetPlay
  • fidgi
  • SkaYtik
  • daKai
  • fleyn37
  • AppenCocken
  • sadasSSS
  • Fecubu
  • Fong
  • moiz_x
  • DenPlayStar
  • homeffgg
  • PROTECTION
  • QWScloud
  • SusBruh
  • miklandey
  • Nagivka
  • egor2
  • paingocry
  • Rociohun-10
  • ResPC
  • nevejin
  • Samuera
  • TATA82
  • ItzFrosty.dev
  • LuisDybala
  • Mardaster
  • kenthomie
  • ccawa
  • MarkDark
  • Krestooov
  • KatKot
  • Samus_here
  • IIekiT
  • glebyagala
  • Valkryqwees
  • roman111
  • ShadowArc
  • redgar
  • Marik_axs2
  • CuteCat228
  • PashaGo2014
  • crip2002
  • qeqbwd
  • Nguyendepzaiso1

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