diff options
| author | BuildTools <james.jenour@protonmail.com> | 2020-07-07 02:48:49 +1000 |
|---|---|---|
| committer | BuildTools <james.jenour@protonmail.com> | 2020-07-07 02:48:49 +1000 |
| commit | f39c28236bc47a9e5395b041b494fdd7f332734e (patch) | |
| tree | 84c1c9b18577a0a18be1c08c514b4b7dae87dc20 /src/main/java | |
| parent | 009ed0ef14d3a5fd75be17ed2c90688202e69c85 (diff) | |
| download | NotEnoughUpdates-f39c28236bc47a9e5395b041b494fdd7f332734e.tar.gz NotEnoughUpdates-f39c28236bc47a9e5395b041b494fdd7f332734e.tar.bz2 NotEnoughUpdates-f39c28236bc47a9e5395b041b494fdd7f332734e.zip | |
ah nearly done
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/CustomAH.java | 553 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java | 144 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java | 15 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java | 49 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/StreamerMode.java | 2 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/auction/AuctionManager.java | 315 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAH.java | 1055 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAHGui.java (renamed from src/main/java/io/github/moulberry/notenoughupdates/CustomAHGui.java) | 2 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java | 25 |
9 files changed, 1447 insertions, 713 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/CustomAH.java b/src/main/java/io/github/moulberry/notenoughupdates/CustomAH.java deleted file mode 100644 index f0e3437f..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/CustomAH.java +++ /dev/null @@ -1,553 +0,0 @@ -package io.github.moulberry.notenoughupdates; - -import io.github.moulberry.notenoughupdates.util.TexLoc; -import io.github.moulberry.notenoughupdates.util.Utils; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.gui.inventory.GuiChest; -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 net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - -import java.awt.*; -import java.text.NumberFormat; -import java.util.*; -import java.util.List; - -import static io.github.moulberry.notenoughupdates.GuiTextures.*; - -public class CustomAH extends Gui { - - private static final ResourceLocation creativeTabSearch = new ResourceLocation("textures/gui/container/creative_inventory/tab_item_search.png"); - private static final ResourceLocation creativeInventoryTabs = new ResourceLocation("textures/gui/container/creative_inventory/tabs.png"); - - private List<String> auctionIds = new ArrayList<>(); - - private boolean scrollClicked = false; - - private int startingBid = 0; - - private GuiTextField searchField = null; - private GuiTextField priceField = null; - - private boolean renderOverAuctionView = false; - private long lastRenderDisable = 0; - - private int eventButton; - private long lastMouseEvent; - - private int splits = 2; - - private int ySplit = 35; - private int ySplitSize = 18; - - private float scrollAmount; - - private int guiLeft = 0; - private int guiTop = 0; - - private NEUManager manager; - - public CustomAH(NEUManager manager) { - this.manager = manager; - } - - private void init() { - FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; - this.searchField = new GuiTextField(0, fr, this.guiLeft + 82, this.guiTop + 6, - 89, fr.FONT_HEIGHT); - this.priceField = new GuiTextField(1, fr, this.guiLeft + 82, this.guiTop + 6, - 89, fr.FONT_HEIGHT); - - this.searchField.setMaxStringLength(15); - this.searchField.setEnableBackgroundDrawing(false); - this.searchField.setTextColor(16777215); - this.searchField.setVisible(true); - this.searchField.setCanLoseFocus(false); - this.searchField.setFocused(true); - this.searchField.setText(""); - - this.priceField.setMaxStringLength(10); - this.priceField.setEnableBackgroundDrawing(false); - this.priceField.setTextColor(16777215); - this.priceField.setVisible(true); - this.priceField.setCanLoseFocus(false); - this.priceField.setFocused(false); - this.priceField.setText(""); - } - - public boolean isRenderOverAuctionView() { - return renderOverAuctionView || (System.currentTimeMillis() - lastRenderDisable) < 500; - } - - public void setRenderOverAuctionView(boolean renderOverAuctionView) { - if(this.renderOverAuctionView && !renderOverAuctionView) lastRenderDisable = System.currentTimeMillis(); - this.renderOverAuctionView = renderOverAuctionView; - } - - private int getXSize() { - return 195; - } - - private int getYSize() { - return 136 + ySplitSize*splits; - } - - private TexLoc tl = new TexLoc(0, 0, Keyboard.KEY_M); - - public List<String> getTooltipForAucId(String aucId) { - NEUManager.Auction auc = manager.getAuctionItems().get(aucId); - - List<String> tooltip = new ArrayList<>(); - - for(String line : auc.getStack().getTooltip(Minecraft.getMinecraft().thePlayer, false)) { - tooltip.add(EnumChatFormatting.GRAY+line); - } - - long timeUntilEnd = auc.end - System.currentTimeMillis(); - - long seconds = timeUntilEnd / 1000 % 60; - long minutes = (timeUntilEnd / 1000 / 60) % 60; - long hours = (timeUntilEnd / 1000 / 60 / 60) % 24; - long days = (timeUntilEnd / 1000 / 60 / 60 / 24); - - String endsIn = EnumChatFormatting.YELLOW+""; - if(timeUntilEnd < 0) { - endsIn += "Ended!"; - } else if(minutes == 0 && hours == 0 && days == 0) { - endsIn += seconds + "s"; - } else if(hours==0 && days==0) { - endsIn += minutes + "m" + seconds + "s"; - } else if(days==0) { - if(hours <= 6) { - endsIn += hours + "h" + minutes + "m" + seconds + "s"; - } else { - endsIn += hours + "h"; - } - } else { - endsIn += days + "d" + hours + "h"; - } - - NumberFormat format = NumberFormat.getInstance(Locale.US); - - tooltip.add(EnumChatFormatting.DARK_GRAY+""+EnumChatFormatting.STRIKETHROUGH+"-----------------"); - tooltip.add(EnumChatFormatting.GRAY+"Seller: [CLICK TO SEE]"); - - if(auc.bin) { - tooltip.add(EnumChatFormatting.GRAY+"Buy it now: "+ - EnumChatFormatting.GOLD+format.format(auc.starting_bid)); - } else { - if(auc.bid_count > 0) { - tooltip.add(EnumChatFormatting.GRAY+"Bids: "+EnumChatFormatting.GREEN+auc.bid_count+" bids"); - tooltip.add(""); - tooltip.add(EnumChatFormatting.GRAY+"Top bid: "+ - EnumChatFormatting.GOLD+format.format(auc.highest_bid_amount)); - tooltip.add(EnumChatFormatting.GRAY+"Bidder: [CLICK TO SEE]"); - } else { - tooltip.add(EnumChatFormatting.GRAY+"Starting bid: "+ - EnumChatFormatting.GOLD+format.format(auc.starting_bid)); - } - } - - tooltip.add(""); - tooltip.add(EnumChatFormatting.GRAY+"Ends in: "+endsIn); - tooltip.add(""); - tooltip.add(EnumChatFormatting.YELLOW+"Click to inspect!"); - - return tooltip; - } - - public boolean isEditingPrice() { - return Minecraft.getMinecraft().currentScreen instanceof GuiEditSign; - } - - public void drawScreen(int mouseX, int mouseY) { - Mouse.setGrabbed(false); - ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); - int width = scaledResolution.getScaledWidth(); - int height = scaledResolution.getScaledHeight(); - - if(searchField == null || priceField == null) init(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - tl.handleKeyboardInput(); - - guiLeft = (width - getXSize())/2; - guiTop = (height - getYSize())/2; - this.searchField.xPosition = guiLeft + 82; - this.searchField.yPosition = guiTop + 6; - - this.searchField.setFocused(true); - this.priceField.setFocused(false); - - if(!isEditingPrice()) priceField.setText("IAUSHDIUAH"); - - List<String> tooltipToRender = null; - if(Minecraft.getMinecraft().currentScreen instanceof GuiChest) { - GuiChest auctionView = (GuiChest) Minecraft.getMinecraft().currentScreen; - - int auctionViewLeft = guiLeft+getXSize()+4; - - Minecraft.getMinecraft().getTextureManager().bindTexture(auction_view); - this.drawTexturedModalRect(auctionViewLeft, guiTop, 0, 0, 78, 172); - - try { - ItemStack itemStack = auctionView.inventorySlots.getSlot(13).getStack(); - Utils.drawItemStack(itemStack, auctionViewLeft+31, guiTop+35); - - ItemStack bidStack = auctionView.inventorySlots.getSlot(29).getStack(); - Utils.drawItemStack(bidStack, auctionViewLeft+31, guiTop+100); - - ItemStack historyStack = auctionView.inventorySlots.getSlot(33).getStack(); - - ItemStack changeBidStack = auctionView.inventorySlots.getSlot(31).getStack(); - - if(changeBidStack != null && changeBidStack.getTagCompound().hasKey("AttributeModifiers")) { - Minecraft.getMinecraft().getTextureManager().bindTexture(auction_view_buttons); - boolean hover = mouseX > auctionViewLeft+31 && mouseX <auctionViewLeft+31+16 && - mouseY > guiTop+126 && mouseY < guiTop+126+16; - this.drawTexturedModalRect(auctionViewLeft+31, guiTop+126, hover?16:0, 0, 16, 16); - } else { - changeBidStack = null; - } - - if(mouseX > auctionViewLeft+31 && mouseX <auctionViewLeft+31+16) { - if(mouseY > guiTop+35 && mouseY < guiTop+35+16) { - if(itemStack != null) tooltipToRender = itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false); - } else if(mouseY > guiTop+100 && mouseY < guiTop+100+16) { - if(bidStack != null) tooltipToRender = bidStack.getTooltip(Minecraft.getMinecraft().thePlayer, false); - } else if(mouseY > guiTop+61 && mouseY < guiTop+61+16) { - if(historyStack != null) tooltipToRender = historyStack.getTooltip(Minecraft.getMinecraft().thePlayer, false); - } else if(mouseY > guiTop+126 && mouseY < guiTop+126+16) { - if(changeBidStack != null) tooltipToRender = changeBidStack.getTooltip(Minecraft.getMinecraft().thePlayer, false); - } - } - } catch(NullPointerException e) { //i cant be bothered - } - } else if(isEditingPrice()) { - int auctionViewLeft = guiLeft+getXSize()+4; - - if(priceField.getText().equals("IAUSHDIUAH")) priceField.setText(""+startingBid); - - searchField.setFocused(false); - priceField.setFocused(true); - priceField.xPosition = auctionViewLeft+18; - priceField.yPosition = guiTop+18; - - Minecraft.getMinecraft().getTextureManager().bindTexture(auction_price); - this.drawTexturedModalRect(auctionViewLeft, guiTop, 0, 0, 96, 99); - priceField.drawTextBox(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(auction_view_buttons); - this.drawTexturedModalRect(auctionViewLeft+16, guiTop+32, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16+34, guiTop+32, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16, guiTop+50, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16+34, guiTop+50, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16, guiTop+68, 0, 32, 64, 16); - - FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; - Utils.drawStringCentered("x2", fr, auctionViewLeft+16+15, guiTop+32+8, false, - Color.BLACK.getRGB()); - Utils.drawStringCentered("+50%", fr, auctionViewLeft+16+34+15, guiTop+32+8, false, - Color.BLACK.getRGB()); - Utils.drawStringCentered("+25%", fr, auctionViewLeft+16+15, guiTop+50+8, false, - Color.BLACK.getRGB()); - Utils.drawStringCentered("+10%", fr, auctionViewLeft+16+34+15, guiTop+50+8, false, - Color.BLACK.getRGB()); - Utils.drawStringCentered("Set Amount", fr, auctionViewLeft+16+32, guiTop+68+8, false, - Color.BLACK.getRGB()); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - GuiEditSign editSign = (GuiEditSign) Minecraft.getMinecraft().currentScreen; - TileEntitySign tes = (TileEntitySign)Utils.getField(GuiEditSign.class, editSign, - "tileSign", "field_146848_f"); - tes.lineBeingEdited = 0; - tes.signText[0] = new ChatComponentText(priceField.getText()); - } - - Minecraft.getMinecraft().getTextureManager().bindTexture(creativeTabSearch); - this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, getXSize(), ySplit); - int y = guiTop+ySplit; - for(int i=0; i<splits; i++) { - this.drawTexturedModalRect(guiLeft, y, 0, ySplit, getXSize(), ySplit+ySplitSize); - y += ySplitSize; - } - this.drawTexturedModalRect(guiLeft, y, 0, ySplit, getXSize(), 136-ySplit); - - int totalItems = auctionIds.size(); - int itemsScroll = (int)Math.floor((totalItems*scrollAmount)/9f)*9; - - int maxItemScroll = Math.max(0, totalItems - (5+splits)*9); - itemsScroll = Math.min(itemsScroll, maxItemScroll); - - out: - for(int i=0; i<5+splits; i++) { - int itemY = guiTop + i*18 + 18; - for(int j=0; j<9; j++) { - int itemX = guiLeft + j*18 + 9; - int id = itemsScroll + i*9 + j; - if(auctionIds.size() <= id) break out; - - try { - String aucid = auctionIds.get(id); - - GL11.glTranslatef(0,0,100); - ItemStack stack = manager.getAuctionItems().get(aucid).getStack(); - Utils.drawItemStack(stack, itemX, itemY); - GL11.glTranslatef(0,0,-100); - - if(mouseX > itemX && mouseX < itemX+16) { - if(mouseY > itemY && mouseY < itemY+16) { - tooltipToRender = getTooltipForAucId(aucid); - } - } - } catch(Exception e) { - break out; - } - } - } - - searchField.drawTextBox(); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - if(auctionIds.size() == 0 && searchField.getText().length() == 0) { - drawRect(guiLeft+8, guiTop+17, guiLeft+170, guiTop+107+18*splits, - new Color(100, 100, 100, 100).getRGB()); - - FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; - int strWidth = fr.getStringWidth("Loading items..."); - fr.drawString("Loading items...", guiLeft+(8+170-strWidth)/2, guiTop+(17+107+18*splits)/2, Color.BLACK.getRGB()); - } - - Minecraft.getMinecraft().getTextureManager().bindTexture(creativeInventoryTabs); - this.drawTexturedModalRect(guiLeft+175, guiTop+18+(int)((95+ySplitSize*2)*scrollAmount), - 256-(scrollClicked?12:24), 0, 12, 15); - - if(tooltipToRender != null) { - Utils.drawHoveringText(tooltipToRender, mouseX, mouseY, width, - height, -1, Minecraft.getMinecraft().fontRendererObj); - } - } - - public void handleMouseInput() { - ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); - int width = scaledResolution.getScaledWidth(); - int height = scaledResolution.getScaledHeight(); - - int mouseX = Mouse.getEventX() * width / Minecraft.getMinecraft().displayWidth; - int mouseY = height - Mouse.getEventY() * height / Minecraft.getMinecraft().displayHeight - 1; - int mouseButton = Mouse.getEventButton(); - - if (Mouse.getEventButtonState()) { - this.eventButton = mouseButton; - this.lastMouseEvent = Minecraft.getSystemTime(); - mouseClicked(mouseX, mouseY, this.eventButton); - } else if (mouseButton != -1) { - this.eventButton = -1; - mouseReleased(mouseX, mouseY, mouseButton); - } else if (this.eventButton != -1 && this.lastMouseEvent > 0L) { - long l = Minecraft.getSystemTime() - this.lastMouseEvent; - mouseClickMove(mouseX, mouseY, this.eventButton, l); - } - - int dWheel = Mouse.getDWheel(); - - scrollAmount = scrollAmount - dWheel/((float)auctionIds.size()-(5+splits)); - scrollAmount = Math.max(0, Math.min(1, scrollAmount)); - } - - private String niceAucId(String aucId) { - if(aucId.length()!=32) return aucId; - - StringBuilder niceAucId = new StringBuilder(); - niceAucId.append(aucId, 0, 8); - niceAucId.append("-"); - niceAucId.append(aucId, 8, 12); - niceAucId.append("-"); - niceAucId.append(aucId, 12, 16); - niceAucId.append("-"); - niceAucId.append(aucId, 16, 20); - niceAucId.append("-"); - niceAucId.append(aucId, 20, 32); - return niceAucId.toString(); - } - - public void updateSearch() { - scrollAmount = 0; - auctionIds.clear(); - try { - for(Map.Entry<String, NEUManager.Auction> entry : manager.getAuctionItems().entrySet()) { - if(searchField.getText().length() == 0 || - Utils.cleanColour(entry.getValue().extras).toLowerCase().contains(searchField.getText().toLowerCase())) { - auctionIds.add(entry.getKey()); - } - } - } catch(ConcurrentModificationException e) { - updateSearch(); - } - } - - public boolean keyboardInput() { - if(isEditingPrice() && Keyboard.getEventKey() == Keyboard.KEY_RETURN) { - Minecraft.getMinecraft().displayGuiScreen(null); - } else if(Keyboard.getEventKey() == Keyboard.KEY_ESCAPE) { - return false; - } - keyTyped(Keyboard.getEventCharacter(), Keyboard.getEventKey()); - return true; - } - - public void keyTyped(char typedChar, int keyCode) { - if(searchField == null || priceField == null) init(); - - if(!isEditingPrice()) { - if(this.searchField.textboxKeyTyped(typedChar, keyCode)) { - this.updateSearch(); - } - } else { - priceField.textboxKeyTyped(typedChar, keyCode); - } - } - - private void increasePriceByFactor(float factor) { - String price = priceField.getText().trim(); - StringBuilder priceNumbers = new StringBuilder(); - for(int i=0; i<price.length(); i++) { - char c = price.charAt(i); - if((int)c >= 48 && (int)c <= 57) { - priceNumbers.append(c); - } else { - break; - } - } - int priceI = 0; - if(priceNumbers.length() > 0) { - priceI = Integer.parseInt(priceNumbers.toString()); - } - String end = price.substring(priceNumbers.length()); - priceField.setText((int)(priceI*factor) + end); - } - - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) { - searchField.mouseClicked(mouseX, mouseY, mouseButton); - - int totalItems = auctionIds.size(); - int itemsScroll = (int)Math.floor((totalItems*scrollAmount)/9f)*9; - - int maxItemScroll = Math.max(0, totalItems - (5+splits)*9); - itemsScroll = Math.min(itemsScroll, maxItemScroll); - - if(mouseButton == 0 && Minecraft.getMinecraft().currentScreen instanceof GuiChest) { - GuiChest auctionView = (GuiChest) Minecraft.getMinecraft().currentScreen; - - if(mouseX > guiLeft+getXSize()+4+31 && mouseX < guiLeft+getXSize()+4+31+16) { - if(mouseY > guiTop+100 && mouseY < guiTop+100+16) { - Minecraft.getMinecraft().playerController.windowClick(auctionView.inventorySlots.windowId, - 29, 2, 3, Minecraft.getMinecraft().thePlayer); - } else if(mouseY > guiTop+126 && mouseY < guiTop+126+16) { - Minecraft.getMinecraft().playerController.windowClick(auctionView.inventorySlots.windowId, - 31, 0, 4, Minecraft.getMinecraft().thePlayer); - } - } - } - if(mouseButton == 0 && isEditingPrice()) { - int auctionViewLeft = guiLeft+getXSize()+4; - System.out.println("1"); - - if(mouseX > auctionViewLeft+16 && mouseX < auctionViewLeft+16+64) { - System.out.println("2"); - if(mouseY > guiTop+32 && mouseY < guiTop+32+16) { - System.out.println("3"); - if(mouseX < auctionViewLeft+16+32) { - //top left - increasePriceByFactor(2); - } else { - //top right - increasePriceByFactor(1.5f); - } - } else if(mouseY > guiTop+50 && mouseY < guiTop+50+16) { - if(mouseX < auctionViewLeft+16+32) { - //mid left - increasePriceByFactor(1.25f); - } else { - //mid right - increasePriceByFactor(1.1f); - } - } else if(mouseY > guiTop+68 && mouseY < guiTop+68+16) { - //bottom - Minecraft.getMinecraft().displayGuiScreen(null); - } - } - - this.drawTexturedModalRect(auctionViewLeft+16, guiTop+32, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16+34, guiTop+32, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16, guiTop+50, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16+34, guiTop+50, 0, 16, 30, 16); - this.drawTexturedModalRect(auctionViewLeft+16, guiTop+68, 0, 32, 64, 16); - } - - out: - for(int i=0; i<5+splits; i++) { - int itemY = guiTop + i*18 + 18; - for(int j=0; j<9; j++) { - int itemX = guiLeft + j*18 + 9; - int id = itemsScroll + i*9 + j; - if(auctionIds.size() <= id) break out; - - String aucid; - try { - aucid = auctionIds.get(id); - } catch (IndexOutOfBoundsException e) { break out; } - - NEUManager.Auction auc = manager.getAuctionItems().get(aucid); - long timeUntilEnd = auc.end - System.currentTimeMillis(); - - if(timeUntilEnd > 0) { - if(mouseX > itemX && mouseX < itemX+16) { - if(mouseY > itemY && mouseY < itemY+16) { - startingBid = Math.max(auc.starting_bid, auc.highest_bid_amount); - NotEnoughUpdates.INSTANCE.sendChatMessage("/viewauction "+niceAucId(aucid)); - } - } - } - - - } - } - - int y = guiTop+18+(int)((95+ySplitSize*2)*scrollAmount); - if(mouseX > guiLeft+175 && mouseX < guiLeft+175+12) { - if(mouseY > y && mouseY < y+15) { - scrollClicked = true; - return; - } - } - scrollClicked = false; - } - - protected void mouseReleased(int mouseX, int mouseY, int state) { - scrollClicked = false; - } - - protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { - if(scrollClicked) { - int yMin = guiTop+18 + 8; - int yMax = guiTop+18+(95+ySplitSize*2) + 8; - - scrollAmount = (mouseY-yMin)/(float)(yMax-yMin); - scrollAmount = Math.max(0, Math.min(1, scrollAmount)); - } - } -} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index 502cebe9..c1056108 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -1,6 +1,8 @@ package io.github.moulberry.notenoughupdates; import com.google.gson.*; +import io.github.moulberry.notenoughupdates.auction.AuctionManager; +import io.github.moulberry.notenoughupdates.auction.CustomAH; import io.github.moulberry.notenoughupdates.options.Options; import io.github.moulberry.notenoughupdates.util.HypixelApi; import net.minecraft.client.Minecraft; @@ -32,10 +34,10 @@ public class NEUManager { private final NotEnoughUpdates neu; public final NEUIO neuio; public final Gson gson; + public final AuctionManager auctionManager; private TreeMap<String, JsonObject> itemMap = new TreeMap<>(); - private TreeMap<String, Set<String>> tagWordMap = new TreeMap<>(); private TreeMap<String, HashMap<String, List<Integer>>> titleWordMap = new TreeMap<>(); private TreeMap<String, HashMap<String, List<Integer>>> loreWordMap = new TreeMap<>(); @@ -60,13 +62,7 @@ public class NEUManager { private JsonObject auctionPricesJson = null; private long auctionLastUpdate = 0; - private TreeMap<String, Auction> auctionItems = new TreeMap<>(); - public CustomAH customAH = new CustomAH(this); - - private HashMap<String, String> uuidToName = new HashMap<>(); - private HashMap<String, CraftInfo> craftCost = new HashMap<>(); - private HashMap<String, Set<String>> usagesMap = new HashMap<>(); public File configLocation; @@ -80,6 +76,7 @@ public class NEUManager { this.neu = neu; this.configLocation = configLocation; this.neuio = neuio; + this.auctionManager = new AuctionManager(this); GsonBuilder gsonBuilder = new GsonBuilder().setPrettyPrinting(); gsonBuilder.registerTypeAdapter(Options.Option.class, Options.createSerializer()); @@ -108,47 +105,6 @@ public class NEUManager { } } - public class Auction { - public String auctioneerUuid; - public long end; - public int starting_bid; - public int highest_bid_amount; - public int bid_count; - public boolean bin; - public String category; - public String extras; - public String item_bytes; - private ItemStack stack; - - public Auction(String auctioneerUuid, long end, int starting_bid, int highest_bid_amount, int bid_count, - boolean bin, String category, String extras, String item_bytes) { - this.auctioneerUuid = auctioneerUuid; - this.end = end; - this.starting_bid = starting_bid; - this.highest_bid_amount = highest_bid_amount; - this.bid_count = bid_count; - this.bin = bin; - this.category = category; - this.extras = extras; - this.item_bytes = item_bytes; - } - - public ItemStack getStack() { - if(stack != null) { - return stack; - } else { - JsonObject item = getJsonFromItemBytes(item_bytes); - ItemStack stack = jsonToStack(item, false); - this.stack = stack; - return stack; - } - } - } - - public TreeMap<String, Auction> getAuctionItems() { - return auctionItems; - } - public class CraftInfo { public boolean fromRecipe = false; public boolean vanillaItem = false; @@ -486,90 +442,6 @@ public class NEUManager { } } - ScheduledExecutorService auctionUpdateSES = Executors.newSingleThreadScheduledExecutor(); - private AtomicInteger auctionUpdateId = new AtomicInteger(0); - public void updateAuctions() { - HashMap<Integer, JsonObject> pages = new HashMap<>(); - - HashMap<String, String> args = new HashMap<>(); - args.put("page", "0"); - AtomicInteger totalPages = new AtomicInteger(1); - AtomicInteger currentPages = new AtomicInteger(0); - hypixelApi.getHypixelApiAsync(config.apiKey.value, "skyblock/auctions", - args, jsonObject -> { - if (jsonObject.get("success").getAsBoolean()) { - pages.put(0, jsonObject); - totalPages.set(jsonObject.get("totalPages").getAsInt()); - currentPages.incrementAndGet(); - - for (int i = 1; i < totalPages.get(); i++) { - int j = i; - HashMap<String, String> args2 = new HashMap<>(); - args2.put("page", "" + i); - hypixelApi.getHypixelApiAsync(config.apiKey.value, "skyblock/auctions", - args2, jsonObject2 -> { - if (jsonObject2.get("success").getAsBoolean()) { - pages.put(j, jsonObject2); - currentPages.incrementAndGet(); - } else { - currentPages.incrementAndGet(); - } - } - ); - } - } - } - ); - - long startTime = System.currentTimeMillis(); - - int currentAuctionUpdateId = auctionUpdateId.incrementAndGet(); - - auctionUpdateSES.schedule(new Runnable() { - public void run() { - if(auctionUpdateId.get() != currentAuctionUpdateId) return; - System.out.println(currentPages.get() + "/" + totalPages.get()); - if (System.currentTimeMillis() - startTime > 20000) return; - - if (currentPages.get() == totalPages.get()) { - TreeMap<String, Auction> auctionItemsTemp = new TreeMap<>(); - - for (int pageNum : pages.keySet()) { - System.out.println(pageNum + "/" + pages.size()); - JsonObject page = pages.get(pageNum); - JsonArray auctions = page.get("auctions").getAsJsonArray(); - for (int i = 0; i < auctions.size(); i++) { - JsonObject auction = auctions.get(i).getAsJsonObject(); - - String auctionUuid = auction.get("uuid").getAsString(); - String auctioneerUuid = auction.get("auctioneer").getAsString(); - long end = auction.get("end").getAsLong(); - int starting_bid = auction.get("starting_bid").getAsInt(); - int highest_bid_amount = auction.get("highest_bid_amount").getAsInt(); - int bid_count = auction.get("bids").getAsJsonArray().size(); - boolean bin = false; - if(auction.has("bin")) { - bin = auction.get("bin").getAsBoolean(); - } - String category = auction.get("category").getAsString(); - String extras = auction.get("item_lore").getAsString().replaceAll("\n"," ") + " " + - auction.get("extra").getAsString(); - String item_bytes = auction.get("item_bytes").getAsString(); - - auctionItemsTemp.put(auctionUuid, new Auction(auctioneerUuid, end, starting_bid, highest_bid_amount, - bid_count, bin, category, extras, item_bytes)); - } |
