Skip to content

Commit

Permalink
Move everything to the stack
Browse files Browse the repository at this point in the history
Easy fix for memory leaks I guess
  • Loading branch information
SomePineaple committed May 3, 2022
1 parent 28e0dad commit a07fe78
Show file tree
Hide file tree
Showing 23 changed files with 134 additions and 197 deletions.
6 changes: 3 additions & 3 deletions src/Phantom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ void Phantom::runClient() {

while (running) {
// This is in the loop so that the instances are current. IE, joining a new world not trying to reference the old one.
EntityPlayerSP *player = mc->getPlayerContainer();
WorldClient *world = mc->getWorldContainer();
EntityPlayerSP player = mc->getPlayerContainer();
WorldClient world = mc->getWorldContainer();
// Ensure the player and world are not null (IE, check if in-game)
if (player == nullptr || world == nullptr) {
if (player.getEntityPlayerSP() == nullptr || world.getWorld() == nullptr) {
window->update(cheats, running, false);
continue;
}
Expand Down
39 changes: 20 additions & 19 deletions src/cheats/AimAssist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,40 +42,40 @@ void AimAssist::run(Minecraft *mc) {
if (!onlyOnClick || mouseState.buttonStates[1]) {
float closestDistance = range;

EntityPlayerSP *thePlayer = mc->getPlayerContainer();
EntityPlayerSP thePlayer = mc->getPlayerContainer();

EntityPlayer *closest = nullptr;
JavaList *players = mc->getWorldContainer()->getPlayers();
if (players == nullptr)
EntityPlayer closest(phantom, nullptr);
JavaList players = mc->getWorldContainer().getPlayers();
if (players.getList() == nullptr)
return;

for (int i = 0; i < players->size(); i++) {
auto *player = new EntityPlayer(phantom, players->get(i));
if ((player->getId() != mc->getPlayerContainer()->getId()) && isInFOV(player, mc, fov) && !(MCUtils::sameTeam(mc, player) && teams)) {
auto newDist = (float) MathHelper::distance(player->getPosX(), player->getPosY(), player->getPosZ(), thePlayer->getPosX(), thePlayer->getPosY(), thePlayer->getPosZ());
for (int i = 0; i < players.size(); i++) {
EntityPlayer player(phantom, players.get(i));
if ((player.getId() != mc->getPlayerContainer().getId()) && isInFOV(&player, mc, fov) && !(MCUtils::sameTeam(mc, &player) && teams)) {
auto newDist = (float) MathHelper::distance(player.getPosX(), player.getPosY(), player.getPosZ(), thePlayer.getPosX(), thePlayer.getPosY(), thePlayer.getPosZ());
if (newDist < closestDistance) {
closestDistance = newDist;
closest = player;
}
}
}

if (closest != nullptr) {
MathHelper::Vec2 fullRotations = MathHelper::getRotations(thePlayer, closest);
if (closest.getPlayer() != nullptr) {
MathHelper::Vec2 fullRotations = MathHelper::getRotations(&thePlayer, &closest);

float currentYaw = MathHelper::wrapAngleTo180(thePlayer->getRotationYaw());
float currentPitch = MathHelper::wrapAngleTo180(thePlayer->getRotationPitch());
float currentYaw = MathHelper::wrapAngleTo180(thePlayer.getRotationYaw());
float currentPitch = MathHelper::wrapAngleTo180(thePlayer.getRotationPitch());

int direction = MathHelper::getDirection(currentYaw, fullRotations.x);

thePlayer->setRotationYaw(thePlayer->getRotationYaw() + (std::min(hSpeed / ImGui::GetIO().Framerate, (float)std::abs(fullRotations.x - currentYaw)) * (float)direction));
thePlayer.setRotationYaw(thePlayer.getRotationYaw() + (std::min(hSpeed / ImGui::GetIO().Framerate, (float)std::abs(fullRotations.x - currentYaw)) * (float)direction));

if (fullRotations.y > currentPitch) {
thePlayer->setRotationPitch(thePlayer->getRotationPitch() + (vSpeed / ImGui::GetIO().Framerate));
thePlayer->setRotationPitch(std::min(thePlayer->getRotationPitch(), (float)fullRotations.y));
thePlayer.setRotationPitch(thePlayer.getRotationPitch() + (vSpeed / ImGui::GetIO().Framerate));
thePlayer.setRotationPitch(std::min(thePlayer.getRotationPitch(), (float)fullRotations.y));
} else if (fullRotations.y < currentPitch) {
thePlayer->setRotationPitch(thePlayer->getRotationPitch() - (vSpeed / ImGui::GetIO().Framerate));
thePlayer->setRotationPitch(std::max(thePlayer->getRotationPitch(), (float)fullRotations.y));
thePlayer.setRotationPitch(thePlayer.getRotationPitch() - (vSpeed / ImGui::GetIO().Framerate));
thePlayer.setRotationPitch(std::max(thePlayer.getRotationPitch(), (float)fullRotations.y));
}
}
}
Expand All @@ -93,8 +93,9 @@ void AimAssist::renderSettings() {
}

bool AimAssist::isInFOV(EntityPlayer *entity, Minecraft *mc, float fov) {
float playerYaw = MathHelper::wrapAngleTo180(mc->getPlayerContainer()->getRotationYaw()) + 180;
MathHelper::Vec2 targetRotations = MathHelper::getRotations(mc->getPlayerContainer(), entity);
EntityPlayerSP player = mc->getPlayerContainer();
float playerYaw = MathHelper::wrapAngleTo180(player.getRotationYaw()) + 180;
MathHelper::Vec2 targetRotations = MathHelper::getRotations(&player, entity);
float targetYaw = (float)targetRotations.x + 180;

float diff = std::abs(MathHelper::getAngleDiff(playerYaw, targetYaw));
Expand Down
27 changes: 13 additions & 14 deletions src/cheats/AimBot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,30 @@ AimBot::AimBot(Phantom *phantom) : Cheat("AimBot","Automatically puts cursor ove
}

void AimBot::run(Minecraft *mc) {
EntityPlayerSP *player = mc->getPlayerContainer();
WorldClient *world = mc->getWorldContainer();
EntityPlayerSP player = mc->getPlayerContainer();
WorldClient world = mc->getWorldContainer();

float closestDist = range;

// Get all the entities, calculate the closest one
JavaList *entities = world->getEntities();
int closestIndex = -1;
for (int i = 0; i < entities->size(); i++) {
Entity entity(phantom, entities->get(i));
if (entity.getId() != player->getId()) {
auto newDist = (float)MathHelper::distance(entity.getPosX(), entity.getPosY(), entity.getPosZ(), player->getPosX(), player->getPosY(), player->getPosZ());
JavaList entities = world.getEntities();
Entity closest(phantom, nullptr);
for (int i = 0; i < entities.size(); i++) {
Entity entity(phantom, entities.get(i));
if (entity.getId() != player.getId()) {
auto newDist = (float)MathHelper::distance(entity.getPosX(), entity.getPosY(), entity.getPosZ(), player.getPosX(), player.getPosY(), player.getPosZ());
if (newDist < closestDist) {
closestDist = newDist;
closestIndex = i;
closest = entity;
}
}
}

// If there is an entity in range, look at it
if (closestIndex != -1) {
Entity closest(phantom, entities->get(closestIndex));
MathHelper::Vec2 rotation = MathHelper::direction(player->getPosX(), player->getPosY(), player->getPosZ(), closest.getPosX(), closest.getPosY(), closest.getPosZ());
player->setRotationYaw((float)rotation.x);
player->setRotationPitch((float)rotation.y);
if (closest.getEntity() != nullptr) {
MathHelper::Vec2 rotation = MathHelper::direction(player.getPosX(), player.getPosY(), player.getPosZ(), closest.getPosX(), closest.getPosY(), closest.getPosZ());
player.setRotationYaw((float)rotation.x);
player.setRotationPitch((float)rotation.y);
}
}

Expand Down
64 changes: 32 additions & 32 deletions src/cheats/Reach.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,54 +19,54 @@ void Reach::renderSettings() {

// This is basically a copy of how minecraft calculates what block your looking at, but with modified reach values.
void Reach::run(Minecraft *mc) {
Entity *renderViewEntity = mc->getRenderViewEntityContainer();
EntityRenderer *entityRenderer = mc->getEntityRendererContainer();
Vec3 *hitVec;
Entity *ridingEntity;
Entity renderViewEntity = mc->getRenderViewEntityContainer();
EntityRenderer entityRenderer = mc->getEntityRendererContainer();
Vec3 hitVec(phantom, nullptr);
Entity ridingEntity(phantom, nullptr);

if (renderViewEntity != nullptr) {
float partialTicks = mc->getTimerContainer()->getPartialTicks();
if (renderViewEntity.getEntity() != nullptr) {
float partialTicks = mc->getTimerContainer().getPartialTicks();

double var2 = reach;
double var4 = var2;

Vec3 *var6 = mc->getRenderViewEntityContainer()->getPositionEyesContainer(partialTicks);
Vec3 *var7 = renderViewEntity->getLookContainer(partialTicks);
Vec3 *var8 = var6->addVectorContainer(var7->getXCoord() * var2, var7->getYCoord() * var2, var7->getZCoord() * var2);
entityRenderer->setPointedEntity(nullptr);
Vec3 *var9 = nullptr;
Vec3 var6 = mc->getRenderViewEntityContainer().getPositionEyesContainer(partialTicks);
Vec3 var7 = renderViewEntity.getLookContainer(partialTicks);
Vec3 var8 = var6.addVectorContainer(var7.getXCoord() * var2, var7.getYCoord() * var2, var7.getZCoord() * var2);
entityRenderer.setPointedEntity(nullptr);
Vec3 var9(phantom, nullptr);
float var10 = 1;
AxisAlignedBB *boundingBox = renderViewEntity->getEntityBoundingBoxContainer();
JavaList *var11 = mc->getWorldContainer()->getEntitiesWithinAABBExcluding(renderViewEntity->getEntity(), boundingBox->getAddCoordContainer(var7->getXCoord() * var2, var7->getYCoord() * var2, var7->getZCoord() * var2)->expand(var10, var10, var10));
AxisAlignedBB boundingBox = renderViewEntity.getEntityBoundingBoxContainer();
JavaList var11 = mc->getWorldContainer().getEntitiesWithinAABBExcluding(renderViewEntity.getEntity(), boundingBox.getAddCoordContainer(var7.getXCoord() * var2, var7.getYCoord() * var2, var7.getZCoord() * var2).expand(var10, var10, var10));
double var12 = var4;

for (int var14 = 0; var14 < var11->size(); var14++) {
auto *var15 = new Entity(mc->getPhantom(), var11->get(var14));
for (int var14 = 0; var14 < var11.size(); var14++) {
Entity var15(mc->getPhantom(), var11.get(var14));

if (var15->canBeCollidedWith()) {
float var16 = var15->getCollisionBorderSize();
AxisAlignedBB *var17 = var15->getEntityBoundingBoxContainer()->getExpandContainer(var16, var16, var16);
MovingObjectPosition *var18 = var17->getCalculateInterceptContainer(var6->getVec3(), var8->getVec3());
if (var18 != nullptr)
hitVec = var18->getHitVecContainer();
if (var15.canBeCollidedWith()) {
float var16 = var15.getCollisionBorderSize();
AxisAlignedBB var17 = var15.getEntityBoundingBoxContainer().getExpandContainer(var16, var16, var16);
MovingObjectPosition var18 = var17.getCalculateInterceptContainer(var6.getVec3(), var8.getVec3());
if (var18.getMovingObjectPosition() != nullptr)
hitVec = var18.getHitVecContainer();

if (var17->isVecInside(var6->getVec3())) {
if (var17.isVecInside(var6.getVec3())) {
if (0 <= var12) {
entityRenderer->setPointedEntity(var15->getEntity());
var9 = var18 == nullptr ? var6 : hitVec;
entityRenderer.setPointedEntity(var15.getEntity());
var9 = var18.getMovingObjectPosition() == nullptr ? var6 : hitVec;
var12 = 0;
}
} else if (var18 != nullptr) {
double var19 = var6->distanceTo(hitVec->getVec3());
} else if (var18.getMovingObjectPosition() != nullptr) {
double var19 = var6.distanceTo(hitVec.getVec3());
if (var19 < var12 || var12 == 0) {
ridingEntity = renderViewEntity->getRidingEntityContainer();
if (ridingEntity != nullptr && var15->getId() == ridingEntity->getId()) {
ridingEntity = renderViewEntity.getRidingEntityContainer();
if (ridingEntity.getEntity() != nullptr && var15.getId() == ridingEntity.getId()) {
if (var12 == 0) {
entityRenderer->setPointedEntity(var15->getEntity());
entityRenderer.setPointedEntity(var15.getEntity());
var9 = hitVec;
}
} else {
entityRenderer->setPointedEntity(var15->getEntity());
entityRenderer.setPointedEntity(var15.getEntity());
var9 = hitVec;
var12 = var19;
}
Expand All @@ -75,10 +75,10 @@ void Reach::run(Minecraft *mc) {
}
}

if (entityRenderer->getPointedEntityContainer() != nullptr && var12 > 3) {
if (entityRenderer.getPointedEntityContainer().getEntity() != nullptr && var12 > 3) {
jclass MovingObjectPosition = mc->getClass("net.minecraft.util.MovingObjectPosition");
jmethodID movingObjectPositionConstructor = phantom->getEnv()->GetMethodID(MovingObjectPosition, "<init>", "(Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)V");
mc->setObjectMouseOver(phantom->getEnv()->NewObject(MovingObjectPosition, movingObjectPositionConstructor, entityRenderer->getPointedEntity(), var9->getVec3()));
mc->setObjectMouseOver(phantom->getEnv()->NewObject(MovingObjectPosition, movingObjectPositionConstructor, entityRenderer.getPointedEntity(), var9.getVec3()));
}
}
}
4 changes: 4 additions & 0 deletions src/mapping/impl/java/lang/JavaSystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@
JavaSystem::JavaSystem(Phantom *phantom) : AbstractClass(phantom, "System") {
out = new JavaPrintStream(phantom, getObject(getFieldID("out")));
}

JavaSystem::~JavaSystem() {
delete out;
}
1 change: 1 addition & 0 deletions src/mapping/impl/java/lang/JavaSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
class JavaSystem : public AbstractClass {
public:
explicit JavaSystem(Phantom *phantom);
~JavaSystem();
JavaPrintStream *out;
private:
};
Expand Down
50 changes: 12 additions & 38 deletions src/mapping/impl/net/minecraft/client/Minecraft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ Minecraft::Minecraft(Phantom *phantom) : AbstractClass::AbstractClass(phantom, "
fdLeftClickMouse = getFieldID("leftClickMouse");

mdGetRenderViewEntity = getMethodID("getRenderViewEntity");

playerContainer = nullptr;
worldContainer = nullptr;
gameSettingsContainer = nullptr;
}

jobject Minecraft::getMinecraft() {
Expand Down Expand Up @@ -92,50 +88,28 @@ void Minecraft::setLeftClickMouse(jint leftClickMouse) {
setInt(getMinecraft(), fdLeftClickMouse, leftClickMouse);
}

EntityPlayerSP *Minecraft::getPlayerContainer() {
if (getPlayer() == nullptr) return nullptr;

if (!playerContainer)
playerContainer = new EntityPlayerSP(phantom, this);
return playerContainer;
EntityPlayerSP Minecraft::getPlayerContainer() {
return EntityPlayerSP(phantom, this);
}

WorldClient *Minecraft::getWorldContainer() {
if (getWorld() == nullptr) return nullptr;

if (!worldContainer)
worldContainer = new WorldClient(phantom, this);
return worldContainer;
WorldClient Minecraft::getWorldContainer() {
return WorldClient(phantom, this);
}

GameSettings *Minecraft::getGameSettingsContainer() {
if (getGameSettings() == nullptr)
return nullptr;

if (!gameSettingsContainer)
gameSettingsContainer = new GameSettings(phantom, getGameSettings());
return gameSettingsContainer;
GameSettings Minecraft::getGameSettingsContainer() {
return GameSettings(phantom, getGameSettings());
}

Entity *Minecraft::getRenderViewEntityContainer() {
if (getRenderViewEntity() == nullptr)
return nullptr;

return new Entity(phantom, getRenderViewEntity());
Entity Minecraft::getRenderViewEntityContainer() {
return Entity(phantom, getRenderViewEntity());
}

Timer *Minecraft::getTimerContainer() {
jobject timer = getTimer();
if (timer == nullptr)
return nullptr;
return new Timer(phantom, timer);
Timer Minecraft::getTimerContainer() {
return Timer(phantom, getTimer());
}

EntityRenderer *Minecraft::getEntityRendererContainer() {
jobject entityRenderer = getEntityRenderer();
if (entityRenderer == nullptr)
return nullptr;
return new EntityRenderer(phantom, entityRenderer);
EntityRenderer Minecraft::getEntityRendererContainer() {
return EntityRenderer(phantom, getEntityRenderer());
}

Phantom *Minecraft::getPhantom() {
Expand Down
16 changes: 6 additions & 10 deletions src/mapping/impl/net/minecraft/client/Minecraft.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ class Minecraft : public AbstractClass {
jint getLeftClickMouse();
void setLeftClickMouse(jint leftClickMouse);

EntityPlayerSP *getPlayerContainer();
WorldClient *getWorldContainer();
GameSettings *getGameSettingsContainer();
Entity *getRenderViewEntityContainer();
Timer *getTimerContainer();
EntityRenderer *getEntityRendererContainer();
EntityPlayerSP getPlayerContainer();
WorldClient getWorldContainer();
GameSettings getGameSettingsContainer();
Entity getRenderViewEntityContainer();
Timer getTimerContainer();
EntityRenderer getEntityRendererContainer();
Phantom *getPhantom();
private:
jfieldID fdPlayer;
Expand All @@ -55,10 +55,6 @@ class Minecraft : public AbstractClass {
jfieldID fdLeftClickMouse;
jmethodID smdGetMinecraft;
jmethodID mdGetRenderViewEntity;

EntityPlayerSP *playerContainer;
WorldClient *worldContainer;
GameSettings *gameSettingsContainer;
};

#endif //PHANTOM_MINECRAFT_H
19 changes: 6 additions & 13 deletions src/mapping/impl/net/minecraft/client/multiplayer/WorldClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,16 @@ void WorldClient::setWorldTime(jlong time) {
callMethod(mc->getWorld(), mdSetWorldTime, time);
}

JavaList *WorldClient::getEntities() {
return new JavaList(phantom, getEntityList());
JavaList WorldClient::getEntities() {
return JavaList(phantom, getEntityList());
}

JavaList *WorldClient::getPlayers() {
if (getPlayerList() == nullptr)
return nullptr;

return new JavaList(phantom, getPlayerList());
JavaList WorldClient::getPlayers() {
return JavaList(phantom, getPlayerList());
}

JavaList *WorldClient::getEntitiesWithinAABBExcluding(jobject entity, jobject AABB) {
jobject entitiesWithinAABB = getEntitiesWithinAABBExcludingList(entity, AABB);
if (entitiesWithinAABB == nullptr)
return nullptr;

return new JavaList(phantom, entitiesWithinAABB);
JavaList WorldClient::getEntitiesWithinAABBExcluding(jobject entity, jobject AABB) {
return JavaList(phantom, getEntitiesWithinAABBExcludingList(entity, AABB));
}

jobject WorldClient::getWorld() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ class WorldClient : public AbstractClass {
jobject getEntitiesWithinAABBExcludingList(jobject entity, jobject AABB);
void setWorldTime(jlong time);

JavaList *getEntities();
JavaList *getPlayers();
JavaList *getEntitiesWithinAABBExcluding(jobject entity, jobject AABB);
JavaList getEntities();
JavaList getPlayers();
JavaList getEntitiesWithinAABBExcluding(jobject entity, jobject AABB);

jobject getWorld();
private:
Expand Down
Loading

0 comments on commit a07fe78

Please sign in to comment.