This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/minecraft/sdk/c_gameinstance.h
2020-08-04 13:13:01 -04:00

53 lines
1.9 KiB
C++

#pragma once
#include "c_entity.h"
#include "c_minecraft.h"
#include "c_rendermanager.h"
#include "c_world.h"
class c_gameinstance {
public:
jobject get_minecraft() {
jclass minecraft_class = minecraft->m_jenv->FindClass("ave");
jmethodID find_minecraft = minecraft->m_jenv->GetStaticMethodID(
minecraft_class, "A", "()Lave;");
return minecraft->m_jenv->CallStaticObjectMethod(minecraft_class,
find_minecraft);
}
void click_mouse() {
jmethodID click_mouse = minecraft->m_jenv->GetMethodID(
minecraft->m_jenv->GetObjectClass(get_minecraft()), "aw", "()V");
return minecraft->m_jenv->CallVoidMethod(get_minecraft(), click_mouse);
}
jobject get_screen() {
jfieldID get_screen = minecraft->m_jenv->GetFieldID(
minecraft->m_jenv->GetObjectClass(get_minecraft()), "m", "Laxu;");
return minecraft->m_jenv->GetObjectField(get_minecraft(), get_screen);
}
jobject get_player() {
jfieldID get_player = minecraft->m_jenv->GetFieldID(
minecraft->m_jenv->GetObjectClass(get_minecraft()), "h", "Lbew;");
return minecraft->m_jenv->GetObjectField(get_minecraft(), get_player);
}
c_rendermanager* get_render_manager() {
jfieldID render_manager = minecraft->m_jenv->GetFieldID(
minecraft->m_jenv->GetObjectClass(get_minecraft()), "aa", "Lbiu;");
return new c_rendermanager(
minecraft->m_jenv->GetObjectField(get_minecraft(), render_manager));
}
c_entity* get_local() {
return new c_entity(minecraft->game->get_player());
}
c_world* get_world() {
jfieldID get_world = minecraft->m_jenv->GetFieldID(
minecraft->m_jenv->GetObjectClass(get_minecraft()), "f", "Lbdb;");
return new c_world(
minecraft->m_jenv->GetObjectField(get_minecraft(), get_world));
}
};