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

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

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