void sdk::minecraft_client::ReleaseMouse() {
auto env = silex::instance->get_env();
if (!env)return;
jobject mc_obj = get_minecraft();
if (mc_obj) {
jclass mc_class = env->GetObjectClass(mc_obj);
if (mc_class) {
jfieldID mouse = env->GetFieldID(mc_class, "field_1729", "Lnet/minecraft/client/class_312;");
check_jni_exception(env, "а for mouse instance");
if (!mouse) {
env->DeleteLocalRef(mc_class);
env->DeleteLocalRef(mc_obj);
return;
}
jobject mouse_obj = env->GetObjectField(mc_obj, mouse);
if (!mouse_obj) {
env->DeleteLocalRef(mc_obj);
env->DeleteLocalRef(mc_class);
return;
}
jclass mouse_class = env->GetObjectClass(mouse_obj);
jmethodID unlockMouse = env->GetMethodID(mouse_class, "method_1610", "()V");
if (!unlockMouse) {
env->DeleteLocalRef(mc_obj);
env->DeleteLocalRef(mc_class);
env->DeleteLocalRef(mouse_class);
env->DeleteLocalRef(mouse_obj);
}
env->CallVoidMethod(mouse_obj, unlockMouse);
env->DeleteLocalRef(mc_obj);
env->DeleteLocalRef(mc_class);
env->DeleteLocalRef(mouse_class);
env->DeleteLocalRef(mouse_obj);
}
}
}