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

Плагин [MISC] NoMapInItemFrames - фикс крашей при помощи карт в рамках.

Overwrite

Активный участник
Пользователь
Баллы
98
Имя в Minecraft
OverwriteMC
Описание: NoMapInItemFrames - плагин, предназначенный для устранения способа залага сервера, связанного с размещением карт в рамках и последующим умножением меток на них.

Версии: 1.9-1.17 (не работает на версиях ниже 1.9, т.к. проверяет 2 руку.)

Функционал: Плагин запрещает игрокам размещать карты в рамках, если они находятся в креативе. Можно включить запрет на установку карт в рамки для всех игроков, не зависимо от режима игры.

Конфиг:
# Блокировать только установку карт в рамки в креативе
block-only-creative: true
# Сообщение игроку
msg: '&6Вы не можете помещать в рамки карты в креативе'

Права/команды - нету

Ссылка на скачивание: https://yadi.sk/d/gyaWaipRLycB0g
 
Последнее редактирование:
Исправил)

2. Откуда информация о баге?
В теме отписал

Если думаешь что своровал идею фикса - не надо. Я был как раз тем, кто об этом баге всех оповестил.
Краш не новый, но вот крупный ютубер решил упомянуть его только сейчас.
 
Какой-то топорный фикс получился если честно. Почему бы просто слушать пакет MapData и проверять тип значка? То есть если получаем пакет с типом значка 1 (это как раз рамка) то меняем его на другой, либо отменяем отправку такого пакета вовсе.
https://wiki.vg/Protocol#Map_Data
 
Какой-то топорный фикс получился если честно. Почему бы просто слушать пакет MapData и проверять тип значка? То есть если получаем пакет с типом значка 1 (это как раз рамка) то меняем его на другой, либо отменяем отправку такого пакета вовсе.
https://wiki.vg/Protocol#Map_Data
Мне было лень :whistle:

(а еще я не хочу отнимать деньги у друзей, они этот фикс за бабло продают)
 
Бро, я все понимаю, но фикс в любом случае вопрос времени.
Ну а это уже сами)
Лучше всего будет сделать фикс лично для себя и оставить в секрете, я сделал это на скорую руку по ржаке по тому что захотелось
 
Код:
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
    public void onFrameFix(PlayerInteractEntityEvent event) {
        if (event.getRightClicked() instanceof ItemFrame frame && frame.isEmpty()) {
            PlayerInventory iventory = event.getPlayer().getInventory();
            if (event.getHand() == EquipmentSlot.HAND
                    && iventory.getItemInMainHand().getItemMeta() instanceof MapMeta meta) {
                meta.getMapView().setTrackingPosition(false);
            }
            if (event.getHand() == EquipmentSlot.OFF_HAND
                    && iventory.getItemInOffHand().getItemMeta() instanceof MapMeta meta) {
                meta.getMapView().setTrackingPosition(false);
            }
        }
    }
Фикс для любого режима игры.
 
Последнее редактирование:
Код:
    @EventHandler
    public void onFrameFix(PlayerInteractEntityEvent event) {
        if (event.getRightClicked() instanceof ItemFrame frame && frame.isEmpty()) {
            PlayerInventory iventory = event.getPlayer().getInventory();
            if (event.getHand() == EquipmentSlot.HAND
                    && iventory.getItemInMainHand().getItemMeta() instanceof MapMeta meta) {
                meta.getMapView().setTrackingPosition(false);
            }
            if (event.getHand() == EquipmentSlot.OFF_HAND
                    && iventory.getItemInOffHand().getItemMeta() instanceof MapMeta meta) {
                meta.getMapView().setTrackingPosition(false);
            }
        }
    }
Фикс для любого режима игры.
Эх, а ведь кто-то это за 400 рублей продавал...
 
ЭТО за 400 рублей? То есть даже без подмены пакетов?
хз, сам можешь купить посмотреть как там сделано) Вроде бы отменой пакетов, если на карте более 15 таких флагов
 
Да просто отключил трекинг игрока, перед тем когда карту вставляли во фрейм и все, делов то. Вставляется без метки и та что в руках уже не отслеживает движение.
 
Последнее редактирование:

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

Назад
Верх