aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSychic <47618543+Sychic@users.noreply.github.com>2020-12-26 16:16:25 -0500
committerGitHub <noreply@github.com>2020-12-26 16:16:25 -0500
commit3917028d62623f56428784f039af241bf5750a14 (patch)
tree0cb34d0fa5104990df8bcd4f72816bf252a6c4da /src
parent3e4b6728eaee4daae95dfb8c40ed46510e9ea280 (diff)
parente00e8cc6b29b8c6826459c7d39e40b265640d22d (diff)
downloadSkyblockMod-3917028d62623f56428784f039af241bf5750a14.tar.gz
SkyblockMod-3917028d62623f56428784f039af241bf5750a14.tar.bz2
SkyblockMod-3917028d62623f56428784f039af241bf5750a14.zip
Merge branch 'development' into development
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java6813
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java2
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java3
-rw-r--r--src/main/java/me/Danker/commands/DungeonsCommand.java63
-rw-r--r--src/main/java/me/Danker/commands/MoveCommand.java14
-rw-r--r--src/main/java/me/Danker/commands/ScaleCommand.java10
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java25
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java38
-rw-r--r--src/main/java/me/Danker/gui/EditLocationsGui.java32
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java30
-rw-r--r--src/main/java/me/Danker/handlers/ScoreboardHandler.java1
-rw-r--r--src/main/java/me/Danker/utils/Utils.java50
-rw-r--r--src/main/resources/assets/dsm/icons/bonzo.pngbin0 -> 10809 bytes
13 files changed, 3755 insertions, 3326 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index a1468e4..0e90206 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -8,6 +8,7 @@ import me.Danker.handlers.*;
import me.Danker.utils.TicTacToeUtils;
import me.Danker.utils.Utils;
import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.*;
@@ -15,6 +16,7 @@ import net.minecraft.client.gui.inventory.GuiChest;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.entity.Entity;
+import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.entity.item.EntityItemFrame;
import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntitySpider;
@@ -23,6 +25,7 @@ import net.minecraft.entity.passive.EntityWolf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.event.ClickEvent;
import net.minecraft.event.ClickEvent.Action;
+import net.minecraft.event.HoverEvent;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
@@ -43,9 +46,7 @@ import net.minecraftforge.client.event.sound.PlaySoundEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.player.AttackEntityEvent;
-import net.minecraftforge.event.entity.player.EntityInteractEvent;
-import net.minecraftforge.event.entity.player.ItemTooltipEvent;
-import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import net.minecraftforge.event.entity.player.*;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.Loader;
@@ -75,16 +76,15 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Mod(modid = DankersSkyblockMod.MODID, version = DankersSkyblockMod.VERSION, clientSideOnly = true)
-public class DankersSkyblockMod
-{
+public class DankersSkyblockMod {
public static final String MODID = "Danker's Skyblock Mod";
- public static final String VERSION = "1.8.5-beta5";
-
+ public static final String VERSION = "1.8.5-beta6";
+
static double checkItemsNow = 0;
static double itemsChecked = 0;
public static Map<String, String> t6Enchants = new HashMap<>();
public static Pattern t6EnchantPattern = Pattern.compile("");
- static Pattern petPattern = Pattern.compile("\\[Lvl [\\d]{1,3}]");
+ static Pattern petPattern = Pattern.compile("\\[Lvl [\\d]{1,3}]");
static boolean updateChecked = false;
public static int titleTimer = -1;
public static boolean showTitle = false;
@@ -96,72 +96,75 @@ public class DankersSkyblockMod
static int tickAmount = 1;
static String lastMaddoxCommand = "/cb placeholder";
static double lastMaddoxTime = 0;
- static KeyBinding[] keyBindings = new KeyBinding[2];
+ static KeyBinding[] keyBindings = new KeyBinding[3];
static boolean usingLabymod = false;
static boolean usingOAM = false;
static boolean OAMWarning = false;
public static String guiToOpen = null;
- static boolean foundLivid = false;
- static Entity livid = null;
- public static double cakeTime;
-
- public static final ResourceLocation CAKE_ICON = new ResourceLocation("dsm", "icons/cake.png");
-
- static String[] riddleSolutions = {"The reward is not in my chest!", "At least one of them is lying, and the reward is not in",
- "My chest doesn't have the reward. We are all telling the truth", "My chest has the reward and I'm telling the truth",
- "The reward isn't in any of our chests", "Both of them are telling the truth."};
- static Map<String, String[]> triviaSolutions = new HashMap<>();
- static String[] triviaAnswers = null;
- static Entity highestBlaze = null;
- static Entity lowestBlaze = null;
- // Among Us colours
- static final int[] CREEPER_COLOURS = {0x50EF39, 0xC51111, 0x132ED1, 0x117F2D, 0xED54BA, 0xEF7D0D, 0xF5F557, 0xD6E0F0, 0x6B2FBB, 0x39FEDC};
- static boolean drawCreeperLines = false;
- static Vec3 creeperLocation = new Vec3(0, 0, 0);
- static List<Vec3[]> creeperLines = new ArrayList<>();
- static boolean prevInWaterRoom = false;
- static boolean inWaterRoom = false;
- static String waterAnswers = null;
- static AxisAlignedBB correctTicTacToeButton = null;
- static Pattern startsWithTerminalPattern = Pattern.compile("[A-Z]{2,}");
- static Slot[] clickInOrderSlots = new Slot[36];
- static int lastChronomatronRound = 0;
- static List<String> chronomatronPattern = new ArrayList<>();
- static int chronomatronMouseClicks = 0;
- static int lastUltraSequencerClicked = 0;
- static ItemStack[] experimentTableSlots = new ItemStack[54];
- static int pickBlockBind;
- static boolean pickBlockBindSwapped = false;
- static String terminalColorNeeded;
- static int[] terminalNumberNeeded = new int[2];
-
- static double dungeonStartTime = 0;
+ static boolean foundLivid = false;
+ static Entity livid = null;
+ public static double cakeTime;
+ public static double nextBonzoUse = 0;
+ public static boolean firstLaunch = false;
+
+ public static final ResourceLocation CAKE_ICON = new ResourceLocation("dsm", "icons/cake.png");
+ public static final ResourceLocation BONZO_ICON = new ResourceLocation("dsm", "icons/bonzo.png");
+
+ static String[] riddleSolutions = {"The reward is not in my chest!", "At least one of them is lying, and the reward is not in",
+ "My chest doesn't have the reward. We are all telling the truth", "My chest has the reward and I'm telling the truth",
+ "The reward isn't in any of our chests", "Both of them are telling the truth."};
+ static Map<String, String[]> triviaSolutions = new HashMap<>();
+ static String[] triviaAnswers = null;
+ static Entity highestBlaze = null;
+ static Entity lowestBlaze = null;
+ // Among Us colours
+ static final int[] CREEPER_COLOURS = {0x50EF39, 0xC51111, 0x132ED1, 0x117F2D, 0xED54BA, 0xEF7D0D, 0xF5F557, 0xD6E0F0, 0x6B2FBB, 0x39FEDC};
+ static boolean drawCreeperLines = false;
+ static Vec3 creeperLocation = new Vec3(0, 0, 0);
+ static List<Vec3[]> creeperLines = new ArrayList<>();
+ static boolean prevInWaterRoom = false;
+ static boolean inWaterRoom = false;
+ static String waterAnswers = null;
+ static AxisAlignedBB correctTicTacToeButton = null;
+ static Pattern startsWithTerminalPattern = Pattern.compile("[A-Z]{2,}");
+ static Slot[] clickInOrderSlots = new Slot[36];
+ static int lastChronomatronRound = 0;
+ static List<String> chronomatronPattern = new ArrayList<>();
+ static int chronomatronMouseClicks = 0;
+ static int lastUltraSequencerClicked = 0;
+ static ItemStack[] experimentTableSlots = new ItemStack[54];
+ static int pickBlockBind;
+ static boolean pickBlockBindSwapped = false;
+ static String terminalColorNeeded;
+ static int[] terminalNumberNeeded = new int[4];
+
+ static double dungeonStartTime = 0;
static double bloodOpenTime = 0;
static double watcherClearTime = 0;
static double bossClearTime = 0;
static int witherDoors = 0;
static int dungeonDeaths = 0;
static int puzzleFails = 0;
-
+
static String lastSkill = "Farming";
public static boolean showSkillTracker;
public static StopWatch skillStopwatch = new StopWatch();
- static double farmingXP = 0;
- public static double farmingXPGained = 0;
- static double miningXP = 0;
- public static double miningXPGained = 0;
- static double combatXP = 0;
- public static double combatXPGained = 0;
- static double foragingXP = 0;
- public static double foragingXPGained = 0;
- static double fishingXP = 0;
- public static double fishingXPGained = 0;
- static double enchantingXP = 0;
- public static double enchantingXPGained = 0;
- static double alchemyXP = 0;
- public static double alchemyXPGained = 0;
- static double xpLeft = 0;
-
+ static double farmingXP = 0;
+ public static double farmingXPGained = 0;
+ static double miningXP = 0;
+ public static double miningXPGained = 0;
+ static double combatXP = 0;
+ public static double combatXPGained = 0;
+ static double foragingXP = 0;
+ public static double foragingXPGained = 0;
+ static double fishingXP = 0;
+ public static double fishingXPGained = 0;
+ static double enchantingXP = 0;
+ public static double enchantingXPGained = 0;
+ static double alchemyXP = 0;
+ public static double alchemyXPGained = 0;
+ static double xpLeft = 0;
+
public static String MAIN_COLOUR;
public static String SECONDARY_COLOUR;
public static String ERROR_COLOUR;
@@ -175,6 +178,7 @@ public class DankersSkyblockMod
public static String CAKE_COLOUR;
public static String SKILL_TRACKER_COLOUR;
public static String TRIVIA_WRONG_ANSWER_COLOUR;
+ public static String BONZO_COLOR;
public static int LOWEST_BLAZE_COLOUR;
public static int HIGHEST_BLAZE_COLOUR;
public static int PET_1_TO_9;
@@ -188,123 +192,124 @@ public class DankersSkyblockMod
public static int PET_80_TO_89;
public static int PET_90_TO_99;
public static int PET_100;
-
+
@EventHandler
public void init(FMLInitializationEvent event) {
- MinecraftForge.EVENT_BUS.register(this);
- MinecraftForge.EVENT_BUS.register(new PacketHandler());
-
- ConfigHandler.reloadConfig();
-
- // For golden enchants
- t6Enchants.put("9Angler VI", "6Angler VI");
- t6Enchants.put("9Bane of Arthropods VI", "6Bane of Arthropods VI");
- t6Enchants.put("9Caster VI", "6Caster VI");
- t6Enchants.put("9Compact X", "6Compact X");
- t6Enchants.put("9Critical VI", "6Critical VI");
- t6Enchants.put("9Dragon Hunter V", "6Dragon Hunter V");
- t6Enchants.put("9Efficiency VI", "6Efficiency VI");
- t6Enchants.put("9Ender Slayer VI", "6Ender Slayer VI");
- t6Enchants.put("9Experience IV", "6Experience IV");
- t6Enchants.put("9Expertise X", "6Expertise X");
- t6Enchants.put("9Feather Falling X", "6Feather Falling X");
- t6Enchants.put("9Frail VI", "6Frail VI");
- t6Enchants.put("9Giant Killer VI", "6Giant Killer VI");
- t6Enchants.put("9Growth VI", "6Growth VI");
- t6Enchants.put("9Infinite Quiver X", "6Infinite Quiver X");
- t6Enchants.put("9Lethality VI", "6Lethality VI");
- t6Enchants.put("9Life Steal IV", "6Life Steal IV");
- t6Enchants.put("9Looting IV", "6Looting IV");
- t6Enchants.put("9Luck VI", "6Luck VI");
- t6Enchants.put("9Luck of the Sea VI", "6Luck of the Sea VI");
- t6Enchants.put("9Lure VI", "6Lure VI");
- t6Enchants.put("9Magnet VI", "6Magnet VI");
- t6Enchants.put("9Overload V", "6Overload V");
- t6Enchants.put("9Power VI", "6Power VI");
- t6Enchants.put("9Protection VI", "6Protection VI");
- t6Enchants.put("9Scavenger IV", "6Scavenger IV");
- t6Enchants.put("9Scavenger V", "6Scavenger V");
- t6Enchants.put("9Sharpness VI", "6Sharpness VI");
- t6Enchants.put("9Smite VI", "6Smite VI");
- t6Enchants.put("9Spiked Hook VI", "6Spiked Hook VI");
- t6Enchants.put("9Thunderlord VI", "6Thunderlord VI");
- t6Enchants.put("9Vampirism VI", "6Vampirism VI");
-
- triviaSolutions.put("What is the status of The Watcher?", new String[]{"Stalker"});
- triviaSolutions.put("What is the status of Bonzo?", new String[]{"New Necromancer"});
- triviaSolutions.put("What is the status of Scarf?", new String[]{"Apprentice Necromancer"});
- triviaSolutions.put("What is the status of The Professor?", new String[]{"Professor"});
- triviaSolutions.put("What is the status of Thorn?", new String[]{"Shaman Necromancer"});
- triviaSolutions.put("What is the status of Livid?", new String[]{"Master Necromancer"});
- triviaSolutions.put("What is the status of Sadan?", new String[]{"Necromancer Lord"});
- triviaSolutions.put("What is the status of Maxor?", new String[]{"Young Wither"});
- triviaSolutions.put("What is the status of Goldor?", new String[]{"Wither Soldier"});
- triviaSolutions.put("What is the status of Storm?", new String[]{"Elementalist"});
- triviaSolutions.put("What is the status of Necron?", new String[]{"Wither Lord"});
- triviaSolutions.put("How many total Fairy Souls are there?", new String[]{"209 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Spider's Den?", new String[]{"17 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in The End?", new String[]{"12 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in The Barn?", new String[]{"7 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Mushroom Desert?", new String[]{"8 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Blazing Fortress?", new String[]{"19 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in The Park?", new String[]{"11 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Jerry's Workshop?", new String[]{"5 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Hub?", new String[]{"79 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in The Hub?", new String[]{"79 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Deep Caverns?", new String[]{"21 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Gold Mine?", new String[]{"12 Fairy Souls"});
- triviaSolutions.put("How many Fairy Souls are there in Dungeon Hub?", new String[]{"7 Fairy Souls"});
- triviaSolutions.put("Which brother is on the Spider's Den?", new String[]{"Rick"});
- triviaSolutions.put("What is the name of Rick's brother?", new String[]{"Pat"});
- triviaSolutions.put("What is the name of the Painter in the Hub?", new String[]{"Marco"});
- triviaSolutions.put("What is the name of the person that upgrades pets?", new String[]{"Kat"});
- triviaSolutions.put("What is the name of the lady of the Nether?", new String[]{"Elle"});
- triviaSolutions.put("Which villager in the Village gives you a Rogue Sword?", new String[]{"Jamie"});
- triviaSolutions.put("How many unique minions are there?", new String[]{"52 Minions"});
- triviaSolutions.put("Which of these enemies does not spawn in the Spider's Den?", new String[]{"Zombie Spider", "Cave Spider", "Wither Skeleton",
- "Dashing Spooder", "Broodfather", "Night Spider"});
- triviaSolutions.put("Which of these monsters only spawns at night?", new String[]{"Zombie Villager", "Ghast"});
- triviaSolutions.put("Which of these is not a dragon in The End?", new String[]{"Zoomer Dragon", "Weak Dragon", "Stonk Dragon", "Holy Dragon", "Boomer Dragon",
- "Booger Dragon", "Older Dragon", "Elder Dragon", "Stable Dragon", "Professor Dragon"});
-
- String patternString = "(" + String.join("|", t6Enchants.keySet()) + ")";
- t6EnchantPattern = Pattern.compile(patternString);
-
- keyBindings[0] = new KeyBinding("Open Maddox Menu", Keyboard.KEY_M, "Danker's Skyblock Mod");
- keyBindings[1] = new KeyBinding("Start/Stop Skill Tracker", Keyboard.KEY_NUMPAD5, "Danker's Skyblock Mod");
-
- for (KeyBinding keyBinding : keyBindings) {
- ClientRegistry.registerKeyBinding(keyBinding);
- }
+ MinecraftForge.EVENT_BUS.register(this);
+ MinecraftForge.EVENT_BUS.register(new PacketHandler());
+
+ ConfigHandler.reloadConfig();
+
+ // For golden enchants
+ t6Enchants.put("9Angler VI", "6Angler VI");
+ t6Enchants.put("9Bane of Arthropods VI", "6Bane of Arthropods VI");
+ t6Enchants.put("9Caster VI", "6Caster VI");
+ t6Enchants.put("9Compact X", "6Compact X");
+ t6Enchants.put("9Critical VI", "6Critical VI");
+ t6Enchants.put("9Dragon Hunter V", "6Dragon Hunter V");
+ t6Enchants.put("9Efficiency VI", "6Efficiency VI");
+ t6Enchants.put("9Ender Slayer VI", "6Ender Slayer VI");
+ t6Enchants.put("9Experience IV", "6Experience IV");
+ t6Enchants.put("9Expertise X", "6Expertise X");
+ t6Enchants.put("9Feather Falling X", "6Feather Falling X");
+ t6Enchants.put("9Frail VI", "6Frail VI");
+ t6Enchants.put("9Giant Killer VI", "6Giant Killer VI");
+ t6Enchants.put("9Growth VI", "6Growth VI");
+ t6Enchants.put("9Infinite Quiver X", "6Infinite Quiver X");
+ t6Enchants.put("9Lethality VI", "6Lethality VI");
+ t6Enchants.put("9Life Steal IV", "6Life Steal IV");
+ t6Enchants.put("9Looting IV", "6Looting IV");
+ t6Enchants.put("9Luck VI", "6Luck VI");
+ t6Enchants.put("9Luck of the Sea VI", "6Luck of the Sea VI");
+ t6Enchants.put("9Lure VI", "6Lure VI");
+ t6Enchants.put("9Magnet VI", "6Magnet VI");
+ t6Enchants.put("9Overload V", "6Overload V");
+ t6Enchants.put("9Power VI", "6Power VI");
+ t6Enchants.put("9Protection VI", "6Protection VI");
+ t6Enchants.put("9Scavenger IV", "6Scavenger IV");
+ t6Enchants.put("9Scavenger V", "6Scavenger V");
+ t6Enchants.put("9Sharpness VI", "6Sharpness VI");
+ t6Enchants.put("9Smite VI", "6Smite VI");
+ t6Enchants.put("9Spiked Hook VI", "6Spiked Hook VI");
+ t6Enchants.put("9Thunderlord VI", "6Thunderlord VI");
+ t6Enchants.put("9Vampirism VI", "6Vampirism VI");
+
+ triviaSolutions.put("What is the status of The Watcher?", new String[]{"Stalker"});
+ triviaSolutions.put("What is the status of Bonzo?", new String[]{"New Necromancer"});
+ triviaSolutions.put("What is the status of Scarf?", new String[]{"Apprentice Necromancer"});
+ triviaSolutions.put("What is the status of The Professor?", new String[]{"Professor"});
+ triviaSolutions.put("What is the status of Thorn?", new String[]{"Shaman Necromancer"});
+ triviaSolutions.put("What is the status of Livid?", new String[]{"Master Necromancer"});
+ triviaSolutions.put("What is the status of Sadan?", new String[]{"Necromancer Lord"});
+ triviaSolutions.put("What is the status of Maxor?", new String[]{"Young Wither"});
+ triviaSolutions.put("What is the status of Goldor?", new String[]{"Wither Soldier"});
+ triviaSolutions.put("What is the status of Storm?", new String[]{"Elementalist"});
+ triviaSolutions.put("What is the status of Necron?", new String[]{"Wither Lord"});
+ triviaSolutions.put("How many total Fairy Souls are there?", new String[]{"209 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Spider's Den?", new String[]{"17 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in The End?", new String[]{"12 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in The Barn?", new String[]{"7 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Mushroom Desert?", new String[]{"8 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Blazing Fortress?", new String[]{"19 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in The Park?", new String[]{"11 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Jerry's Workshop?", new String[]{"5 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Hub?", new String[]{"79 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in The Hub?", new String[]{"79 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Deep Caverns?", new String[]{"21 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Gold Mine?", new String[]{"12 Fairy Souls"});
+ triviaSolutions.put("How many Fairy Souls are there in Dungeon Hub?", new String[]{"7 Fairy Souls"});
+ triviaSolutions.put("Which brother is on the Spider's Den?", new String[]{"Rick"});
+ triviaSolutions.put("What is the name of Rick's brother?", new String[]{"Pat"});
+ triviaSolutions.put("What is the name of the Painter in the Hub?", new String[]{"Marco"});
+ triviaSolutions.put("What is the name of the person that upgrades pets?", new String[]{"Kat"});
+ triviaSolutions.put("What is the name of the lady of the Nether?", new String[]{"Elle"});
+ triviaSolutions.put("Which villager in the Village gives you a Rogue Sword?", new String[]{"Jamie"});
+ triviaSolutions.put("How many unique minions are there?", new String[]{"52 Minions"});
+ triviaSolutions.put("Which of these enemies does not spawn in the Spider's Den?", new String[]{"Zombie Spider", "Cave Spider", "Wither Skeleton",
+ "Dashing Spooder", "Broodfather", "Night Spider"});
+ triviaSolutions.put("Which of these monsters only spawns at night?", new String[]{"Zombie Villager", "Ghast"});
+ triviaSolutions.put("Which of these is not a dragon in The End?", new String[]{"Zoomer Dragon", "Weak Dragon", "Stonk Dragon", "Holy Dragon", "Boomer Dragon",
+ "Booger Dragon", "Older Dragon", "Elder Dragon", "Stable Dragon", "Professor Dragon"});
+
+ String patternString = "(" + String.join("|", t6Enchants.keySet()) + ")";
+ t6EnchantPattern = Pattern.compile(patternString);
+
+ keyBindings[0] = new KeyBinding("Open Maddox Menu", Keyboard.KEY_M, "Danker's Skyblock Mod");
+ keyBindings[1] = new KeyBinding("Regular Ability", Keyboard.KEY_NUMPAD4, "Danker's Skyblock Mod");
+ keyBindings[2] = new KeyBinding("Start/Stop Skill Tracker", Keyboard.KEY_NUMPAD5, "Danker's Skyblock Mod");
+
+ for (KeyBinding keyBinding : keyBindings) {
+ ClientRegistry.registerKeyBinding(keyBinding);
+ }
}
-
+
@EventHandler
public void preInit(final FMLPreInitializationEvent event) {
- ClientCommandHandler.instance.registerCommand(new ToggleCommand());
- ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
- ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
- ClientCommandHandler.instance.registerCommand(new LootCommand());
- ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
- ClientCommandHandler.instance.registerCommand(new DisplayCommand());
- ClientCommandHandler.instance.registerCommand(new MoveCommand());
- ClientCommandHandler.instance.registerCommand(new SlayerCommand());
- ClientCommandHandler.instance.registerCommand(new SkillsCommand());
- ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
- ClientCommandHandler.instance.registerCommand(new DHelpCommand());
- ClientCommandHandler.instance.registerCommand(new PetsCommand());
- ClientCommandHandler.instance.registerCommand(new BankCommand());
- ClientCommandHandler.instance.registerCommand(new ArmourCommand());
- ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
- ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
- ClientCommandHandler.instance.registerCommand(new ScaleCommand());
- ClientCommandHandler.instance.registerCommand(new SkyblockPlayersCommand());
- ClientCommandHandler.instance.registerCommand(new BlockSlayerCommand());
- ClientCommandHandler.instance.registerCommand(new DungeonsCommand());
- ClientCommandHandler.instance.registerCommand(new LobbySkillsCommand());
- ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
- ClientCommandHandler.instance.registerCommand(new SkillTrackerCommand());
+ ClientCommandHandler.instance.registerCommand(new ToggleCommand());
+ ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
+ ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
+ ClientCommandHandler.instance.registerCommand(new LootCommand());
+ ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
+ ClientCommandHandler.instance.registerCommand(new DisplayCommand());
+ ClientCommandHandler.instance.registerCommand(new MoveCommand());
+ ClientCommandHandler.instance.registerCommand(new SlayerCommand());
+ ClientCommandHandler.instance.registerCommand(new SkillsCommand());
+ ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
+ ClientCommandHandler.instance.registerCommand(new DHelpCommand());
+ ClientCommandHandler.instance.registerCommand(new PetsCommand());
+ ClientCommandHandler.instance.registerCommand(new BankCommand());
+ ClientCommandHandler.instance.registerCommand(new ArmourCommand());
+ ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
+ ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
+ ClientCommandHandler.instance.registerCommand(new ScaleCommand());
+ ClientCommandHandler.instance.registerCommand(new SkyblockPlayersCommand());
+ ClientCommandHandler.instance.registerCommand(new BlockSlayerCommand());
+ ClientCommandHandler.instance.registerCommand(new DungeonsCommand());
+ ClientCommandHandler.instance.registerCommand(new LobbySkillsCommand());
+ ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
+ ClientCommandHandler.instance.registerCommand(new SkillTrackerCommand());
}
-
+
@EventHandler
public void postInit(final FMLPostInitializationEvent event) {
Package[] packages = Package.getPackages();
@@ -334,3203 +339,3455 @@ public class DankersSkyblockMod
}
}
}
-
+
// Update checker
@SubscribeEvent
public void onJoin(EntityJoinWorldEvent event) {
- if (!updateChecked) {
- updateChecked = true;
-
- // MULTI THREAD DRIFTING
- new Thread(() -> {
- EntityPlayer player = Minecraft.getMinecraft().thePlayer;
-
- System.out.println("Checking for updates...");
- JsonObject latestRelease = APIHandler.getResponse("https://api.github.com/repos/bowser0000/SkyblockMod/releases/latest");
-
- String latestTag = latestRelease.get("tag_name").getAsString();
- DefaultArtifactVersion currentVersion = new DefaultArtifactVersion(VERSION);
- DefaultArtifactVersion latestVersion = new DefaultArtifactVersion(latestTag.substring(1));
-
- if (currentVersion.compareTo(latestVersion) < 0) {
- String releaseURL = latestRelease.get("html_url").getAsString();
-
- ChatComponentText update = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [UPDATE] ");
- update.setChatStyle(update.getChatStyle().setChatClickEvent(new ClickEvent(Action.OPEN_URL, releaseURL)));
-
- try {
- Thread.sleep(2000);
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- }
- player.addChatMessage(new ChatComponentText(ERROR_COLOUR + MODID + " is outdated. Please update to " + latestTag + ".\n").appendSibling(update));
- }
- }).start();
- }
+
+ if (firstLaunch) {
+ firstLaunch = false;
+ ConfigHandler.writeBooleanConfig("misc", "firstLaunch", false);
+
+ IChatComponent chatComponent = new ChatComponentText(
+ EnumChatFormatting.GOLD + "Thank you for downloading Danker's Skyblock Mod.\n" +
+ "To get started, run the command " + EnumChatFormatting.GOLD + "/dsm" + EnumChatFormatting.RESET + " to view all the mod features."
+ );
+ chatComponent.setChatStyle(chatComponent.getChatStyle().setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText("Click to open the DSM menu."))).setChatClickEvent(new ClickEvent(Action.RUN_COMMAND, "/dsm")));
+
+ new Thread(() -> {
+ while (true) {
+ if (Minecraft.getMinecraft().thePlayer == null) {
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ continue;
+ }
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ Minecraft.getMinecraft().thePlayer.addChatMessage(chatComponent);
+ break;
+ }
+ }).start();
+ }
+
+ if (!updateChecked) {
+ updateChecked = true;
+
+ // MULTI THREAD DRIFTING
+ new Thread(() -> {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+
+ System.out.println("Checking for updates...");
+ JsonObject latestRelease = APIHandler.getResponse("https://api.github.com/repos/bowser0000/SkyblockMod/releases/latest");
+
+ String latestTag = latestRelease.get("tag_name").getAsString();
+ DefaultArtifactVersion currentVersion = new DefaultArtifactVersion(VERSION);
+ DefaultArtifactVersion latestVersion = new DefaultArtifactVersion(latestTag.substring(1));
+
+ if (currentVersion.compareTo(latestVersion) < 0) {
+ String releaseURL = latestRelease.get("html_url").getAsString();
+
+ ChatComponentText update = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [UPDATE] ");
+ update.setChatStyle(update.getChatStyle().setChatClickEvent(new ClickEvent(Action.OPEN_URL, releaseURL)));
+
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException ex) {
+ ex.printStackTrace();
+ }
+ player.addChatMessage(new ChatComponentText(ERROR_COLOUR + MODID + " is outdated. Please update to " + latestTag + ".\n").appendSibling(update));
+ }
+ }).start();
+ }
}
-
+
@SubscribeEvent
public void onWorldChange(WorldEvent.Load event) {
- foundLivid = false;
- livid = null;
+ foundLivid = false;
+ livid = null;
+ nextBonzoUse = 0;
}
-
+
// It randomly broke, so I had to make it the highest priority
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void onChat(ClientChatReceivedEvent event) {
- String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
-
- if (!Utils.inSkyblock) return;
-
- // Action Bar
- if (event.type == 2) {
- String[] actionBarSections = event.message.getUnformattedText().split(" {3,}");
- for (String section : actionBarSections) {
- if (section.contains("+") && section.contains("/") && section.contains("(")) {
- if (!section.contains("Runecrafting") && !section.contains("Carpentry")) {
- int limit = section.contains("Farming") || section.contains("Enchanting") ? 60 : 50;
- double currentXP = Double.parseDouble(section.substring(section.indexOf("(") + 1, section.indexOf("/")).replace(",", ""));
- int xpToLevelUp = Integer.parseInt(section.substring(section.indexOf("/") + 1, section.indexOf(")")).replaceAll(",", ""));
- xpLeft = xpToLevelUp - currentXP;
- int previousXP = Utils.getPastXpEarned(xpToLevelUp, limit);
- double totalXP = currentXP + previousXP;
- String skill = section.substring(section.indexOf(" ") + 1, section.lastIndexOf(" "));
- switch (skill) {
- case "Farming":
- lastSkill = "Farming";
- if (farmingXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) farmingXPGained += totalXP - farmingXP;
- }
- farmingXP = totalXP;
- break;
- case "Mining":
- lastSkill = "Mining";
- if (miningXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) miningXPGained += totalXP - miningXP;
- }
- miningXP = totalXP;
- break;
- case "Combat":
- lastSkill = "Combat";
- if (combatXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) combatXPGained += totalXP - combatXP;
- }
- combatXP = totalXP;
- break;
- case "Foraging":
- lastSkill = "Foraging";
- if (foragingXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) foragingXPGained += totalXP - foragingXP;
- }
- foragingXP = totalXP;
- break;
- case "Fishing":
- lastSkill = "Fishing";
- if (fishingXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) fishingXPGained += totalXP - fishingXP;
- }
- fishingXP = totalXP;
- break;
- case "Enchanting":
- lastSkill = "Enchanting";
- if (enchantingXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) enchantingXPGained += totalXP - enchantingXP;
- }
- enchantingXP = totalXP;
- break;
- case "Alchemy":
- lastSkill = "Alchemy";
- if (alchemyXP != 0) {
- if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended()) alchemyXPGained += totalXP - alchemyXP;
- }
- alchemyXP = totalXP;
- break;
- default:
- System.err.println("Unknown skill.");
- }
- }
-
- if (ToggleCommand.skill50DisplayToggled && !section.contains("Runecrafting")) {
- String xpGained = section.substring(section.indexOf("+"), section.indexOf("(") - 1);
- double currentXp = Double.parseDouble(section.substring(section.indexOf("(") + 1, section.indexOf("/")).replace(",", ""));
- int limit;
- int totalXp;
- if (section.contains("Farming") || section.contains("Enchanting")) {
- limit = 60;
- totalXp = 111672425;
- } else {
- limit = 50;
- totalXp = 55172425;
- }
- int previousXp = Utils.getPastXpEarned(Integer.parseInt(section.substring(section.indexOf("/") + 1, section.indexOf(")")).replaceAll(",", "")), limit);
- double percentage = Math.floor(((currentXp + previousXp) / totalXp) * 10000D) / 100D;
-
- NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
- skillTimer = SKILL_TIME;
- showSkill = true;
- skillText = SKILL_50_COLOUR + xpGained + " (" + nf.format(currentXp + previousXp) + "/" + nf.format(totalXp) + ") " + percentage + "%";
- }
- }
- }
- return;
- }
-
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+
+ if (message.startsWith("Your new API key is ") && Utils.isOnHypixel()) {
+ String apiKey = event.message.getSiblings().get(0).getChatStyle().getChatClickEvent().getValue();
+ ConfigHandler.writeStringConfig("api", "APIKey", apiKey);
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Set API key to " + DankersSkyblockMod.SECONDARY_COLOUR + apiKey));
+ }
+
+ if (!Utils.inSkyblock) return;
+
+ // Action Bar
+ if (event.type == 2) {
+ String[] actionBarSections = event.message.getUnformattedText().split(" {3,}");
+ for (String section : actionBarSections) {
+ if (section.contains("+") && section.contains("/") && section.contains("(")) {
+ if (!section.contains("Runecrafting") && !section.contains("Carpentry")) {
+ int limit = section.contains("Farming") || section.contains("Enchanting") ? 60 : 50;
+ double currentXP = Double.parseDouble(section.substring(section.indexOf("(") + 1, section.indexOf("/")).replace(",", ""));
+ int xpToLevelUp = Integer.parseInt(section.substring(section.indexOf("/") + 1, section.indexOf(")")).replaceAll(",", ""));
+ xpLeft = xpToLevelUp - currentXP;
+ int previousXP = Utils.getPastXpEarned(xpToLevelUp, limit);
+ double totalXP = currentXP + previousXP;
+ String skill = section.substring(section.indexOf(" ") + 1, section.lastIndexOf(" "));
+ switch (skill) {
+ case "Farming":
+ lastSkill = "Farming";
+ if (farmingXP != 0) {
+ if (skillStopwatch.isStarted() && !skillStopwatch.isSuspended())
+ farmingXPGained += totalXP - farmingXP;
+ }
+ farmingXP = totalXP;
+ break;
+ case "Mining":
+ lastSkill = "Mini