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

Помогите Опыт с блока

Статус
Закрыто для дальнейших ответов.

Folzy

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
CUBOPHORIA
Как мне изменить получение опыта при разрушении определенного блока например Material.COAL_ORE
Что-бы опыт не добавлялся игроку через .setLevel
А именно чтоб выпадал с блока как это обычно бывает.
 
PHP:
    @EventHandler
    private void on(BlockBreakEvent event) {
        int exp = event.getExpToDrop();
        if (exp > 0) {
            event.setExpToDrop(0); // Отмена выпадения с блока
            event.getPlayer().giveExp(event.getExpToDrop()); // Выдача напрямую игроку или что-то иное
        }
    }
 
PHP:
    @EventHandler
    private void on(BlockBreakEvent event) {
        int exp = event.getExpToDrop();
        if (exp > 0) {
            event.setExpToDrop(0); // Отмена выпадения с блока
            event.getPlayer().giveExp(event.getExpToDrop()); // Выдача напрямую игроку или что-то иное
        }
    }
А куда писать значение выпадаемого экспирианса? в скобки event.getExpToDrops() ?
 
PHP:
    @EventHandler
    private void on(BlockBreakEvent event) {
        int exp = event.getExpToDrop();
        if (exp > 0) {
            event.setExpToDrop(0); // Отмена выпадения с блока
            event.getPlayer().giveExp(event.getExpToDrop()); // Выдача напрямую игроку или что-то иное
        }
    }
Нет ты не понял мне надо изменить кол-во exp выпадающего с блока, допустим выпадает 0.1F а мне надо 0.3F
 
PHP:
    @EventHandler
    private void on(BlockBreakEvent event) {
        int exp = event.getExpToDrop();
        if (exp > 0) {
            event.setExpToDrop(0); // Отмена выпадения с блока
            event.getPlayer().giveExp(event.getExpToDrop()); // Выдача напрямую игроку или что-то иное
        }
    }
Я не понимаю зачем ты написал if (exp > 0)
Ведь с этим значением код не всегда срабатывает.
И ещё не понял зачем ты пишешь в начале event , если достаточно написать e (Да и к тому же с event не работает)
поэтому я в
@EventHandler добавил код
int exp = e.getExpToDrop();

И в строку с
if (ore == Material.COAL_ORE) {
Добавил
event.setExpToDrop(0);
event.getPlayer().giveExp(event.getExpToDrop());

И тадам все работает без перебоев.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх