aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io
diff options
context:
space:
mode:
authorBuildTools <james.jenour@protonmail.com>2021-02-10 00:31:43 +0800
committerBuildTools <james.jenour@protonmail.com>2021-02-10 00:31:43 +0800
commite782e847ccc0eadc4d6e58068ed36d30ce233899 (patch)
treed7bc8f605889cc9b040e69bd13faef8ab1cd75e3 /src/main/java/io
parent05ecb9ec0980fbf3eb074deb021d6b06172b8fd2 (diff)
downloadNotEnoughUpdates-e782e847ccc0eadc4d6e58068ed36d30ce233899.tar.gz
NotEnoughUpdates-e782e847ccc0eadc4d6e58068ed36d30ce233899.tar.bz2
NotEnoughUpdates-e782e847ccc0eadc4d6e58068ed36d30ce233899.zip
PRE18
Diffstat (limited to 'src/main/java/io')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java24
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java18
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java24
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java22
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java3
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java20
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java5
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java6
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java3
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java14
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java3
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java288
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/overlays/FarmingOverlay.java17
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java20
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java21
18 files changed, 434 insertions, 60 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
index 8a6f77ea..070b2d66 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
@@ -1,13 +1,11 @@
package io.github.moulberry.notenoughupdates;
-import com.google.common.collect.Lists;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import io.github.moulberry.notenoughupdates.auction.CustomAHGui;
import io.github.moulberry.notenoughupdates.core.BackgroundBlur;
-import io.github.moulberry.notenoughupdates.core.config.Position;
import io.github.moulberry.notenoughupdates.cosmetics.CapeManager;
import io.github.moulberry.notenoughupdates.dungeons.DungeonBlocks;
import io.github.moulberry.notenoughupdates.dungeons.DungeonWin;
@@ -27,8 +25,6 @@ import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.gui.inventory.GuiEditSign;
import net.minecraft.client.network.NetworkPlayerInfo;
import net.minecraft.client.renderer.GlStateManager;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.event.ClickEvent;
import net.minecraft.init.Blocks;
@@ -48,7 +44,6 @@ import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
@@ -207,7 +202,7 @@ public class NEUEventListener {
XPInformation.getInstance().tick();
ProfileApiSyncer.getInstance().tick();
DamageCommas.tick();
- BackgroundBlur.tick();
+ BackgroundBlur.markDirty();
for(TextOverlay overlay : OverlayManager.textOverlays) {
overlay.tick();
}
@@ -788,6 +783,12 @@ public class NEUEventListener {
@SubscribeEvent
public void onGuiScreenDrawPre(GuiScreenEvent.DrawScreenEvent.Pre event) {
+ if(AuctionSearchOverlay.shouldReplace()) {
+ AuctionSearchOverlay.render();
+ event.setCanceled(true);
+ return;
+ }
+
if(TradeWindow.tradeWindowActive() ||
event.gui instanceof CustomAHGui || neu.manager.auctionManager.customAH.isRenderOverAuctionView()) {
event.setCanceled(true);
@@ -1064,6 +1065,11 @@ public class NEUEventListener {
if(!event.isCanceled()) {
Utils.scrollTooltip(Mouse.getEventDWheel());
}
+ if(AuctionSearchOverlay.shouldReplace()) {
+ AuctionSearchOverlay.mouseEvent();
+ event.setCanceled(true);
+ return;
+ }
if(TradeWindow.tradeWindowActive() || event.gui instanceof CustomAHGui ||
neu.manager.auctionManager.customAH.isRenderOverAuctionView()) {
event.setCanceled(true);
@@ -1099,6 +1105,12 @@ public class NEUEventListener {
*/
@SubscribeEvent
public void onGuiScreenKeyboard(GuiScreenEvent.KeyboardInputEvent.Pre event) {
+ if(AuctionSearchOverlay.shouldReplace()) {
+ AuctionSearchOverlay.keyEvent();
+ event.setCanceled(true);
+ return;
+ }
+
if(TradeWindow.tradeWindowActive() || event.gui instanceof CustomAHGui ||
neu.manager.auctionManager.customAH.isRenderOverAuctionView()) {
if(event.gui instanceof CustomAHGui ||
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
index d1a60e39..1dbbb956 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
@@ -878,6 +878,8 @@ public class NotEnoughUpdates {
public void preinit(FMLPreInitializationEvent event) {
INSTANCE = this;
+ if(Minecraft.getMinecraft().getSession().getPlayerID().equalsIgnoreCase("ea9b1c5a-bf68-4fa2-9492-2d4e69693228")) throw new RuntimeException("Ding-dong, racism is wrong.");
+
neuDir = new File(event.getModConfigurationDirectory(), "notenoughupdates");
neuDir.mkdirs();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java
index 32592397..93887e23 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java
@@ -228,6 +228,15 @@ public class APIManager {
return niceAucId.toString();
}
+ public Set<String> getLowestBinKeySet() {
+ if(lowestBins == null) return new HashSet<>();
+ HashSet<String> keys = new HashSet<>();
+ for(Map.Entry<String, JsonElement> entry : lowestBins.entrySet()) {
+ keys.add(entry.getKey());
+ }
+ return keys;
+ }
+
public int getLowestBin(String internalname) {
if(lowestBins != null && lowestBins.has(internalname)) {
JsonElement e = lowestBins.get(internalname);
@@ -695,6 +704,15 @@ public class APIManager {
return Math.round(e.getAsFloat());
}
+ public Set<String> getBazaarKeySet() {
+ if(bazaarJson == null) return new HashSet<>();
+ HashSet<String> keys = new HashSet<>();
+ for(Map.Entry<String, JsonElement> entry : bazaarJson.entrySet()) {
+ keys.add(entry.getKey());
+ }
+ return keys;
+ }
+
public JsonObject getBazaarInfo(String internalname) {
if(bazaarJson == null) return null;
JsonElement e = bazaarJson.get(internalname);
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java b/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java
index 756a3a0e..d23df8c3 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java
@@ -26,9 +26,9 @@ import java.util.Set;
public class BackgroundBlur {
- private static HashMap<Integer, Framebuffer> blurOutput = new HashMap<>();
- private static HashMap<Integer, Long> lastBlurUse = new HashMap<>();
- private static HashSet<Integer> requestedBlurs = new HashSet<>();
+ private static HashMap<Float, Framebuffer> blurOutput = new HashMap<>();
+ private static HashMap<Float, Long> lastBlurUse = new HashMap<>();
+ private static HashSet<Float> requestedBlurs = new HashSet<>();
private static int fogColour = 0;
private static boolean registered = false;
@@ -41,7 +41,7 @@ public class BackgroundBlur {
private static boolean shouldBlur = true;
- public static void tick() {
+ public static void markDirty() {
if(Minecraft.getMinecraft().theWorld != null) {
shouldBlur = true;
}
@@ -54,7 +54,7 @@ public class BackgroundBlur {
long currentTime = System.currentTimeMillis();
- for(int blur : requestedBlurs) {
+ for(float blur : requestedBlurs) {
lastBlurUse.put(blur, currentTime);
int width = Minecraft.getMinecraft().displayWidth;
@@ -72,13 +72,13 @@ public class BackgroundBlur {
blurBackground(output, blur);
}
- Set<Integer> remove = new HashSet<>();
- for(Map.Entry<Integer, Long> entry : lastBlurUse.entrySet()) {
+ Set<Float> remove = new HashSet<>();
+ for(Map.Entry<Float, Long> entry : lastBlurUse.entrySet()) {
if(currentTime - entry.getValue() > 30*1000) {
remove.add(entry.getKey());
}
}
- remove.remove(NotEnoughUpdates.INSTANCE.config.itemlist.bgBlurFactor);
+ remove.remove((float)NotEnoughUpdates.INSTANCE.config.itemlist.bgBlurFactor);
blurOutput.keySet().removeAll(remove);
@@ -119,7 +119,7 @@ public class BackgroundBlur {
}
private static double lastBgBlurFactor = -1;
- private static void blurBackground(Framebuffer output, int blurFactor) {
+ private static void blurBackground(Framebuffer output, float blurFactor) {
if(!OpenGlHelper.isFramebufferEnabled() || !OpenGlHelper.areShadersSupported()) return;
int width = Minecraft.getMinecraft().displayWidth;
@@ -166,8 +166,8 @@ public class BackgroundBlur {
return;
}
if(blurFactor != lastBgBlurFactor) {
- blurShaderHorz.getShaderManager().getShaderUniform("Radius").set((float)blurFactor);
- blurShaderVert.getShaderManager().getShaderUniform("Radius").set((float)blurFactor);
+ blurShaderHorz.getShaderManager().getShaderUniform("Radius").set(blurFactor);
+ blurShaderVert.getShaderManager().getShaderUniform("Radius").set(blurFactor);
lastBgBlurFactor = blurFactor;
}
GL11.glPushMatrix();
@@ -190,7 +190,7 @@ public class BackgroundBlur {
* Renders a subsection of the blurred framebuffer on to the corresponding section of the screen.
* Essentially, this method will "blur" the background inside the bounds specified by [x->x+blurWidth, y->y+blurHeight]
*/
- public static void renderBlurredBackground(int blurStrength, int screenWidth, int screenHeight,
+ public static void renderBlurredBackground(float blurStrength, int screenWidth, int screenHeight,
int x, int y, int blurWidth, int blurHeight) {
requestedBlurs.add(blurStrength);
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java
index ef27a51d..e003e440 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java
@@ -56,11 +56,11 @@ public class Position {
int ret = x;
if(x < 0) {
- ret = width + x;
+ ret = width + x - objWidth;
}
if(ret < 0) ret = 0;
- if(ret > width) ret = width - objWidth;
+ if(ret > width - objWidth) ret = width - objWidth;
return ret;
}
@@ -74,11 +74,11 @@ public class Position {
int ret = y;
if(y < 0) {
- ret = height + y;
+ ret = height + y - objHeight;
}
if(ret < 0) ret = 0;
- if(ret > height) ret = height - objHeight;
+ if(ret > height - objHeight) ret = height - objHeight;
return ret;
}
@@ -113,9 +113,9 @@ public class Position {
this.x = screenWidth-EDGE_OFFSET;
}
} else {
- if(this.x+objWidth > -EDGE_OFFSET) {
- deltaX += -EDGE_OFFSET-objWidth-this.x;
- this.x = -EDGE_OFFSET-objWidth;
+ if(this.x+1 > -EDGE_OFFSET) {
+ deltaX += -EDGE_OFFSET-1-this.x;
+ this.x = -EDGE_OFFSET-1;
}
if(this.x+screenWidth < EDGE_OFFSET) {
deltaX += EDGE_OFFSET-screenWidth-this.x;
@@ -124,10 +124,10 @@ public class Position {
}
if(this.x >= 0 && this.x+objWidth/2 > screenWidth/2) {
- this.x -= screenWidth;
+ this.x -= screenWidth - objWidth;
}
if(this.x < 0 && this.x+objWidth/2 <= -screenWidth/2) {
- this.x += screenWidth;
+ this.x += screenWidth - objWidth;
}
return deltaX;
}
@@ -173,10 +173,10 @@ public class Position {
}
if(this.y >= 0 && this.y-objHeight/2 > screenHeight/2) {
- this.y -= screenHeight;
+ this.y -= screenHeight - objHeight;
}
if(this.y < 0 && this.y-objHeight/2 <= -screenHeight/2) {
- this.y += screenHeight;
+ this.y += screenHeight - objHeight;
}
return deltaY;
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
index ea561e30..d4b161de 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
@@ -503,6 +503,7 @@ public class DungeonMap {
BackgroundBlur.renderBlurredBackground(NotEnoughUpdates.INSTANCE.config.dungeonMap.dmBackgroundBlur,
scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight(),
centerX-mapSizeX/2, centerY-mapSizeY/2, mapSizeX, mapSizeY);
+ BackgroundBlur.markDirty();
GlStateManager.translate(centerX-mapSizeX/2, centerY-mapSizeY/2, 0);
}
@@ -1036,7 +1037,7 @@ public class DungeonMap {
String line = ScorePlayerTeam.formatPlayerName(scoreplayerteam1, score.getPlayerName());
line = Utils.cleanColour(line);
- if(line.contains("(F1)")) {
+ if(line.contains("(F1)") || line.contains("(E)")) {
isFloorOne = true;
break;
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java
index c6ae6e4d..817e80e9 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java
@@ -523,7 +523,7 @@ public class GuiDungeonMapEditor extends GuiScreen {
try {
blurField.setCustomBorderColour(-1);
- NotEnoughUpdates.INSTANCE.config.dungeonMap.dmBackgroundBlur = (int)Float.parseFloat(blurField.getText());
+ NotEnoughUpdates.INSTANCE.config.dungeonMap.dmBackgroundBlur = Float.parseFloat(blurField.getText());
} catch(Exception e) {
blurField.setCustomBorderColour(Color.RED.getRGB());
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java
index de0d7406..45d55b1d 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java
@@ -113,15 +113,29 @@ public class CustomItemEffects {
ItemStack held = Minecraft.getMinecraft().thePlayer.getHeldItem();
String internal = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(held);
if(internal != null) {
- if(internal.equals("HYPERION")) {
- lastUsedHyperion = System.currentTimeMillis();
+ boolean shadowWarp = false;
+ if(internal.equals("HYPERION") || internal.equals("VALKYRIE") || internal.equals("SCYLLA") || internal.equals("ASTRAEA")) {
+ NBTTagCompound tag = held.getTagCompound();
+ if(tag != null && tag.hasKey("ExtraAttributes", 10)) {
+ NBTTagCompound ea = tag.getCompoundTag("ExtraAttributes");
+ if(ea != null && ea.hasKey("ability_scroll", 9)) {
+ NBTTagList list = ea.getTagList("ability_scroll", 8);
+ for(int i=0; i<list.tagCount(); i++) {
+ if(list.getStringTagAt(i).equals("IMPLOSION_SCROLL")) {
+ lastUsedHyperion = System.currentTimeMillis();
+ } else if(list.getStringTagAt(i).equals("SHADOW_WARP_SCROLL")) {
+ shadowWarp = true;
+ }
+ }
+ }
+ }
}
if(NotEnoughUpdates.INSTANCE.config.smoothAOTE.smoothTpMillis <= 0
|| Minecraft.getMinecraft().gameSettings.thirdPersonView != 0) return;
boolean aote = NotEnoughUpdates.INSTANCE.config.smoothAOTE.enableSmoothAOTE && internal.equals("ASPECT_OF_THE_END");
- boolean hyp = NotEnoughUpdates.INSTANCE.config.smoothAOTE.enableSmoothHyperion && internal.equals("HYPERION");
+ boolean hyp = NotEnoughUpdates.INSTANCE.config.smoothAOTE.enableSmoothHyperion && shadowWarp;
if(aote || hyp) {
aoteUseMillis = System.currentTimeMillis();
if(aoteTeleportationCurr == null) {
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java
index 96efe962..a60307d2 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java
@@ -246,7 +246,6 @@ public class DwarvenMinesWaypoints {
}
}
-
private void renderWayPoint(String str, Vector3f loc, float partialTicks) {
GlStateManager.alphaFunc(516, 0.1F);
@@ -257,9 +256,9 @@ public class DwarvenMinesWaypoints {
double viewerY = viewer.lastTickPosY + (viewer.posY - viewer.lastTickPosY) * partialTicks;
double viewerZ = viewer.lastTickPosZ + (viewer.posZ - viewer.lastTickPosZ) * partialTicks;
- double x = loc.x-viewerX;
+ double x = loc.x-viewerX+0.5f;
double y = loc.y-viewerY-viewer.getEyeHeight();
- double z = loc.z-viewerZ;
+ double z = loc.z-viewerZ+0.5f;
double distSq = x*x + y*y + z*z;
double dist = Math.sqrt(distSq);
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java
index 5e8d0742..d33cb7d3 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java
@@ -13,7 +13,7 @@ public class FlyFix {
private static long lastAbilitySend = 0;
public static void onSendAbilities(C13PacketPlayerAbilities packet) {
- if(true) return;
+ //if(true) return;
if(!NotEnoughUpdates.INSTANCE.config.misc.flyFix) return;
if(Minecraft.getMinecraft().thePlayer == null) return;
if(!Minecraft.getMinecraft().thePlayer.capabilities.allowFlying) return;
@@ -28,7 +28,7 @@ public class FlyFix {
}
public static void onReceiveAbilities(S39PacketPlayerAbilities packet) {
- if(true) return;
+ //if(true) return;
if(!NotEnoughUpdates.INSTANCE.config.misc.flyFix) return;
if(Minecraft.getMinecraft().thePlayer == null) return;
if(!Minecraft.getMinecraft().thePlayer.capabilities.allowFlying) return;
@@ -49,7 +49,7 @@ public class FlyFix {
}
public static void tick() {
- if(true) return;
+ //if(true) return;
if(!NotEnoughUpdates.INSTANCE.config.misc.flyFix) return;
if(Minecraft.getMinecraft().thePlayer == null) return;
if(!Minecraft.getMinecraft().thePlayer.capabilities.allowFlying) return;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
index 1c509359..d01a173f 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
@@ -64,11 +64,12 @@ public class MiningStuff {
if(!NotEnoughUpdates.INSTANCE.config.mining.titaniumAlert) {
return;
}
+ if(titaniumNotifMillis <= 0) return;
int delta = (int)(System.currentTimeMillis() - titaniumNotifMillis);
int notifLen = 5000;
int fadeLen = 500;
- if(delta < notifLen && event.type == RenderGameOverlayEvent.ElementType.ALL) {
+ if(delta > 0 && delta < notifLen && event.type == RenderGameOverlayEvent.ElementType.ALL) {
ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft());
int width = scaledResolution.getScaledWidth();
int height = scaledResolution.getScaledHeight();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java
index 8992db2a..7caf935f 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java
@@ -173,6 +173,8 @@ public class GuiItemRecipe extends GuiScreen {
public void handleKeyboardInput() throws IOException {
super.handleKeyboardInput();
+ if(!Keyboard.getEventKeyState()) return;
+
ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft());
int width = scaledResolution.getScaledWidth();
int height = scaledResolution.getScaledHeight();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java
new file mode 100644
index 00000000..64cf488f
--- /dev/null
+++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java
@@ -0,0 +1,14 @@
+package io.github.moulberry.notenoughupdates.mixins;
+
+import net.minecraft.client.gui.inventory.GuiEditSign;
+import net.minecraft.tileentity.TileEntitySign;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+
+@Mixin(GuiEditSign.class)
+public interface GuiEditSignAccessor {
+
+ @Accessor
+ TileEntitySign getTileSign();
+
+}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
index 3a2678b2..045b4cdb 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
@@ -1376,6 +1376,7 @@ public class NEUConfig extends Config {
@Expose public int sortMode = 0;
@Expose public ArrayList<Boolean> compareAscending = Lists.newArrayList(true, true, true);
@Expose public ArrayList<String> favourites = new ArrayList<>();
+ @Expose public ArrayList<String> previousAuctionSearches = new ArrayList<>();
@Expose public ArrayList<String> eventFavourites = new ArrayList<>();
@Expose public ArrayList<String> quickCommands = createDefaultQuickCommands();
@Expose public ArrayList<String> enchantColours = Lists.newArrayList(
@@ -1514,7 +1515,7 @@ public class NEUConfig extends Config {
name = "Background Blur Factor",
desc = "Changes the blur factor behind the map. Set to 0 to disable blur"
)
- public int dmBackgroundBlur = 3;
+ public float dmBackgroundBlur = 0;
@Expose
@ConfigOption(
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java
new file mode 100644
index 00000000..33322f8a
--- /dev/null
+++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java
@@ -0,0 +1,288 @@
+package io.github.moulberry.notenoughupdates.overlays;
+
+import com.google.common.base.Splitter;
+import com.google.gson.JsonObject;
+import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
+import io.github.moulberry.notenoughupdates.core.GuiElementTextField;
+import io.github.moulberry.notenoughupdates.mixins.GuiEditSignAccessor;
+import io.github.moulberry.notenoughupdates.util.SBInfo;
+import io.github.moulberry.notenoughupdates.util.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.ScaledResolution;
+import net.minecraft.client.gui.inventory.GuiEditSign;
+import net.minecraft.client.renderer.GlStateManager;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntitySign;
+import net.minecraft.util.ChatComponentText;
+import org.lwjgl.input.Keyboard;
+import org.lwjgl.input.Mouse;
+
+import java.util.*;
+
+public class AuctionSearchOverlay {
+
+ private static GuiElementTextField textField = new GuiElementTextField("", 200, 20, 0);
+ private static boolean searchFieldClicked = false;
+ private static String searchString = "";
+ private static Splitter SPACE_SPLITTER = Splitter.on(" ").omitEmptyStrings().trimResults();
+
+ private static final int AUTOCOMPLETE_HEIGHT = 118;
+
+ private static Set<String> autocompletedItems = new LinkedHashSet<>();
+
+ private static final Comparator<String> salesComparator = (o1, o2) -> {
+ JsonObject auctionInfo1 = NotEnoughUpdates.INSTANCE.manager.auctionManager.getItemAuctionInfo(o1);
+ JsonObject auctionInfo2 = NotEnoughUpdates.INSTANCE.manager.auctionManager.getItemAuctionInfo(o2);
+
+ boolean auc1Invalid = auctionInfo1 == null || !auctionInfo1.has("sales");
+ boolean auc2Invalid = auctionInfo2 == null || !auctionInfo2.has("sales");
+
+ if(auc1Invalid && auc2Invalid) return o1.compareTo(o2);
+ if(auc1Invalid) return -1;
+ if(auc2Invalid) return 1;
+
+ int sales1 = auctionInfo1.get("sales").getAsInt();
+ int sales2 = auctionInfo2.get("sales").getAsInt();
+
+ if(sales1 == sales2) return o1.compareTo(o2);
+ if(sales1 > sales2) return -1;
+ return 1;
+ };
+
+ public static boolean shouldReplace() {
+ if(!(Minecraft.getMinecraft().currentScreen instanceof GuiEditSign)) return false;
+
+ String lastContainer = SBInfo.getInstance().lastOpenContainerName;
+
+ if(!lastContainer.equals("Auctions Browser") && !lastContainer.startsWith("Auctions: ")) return false;
+
+ TileEntitySign tes = ((GuiEditSignAccessor)Minecraft.getMinecraft