Skip to content

Commit 90e0ce4

Browse files
committed
Numby Hack v2.1
Added Game Settings module | allows for easier changes to game settings Added Baritone Process | shows what baritone is doing on the HUD Renamed StatUtils to NumbyHackStarscript
1 parent 4186fbd commit 90e0ce4

9 files changed

Lines changed: 167 additions & 19 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<p>A simple Meteor addon focused on giving users more customization options. Made in honor of Number81.</p>
66

77
<!-- Fancy badges -->
8-
<a href="https://github.com/cqb13/Numby-hack/releases"><img src="https://img.shields.io/badge/Version-v2.0-green" alt="Version"></a>
8+
<a href="https://github.com/cqb13/Numby-hack/releases"><img src="https://img.shields.io/badge/Version-v2.1-green" alt="Version"></a>
99
<a href="https://anticope.ml/addons/?"><img src="https://img.shields.io/badge/Verified-Yes!-green" alt="Verified"></a>
1010
<img src="https://img.shields.io/badge/Minecraft%20Version-1.19.4-green" alt="Minecraft Version">
1111
<img src="https://img.shields.io/github/downloads/cqb13/Numby-hack/total?color=green">

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ yarn_version=1.19.4+build.1
77
loader_version=0.14.17
88

99
# Mod Properties
10-
mod_version=2.0
10+
mod_version=2.1
1111
maven_group=cqb13.NumbyHack
1212
archives_base_name=Numby-Hack
1313

src/main/java/cqb13/NumbyHack/NumbyHack.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,16 @@ public void onInitialize() {
2929
Log("Adding Player Particles...");
3030
PlayerParticle.init();
3131

32-
StatsUtils.init();
32+
NumbyHackStarscript.init();
3333
MeteorStarscript.ss.set("numbyhack", Value.map(new ValueMap()
34-
.set("kills", StatsUtils::getKills)
35-
.set("deaths", StatsUtils::getDeaths)
36-
.set("kdr", StatsUtils::getKDR)
37-
.set("killstreak", StatsUtils::getKillstreak)
38-
.set("highscore", StatsUtils::getHighscore)
39-
.set("brand", StatsUtils::getServerBrand)
40-
.set("crystalsps", StatsUtils::getCrystalsPs))
34+
.set("kills", NumbyHackStarscript::getKills)
35+
.set("deaths", NumbyHackStarscript::getDeaths)
36+
.set("kdr", NumbyHackStarscript::getKDR)
37+
.set("killstreak", NumbyHackStarscript::getKillstreak)
38+
.set("highscore", NumbyHackStarscript::getHighscore)
39+
.set("brand", NumbyHackStarscript::getServerBrand)
40+
.set("crystalsps", NumbyHackStarscript::getCrystalsPs)
41+
.set("baritone", NumbyHackStarscript::getBaritoneAction))
4142
);
4243

4344
Log("Adding modules...");
@@ -49,6 +50,7 @@ public void onInitialize() {
4950
Modules.get().add(new ConditionToggle());
5051
Modules.get().add(new Confetti());
5152
Modules.get().add(new FloRida());
53+
Modules.get().add(new GameSettings());
5254
Modules.get().add(new GodBridge());
5355
Modules.get().add(new IgnoreDeaths());
5456
Modules.get().add(new NewChunks());
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package cqb13.NumbyHack.mixins;
2+
3+
import cqb13.NumbyHack.modules.general.GameSettings;
4+
import meteordevelopment.meteorclient.systems.modules.Modules;
5+
import net.minecraft.client.gui.screen.DeathScreen;
6+
import net.minecraft.text.Text;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
/*
14+
* inspired by:
15+
* https://github.com/Ecorous/NoMoreScore/blob/main/src/main/java/com/frogastudios/nomorescore/mixin/MixinDeathScreen.java
16+
* */
17+
@Mixin(DeathScreen.class)
18+
public abstract class DeathScreenMixin {
19+
@Shadow
20+
private Text scoreText;
21+
22+
@Inject(method = "init", at = @At("TAIL"))
23+
private void removeScore(CallbackInfo ci) {
24+
if (Modules.get().get(GameSettings.class).toggleHideScore())
25+
scoreText = Text.empty();
26+
}
27+
28+
}
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package cqb13.NumbyHack.modules.general;
2+
3+
import cqb13.NumbyHack.NumbyHack;
4+
import meteordevelopment.meteorclient.settings.BoolSetting;
5+
import meteordevelopment.meteorclient.settings.Setting;
6+
import meteordevelopment.meteorclient.settings.SettingGroup;
7+
import meteordevelopment.meteorclient.systems.modules.Module;
8+
import meteordevelopment.meteorclient.utils.player.ChatUtils;
9+
10+
/**
11+
* made by cqb13
12+
*/
13+
public class GameSettings extends Module {
14+
private final SettingGroup sgGeneral = settings.getDefaultGroup();
15+
16+
private final Setting<Boolean> hudHidden = sgGeneral.add(new BoolSetting.Builder()
17+
.name("hide-HUD")
18+
.description("Hide your HUD.")
19+
.defaultValue(mc.options.hudHidden)
20+
.onChanged(this::toggleHUD)
21+
.build()
22+
);
23+
24+
private final Setting<Boolean> pauseOnLostFocus = sgGeneral.add(new BoolSetting.Builder()
25+
.name("pause-on-lost-focus")
26+
.description("Pauses the game when it is not focussed.")
27+
.defaultValue(mc.options.pauseOnLostFocus)
28+
.onChanged(this::togglePauseOnLostFocus)
29+
.build()
30+
);
31+
32+
private final Setting<Boolean> skipMultiplayerWarning = sgGeneral.add(new BoolSetting.Builder()
33+
.name("skip-multiplayer-warning")
34+
.description("Skips the Multiplayer warning.")
35+
.defaultValue(mc.options.skipMultiplayerWarning)
36+
.onChanged(this::toggleSkipMultiplayerWarning)
37+
.build()
38+
);
39+
40+
private final Setting<Boolean> smoothCameraEnabled = sgGeneral.add(new BoolSetting.Builder()
41+
.name("cinematic-camera")
42+
.description("Smooth camera movement.")
43+
.defaultValue(mc.options.smoothCameraEnabled)
44+
.onChanged(this::toggleSmoothCamera)
45+
.build()
46+
);
47+
48+
private final Setting<Boolean> advancedTooltips = sgGeneral.add(new BoolSetting.Builder()
49+
.name("advanced-tooltips")
50+
.description("More information on items in your inventory.")
51+
.defaultValue(mc.options.advancedItemTooltips)
52+
.onChanged(this::toggleAdvancedTooltips)
53+
.build()
54+
);
55+
56+
private final Setting<Boolean> hideScore = sgGeneral.add(new BoolSetting.Builder()
57+
.name("hide-score")
58+
.description("Hides the score when you die.")
59+
.defaultValue(true)
60+
.build()
61+
);
62+
63+
private final Setting<Boolean> chatFeedback = sgGeneral.add(new BoolSetting.Builder()
64+
.name("chat-feedback")
65+
.description("Sends updates in the chat.")
66+
.defaultValue(true)
67+
.build()
68+
);
69+
70+
public GameSettings() {
71+
super(NumbyHack.CATEGORY, "game-settings", "Allows for easier access to Minecraft's settings and adds some tweaks.");
72+
}
73+
74+
private void toggleHUD(Boolean b) {
75+
mc.options.hudHidden = b;
76+
sendChatInfo("HUD", b ? "hidden" : "shown");
77+
}
78+
79+
private void togglePauseOnLostFocus(Boolean b) {
80+
mc.options.pauseOnLostFocus = b;
81+
sendChatInfo("Pause on Lost Focus", b ? "enabled" : "disabled");
82+
}
83+
84+
private void toggleSkipMultiplayerWarning(Boolean b) {
85+
mc.options.skipMultiplayerWarning = b;
86+
sendChatInfo("Skip Multiplayer Warning", b ? "enabled" : "disabled");
87+
}
88+
89+
private void toggleSmoothCamera(Boolean b) {
90+
mc.options.smoothCameraEnabled = b;
91+
sendChatInfo("Smooth Camera", b ? "enabled" : "disabled");
92+
}
93+
94+
private void toggleAdvancedTooltips(Boolean b) {
95+
mc.options.advancedItemTooltips = b;
96+
sendChatInfo("Advanced Tooltips", b ? "enabled" : "disabled");
97+
}
98+
99+
public boolean toggleHideScore() {
100+
sendChatInfo("Hide Score", hideScore.get() ? "enabled" : "disabled");
101+
return isActive() && hideScore.get();
102+
}
103+
104+
private void sendChatInfo(String setting, String value) {
105+
if (!chatFeedback.get()) return;
106+
ChatUtils.info("Set %s to %s.", setting, value);
107+
}
108+
}

src/main/java/cqb13/NumbyHack/modules/hud/TextPresets.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class TextPresets {
1616
addPreset("Killstreak", "Killstreak: #1{numbyhack.killstreak}", 0);
1717
addPreset("Crystals/s", "Crystals/s: #1{numbyhack.crystalsps}", 0);
1818
addPreset("Server Brand", "Server Brand: #1{numbyhack.brand}", 0);
19+
addPreset("Baritone Process", "Baritone Process: #1{numbyhack.baritone}", 0);
1920
}
2021

2122
private static TextHud create() {

src/main/java/cqb13/NumbyHack/utils/CHMainUtils.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
44
import meteordevelopment.meteorclient.events.packets.PacketEvent;
5-
import meteordevelopment.meteorclient.systems.config.Config;
6-
import meteordevelopment.meteorclient.utils.Utils;
7-
import meteordevelopment.starscript.value.Value;
5+
import baritone.api.BaritoneAPI;
6+
import baritone.api.process.IBaritoneProcess;
87
import net.minecraft.entity.Entity;
98
import net.minecraft.entity.player.PlayerEntity;
109
import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket;

src/main/java/cqb13/NumbyHack/utils/StatsUtils.java renamed to src/main/java/cqb13/NumbyHack/utils/NumbyHackStarscript.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package cqb13.NumbyHack.utils;
22

3+
import baritone.api.BaritoneAPI;
4+
import baritone.api.process.IBaritoneProcess;
35
import meteordevelopment.meteorclient.MeteorClient;
46
import meteordevelopment.meteorclient.events.game.GameJoinedEvent;
57
import meteordevelopment.meteorclient.events.packets.PacketEvent;
@@ -16,9 +18,9 @@
1618
import static cqb13.NumbyHack.utils.CHMainUtils.isDeathPacket;
1719
import static meteordevelopment.meteorclient.MeteorClient.mc;
1820

19-
public class StatsUtils {
21+
public class NumbyHackStarscript {
2022
public static void init() {
21-
MeteorClient.EVENT_BUS.subscribe(StatsUtils.class);
23+
MeteorClient.EVENT_BUS.subscribe(NumbyHackStarscript.class);
2224
}
2325

2426
// Fields
@@ -31,7 +33,6 @@ public static void init() {
3133
public static int crystalsPerSec;
3234
public static int first;
3335

34-
3536
// Starscript Methods
3637
public static Value getKills() {
3738
return Value.number(kills);
@@ -51,7 +52,7 @@ public static Value getHighscore() {
5152
public static Value getCrystalsPs() {
5253
return Value.number(crystalsPerSec);
5354
}
54-
55+
public static Value getBaritoneAction() {return Value.string(baritoneProcess());}
5556
public static Value getServerBrand() {
5657
if (!Utils.canUpdate() || mc.player.getServerBrand() == null) return Value.string("None");
5758

@@ -70,6 +71,14 @@ public static boolean isTarget() {
7071
return false;
7172
}
7273

74+
public static String baritoneProcess() {
75+
IBaritoneProcess process = BaritoneAPI.getProvider().getPrimaryBaritone().getPathingControlManager().mostRecentInControl().orElse(null);
76+
String action = "";
77+
if (process != null)
78+
action = process.displayName();
79+
return action;
80+
}
81+
7382
@EventHandler
7483
private static void onReceivePacket(PacketEvent.Receive event) {
7584
if (isDeathPacket(event)) {
@@ -87,9 +96,9 @@ private static void onReceivePacket(PacketEvent.Receive event) {
8796
}
8897

8998
public static String KDR() {
90-
if (StatsUtils.deaths < 2) return StatsUtils.kills + ".00";
99+
if (NumbyHackStarscript.deaths < 2) return NumbyHackStarscript.kills + ".00";
91100
else {
92-
Double doubleKD = (double) StatsUtils.kills / StatsUtils.deaths;
101+
Double doubleKD = (double) NumbyHackStarscript.kills / NumbyHackStarscript.deaths;
93102
return String.format("%.2f", doubleKD);
94103
}
95104
}

src/main/resources/NumbyHack.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"client": [
66
"ClientPlayerEntityMixin",
77
"CustomPayloadS2CPacketMixin",
8+
"DeathScreenMixin",
89
"EntityAccessor",
910
"TotemParticleMixin",
1011
"meteor.CrystalAuraAccessor",

0 commit comments

Comments
 (0)