Skip to content

Commit 8a77ac3

Browse files
committed
add Highlight linked storages to Better Baritone Build
1 parent 33a3512 commit 8a77ac3

2 files changed

Lines changed: 75 additions & 9 deletions

File tree

src/main/java/xyz/omegaware/addon/hud/OnlineTSRMembersHUD.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ public User(String name, String[] mcNames, String rank) {
5656
new User("Slay", new String[]{"slay_dev"}, "Admin"),
5757
new User("crystal", new String[]{""}, "Admin"),
5858
new User("monstro", new String[]{""}, "Admin"),
59-
new User("Pietty", new String[]{"j26"}, "Admin"),
59+
new User("Pietty", new String[]{"Pietty"}, "Admin"),
6060
new User("Omega", new String[]{"LostEmotions", "LostFriendships", "WomenAreScary", "ElectricCallboy"}, "OmegaWare"),
6161
new User("Hastur", new String[]{"TheKingHastur", "chmoka90 "}, "Member"),
62-
new User("J26V5", new String[]{""}, "Member"),
62+
new User("J26V5", new String[]{"J26V5"}, "Member"),
6363
new User("pyro", new String[]{""}, "Member"),
64-
new User("Slyyy", new String[]{""}, "Member"),
64+
new User("Slyyy", new String[]{"TwoFresh4Yea"}, "Member"),
6565
new User("_kingdom_warrior_", new String[]{"kingdom_warrior"}, "Member"),
6666
new User("cerejo2", new String[]{"cerejo2", "cerejo222", "cerejo_2"}, "Member"),
6767
new User("Emily", new String[]{""}, "Member"),

src/main/java/xyz/omegaware/addon/modules/BetterBaritoneBuild.java

Lines changed: 72 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,17 @@
1010
import meteordevelopment.meteorclient.events.entity.player.InteractBlockEvent;
1111
import meteordevelopment.meteorclient.events.game.ReceiveMessageEvent;
1212
import meteordevelopment.meteorclient.events.packets.InventoryEvent;
13+
import meteordevelopment.meteorclient.events.render.Render3DEvent;
1314
import meteordevelopment.meteorclient.events.world.ServerConnectEndEvent;
1415
import meteordevelopment.meteorclient.events.world.TickEvent;
1516
import meteordevelopment.meteorclient.gui.GuiTheme;
1617
import meteordevelopment.meteorclient.gui.widgets.WWidget;
1718
import meteordevelopment.meteorclient.gui.widgets.containers.WHorizontalList;
1819
import meteordevelopment.meteorclient.gui.widgets.containers.WVerticalList;
19-
import meteordevelopment.meteorclient.gui.widgets.input.WTextBox;
2020
import meteordevelopment.meteorclient.gui.widgets.pressable.WButton;
2121
import meteordevelopment.meteorclient.pathing.BaritoneUtils;
22-
import meteordevelopment.meteorclient.settings.BoolSetting;
23-
import meteordevelopment.meteorclient.settings.IntSetting;
24-
import meteordevelopment.meteorclient.settings.Setting;
25-
import meteordevelopment.meteorclient.settings.SettingGroup;
22+
import meteordevelopment.meteorclient.renderer.ShapeMode;
23+
import meteordevelopment.meteorclient.settings.*;
2624
import meteordevelopment.meteorclient.systems.modules.Module;
2725
import meteordevelopment.meteorclient.systems.modules.Modules;
2826
import meteordevelopment.meteorclient.systems.modules.misc.AutoReconnect;
@@ -31,6 +29,7 @@
3129
import meteordevelopment.meteorclient.utils.player.ChatUtils;
3230
import meteordevelopment.meteorclient.utils.player.InvUtils;
3331
import meteordevelopment.meteorclient.utils.player.SlotUtils;
32+
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
3433
import meteordevelopment.orbit.EventHandler;
3534
import net.minecraft.block.entity.*;
3635
import net.minecraft.client.MinecraftClient;
@@ -64,6 +63,7 @@ public BetterBaritoneBuild() {
6463
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
6564

6665
private final SettingGroup sgGeneral = this.settings.getDefaultGroup();
66+
private final SettingGroup sgRender = this.settings.createGroup("Render");
6767

6868
private final Setting<Boolean> storageLinkMode = sgGeneral.add(new BoolSetting.Builder()
6969
.name("storage-link-mode")
@@ -72,6 +72,45 @@ public BetterBaritoneBuild() {
7272
.build()
7373
);
7474

75+
private final Setting<Boolean> highlightLinkedStorages = sgRender.add(new BoolSetting.Builder()
76+
.name("highlight-linked-storages")
77+
.description("If enabled, linked storages will be highlighted with a box.")
78+
.defaultValue(true)
79+
.build()
80+
);
81+
82+
private final Setting<Boolean> invertHighlight = sgRender.add(new BoolSetting.Builder()
83+
.name("invert-highlight")
84+
.description("If enabled, the highlight will be inverted (i.e. highlighted blocks will not be highlighted).")
85+
.defaultValue(false)
86+
.visible(highlightLinkedStorages::get)
87+
.build()
88+
);
89+
90+
private final Setting<ShapeMode> shapeMode = sgRender.add(new EnumSetting.Builder<ShapeMode>()
91+
.name("shape-mode")
92+
.description("How the shapes are rendered.")
93+
.defaultValue(ShapeMode.Both)
94+
.visible(this::isActive)
95+
.build()
96+
);
97+
98+
private final Setting<SettingColor> sideColor = sgRender.add(new ColorSetting.Builder()
99+
.name("side-color")
100+
.description("The side color of the rendering.")
101+
.defaultValue(new SettingColor(0, 255, 255, 40))
102+
.visible(() -> shapeMode.get().sides())
103+
.build()
104+
);
105+
106+
private final Setting<SettingColor> lineColor = sgRender.add(new ColorSetting.Builder()
107+
.name("line-color")
108+
.description("The line color of the rendering.")
109+
.defaultValue(new SettingColor(0, 255, 255, 255))
110+
.visible(() -> shapeMode.get().lines())
111+
.build()
112+
);
113+
75114
private final Setting<Boolean> disconnectOnDone = sgGeneral.add(new BoolSetting.Builder()
76115
.name("disconnect-on-done")
77116
.description("If enabled, the module will disconnect you from the server when it is done.")
@@ -165,6 +204,33 @@ public void onActivate() {
165204
loadLinkedStorages();
166205
}
167206

207+
@EventHandler
208+
private void onRender(Render3DEvent event) {
209+
if (!isActive() || mc.world == null || !highlightLinkedStorages.get()) return;
210+
211+
if (!invertHighlight.get()) {
212+
for (LinkedStorage linkedStorage : linkedStorages) {
213+
if (linkedStorage == null || linkedStorage.blockPos == null || !mc.world.isPosLoaded(linkedStorage.blockPos))
214+
continue;
215+
216+
event.renderer.box(linkedStorage.blockPos, sideColor.get(), lineColor.get(), shapeMode.get(), 0);
217+
}
218+
} else {
219+
for (BlockEntity blockEntity : Utils.blockEntities()) {
220+
if (!(blockEntity instanceof ShulkerBoxBlockEntity || blockEntity instanceof ChestBlockEntity || blockEntity instanceof BarrelBlockEntity || blockEntity instanceof EnderChestBlockEntity))
221+
continue;
222+
223+
BlockPos pos = blockEntity.getPos();
224+
if (mc.world.isPosLoaded(pos)) {
225+
boolean isLinked = linkedStorages.stream().anyMatch(storage -> storage.blockPos.equals(pos));
226+
if (!isLinked) {
227+
event.renderer.box(pos, sideColor.get(), lineColor.get(), shapeMode.get(), 0);
228+
}
229+
}
230+
}
231+
}
232+
}
233+
168234
@Override
169235
public WWidget getWidget(GuiTheme theme) {
170236
WVerticalList list = theme.verticalList();
@@ -275,7 +341,7 @@ private void onMessageReceive(ReceiveMessageEvent event) {
275341
}
276342

277343
msg = msg.substring(2).trim(); // Remove the "> " part
278-
if (msg.startsWith("build")) {
344+
if (msg.startsWith("build") || msg.startsWith("litematica")) {
279345
buildCommand = msg;
280346
if (debugMode.get()) {
281347
ChatUtils.sendMsg(OmegawareAddons.PREFIX.copy()

0 commit comments

Comments
 (0)