Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Баланс уходит в минус

Метки:
Теги Теги
help plugin spigot 1.16.5

NightDay_

Новичок
Пользователь
Баллы
16
Имя в Minecraft
NightDay_
Код:
                 p.getInventory().removeItem(new ItemStack(Material.GRASS_BLOCK, 16));
                 getInstance().pdata.set("data." + p.getName() + ".blocks", getInstance().pdata.getInt("data." + p.getName() + ".blocks") - 16);

вот есть у меня такой код и если у меня баланс например 10 то при покупке блоков он уходит в минус и становится -6

помогите пожалуйста
 
Ну, ты ничего и не проверяешь - естественно он будет в минус уходить.
 
Получи баланс в переменную а не сразу устанавливай, проверь его через if, в зависимости от результата делай что требуется.

как то так??

Код:
 if (getInstance().pdata.getInt("data." + p.getName() + ".blocks") == 0) {
                     p.sendMessage("Нехватает CB");
                 }else {
                     p.getInventory().removeItem(new ItemStack(Material.DIRT, 16));
                     getInstance().pdata.set("data." + p.getName() + ".blocks", getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 16);
                 }
 
как то так??

Код:
 if (getInstance().pdata.getInt("data." + p.getName() + ".blocks") == 0) {
                     p.sendMessage("Нехватает CB");
                 }else {
                     p.getInventory().removeItem(new ItemStack(Material.DIRT, 16));
                     getInstance().pdata.set("data." + p.getName() + ".blocks", getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 16);
                 }
Скорей так
PHP:
int balance = getInstance().pdata.getInt("data." + p.getName() + ".blocks");
if (balance - 16 <= 0) {
    p.sendMessage("Не хватает CB");
} else {
    p.getInventory().removeItem(new ItemStack(Material.DIRT, 16));
    getInstance().pdata.set("data." + p.getName() + ".blocks", balance - 16);
}
 
а как сделать проверку есть ли блок в инвентаре
 
а как сделать проверку есть ли блок в инвентаре
Создаёшь переменнту Integer, пусть будет "amount", затем перебираешь инвентарь игрока и от каждого ItemStack получаешь материал, если он равен тому, который тебе нужен, amount = amount + item.getAmount();, и так в конце у тебя будет общее количество материалов. И у тебя удаление предметов неправильно идёт, будет работать только если эти блоки одним предметом, если переименованы или лор есть, то это уже работать не будет, поищи более нормальный способ
 

Поделиться этой страницей

Назад
Верх