Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Не могу получить значение переменной через миксин

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
23 Авг 2021
Сообщения
583
Реакции
60
я не особо понимаю миксин пока что, но в туториалах где я видел просто достаточно написать в методе инжекта аргумент с типом данных и название переменной и всё пойдет, но у меня так не работает
код миксина:
MixinMinecraft.java:
Expand Collapse Copy
@Inject(method = "runTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/settings/KeyBinding;onTick(I)V", shift = At.Shift.BEFORE))
    public void onKeyPress(CallbackInfo ci, int k) {
        Glacial.INSTANCE.event_bus.post(new KeyPress(k));
    }

ошибка которую выводит в консоль при инжекта миксина:

log:
Expand Collapse Copy
[15:03:32] [main/WARN] (MixinTransformer) /*     Invalid descriptor on                                                                                                                                                                                                                                                                                                                                                                        */
[15:03:32] [main/WARN] (MixinTransformer) /*     mixins.glacial.json:MixinMinecraft->@Inject::handler$onKeyPress$zza000(Lorg/                                                                                                                                                                                                                                                                                                                 */
[15:03:32] [main/WARN] (MixinTransformer) /*     pongepowered/asm/mixin/injection/callback/CallbackInfo;I)V! Expected                                                                                                                                                                                                                                                                                                                         */
[15:03:32] [main/WARN] (MixinTransformer) /*     (Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V but found                                                                                                                                                                                                                                                                                                                   */
[15:03:32] [main/WARN] (MixinTransformer) /*     (Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;I)V

кто разбирается, как пофиксить?
 
ВО-ПЕРВЫХ, КАЛЛБЭК ДОЛЖЕН БЫТЬ ВСЕГДА ПОСЛЕДНИМ ПАРАМЕТРОМ МЕТОДА, ВО-ВТОРЫХ, КТО ТЕБЕ ДАЛ ПРАВО НАЗЫВАТЬ ПЕРЕМЕННУЮ ЧЕРЕЗ НИЖНЕЕ ПОДЧЕРКИВАНИЕ?
 
ВО-ПЕРВЫХ, КАЛЛБЭК ДОЛЖЕН БЫТЬ ВСЕГДА ПОСЛЕДНИМ ПАРАМЕТРОМ МЕТОДА, ВО-ВТОРЫХ, КТО ТЕБЕ ДАЛ ПРАВО НАЗЫВАТЬ ПЕРЕМЕННУЮ ЧЕРЕЗ НИЖНЕЕ ПОДЧЕРКИВАНИЕ?
бро.. я так и так делал, один хуй ниче не работает
какая разница нижнее подчеркивание или нет
 
плохо делал значит
бля вот скажи нахуя такие как ты засоряют темы? ты нихуя не знаешь, от силы знаешь где сурсы минседа скачивать но при этом ты смеешь отвечать в этой теме
 
бля вот скажи нахуя такие как ты засоряют темы? ты нихуя не знаешь, от силы знаешь где сурсы минседа скачивать но при этом ты смеешь отвечать в этой теме
бля вот скажи нахуя такие как ты засоряют темы? ты нихуя не знаешь, от силы знаешь где сурсы минседа скачивать но при этом ты смеешь отвечать в этой теме
 
решил уже сам, на странице
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad) нашел решение в блоке
Capturing local values написан пример кода

кому надо ниже мой пофикшенный код
MixinMinecraft.java:
Expand Collapse Copy
@Inject(method = "runTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/settings/KeyBinding;onTick(I)V",
            shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILHARD)
    public void onKeyPress(CallbackInfo ci, int k) {
        Glacial.INSTANCE.event_bus.post(new KeyPress(k));
    }
 
Назад
Сверху Снизу