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

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

Сообщения
184
Лучшие ответы
15
Реакции
60
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) {...
Узнать больше об этом ресурсе...
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,982
Лучшие ответы
434
Реакции
2,054
Я бы лучше ещё отменял ивент BreakSpeed, тогда не будет неприятных фантомных ломаний блоков на доли секунды.
 
Сообщения
184
Лучшие ответы
15
Реакции
60
Я бы лучше ещё отменял ивент BreakSpeed
Пробовал, но этот эвент срабатывает каждый тик, что мне не подошло.
UPD: Добавил код с событием BreakSpeed(Срабатывает при нажатии на блок, каждый тик).
 
Последнее редактирование:

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,982
Лучшие ответы
434
Реакции
2,054
И что? Там элементарные проверки, никакой нагрузки это не даст.
 
Сообщения
184
Лучшие ответы
15
Реакции
60
Там элементарные проверки, никакой нагрузки это не даст.
Да я знаю, просто когда я это делал, мне оно не подошло из-за большого количества сообщений в чат игроку, т.к событие срабатывает каждый тик.
 
Последнее редактирование:
Сообщения
5,256
Лучшие ответы
167
Реакции
935
Если игрок будет копать ваджрой, то не важно, какой эвент юзается - спам будет в любым случае. Так что надо запоминать, отправлялось ли уже сообщение или нет.
Хотя отменять событие BlockBreak все же нужно по причине той же ваджры, для визуального эффекта стоит юзать оба события
 
Сообщения
5,256
Лучшие ответы
167
Реакции
935
Ваджра может копать по пкм мгновенно, BreakSpeed не вызывается по идее
 

Eifel

Модератор
Сообщения
1,483
Лучшие ответы
68
Реакции
476
Еще лучше сделать конфиг, куда записывать к примеру, анлокалайзед имя (как вариант)(можно еще и айди мира в связке) и сравнивать в ивенте так. Тогда получиться универсально и без всяких зависимостей
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,982
Лучшие ответы
434
Реакции
2,054
Зачем унлокалайзед, если есть строковый айди?
 

Eifel

Модератор
Сообщения
1,483
Лучшие ответы
68
Реакции
476
Как вариант, это уже вопрос реализации и мало волнует, подал лишь предложение/идею
 
Сообщения
184
Лучшие ответы
15
Реакции
60
UPD: Добавил реализацию с конфигом.
Большое спасибо @timaxa007, он мне всё от а до я разжевал.
 

Eifel

Модератор
Сообщения
1,483
Лучшие ответы
68
Реакции
476
Чтобы лишний раз не сплтитиь по ",", можно заюзать сразу getStringList, вместо обычного String, + в конфиге они будут записаны более понятно и с каждой строчки (как улучшение)
 
Последнее редактирование:
Сверху