Skip to content

Commit fc55251

Browse files
committed
Make the search widget show module aliases in the search results
1 parent 9bddba9 commit fc55251

5 files changed

Lines changed: 35 additions & 19 deletions

File tree

src/main/java/meteordevelopment/meteorclient/gui/GuiTheme.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,10 @@ public WSection section(String title) {
155155

156156
public abstract WAccount account(WidgetScreen screen, Account<?> account);
157157

158-
public abstract WWidget module(Module module);
158+
public WWidget module(Module module) {
159+
return module(module, module.title);
160+
}
161+
public abstract WWidget module(Module module, String title);
159162

160163
public abstract WQuad quad(Color color);
161164

src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import meteordevelopment.meteorclient.systems.modules.Modules;
2121
import meteordevelopment.meteorclient.utils.misc.NbtUtils;
2222
import net.minecraft.item.Items;
23+
import net.minecraft.util.Pair;
2324

2425
import java.util.ArrayList;
2526
import java.util.List;
@@ -80,30 +81,30 @@ protected WWindow createCategory(WContainer c, Category category, List<Module> m
8081
protected void createSearchW(WContainer w, String text) {
8182
if (!text.isEmpty()) {
8283
// Titles
83-
Set<Module> modules = Modules.get().searchTitles(text);
84+
List<Pair<Module, String>> modules = Modules.get().searchTitles(text);
8485

8586
if (!modules.isEmpty()) {
8687
WSection section = w.add(theme.section("Modules")).expandX().widget();
8788
section.spacing = 0;
8889

8990
int count = 0;
90-
for (Module module : modules) {
91+
for (Pair<Module, String> p : modules) {
9192
if (count >= Config.get().moduleSearchCount.get() || count >= modules.size()) break;
92-
section.add(theme.module(module)).expandX();
93+
section.add(theme.module(p.getLeft(), p.getRight())).expandX();
9394
count++;
9495
}
9596
}
9697

9798
// Settings
98-
modules = Modules.get().searchSettingTitles(text);
99+
Set<Module> settings = Modules.get().searchSettingTitles(text);
99100

100-
if (!modules.isEmpty()) {
101+
if (!settings.isEmpty()) {
101102
WSection section = w.add(theme.section("Settings")).expandX().widget();
102103
section.spacing = 0;
103104

104105
int count = 0;
105-
for (Module module : modules) {
106-
if (count >= Config.get().moduleSearchCount.get() || count >= modules.size()) break;
106+
for (Module module : settings) {
107+
if (count >= Config.get().moduleSearchCount.get() || count >= settings.size()) break;
107108
section.add(theme.module(module)).expandX();
108109
count++;
109110
}

src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,8 @@ public WAccount account(WidgetScreen screen, Account<?> account) {
276276
}
277277

278278
@Override
279-
public WWidget module(Module module) {
280-
return w(new WMeteorModule(module));
279+
public WWidget module(Module module, String title) {
280+
return w(new WMeteorModule(module, title));
281281
}
282282

283283
@Override

src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@
1919

2020
public class WMeteorModule extends WPressable implements MeteorWidget {
2121
private final Module module;
22+
private final String title;
2223

2324
private double titleWidth;
2425

2526
private double animationProgress1;
2627

2728
private double animationProgress2;
2829

29-
public WMeteorModule(Module module) {
30+
public WMeteorModule(Module module, String title) {
3031
this.module = module;
32+
this.title = title;
3133
this.tooltip = module.description;
3234

3335
if (module.isActive()) {
@@ -48,7 +50,7 @@ public double pad() {
4850
protected void onCalculateSize() {
4951
double pad = pad();
5052

51-
if (titleWidth == 0) titleWidth = theme.textWidth(module.title);
53+
if (titleWidth == 0) titleWidth = theme.textWidth(title);
5254

5355
width = pad + titleWidth + pad;
5456
height = pad + theme.textHeight() + pad;
@@ -88,6 +90,6 @@ else if (theme.moduleAlignment.get() == AlignmentX.Right) {
8890
x += w - titleWidth;
8991
}
9092

91-
renderer.text(module.title, x, y + pad, theme.textColor.get(), false);
93+
renderer.text(title, x, y + pad, theme.textColor.get(), false);
9294
}
9395
}

src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import net.minecraft.nbt.NbtCompound;
4343
import net.minecraft.nbt.NbtElement;
4444
import net.minecraft.nbt.NbtList;
45+
import net.minecraft.util.Pair;
4546
import org.jetbrains.annotations.Nullable;
4647
import org.lwjgl.glfw.GLFW;
4748

@@ -148,21 +149,30 @@ public List<Module> getActive() {
148149
return active;
149150
}
150151

151-
public Set<Module> searchTitles(String text) {
152-
Map<Module, Integer> modules = new ValueComparableMap<>(Comparator.naturalOrder());
152+
public List<Pair<Module, String>> searchTitles(String text) {
153+
Map<Pair<Module, String>, Integer> modules = new HashMap<>();
153154

154155
for (Module module : this.moduleInstances.values()) {
155-
int score = Utils.searchLevenshteinDefault(module.title, text, false);
156+
String title = module.title;
157+
int score = Utils.searchLevenshteinDefault(title, text, false);
158+
156159
if (Config.get().moduleAliases.get()) {
157160
for (String alias : module.aliases) {
158161
int aliasScore = Utils.searchLevenshteinDefault(alias, text, false);
159-
if (aliasScore < score) score = aliasScore;
162+
if (aliasScore < score) {
163+
title = module.title + " (" + alias + ")";
164+
score = aliasScore;
165+
}
160166
}
161167
}
162-
modules.put(module, modules.getOrDefault(module, 0) + score);
168+
169+
modules.put(new Pair<>(module, title), score);
163170
}
164171

165-
return modules.keySet();
172+
List<Pair<Module, String>> l = new ArrayList<>(modules.keySet());
173+
l.sort(Comparator.comparingInt(modules::get));
174+
175+
return l;
166176
}
167177

168178
public Set<Module> searchSettingTitles(String text) {

0 commit comments

Comments
 (0)