C++:
class CminecraftPlayer final
{
public:
CminecraftPlayer(JNIEnv* p_env)
: p_env(p_env)
{
Init();
}
bool Init() {
jclass minecraft_class = p_env->FindClass("bhz");
if (!minecraft_class) {
printf("[-] Minecraft class not found!\n");
return false;
}
jmethodID getMinecraft = p_env->GetStaticMethodID(
minecraft_class,
"z",
"()Lnet/minecraft/client/Minecraft;"
);
if (!getMinecraft) {
p_env->ExceptionDescribe();
p_env->ExceptionClear();
printf("[-] getMinecraft method not found!\n");
return false;
}
jobject instance = p_env->CallStaticObjectMethod(minecraft_class, getMinecraft);
if (!instance) {
printf("[-] Minecraft instance is null!\n");
return false;
}
jfieldID playerField = p_env->GetFieldID(minecraft_class, "h", "Lbub;");
if (!playerField) {
printf("[-] Player field not found!\n");
return false;
}
Player = p_env->GetObjectField(instance, playerField);
if (!Player) {
printf("[-] Player is null (not in game?)\n");
return false;
}
playerclass = p_env->GetObjectClass(Player);
return true;
}
void jump()
{
static jmethodID method_id = p_env->GetMethodID(playerclass, "cu", "()V");
p_env->CallVoidMethod(Player, method_id);
}
private:
jclass playerclass;
JNIEnv* p_env;
jobject Player;
};