Иконка ресурса

Запрет на использование кирок в мирах.

241
20
75
Egorka добавил(а) новый ресурс:

Запрет на использование кирок в мирах. - Ограничение кирок в мирах

Хочу поделиться простеньким кодом на запрет использования кирки в определённом мире.
Java:
    @SubscribeEvent
    public void Tools(BlockEvent.BreakEvent event) {
        EntityPlayer player = event.getPlayer();
        
        if (!player.worldObj.isRemote) {
        if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.draconicDestructionStaff) {...

Узнать больше об этом ресурсе...
 
Я бы лучше ещё отменял ивент BreakSpeed
Пробовал, но этот эвент срабатывает каждый тик, что мне не подошло.
UPD: Добавил код с событием BreakSpeed(Срабатывает при нажатии на блок, каждый тик).
 
Последнее редактирование:
Там элементарные проверки, никакой нагрузки это не даст.
Да я знаю, просто когда я это делал, мне оно не подошло из-за большого количества сообщений в чат игроку, т.к событие срабатывает каждый тик.
 
Последнее редактирование:
Если игрок будет копать ваджрой, то не важно, какой эвент юзается - спам будет в любым случае. Так что надо запоминать, отправлялось ли уже сообщение или нет.
Хотя отменять событие BlockBreak все же нужно по причине той же ваджры, для визуального эффекта стоит юзать оба события
 
Ваджра может копать по пкм мгновенно, BreakSpeed не вызывается по идее
 
Еще лучше сделать конфиг, куда записывать к примеру, анлокалайзед имя (как вариант)(можно еще и айди мира в связке) и сравнивать в ивенте так. Тогда получиться универсально и без всяких зависимостей
 
Как вариант, это уже вопрос реализации и мало волнует, подал лишь предложение/идею
 
UPD: Добавил реализацию с конфигом.
Большое спасибо @timaxa007, он мне всё от а до я разжевал.
 
Чтобы лишний раз не сплтитиь по ",", можно заюзать сразу getStringList, вместо обычного String, + в конфиге они будут записаны более понятно и с каждой строчки (как улучшение)
 
Последнее редактирование:
Назад
Сверху