Entity Glow / Wallhack ESP Mixin

Glow_Mixin_Override Рендер / ESP HIGH +8 очков

🎮 Влияние на механику Minecraft

В Minecraft эффект свечения (Glowing) подсвечивает контур сущности цветной обводкой, которая видна сквозь непрозрачные блоки и препятствия. В ванильной игре этот эффект выдается сервером строго по игровым правилам — например, при попадании спектральной стрелы или наложении соответствующего зелья.

Glow_Mixin_Override обнаруживает модификации, перехватывающие метод Entity.isGlowing() (method_5851) через Mixin. В модификации FriendHighlight (net.maksaidev.friendhighlight.mixin.EntityGlowMixin) аннотация @Inject внедряется в начало метода isGlowing с параметром cancellable = true. Если сущность является игроком (class_742), код проверяет его наличие в списке друзей FriendManager.isFriend(name). При совпадении метод вызывает cir.setReturnValue(true).

Принудительный возврат true заставляет клиент отрисовывать контур сквозь стены. Несмотря на то, что в данном образце функционал ориентирован на утилитарную подсветку союзников, абсолютно аналогичный байткод-шаблон используется в читах класса Wallhack / ESP для обнаружения любых противников на PvP-серверах.

🔍 Анализируемые функции и API

Entity.isGlowing / method_5851

Ванильный предикат сущности, определяющий отображение светящегося силуэта сквозь препятствия (method_5851).

@Inject / @ModifyReturnValue (Mixin)

Аннотации Mixin для внедрения логики в Entity.isGlowing с принудительным возвратом значения true.

⚙️ Декомпилированный вид (Vineflower)

@Inject(method = "isGlowing", at = @At("HEAD"), cancellable = true)
private void friendhighlight$forceGlowForFriends(CallbackInfoReturnable<Boolean> cir) {
   class_1297 self = (class_1297)this;
   if (self instanceof class_742 clientPlayer) {
      String name = clientPlayer.method_7334().getName();
      if (FriendManager.isFriend(name)) {
         cir.setReturnValue(true);
      }
   }
}

🛡️ Сигнатура байткода и статический детект

Детектор анализирует аннотации методов, выявляя точки внедрения Mixin (@Inject, @ModifyReturnValue или @ModifyExpressionValue), нацеленные на предикаты свечения сущностей:

  • Методы Intermediary: method_5851 (isGlowing) и method_27022 (hasOutline).
  • Именованные методы движка и Forge: isGlowing, shouldGlow, isCurrentlyGlowing, hasOutline или func_184195_f.

Правило фиксирует вмешательство в статус свечения сущностей на уровне байткода. Следует учитывать, что правило реагирует на любую инъекцию в isGlowing, включая как агрессивные читы (Wallhack / ESP на всех игроков), так и утилитарные модификации (например, подсветку союзников). Если отрисовка контуров реализована через кастомные шейдеры OpenGL/VBO без модификации isGlowing, данная сигнатура не сработает.