aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-01-22 13:06:37 +0900
committersyeyoung <cyong06@naver.com>2021-01-22 13:06:37 +0900
commitc37e8bb98d04801a31b1f0dd1c74f5117c534aeb (patch)
tree3f993ec5c4ec660952f43427467aa4fb9d9b00af /src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss
parent1ce6ac3c20768422b05f9e861ed0a41bd2f0c8d2 (diff)
downloadSkyblock-Dungeons-Guide-c37e8bb98d04801a31b1f0dd1c74f5117c534aeb.tar.gz
Skyblock-Dungeons-Guide-c37e8bb98d04801a31b1f0dd1c74f5117c534aeb.tar.bz2
Skyblock-Dungeons-Guide-c37e8bb98d04801a31b1f0dd1c74f5117c534aeb.zip
categorize feature impls
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureAutoReparty.java30
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureChestPrice.java93
2 files changed, 123 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureAutoReparty.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureAutoReparty.java
new file mode 100644
index 00000000..d1ec99f3
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureAutoReparty.java
@@ -0,0 +1,30 @@
+package kr.syeyoung.dungeonsguide.features.impl.boss;
+
+import kr.syeyoung.dungeonsguide.e;
+import kr.syeyoung.dungeonsguide.features.SimpleFeature;
+import kr.syeyoung.dungeonsguide.features.listener.DungeonEndListener;
+import kr.syeyoung.dungeonsguide.features.listener.GuiBackgroundRenderListener;
+import kr.syeyoung.dungeonsguide.utils.TextUtils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.inventory.GuiChest;
+import net.minecraft.client.renderer.GlStateManager;
+import net.minecraft.inventory.ContainerChest;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraftforge.client.event.GuiScreenEvent;
+import org.lwjgl.opengl.GL11;
+
+public class FeatureAutoReparty extends SimpleFeature implements DungeonEndListener {
+ public FeatureAutoReparty() {
+ super("Bossfight", "Auto reparty when dungeon finishes","Auto reparty on dungeon finish\n\nThis automates player chatting action, (disbanding, repartying) Thus it might be against hypixel's rules.\nBut mods like auto-gg exist so I'm leaving this feature.\nThis option is use-at-your-risk and you'll be responsible for ban if you somehow get banned because of this feature\n(Although it is not likely to happen)\nDefaults to off", "bossfight.autoreparty", false);
+ }
+
+ @Override
+ public void onDungeonEnd() {
+ if (isEnabled()) e.getDungeonsGuide().getCommandReparty().requestReparty();
+ }
+}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureChestPrice.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureChestPrice.java
new file mode 100644
index 00000000..349af180
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureChestPrice.java
@@ -0,0 +1,93 @@
+package kr.syeyoung.dungeonsguide.features.impl.boss;
+
+import kr.syeyoung.dungeonsguide.e;
+import kr.syeyoung.dungeonsguide.features.SimpleFeature;
+import kr.syeyoung.dungeonsguide.features.impl.dungeon.FeatureInstaCloseChest;
+import kr.syeyoung.dungeonsguide.features.listener.GuiBackgroundRenderListener;
+import kr.syeyoung.dungeonsguide.utils.TextUtils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.inventory.GuiChest;
+import net.minecraft.client.renderer.GlStateManager;
+import net.minecraft.inventory.ContainerChest;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraftforge.client.event.GuiScreenEvent;
+
+public class FeatureChestPrice extends SimpleFeature implements GuiBackgroundRenderListener {
+ public FeatureChestPrice() {
+ super("Bossfight", "Show Profit of Dungeon Chests","Show Profit of Dungeon Chests", "bossfight.profitchest", true);
+ }
+
+ @Override
+ public void onGuiBGRender(GuiScreenEvent.BackgroundDrawnEvent rendered) {
+ if (!isEnabled()) return;
+ if (!(rendered.gui instanceof GuiChest)) return;
+ if (!e.getDungeonsGuide().getSkyblockStatus().isOnDungeon()) return;
+
+ GlStateManager.disableLighting();
+
+ ContainerChest chest = (ContainerChest) ((GuiChest) rendered.gui).inventorySlots;
+ if (!chest.getLowerChestInventory().getName().endsWith("Chest")) return;
+ IInventory actualChest = chest.getLowerChestInventory();
+
+ int chestPrice = 0;
+ int itemPrice = 0;
+ for (int i = 0; i <actualChest.getSizeInventory(); i++) {
+ ItemStack item = actualChest.getStackInSlot(i);
+ if (item != null) {
+ if (item.getDisplayName() != null && item.getDisplayName().contains("Reward")) {
+ NBTTagCompound tagCompound = item.serializeNBT().getCompoundTag("tag");
+ if (tagCompound != null && tagCompound.hasKey("display", 10)) {
+ NBTTagCompound nbttagcompound = tagCompound.getCompoundTag("display");
+
+ if (nbttagcompound.getTagId("Lore") == 9) {
+ NBTTagList nbttaglist1 = nbttagcompound.getTagList("Lore", 8);
+
+ if (nbttaglist1.tagCount() > 0) {
+ for (int j1 = 0; j1 < nbttaglist1.tagCount(); ++j1) {
+ String str = nbttaglist1.getStringTagAt(j1);
+ if (str.endsWith("Coins")) {
+ String coins = TextUtils.stripColor(str).replace(" Coins", "").replace(",","");
+ try {
+ chestPrice = Integer.parseInt(coins);
+ } catch (Exception e) {
+
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ itemPrice += FeatureInstaCloseChest.getPrice(item) * item.stackSize;
+ }
+ }
+
+ int i = 222;
+ int j = i - 108;
+ int ySize = j + (actualChest.getSizeInventory() / 9) * 18;
+ int left = (rendered.gui.width + 176) / 2;
+ int top = (rendered.gui.height - ySize ) / 2;
+
+ int width = 120;
+
+ GlStateManager.pushMatrix();
+ GlStateManager.translate(left, top, 0);
+ Gui.drawRect( 0,0,width, 30, 0xFFDDDDDD);
+
+ FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
+ fr.drawString("BIN/AH Price: ", 5,5, 0xFF000000);
+ String str = TextUtils.format(itemPrice);
+ fr.drawString(str, width - fr.getStringWidth(str) - 5, 5, 0xFF000000);
+
+ fr.drawString("Profit: ", 5,15, 0xFF000000);
+ str = (itemPrice > chestPrice ? "+" : "") +TextUtils.format(itemPrice - chestPrice);
+ fr.drawString(str, width - fr.getStringWidth(str) - 5, 15, itemPrice > chestPrice ? 0xFF00CC00 : 0xFFCC0000);
+
+ GlStateManager.popMatrix();
+ }
+}