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

СливПлатные

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

  • zxckid
  • erferergbhe
  • triumf
  • zekvel123
  • LARMIN
  • poapap
  • svinlll
  • Neyzu
  • qwrty
  • Pokillsad
  • aek
  • ReallyWiseFruit
  • ado
  • Miller_00
  • 4epyxa1
  • MiddleXen
  • axrune
  • Александр_С
  • PigeonAndTea
  • jifjifa
  • Frenkinofficial
  • kspubg浮生
  • mob1ck
  • tytytuyytty
  • sqzme
  • blacksky
  • mrdamon4ik
  • kirilltwice
  • roligoli
  • rus933
  • qwe111nt
  • Nagivka
  • fryokin
  • DeadlySquad
  • kadg
  • pups9
  • qwnmqwnm75
  • vovancho
  • Valkryqwees
  • Extr1se_
  • SkaYtik
  • Mrk0m42r
  • RimWorld
  • IIuoneXtor
  • vancorl
  • libybaaa
  • Kol3mi
  • fckkluvv
  • TakumiHiji
  • bishepp
  • naxllqq
  • pelmen964
  • northboykisser
  • pe444encka
  • flickyshka
  • iruysha
  • zenskye2e
  • VitaliyXX
  • t1rt1k
  • BYKalpsiz
  • dog4555
  • SusBruh
  • GioWolf
  • yrnero
  • sPidRan_Rpg
  • caneda33
  • Fecubu
  • hoglin
  • FlickG870
  • sav1251266
  • Terarox
  • easyder
  • juddyfrutty
  • nevejin
  • fakulminat
  • DenchikRox
  • Rusens
  • Chumamoore
  • XDeadForShadow
  • maxim22134
  • kapybara4
  • y4so
  • disdisdis

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