Кароче вот у меня есть тригер бот которий уже изнасилован ии (он питался пофиксить как badpackets 2) он так его и не пофиксил вот код,как пофиксить кик по причине badpackets 2?
Да ужас я не скриваю
Trigger:
#include "triggerbot.h"
#include "../../OverrideClient.h"
#include "../../globals/globals.h"
#include "../stap/stap.h"
#include "../wtap/wtap.h"
#include "../autojumpreset/autojumpreset.h"
#include <sdk/minecraft/minecraft.h>
#include <sdk/minecraft/player/player.h>
#include <sdk/minecraft/entity/entity.h>
#include <sdk/classloader.h>
#include <windows.h>
#include <cmath>
static jclass entity_hit_result_cls = nullptr;
static jclass player_cls = nullptr;
static jclass living_entity_cls = nullptr;
static jclass vec3d_cls = nullptr;
static jmethodID get_entity_mid = nullptr;
static jmethodID get_cooldown_mid = nullptr;
static jmethodID get_velocity_mid = nullptr;
static jmethodID do_attack_mid = nullptr;
static jfieldID crosshair_target_fid = nullptr;
static jfieldID age_fid = nullptr;
static jfieldID vec3d_y_fid = nullptr;
static jfieldID hurt_time_fid = nullptr;
bool OverrideClient::modules::triggerbot::attacked_this_jump = false;
int OverrideClient::modules::triggerbot::last_processed_age = -1;
static int last_attack_age = 0;
void OverrideClient::modules::triggerbot::resolve_mappings(JNIEnv* env) {
if (player_cls) return;
auto find_and_cache = [&](const char* sig) -> jclass {
if (!sig) return nullptr;
std::string s = sig;
if (s.front() == 'L' && s.back() == ';') s = s.substr(1, s.size() - 2);
jclass local = sdk::classloader::find_class(env, s.c_str());
if (!local) return nullptr;
jclass global = (jclass)env->NewGlobalRef(local);
env->DeleteLocalRef(local);
return global;
};
jclass minecraft_cls = find_and_cache(sdk::mappings::minecraft_class_sig);
entity_hit_result_cls = find_and_cache(sdk::mappings::entity_hit_result_class_sig);
player_cls = find_and_cache(sdk::mappings::player_entity_class_sig);
living_entity_cls = find_and_cache(sdk::mappings::living_entity_class_sig);
vec3d_cls = find_and_cache(sdk::mappings::vec3d_class_sig);
if (env->ExceptionCheck()) env->ExceptionClear();
if (!minecraft_cls || !entity_hit_result_cls || !player_cls || !living_entity_cls || !vec3d_cls) return;
crosshair_target_fid = env->GetFieldID(minecraft_cls, sdk::mappings::crosshair_target_name, sdk::mappings::crosshair_target_sig);
do_attack_mid = env->GetMethodID(minecraft_cls, sdk::mappings::do_attack_name, sdk::mappings::do_attack_sig);
get_entity_mid = env->GetMethodID(entity_hit_result_cls, sdk::mappings::entity_hit_result_get_entity_name, sdk::mappings::entity_hit_result_get_entity_sig);
get_cooldown_mid = env->GetMethodID(player_cls, sdk::mappings::get_attack_cooldown_progress_name, sdk::mappings::get_attack_cooldown_progress_sig);
jclass entity_base_cls = sdk::classloader::find_class(env, sdk::mappings::entity_class_sig);
if (entity_base_cls) {
get_velocity_mid = env->GetMethodID(entity_base_cls, sdk::mappings::entity_velocity_name, sdk::mappings::entity_velocity_sig);
age_fid = env->GetFieldID(entity_base_cls, sdk::mappings::entity_age_name, "I");
env->DeleteLocalRef(entity_base_cls);
}
vec3d_y_fid = env->GetFieldID(vec3d_cls, sdk::mappings::vec3d_y_name, sdk::mappings::vec3d_y_sig);
hurt_time_fid = env->GetFieldID(living_entity_cls, sdk::mappings::living_entity_hurt_time_name, sdk::mappings::living_entity_hurt_time_sig);
env->DeleteGlobalRef(minecraft_cls);
if (env->ExceptionCheck()) env->ExceptionClear();
}
bool OverrideClient::modules::triggerbot::is_valid_target(JNIEnv* env, jobject target) {
if (!target) return false;
jobject local_player = sdk::instance->get_player();
if (local_player) {
bool is_same = env->IsSameObject(target, local_player);
env->DeleteLocalRef(local_player);
if (is_same) return false;
}
return env->IsInstanceOf(target, living_entity_cls);
}
void OverrideClient::modules::triggerbot::run() {
if (!globals::triggerbot_enabled || globals::show_gui) return;
auto env = OverrideClient::instance->get_env();
if (!env) return;
resolve_mappings(env);
if (!player_cls || !age_fid || !hurt_time_fid) return;
jobject lp_obj = sdk::instance->get_player();
if (!lp_obj) return;
int current_age = env->GetIntField(lp_obj, age_fid);
if (current_age == last_processed_age) {
env->DeleteLocalRef(lp_obj);
return;
}
last_processed_age = current_age;
sdk::entity_client local_player(lp_obj);
bool on_ground = local_player.is_on_ground();
if (on_ground) attacked_this_jump = false;
jobject current_screen = sdk::instance->get_current_screen();
if (current_screen != nullptr) {
env->DeleteLocalRef(current_screen);
env->DeleteLocalRef(lp_obj);
return;
}
jobject mc_obj = sdk::instance->get_minecraft();
if (!mc_obj) {
env->DeleteLocalRef(lp_obj);
return;
}
jobject hit_result = env->GetObjectField(mc_obj, crosshair_target_fid);
if (!hit_result || !env->IsInstanceOf(hit_result, entity_hit_result_cls)) {
if (hit_result) env->DeleteLocalRef(hit_result);
env->DeleteLocalRef(lp_obj); env->DeleteLocalRef(mc_obj);
return;
}
jobject target_entity = env->CallObjectMethod(hit_result, get_entity_mid);
env->DeleteLocalRef(hit_result);
if (!target_entity || !is_valid_target(env, target_entity)) {
if (target_entity) env->DeleteLocalRef(target_entity);
env->DeleteLocalRef(lp_obj); env->DeleteLocalRef(mc_obj);
return;
}
int target_hurt_time = env->GetIntField(target_entity, hurt_time_fid);
if (target_hurt_time > 0) {
env->DeleteLocalRef(target_entity);
env->DeleteLocalRef(lp_obj); env->DeleteLocalRef(mc_obj);
return;
}
float cooldown = env->CallFloatMethod(lp_obj, get_cooldown_mid, 0.0f);
double velocity_y = 0;
jobject vel_vec = env->CallObjectMethod(lp_obj, get_velocity_mid);
if (vel_vec) {
velocity_y = env->GetDoubleField(vel_vec, vec3d_y_fid);
env->DeleteLocalRef(vel_vec);
}
int my_hurt_time = env->GetIntField(lp_obj, hurt_time_fid);
bool cooldown_ready = !globals::triggerbot_require_cooldown || cooldown >= 0.9f;
bool tick_gate_ready = (current_age - last_attack_age >= 10);
bool conditions_met = false;
if (on_ground) {
conditions_met = cooldown_ready && tick_gate_ready;
} else if (!attacked_this_jump) {
if (velocity_y < 0 || my_hurt_time > 0) {
conditions_met = cooldown_ready;
}
}
if (conditions_met) {
if (sdk::instance->do_attack()) {
last_attack_age = current_age;
sdk::instance->set_attack_cooldown(10);
if (globals::last_hit_entity) env->DeleteGlobalRef(globals::last_hit_entity);
globals::last_hit_entity = env->NewGlobalRef(target_entity);
OverrideClient::modules::stap::on_hit();
OverrideClient::modules::wtap::on_hit();
OverrideClient::modules::autojumpreset::on_hit();
if (!on_ground) attacked_this_jump = true;
}
}
if (env->ExceptionCheck()) env->ExceptionClear();
env->DeleteLocalRef(target_entity);
env->DeleteLocalRef(lp_obj);
env->DeleteLocalRef(mc_obj);
}
void OverrideClient::modules::triggerbot::cleanup() {
auto env = OverrideClient::instance->get_env();
if (!env) return;
auto release = [&](jclass& cls) { if (cls) { env->DeleteGlobalRef(cls); cls = nullptr; } };
release(entity_hit_result_cls); release(player_cls);
release(living_entity_cls); release(vec3d_cls);
}