Помогите Фикс краш-табличек

  • Автор темы Автор темы morokin
  • Дата начала Дата начала

morokin

Активный участник
Пользователь
Баллы
61
Помогите пофиксить краш-табличку если которую поставить крашнется майнкрафт.
Вот на неё команда
/give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{\"translate\":\"translation.test.invalid\"}"},display:{Name:"Краш табличка"}}
 
Такой код пофиксит

PHP:
private static final Collection<Component> crashComponents = Arrays.asList(
        GsonComponentSerializer.gson().deserialize("{\"translate\":\"translation.test.invalid\"}"),
        GsonComponentSerializer.gson().deserialize("{\"translate\":\"translation.test.invalid2\"}")
);

@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void onMaliciousSignPlace(final BlockPlaceEvent event) {
    if (!(event.getBlock().getState() instanceof Sign sign))
        return;
    for (final Component line : sign.lines()) {
        for (final Component crashComponent : crashComponents) {
            if (line.equals(crashComponent) || line.contains(crashComponent)) {
                event.setCancelled(true);
                getSLF4JLogger().debug("Player {}[{}] tried to place a malicious crash sign.", event.getPlayer().getName(),
                        event.getPlayer().getUniqueId());
            }
        }
    }
}

* просто отменит установку таблички, если она содержит один из краш компонентов

UPD: не знаю, какой у вас сервер с клиентом, но на 1.19.4 такой краш в принципе не работает.
 
Назад
Верх Низ