aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java39
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java34
4 files changed, 86 insertions, 5 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 714229dc..7f945035 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -423,6 +423,15 @@ public class SkyblockerConfig {
@SerialEntry
public int maxSuggestions = 3;
+
+ @SerialEntry
+ public int historyLength = 3;
+
+ @SerialEntry
+ public List<String> bazaarHistory = new ArrayList<>();
+
+ @SerialEntry
+ public List<String> auctionHistory = new ArrayList<>();
}
public static class TeleportOverlay {
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
index a9b965cf..f4674c2e 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
@@ -665,7 +665,14 @@ public class GeneralCategory {
.binding(defaults.general.searchOverlay.maxSuggestions,
() -> config.general.searchOverlay.maxSuggestions,
newValue -> config.general.searchOverlay.maxSuggestions = newValue)
- .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(0, 5 ).step(1))
+ .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(0, 5).step(1))
+ .build())
+ .option(Option.<Integer>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.general.searchOverlay.historyLength"))
+ .binding(defaults.general.searchOverlay.historyLength,
+ () -> config.general.searchOverlay.historyLength,
+ newValue -> config.general.searchOverlay.historyLength = newValue)
+ .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(0, 5).step(1))
.build())
.build())
.build();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java
index 136edb40..7da23168 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java
@@ -20,7 +20,9 @@ public class OverlayScreen extends Screen {
private TextFieldWidget searchField;
private ButtonWidget finishedButton;
private ButtonWidget[] suggestionButtons;
- //todo history buttons
+ private ButtonWidget[] historyButtons;
+
+
public OverlayScreen(Text title) {
super(title);
@@ -32,7 +34,7 @@ public class OverlayScreen extends Screen {
int rowWidth = (int)(this.width * 0.33);
int startX = (int)(this.width * 0.5) - rowWidth/2;
- int startY = (int)(this.height * 0.5)- (rowHeight * (1+ SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions)) /2;
+ int startY = (int) ((int)(this.height * 0.5)- (rowHeight * (1+ SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions + 0.75 + SkyblockerConfigManager.get().general.searchOverlay.historyLength)) /2);
// Search field
this.searchField = new TextFieldWidget(textRenderer, startX, startY, rowWidth - rowHeight, rowHeight, Text.literal("Search..."));
@@ -41,12 +43,13 @@ public class OverlayScreen extends Screen {
// finish buttons
- finishedButton = ButtonWidget.builder(Text.literal("").setStyle(Style.EMPTY.withColor(Formatting.GREEN)), (a) -> {
+ finishedButton = ButtonWidget.builder(Text.literal("").setStyle(Style.EMPTY.withColor(Formatting.GREEN)), (a) -> {
close();
})
.position(startX + rowWidth - rowHeight, startY)
.size(rowHeight, rowHeight).build();
// suggested item buttons
+ int rowOffset = rowHeight;
int totalSuggestions = SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions;
this.suggestionButtons = new ButtonWidget[totalSuggestions];
for (int i = 0; i < totalSuggestions; i++) {
@@ -54,15 +57,39 @@ public class OverlayScreen extends Screen {
SearchOverManager.updateSearch(a.getMessage().getString());
close();
})
- .position(startX , startY + rowHeight * (i+1))
+ .position(startX , startY + rowOffset)
.size(rowWidth, rowHeight).build();
suggestionButtons[i].visible = false;
+ rowOffset += rowHeight;
+ }
+ // history item buttons
+ rowOffset += (int) (rowHeight * 0.75);
+ int historyLength = SkyblockerConfigManager.get().general.searchOverlay.historyLength; //todo look different
+ this.historyButtons = new ButtonWidget[historyLength];
+ for (int i = 0; i < historyLength; i++) {
+ String text = SearchOverManager.getHistory(i);
+ if (text != null){
+ historyButtons[i] = ButtonWidget.builder(Text.literal(text).setStyle(Style.EMPTY), (a) -> {
+ SearchOverManager.updateSearch(a.getMessage().getString());
+ close();
+ })
+ .position(startX , startY + rowOffset)
+ .size(rowWidth, rowHeight).build();
+ rowOffset += rowHeight;
+ }else{
+ break;
+ }
}
addDrawableChild(searchField);
for (ButtonWidget suggestion : suggestionButtons){
addDrawableChild(suggestion);
}
+ for (ButtonWidget historyOption : historyButtons){
+ if (historyOption != null){
+ addDrawableChild(historyOption);
+ }
+ }
addDrawableChild(finishedButton);
}
@@ -71,6 +98,10 @@ public class OverlayScreen extends Screen {
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
super.render(context, mouseX, mouseY, delta);
context.drawGuiTexture(SEARCH_ICON_TEXTURE, finishedButton.getX() + 2, finishedButton.getY() + 2, 16, 16); //todo rowHeight -4
+ if(historyButtons.length > 0 ){
+ context.drawText(textRenderer, "History:", historyButtons[0].getX()+2, historyButtons[0].getY() - 10, 0xFFFFFFFF, true); //todo load form en_us and rowHeight
+ }
+
}
@Override
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java
index 5846dbf3..e8f78229 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java
@@ -107,8 +107,42 @@ public class SearchOverManager {
return "";
}
}
+ protected static String getHistory(int index){
+ if (IsAuction){
+ if (SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.size() >index){
+ return SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.get(index);
+ }
+
+ }else{
+ if (SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.size() >index){
+ return SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.get(index);
+ }
+ }
+ return null;
+
+ }
+ private static void saveHistory(){
+ //save to history
+ int historyLength = SkyblockerConfigManager.get().general.searchOverlay.historyLength;
+ if (IsAuction){
+ SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.add(0,search);
+ if (SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.size() >historyLength) {
+ SkyblockerConfigManager.get().general.searchOverlay.auctionHistory = SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.subList(0, historyLength);
+ }
+ }else{
+ SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.add(0,search);
+ if (SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.size() >historyLength) {
+ SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory = SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.subList(0, historyLength);
+ }
+ }
+ SkyblockerConfigManager.save();
+ }
protected static void pushSearch() {
+ //save to history
+ if (!search.isEmpty()){
+ saveHistory();
+ }
//splits text into 2 lines max = 30 chars
StringBuilder line0 = new StringBuilder();
String line1;