From 4463c7fa78f886a8abc09e867dd17cde2a685ad4 Mon Sep 17 00:00:00 2001 From: Lorenz Date: Fri, 8 Jul 2022 16:12:55 +0200 Subject: code cleanup --- .../skyblockhud_2/ComponentHandler.java | 124 +++++ .../skyblockhud_2/DevModeConstants.java | 6 + .../thatgravyboat/skyblockhud_2/GuiTextures.java | 33 ++ .../skyblockhud_2/api/KillTracking.java | 61 +++ .../skyblockhud_2/api/LeaderboardGetter.java | 65 +++ .../api/events/LocationChangeEvent.java | 15 + .../api/events/ProfileJoinedEvent.java | 12 + .../api/events/ProfileSwitchedEvent.java | 12 + .../api/events/SidebarLineUpdateEvent.java | 22 + .../skyblockhud_2/api/events/SidebarPostEvent.java | 21 + .../api/events/SidebarPreGetEvent.java | 18 + .../api/events/SkyBlockEntityKilled.java | 18 + .../skyblockhud_2/api/item/IAbility.java | 7 + .../api/sbentities/EntityTypeHelper.java | 36 ++ .../api/sbentities/EntityTypeRegistry.java | 27 + .../api/sbentities/SkyBlockEntity.java | 27 + .../skyblockhud_2/commands/Commands.java | 88 +++ .../skyblockhud_2/commands/SimpleCommand.java | 60 ++ .../skyblockhud_2/commands/SimpleSubCommand.java | 61 +++ .../skyblockhud_2/config/KeyBindings.java | 8 + .../skyblockhud_2/config/SBHConfig.java | 456 ++++++++++++++++ .../skyblockhud_2/config/SBHConfigEditor.java | 602 +++++++++++++++++++++ .../skyblockhud_2/core/BackgroundBlur.java | 249 +++++++++ .../skyblockhud_2/core/ChromaColour.java | 93 ++++ .../skyblockhud_2/core/GlScissorStack.java | 86 +++ .../skyblockhud_2/core/GuiElement.java | 12 + .../skyblockhud_2/core/GuiElementBoolean.java | 118 ++++ .../skyblockhud_2/core/GuiElementColour.java | 370 +++++++++++++ .../skyblockhud_2/core/GuiElementTextField.java | 549 +++++++++++++++++++ .../core/GuiScreenElementWrapper.java | 34 ++ .../skyblockhud_2/core/config/Config.java | 6 + .../skyblockhud_2/core/config/KeybindHelper.java | 49 ++ .../skyblockhud_2/core/config/Position.java | 197 +++++++ .../core/config/annotations/Category.java | 14 + .../core/config/annotations/ConfigAccordionId.java | 12 + .../config/annotations/ConfigEditorAccordion.java | 12 + .../config/annotations/ConfigEditorBoolean.java | 11 + .../config/annotations/ConfigEditorButton.java | 14 + .../config/annotations/ConfigEditorColour.java | 11 + .../annotations/ConfigEditorDraggableList.java | 12 + .../config/annotations/ConfigEditorDropdown.java | 14 + .../config/annotations/ConfigEditorKeybind.java | 12 + .../config/annotations/ConfigEditorSlider.java | 16 + .../core/config/annotations/ConfigEditorStyle.java | 11 + .../core/config/annotations/ConfigEditorText.java | 11 + .../core/config/annotations/ConfigOption.java | 16 + .../core/config/gui/GuiOptionEditor.java | 62 +++ .../core/config/gui/GuiOptionEditorAccordion.java | 80 +++ .../core/config/gui/GuiOptionEditorBoolean.java | 37 ++ .../core/config/gui/GuiOptionEditorButton.java | 60 ++ .../core/config/gui/GuiOptionEditorColour.java | 74 +++ .../config/gui/GuiOptionEditorDraggableList.java | 268 +++++++++ .../core/config/gui/GuiOptionEditorDropdown.java | 145 +++++ .../core/config/gui/GuiOptionEditorKeybind.java | 88 +++ .../core/config/gui/GuiOptionEditorSlider.java | 136 +++++ .../core/config/gui/GuiOptionEditorStyle.java | 42 ++ .../core/config/gui/GuiOptionEditorText.java | 78 +++ .../core/config/gui/GuiPositionEditor.java | 171 ++++++ .../core/config/struct/ConfigProcessor.java | 166 ++++++ .../skyblockhud_2/core/util/GuiElementSlider.java | 120 ++++ .../skyblockhud_2/core/util/StringUtils.java | 8 + .../skyblockhud_2/core/util/lerp/LerpUtils.java | 25 + .../skyblockhud_2/core/util/lerp/LerpingFloat.java | 68 +++ .../core/util/lerp/LerpingInteger.java | 76 +++ .../core/util/render/RenderUtils.java | 155 ++++++ .../core/util/render/TextRenderUtils.java | 155 ++++++ .../skyblockhud_2/dungeons/Classes.java | 48 ++ .../skyblockhud_2/dungeons/DungeonHandler.java | 195 +++++++ .../skyblockhud_2/dungeons/DungeonPlayer.java | 32 ++ .../skyblockhud_2/handlers/BossbarHandler.java | 36 ++ .../skyblockhud_2/handlers/CooldownHandler.java | 121 +++++ .../skyblockhud_2/handlers/CrystalWaypoints.java | 196 +++++++ .../skyblockhud_2/handlers/CurrencyHandler.java | 86 +++ .../skyblockhud_2/handlers/HeldItemHandler.java | 31 ++ .../skyblockhud_2/handlers/MapHandler.java | 206 +++++++ .../skyblockhud_2/handlers/NpcDialogue.java | 131 +++++ .../skyblockhud_2/handlers/SlayerHandler.java | 130 +++++ .../skyblockhud_2/handlers/TimeHandler.java | 28 + .../skyblockhud_2/handlers/WarpHandler.java | 179 ++++++ .../handlers/mapicons/DwarvenIcons.java | 39 ++ .../skyblockhud_2/handlers/mapicons/HubIcons.java | 55 ++ .../skyblockhud_2/location/EndIslandHandler.java | 53 ++ .../skyblockhud_2/location/FarmHouseHandler.java | 41 ++ .../location/FarmingIslandHandler.java | 28 + .../skyblockhud_2/location/IslandHandler.java | 67 +++ .../skyblockhud_2/location/LocationCategory.java | 54 ++ .../skyblockhud_2/location/LocationHandler.java | 44 ++ .../skyblockhud_2/location/Locations.java | 161 ++++++ .../skyblockhud_2/location/MinesHandler.java | 192 +++++++ .../skyblockhud_2/location/ParkIslandHandler.java | 29 + .../skyblockhud_2/mixins/GuiChestAccessor.java | 12 + .../skyblockhud_2/mixins/MixinEntityArrow.java | 26 + .../skyblockhud_2/mixins/MixinGuiIngameForge.java | 113 ++++ .../skyblockhud_2/mixins/MixinItemStack.java | 42 ++ .../mixins/MixinNetHandlerPlayClient.java | 67 +++ .../skyblockhud_2/mixins/MixinRenderItem.java | 63 +++ .../skyblockhud_2/overlay/DungeonOverlay.java | 149 +++++ .../skyblockhud_2/overlay/GenericOverlays.java | 42 ++ .../skyblockhud_2/overlay/MiningHud.java | 76 +++ .../skyblockhud_2/overlay/OverlayHud.java | 331 +++++++++++ .../skyblockhud_2/overlay/RPGHud.java | 112 ++++ .../playerstats/ActionBarParsing.java | 152 ++++++ .../skyblockhud_2/seasons/Season.java | 53 ++ .../skyblockhud_2/seasons/SeasonDateHandler.java | 73 +++ .../skyblockhud_2/textures/TextureObject.java | 37 ++ .../skyblockhud_2/textures/Textures.java | 58 ++ .../skyblockhud_2/tracker/TrackerFileLoader.java | 136 +++++ .../skyblockhud_2/tracker/TrackerHandler.java | 108 ++++ .../skyblockhud_2/tracker/TrackerObject.java | 97 ++++ .../skyblockhud_2/utils/ComponentBuilder.java | 54 ++ .../skyblockhud_2/utils/SpecialColour.java | 93 ++++ .../thatgravyboat/skyblockhud_2/utils/Utils.java | 374 +++++++++++++ 112 files changed, 10172 insertions(+) create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/ComponentHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/DevModeConstants.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/GuiTextures.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/KillTracking.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/LeaderboardGetter.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/LocationChangeEvent.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileJoinedEvent.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileSwitchedEvent.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarLineUpdateEvent.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPostEvent.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPreGetEvent.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SkyBlockEntityKilled.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/item/IAbility.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeHelper.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeRegistry.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/SkyBlockEntity.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/commands/Commands.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleCommand.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleSubCommand.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/config/KeyBindings.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfig.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfigEditor.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/BackgroundBlur.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/ChromaColour.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GlScissorStack.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElement.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElementBoolean.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElementColour.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElementTextField.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiScreenElementWrapper.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/Config.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/KeybindHelper.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/Position.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/Category.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigAccordionId.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorAccordion.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorBoolean.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorButton.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorColour.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorDraggableList.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorDropdown.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorKeybind.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorSlider.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorStyle.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorText.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigOption.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditor.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorAccordion.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorBoolean.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorButton.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorColour.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorDraggableList.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorDropdown.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorKeybind.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorSlider.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorStyle.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorText.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiPositionEditor.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/struct/ConfigProcessor.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/GuiElementSlider.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/StringUtils.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/lerp/LerpUtils.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/lerp/LerpingFloat.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/lerp/LerpingInteger.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/render/RenderUtils.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/render/TextRenderUtils.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/dungeons/Classes.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/dungeons/DungeonHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/dungeons/DungeonPlayer.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/BossbarHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/CooldownHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/CrystalWaypoints.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/CurrencyHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/HeldItemHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/MapHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/NpcDialogue.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/SlayerHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/TimeHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/WarpHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/mapicons/DwarvenIcons.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/mapicons/HubIcons.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/EndIslandHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmHouseHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmingIslandHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/IslandHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationCategory.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/Locations.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/MinesHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/ParkIslandHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/GuiChestAccessor.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinEntityArrow.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinGuiIngameForge.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinItemStack.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinNetHandlerPlayClient.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinRenderItem.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/DungeonOverlay.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/GenericOverlays.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/MiningHud.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/OverlayHud.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/RPGHud.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/playerstats/ActionBarParsing.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/seasons/Season.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/seasons/SeasonDateHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/textures/TextureObject.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/textures/Textures.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/tracker/TrackerFileLoader.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/tracker/TrackerHandler.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/tracker/TrackerObject.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/utils/ComponentBuilder.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/utils/SpecialColour.java create mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/utils/Utils.java (limited to 'src/main/java/com/thatgravyboat/skyblockhud_2') diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/ComponentHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/ComponentHandler.java new file mode 100644 index 000000000..5677a7382 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/ComponentHandler.java @@ -0,0 +1,124 @@ +//package com.thatgravyboat.skyblockhud; +// +//import at.lorenz.mod.LorenzMod; +//import com.google.common.collect.ComparisonChain; +//import com.google.common.collect.Ordering; +//import com.thatgravyboat.skyblockhud.dungeons.DungeonHandler; +//import com.thatgravyboat.skyblockhud.location.*; +//import com.thatgravyboat.skyblockhud.seasons.SeasonDateHandler; +//import com.thatgravyboat.skyblockhud.utils.Utils; +//import java.util.Comparator; +//import java.util.List; +//import java.util.regex.Pattern; +//import net.minecraft.client.Minecraft; +//import net.minecraft.client.network.NetworkPlayerInfo; +//import net.minecraft.scoreboard.ScorePlayerTeam; +//import net.minecraft.world.WorldSettings; +//import net.minecraftforge.client.GuiIngameForge; +//import net.minecraftforge.client.event.ClientChatReceivedEvent; +//import net.minecraftforge.fml.common.eventhandler.EventPriority; +//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +//import net.minecraftforge.fml.common.gameevent.TickEvent; +//import net.minecraftforge.fml.relauncher.Side; +//import net.minecraftforge.fml.relauncher.SideOnly; +// +//public class ComponentHandler { +// +// public static final Pattern SCOREBOARD_CHARACTERS = Pattern.compile("[^]\\[a-z A-Z:0-9/'.()+\\d-ยง?]"); +// private static final Ordering sortingList = Ordering.from(new PlayerComparator()); +// private static int ticksExisted = 0; +// +// @SubscribeEvent +// public void onClientTick(TickEvent.ClientTickEvent event) { +// Minecraft mc = Minecraft.getMinecraft(); +// ticksExisted++; +// boolean eventPass = false; +// if (mc.theWorld != null) { +// List players = sortingList.sortedCopy(mc.thePlayer.sendQueue.getPlayerInfoMap()); +// GuiIngameForge.renderObjective = !LorenzMod.hasSkyblockScoreboard() || !LorenzMod.config.misc.hideScoreboard; +// if (players != null && LorenzMod.hasSkyblockScoreboard()) { +// if (ticksExisted % 60 == 0) { +// for (NetworkPlayerInfo player : players) { +// if (player.getDisplayName() != null) { +// String formattedTabListPlayer = SCOREBOARD_CHARACTERS.matcher(Utils.removeColor(player.getDisplayName().getFormattedText())).replaceAll(""); +// if (LocationHandler.getCurrentLocation().equals(Locations.CATACOMBS)) { +// if (formattedTabListPlayer.toLowerCase().contains("secrets found:")) DungeonHandler.parseTotalSecrets(formattedTabListPlayer); +// if (formattedTabListPlayer.toLowerCase().contains("deaths:")) DungeonHandler.parseDeaths(formattedTabListPlayer); +// if (formattedTabListPlayer.toLowerCase().contains("crypts:")) DungeonHandler.parseCrypts(formattedTabListPlayer); +// } else if (LocationHandler.getCurrentLocation().getCategory().isMiningCategory()) { +// if (formattedTabListPlayer.toLowerCase().contains("mithril powder:")) { +// MinesHandler.parseMithril(formattedTabListPlayer); +// } +// if (formattedTabListPlayer.toLowerCase().contains("gemstone powder:")) { +// MinesHandler.parseGemstone(formattedTabListPlayer); +// } +// } else if (LocationHandler.getCurrentLocation().getCategory().equals(LocationCategory.MUSHROOMDESERT)) { +// if (formattedTabListPlayer.toLowerCase().contains("pelts:")) { +// try { +// FarmingIslandHandler.pelts = Integer.parseInt(formattedTabListPlayer.toLowerCase().replace("pelts:", "").trim()); +// } catch (Exception ignored) {} +// } +// } +// } +// } +// if (players.size() > 80) { +// for (int i = 61; i <= 80; i++) { +// if (players.get(i).getDisplayName() != null) { +// String formattedTabListPlayer = SCOREBOARD_CHARACTERS.matcher(Utils.removeColor(players.get(i).getDisplayName().getFormattedText())).replaceAll(""); +// if (formattedTabListPlayer.toLowerCase().contains("event:")) { +// if (i < 80) { +// if (players.get(i + 1).getDisplayName() != null) { +// String secondLine = SCOREBOARD_CHARACTERS.matcher(Utils.removeColor(players.get(i + 1).getDisplayName().getFormattedText())).replaceAll(""); +// if (!formattedTabListPlayer.contains("N/A")) { +// SeasonDateHandler.setCurrentEvent(formattedTabListPlayer.replace("Event:", ""), secondLine); +// eventPass = true; +// } +// } +// } +// } +// } +// if (i == 80 && !eventPass) { +// SeasonDateHandler.setCurrentEvent("", ""); +// } +// } +// } +// } +// if (LocationHandler.getCurrentLocation().getCategory().equals(LocationCategory.PARK)) { +// if (players.size() >= 80) { +// for (int i = 41; i <= 60; i++) { +// if (players.get(i).getDisplayName() != null) { +// String formattedTabListPlayer = SCOREBOARD_CHARACTERS.matcher(Utils.removeColor(players.get(i).getDisplayName().getFormattedText())).replaceAll(""); +// if (LocationHandler.getCurrentLocation().getCategory().equals(LocationCategory.PARK)) { +// if (formattedTabListPlayer.toLowerCase().contains("rain:")) { +// ParkIslandHandler.parseRain(formattedTabListPlayer.toLowerCase()); +// } +// } +// } +// } +// } +// } else if (ParkIslandHandler.isRaining()) { +// ParkIslandHandler.parseRain(null); +// } +// } +// } +// } +// +// @SubscribeEvent(priority = EventPriority.HIGHEST) +// public void onStatusBar(ClientChatReceivedEvent event) { +// if (event.type == 2) { +// if (LocationHandler.getCurrentLocation().equals(Locations.CATACOMBS)) DungeonHandler.parseSecrets(event.message.getFormattedText()); +// } +// } +// +// @SideOnly(Side.CLIENT) +// static class PlayerComparator implements Comparator { +// +// private PlayerComparator() {} +// +// public int compare(NetworkPlayerInfo p_compare_1_, NetworkPlayerInfo p_compare_2_) { +// ScorePlayerTeam scoreplayerteam = p_compare_1_.getPlayerTeam(); +// ScorePlayerTeam scoreplayerteam1 = p_compare_2_.getPlayerTeam(); +// return ComparisonChain.start().compareTrueFirst(p_compare_1_.getGameType() != WorldSettings.GameType.SPECTATOR, p_compare_2_.getGameType() != WorldSettings.GameType.SPECTATOR).compare(scoreplayerteam != null ? scoreplayerteam.getRegisteredName() : "", scoreplayerteam1 != null ? scoreplayerteam1.getRegisteredName() : "").compare(p_compare_1_.getGameProfile().getName(), p_compare_2_.getGameProfile().getName()).result(); +// } +// } +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/DevModeConstants.java b/src/main/java/com/thatgravyboat/skyblockhud_2/DevModeConstants.java new file mode 100644 index 000000000..7f218384c --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/DevModeConstants.java @@ -0,0 +1,6 @@ +package com.thatgravyboat.skyblockhud_2; + +public class DevModeConstants { + + public static boolean mobDeathLogging = false; +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/GuiTextures.java b/src/main/java/com/thatgravyboat/skyblockhud_2/GuiTextures.java new file mode 100644 index 000000000..486c5f7c6 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/GuiTextures.java @@ -0,0 +1,33 @@ +package com.thatgravyboat.skyblockhud_2; + +import net.minecraft.util.ResourceLocation; + +public class GuiTextures { + + private GuiTextures() {} + + public static final ResourceLocation DISCORD = new ResourceLocation("skyblockhud:discord.png"); + public static final ResourceLocation TWITTER = new ResourceLocation("skyblockhud:twitter.png"); + + public static final ResourceLocation button_tex = new ResourceLocation("skyblockhud:button.png"); + + public static final ResourceLocation button_white = new ResourceLocation("skyblockhud:button_white.png"); + + public static final ResourceLocation BAR = new ResourceLocation("skyblockhud:core/bar.png"); + public static final ResourceLocation OFF = new ResourceLocation("skyblockhud:core/toggle_off.png"); + public static final ResourceLocation ONE = new ResourceLocation("skyblockhud:core/toggle_1.png"); + public static final ResourceLocation TWO = new ResourceLocation("skyblockhud:core/toggle_2.png"); + public static final ResourceLocation THREE = new ResourceLocation("skyblockhud:core/toggle_3.png"); + public static final ResourceLocation ON = new ResourceLocation("skyblockhud:core/toggle_on.png"); + public static final ResourceLocation DELETE = new ResourceLocation("skyblockhud:core/delete.png"); + + public static final ResourceLocation slider_off_cap = new ResourceLocation("skyblockhud:core/slider/slider_off_cap.png"); + public static final ResourceLocation slider_off_notch = new ResourceLocation("skyblockhud:core/slider/slider_off_notch.png"); + public static final ResourceLocation slider_off_segment = new ResourceLocation("skyblockhud:core/slider/slider_off_segment.png"); + public static final ResourceLocation slider_on_cap = new ResourceLocation("skyblockhud:core/slider/slider_on_cap.png"); + public static final ResourceLocation slider_on_notch = new ResourceLocation("skyblockhud:core/slider/slider_on_notch.png"); + public static final ResourceLocation slider_on_segment = new ResourceLocation("skyblockhud:core/slider/slider_on_segment.png"); + public static final ResourceLocation slider_button_new = new ResourceLocation("skyblockhud:core/slider/slider_button.png"); + + public static final ResourceLocation mapOverlay = new ResourceLocation("skyblockhud", "maps/map_overlay.png"); +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/KillTracking.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/KillTracking.java new file mode 100644 index 000000000..84882e1f4 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/KillTracking.java @@ -0,0 +1,61 @@ +//package com.thatgravyboat.skyblockhud.api; +// +//import com.thatgravyboat.skyblockhud.DevModeConstants; +//import com.thatgravyboat.skyblockhud.api.events.SkyBlockEntityKilled; +//import com.thatgravyboat.skyblockhud.api.sbentities.EntityTypeRegistry; +//import java.util.HashSet; +//import java.util.Set; +//import java.util.UUID; +//import net.minecraft.client.Minecraft; +//import net.minecraft.nbt.NBTTagCompound; +//import net.minecraft.util.DamageSource; +//import net.minecraftforge.common.MinecraftForge; +//import net.minecraftforge.event.entity.EntityJoinWorldEvent; +//import net.minecraftforge.event.entity.living.LivingDeathEvent; +//import net.minecraftforge.event.entity.player.AttackEntityEvent; +//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +// +//public class KillTracking { +// +// public static final Set attackedEntities = new HashSet<>(); +// +// @SubscribeEvent +// public void onAttack(AttackEntityEvent event) { +// if (event.target != null) { +// attackedEntities.add(event.target.getUniqueID()); +// } +// } +// +// @SubscribeEvent +// public void onDeath(LivingDeathEvent event) { +// if (DevModeConstants.mobDeathLogging) { +// //Used for testing +// System.out.println("----------------------------------------------------------------------------------------------------------------"); +// System.out.println("Name : " + event.entity.getName()); +// System.out.println("UUID : " + event.entity.getUniqueID()); +// NBTTagCompound compound = new NBTTagCompound(); +// event.entity.writeToNBT(compound); +// System.out.println("Tag : " + compound); +// System.out.println("Damage : " + getDamageSourceString(event.source)); +// System.out.println("SBH Entity ID: " + EntityTypeRegistry.getEntityId(event.entity)); +// System.out.println("----------------------------------------------------------------------------------------------------------------"); +// } +// if (attackedEntities.contains(event.entity.getUniqueID())) { +// if (EntityTypeRegistry.getEntityId(event.entity) != null) { +// MinecraftForge.EVENT_BUS.post(new SkyBlockEntityKilled(EntityTypeRegistry.getEntityId(event.entity), event.entity)); +// } +// attackedEntities.remove(event.entity.getUniqueID()); +// } +// } +// +// public static String getDamageSourceString(DamageSource source) { +// return ("{ " + source.getDamageType() + ", " + source.isDamageAbsolute() + ", " + source.isDifficultyScaled() + ", " + source.isFireDamage() + ", " + source.isProjectile() + ", " + source.isUnblockable() + ", " + source.isExplosion() + ", " + source.isMagicDamage() + ", " + source.isCreativePlayer() + ", " + source.getSourceOfDamage() + " }"); +// } +// +// @SubscribeEvent +// public void onWorldChange(EntityJoinWorldEvent event) { +// if (event.entity == Minecraft.getMinecraft().thePlayer) { +// attackedEntities.clear(); +// } +// } +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/LeaderboardGetter.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/LeaderboardGetter.java new file mode 100644 index 000000000..de485ef5e --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/LeaderboardGetter.java @@ -0,0 +1,65 @@ +//package com.thatgravyboat.skyblockhud.api; +// +//import static com.thatgravyboat.skyblockhud.ComponentHandler.SCOREBOARD_CHARACTERS; +// +//import at.lorenz.mod.LorenzMod; +//import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent; +//import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent; +//import com.thatgravyboat.skyblockhud.api.events.SidebarPreGetEvent; +//import com.thatgravyboat.skyblockhud.utils.Utils; +//import java.util.*; +//import java.util.stream.Collectors; +//import net.minecraft.client.Minecraft; +//import net.minecraft.scoreboard.Score; +//import net.minecraft.scoreboard.ScoreObjective; +//import net.minecraft.scoreboard.ScorePlayerTeam; +//import net.minecraft.scoreboard.Scoreboard; +//import net.minecraftforge.common.MinecraftForge; +//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +//import net.minecraftforge.fml.common.gameevent.TickEvent; +// +//public class LeaderboardGetter { +// +// private static Map cachedScores = new HashMap<>(); +// private static List cachedScoresList = new ArrayList<>(); +// +// private static int ticks = 0; +// +// public static List getCachedScores() { +// return cachedScoresList; +// } +// +// @SubscribeEvent +// public void onClientUpdate(TickEvent.ClientTickEvent event) { +// if (event.phase.equals(TickEvent.Phase.START)) return; +// ticks++; +// if (ticks % 5 != 0) return; +// +// Minecraft mc = Minecraft.getMinecraft(); +// if (mc.theWorld != null && LorenzMod.hasSkyblockScoreboard()) { +// Scoreboard scoreboard = mc.theWorld.getScoreboard(); +// ScoreObjective sidebarObjective = scoreboard.getObjectiveInDisplaySlot(1); +// +// if (sidebarObjective != null && !MinecraftForge.EVENT_BUS.post(new SidebarPreGetEvent(scoreboard, sidebarObjective))) { +// Collection scoreList = sidebarObjective.getScoreboard().getSortedScores(sidebarObjective); +// Map scores = scoreList.stream().collect(Collectors.toMap(Score::getScorePoints, this::getLine, (s1, s2) -> s1)); +// +// if (!cachedScores.equals(scores)) { +// scores.forEach((score, name) -> { +// if (cachedScores.get(score) == null || !cachedScores.get(score).equals(name)) { +// MinecraftForge.EVENT_BUS.post(new SidebarLineUpdateEvent(name, SCOREBOARD_CHARACTERS.matcher(name).replaceAll("").trim(), score, scores.size(), scoreboard, sidebarObjective)); +// } +// }); +// cachedScores = scores; +// cachedScoresList = scores.values().stream().map(name -> SCOREBOARD_CHARACTERS.matcher(name).replaceAll("").trim()).collect(Collectors.toList()); +// } +// MinecraftForge.EVENT_BUS.post(new SidebarPostEvent(scoreboard, sidebarObjective, cachedScoresList)); +// } +// } +// } +// +// public String getLine(Score score) { +// ScorePlayerTeam scorePlayerTeam = score.getScoreScoreboard().getPlayersTeam(score.getPlayerName()); +// return Utils.removeColor(ScorePlayerTeam.formatPlayerName(scorePlayerTeam, score.getPlayerName())); +// } +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/LocationChangeEvent.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/LocationChangeEvent.java new file mode 100644 index 000000000..560ad32e4 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/LocationChangeEvent.java @@ -0,0 +1,15 @@ +//package com.thatgravyboat.skyblockhud.api.events; +// +//import com.thatgravyboat.skyblockhud.location.Locations; +//import net.minecraftforge.fml.common.eventhandler.Event; +// +//public class LocationChangeEvent extends Event { +// +// public Locations oldLocation; +// public Locations newLocation; +// +// public LocationChangeEvent(Locations oldLocation, Locations newLocation) { +// this.oldLocation = oldLocation; +// this.newLocation = newLocation; +// } +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileJoinedEvent.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileJoinedEvent.java new file mode 100644 index 000000000..c1d51baf6 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileJoinedEvent.java @@ -0,0 +1,12 @@ +package com.thatgravyboat.skyblockhud_2.api.events; + +import net.minecraftforge.fml.common.eventhandler.Event; + +public class ProfileJoinedEvent extends Event { + + public String profile; + + public ProfileJoinedEvent(String profile) { + this.profile = profile; + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileSwitchedEvent.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileSwitchedEvent.java new file mode 100644 index 000000000..577821349 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileSwitchedEvent.java @@ -0,0 +1,12 @@ +package com.thatgravyboat.skyblockhud_2.api.events; + +import net.minecraftforge.fml.common.eventhandler.Event; + +public class ProfileSwitchedEvent extends Event { + + public String profile; + + public ProfileSwitchedEvent(String profile) { + this.profile = profile; + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarLineUpdateEvent.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarLineUpdateEvent.java new file mode 100644 index 000000000..c99684a79 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarLineUpdateEvent.java @@ -0,0 +1,22 @@ +package com.thatgravyboat.skyblockhud_2.api.events; + +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraft.scoreboard.Scoreboard; +import net.minecraftforge.fml.common.eventhandler.Event; + +public class SidebarLineUpdateEvent extends Event { + + public String rawLine; + public String formattedLine; + public int position; + public Scoreboard scoreboard; + public ScoreObjective objective; + + public SidebarLineUpdateEvent(String rawLine, String formattedLine, int score, int max, Scoreboard scoreboard, ScoreObjective objective) { + this.rawLine = rawLine; + this.formattedLine = formattedLine; + this.position = max - score; + this.scoreboard = scoreboard; + this.objective = objective; + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPostEvent.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPostEvent.java new file mode 100644 index 000000000..13bf5c1e8 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPostEvent.java @@ -0,0 +1,21 @@ +package com.thatgravyboat.skyblockhud_2.api.events; + +import java.util.List; +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraft.scoreboard.Scoreboard; +import net.minecraftforge.fml.common.eventhandler.Event; + +public class SidebarPostEvent extends Event { + + public Scoreboard scoreboard; + public ScoreObjective objective; + public List scores; + public String[] arrayScores; + + public SidebarPostEvent(Scoreboard scoreboard, ScoreObjective objective, List scores) { + this.scoreboard = scoreboard; + this.objective = objective; + this.scores = scores; + this.arrayScores = scores.toArray(new String[] {}); + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPreGetEvent.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPreGetEvent.java new file mode 100644 index 000000000..b94780acc --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPreGetEvent.java @@ -0,0 +1,18 @@ +package com.thatgravyboat.skyblockhud_2.api.events; + +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraft.scoreboard.Scoreboard; +import net.minecraftforge.fml.common.eventhandler.Cancelable; +import net.minecraftforge.fml.common.eventhandler.Event; + +@Cancelable +public class SidebarPreGetEvent extends Event { + + public Scoreboard scoreboard; + public ScoreObjective objective; + + public SidebarPreGetEvent(Scoreboard scoreboard, ScoreObjective objective) { + this.scoreboard = scoreboard; + this.objective = objective; + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SkyBlockEntityKilled.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SkyBlockEntityKilled.java new file mode 100644 index 000000000..7553c171d --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SkyBlockEntityKilled.java @@ -0,0 +1,18 @@ +package com.thatgravyboat.skyblockhud_2.api.events; + +import javax.annotation.Nullable; +import net.minecraft.entity.Entity; +import net.minecraftforge.fml.common.eventhandler.Event; + +public class SkyBlockEntityKilled extends Event { + + public String id; + + @Nullable + public Entity entity; + + public SkyBlockEntityKilled(String id, @Nullable Entity entity) { + this.id = id; + this.entity = entity; + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/item/IAbility.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/item/IAbility.java new file mode 100644 index 000000000..ab3954048 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/item/IAbility.java @@ -0,0 +1,7 @@ +package com.thatgravyboat.skyblockhud_2.api.item; + +public interface IAbility { + String getAbility(); + + int getAbilityTime(); +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeHelper.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeHelper.java new file mode 100644 index 000000000..2d8a17e4b --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeHelper.java @@ -0,0 +1,36 @@ +//package com.thatgravyboat.skyblockhud.api.sbentities; +// +//import com.thatgravyboat.skyblockhud.location.LocationHandler; +//import com.thatgravyboat.skyblockhud.location.Locations; +//import net.minecraft.entity.Entity; +//import net.minecraft.entity.monster.EntityEnderman; +//import net.minecraft.entity.monster.EntityZombie; +//import net.minecraft.init.Blocks; +//import net.minecraft.init.Items; +// +//public class EntityTypeHelper { +// +// public static boolean isZealot(Entity entity) { +// if (entity instanceof EntityEnderman) { +// EntityEnderman enderman = ((EntityEnderman) entity); +// double maxHealthBase = enderman.getAttributeMap().getAttributeInstanceByName("generic.maxHealth").getBaseValue(); +// if (maxHealthBase == 13000 || (maxHealthBase == 2000d && enderman.getHeldBlockState().getBlock().equals(Blocks.end_portal_frame))) { +// return LocationHandler.getCurrentLocation().equals(Locations.DRAGONSNEST); +// } +// } +// return false; +// } +// +// public static boolean isCrypt(Entity entity) { +// if (entity instanceof EntityZombie) { +// EntityZombie zombie = ((EntityZombie) entity); +// double maxHealthBase = zombie.getAttributeMap().getAttributeInstanceByName("generic.maxHealth").getBaseValue(); +// if (maxHealthBase != 2000d) return false; +// if (zombie.getEquipmentInSlot(0) == null || !zombie.getEquipmentInSlot(0).getItem().equals(Items.iron_sword)) return false; +// if (zombie.getEquipmentInSlot(1) == null || !zombie.getEquipmentInSlot(1).getItem().equals(Items.chainmail_boots)) return false; +// if (zombie.getEquipmentInSlot(2) == null || !zombie.getEquipmentInSlot(2).getItem().equals(Items.chainmail_leggings)) return false; +// return zombie.getEquipmentInSlot(3) != null && zombie.getEquipmentInSlot(3).getItem().equals(Items.chainmail_chestplate); +// } +// return false; +// } +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeRegistry.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeRegistry.java new file mode 100644 index 000000000..d507eecfd --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeRegistry.java @@ -0,0 +1,27 @@ +//package com.thatgravyboat.skyblockhud.api.sbentities; +// +//import com.google.common.collect.ImmutableList; +//import com.google.common.collect.Maps; +//import java.util.List; +//import java.util.Map; +//import net.minecraft.entity.Entity; +//import net.minecraft.entity.monster.EntityEnderman; +//import net.minecraft.entity.monster.EntityZombie; +// +//public class EntityTypeRegistry { +// +// private static final Map, List> entities = Maps.newHashMap(); +// +// static { +// entities.put(EntityEnderman.class, ImmutableList.of(SkyBlockEntity.of("ZEALOT", EntityTypeHelper::isZealot))); +// entities.put(EntityZombie.class, ImmutableList.of(SkyBlockEntity.of("CRYPT_GHOUL", EntityTypeHelper::isCrypt))); +// } +// +// public static String getEntityId(Entity entity) { +// if (!entities.containsKey(entity.getClass())) return null; +// for (SkyBlockEntity skyBlockEntity : entities.get(entity.getClass())) { +// if (skyBlockEntity.isEntity(entity)) return skyBlockEntity.getName(); +// } +// return null; +// } +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/SkyBlockEntity.java b/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/SkyBlockEntity.java new file mode 100644 index 000000000..24b30e712 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/SkyBlockEntity.java @@ -0,0 +1,27 @@ +package com.thatgravyboat.skyblockhud_2.api.sbentities; + +import java.util.function.Predicate; +import net.minecraft.entity.Entity; + +public class SkyBlockEntity { + + private final String name; + private final Predicate predicate; + + public static SkyBlockEntity of(String name, Predicate predicate) { + return new SkyBlockEntity(name, predicate); + } + + private SkyBlockEntity(String name, Predicate predicate) { + this.name = name; + this.predicate = predicate; + } + + public String getName() { + return name; + } + + public boolean isEntity(Entity entity) { + return predicate.test(entity); + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/commands/Commands.java b/src/main/java/com/thatgravyboat/skyblockhud_2/commands/Commands.java new file mode 100644 index 000000000..21bf4529f --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/commands/Commands.java @@ -0,0 +1,88 @@ +package com.thatgravyboat.skyblockhud_2.commands; + +import at.lorenz.mod.LorenzMod; +import com.thatgravyboat.skyblockhud_2.config.SBHConfigEditor; +import com.thatgravyboat.skyblockhud_2.core.GuiScreenElementWrapper; +//import com.thatgravyboat.skyblockhud.handlers.CrystalWaypoints; +import net.minecraft.command.ICommandSender; +import net.minecraftforge.client.ClientCommandHandler; +import org.apache.commons.lang3.StringUtils; + +public class Commands { + + private static final boolean devMode = false; + + private static final SimpleCommand.ProcessCommandRunnable settingsRunnable = new SimpleCommand.ProcessCommandRunnable() { + public void processCommand(ICommandSender sender, String[] args) { + if (args.length > 0) { + LorenzMod.screenToOpen = new GuiScreenElementWrapper(new SBHConfigEditor(LorenzMod.feature, StringUtils.join(args, " "))); + } else { + LorenzMod.screenToOpen = new GuiScreenElementWrapper(new SBHConfigEditor(LorenzMod.feature)); + } + } + }; + + // private static final SimpleSubCommand devCommand = new SimpleSubCommand("sbhdev", ImmutableSet.of("copyNpcSkin", "copyBossBar", "copyScoreboard", "copyActionBar", "mobDeathLogging")) { + // @Override + // void processSubCommand(ICommandSender sender, String subCommand, String[] args) { + // StringSelection clipboard = null; + // switch (subCommand) { + // case "copyBossBar": + // clipboard = new StringSelection(BossStatus.bossName); + // break; + // case "copyScoreboard": + // StringBuilder builder = new StringBuilder(); + // LeaderboardGetter.getCachedScores().forEach(s -> builder.append(s).append("\n")); + // clipboard = new StringSelection(builder.toString()); + // break; + // case "copyActionBar": + // clipboard = new StringSelection(ActionBarParsing.lastLowActionBar); + // break; + // case "copySkin": + // Entity entity = Minecraft.getMinecraft().objectMouseOver.entityHit; + // if (entity instanceof AbstractClientPlayer) { + // clipboard = new StringSelection("http://textures.minecraft.net/texture/" + ((AbstractClientPlayer) entity).getLocationSkin().getResourcePath().replace("skins/", "")); + // } else { + // sendSBHMessage(sender, "Not a player!"); + // } + // break; + // case "mobDeathLogging": + // DevModeConstants.mobDeathLogging = !DevModeConstants.mobDeathLogging; + // sendSBHMessage(sender, "Mob Death Logging " + (DevModeConstants.mobDeathLogging ? "Enabled!" : "Disabled!")); + // } + // if (clipboard != null) { + // Toolkit.getDefaultToolkit().getSystemClipboard().setContents(clipboard, clipboard); + // sendSBHMessage(sender, "Info copied to clipboard!"); + // } + // } + // + // @Override + // void processNoSubCommand(ICommandSender sender) { + // devMode = !devMode; + // sender.addChatMessage(new ChatComponentText("Dev Mode " + (devMode ? "Enabled!" : "Disabled!"))); + // } + // }; + + private static final SimpleCommand settingsCommand = new SimpleCommand("lm", settingsRunnable); + private static final SimpleCommand settingsCommand2 = new SimpleCommand("lorenzmod", settingsRunnable); + + // private static final SimpleCommand mapCommand = new SimpleCommand( + // "sbhmap", + // new SimpleCommand.ProcessCommandRunnable() { + // public void processCommand(ICommandSender sender, String[] args) { + // if (LocationHandler.getCurrentLocation().getCategory().getMap() != null && SkyblockHud.hasSkyblockScoreboard()) SkyblockHud.screenToOpen = new MapHandler.MapScreen(); + // } + // } + // ); + + public static void init() { + ClientCommandHandler.instance.registerCommand(settingsCommand); + ClientCommandHandler.instance.registerCommand(settingsCommand2); + // ClientCommandHandler.instance.registerCommand(mapCommand); + // ClientCommandHandler.instance.registerCommand(devCommand); +// ClientCommandHandler.instance.registerCommand(new CrystalWaypoints.WaypointCommand()); + } + // private static void sendSBHMessage(ICommandSender sender, String message) { + // sender.addChatMessage(new ChatComponentText("[" + EnumChatFormatting.RED + EnumChatFormatting.BOLD + "SkyBlockHud" + EnumChatFormatting.RESET + "] : " + EnumChatFormatting.GRAY + message)); + // } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleCommand.java b/src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleCommand.java new file mode 100644 index 000000000..851ea8c5c --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleCommand.java @@ -0,0 +1,60 @@ +package com.thatgravyboat.skyblockhud_2.commands; + +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; + +/** + @author Moulberry + **/ +public class SimpleCommand extends CommandBase { + + private final String commandName; + private final ProcessCommandRunnable runnable; + private TabCompleteRunnable tabRunnable; + + public SimpleCommand(String commandName, ProcessCommandRunnable runnable) { + this.commandName = commandName; + this.runnable = runnable; + } + + public SimpleCommand(String commandName, ProcessCommandRunnable runnable, TabCompleteRunnable tabRunnable) { + this.commandName = commandName; + this.runnable = runnable; + this.tabRunnable = tabRunnable; + } + + public abstract static class ProcessCommandRunnable { + + public abstract void processCommand(ICommandSender sender, String[] args); + } + + public abstract static class TabCompleteRunnable { + + public abstract List tabComplete(ICommandSender sender, String[] args, BlockPos pos); + } + + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + public String getCommandName() { + return commandName; + } + + public String getCommandUsage(ICommandSender sender) { + return "/" + commandName; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + runnable.processCommand(sender, args); + } + + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (tabRunnable != null) return tabRunnable.tabComplete(sender, args, pos); + return null; + } +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleSubCommand.java b/src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleSubCommand.java new file mode 100644 index 000000000..4869d6bc9 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleSubCommand.java @@ -0,0 +1,61 @@ +//package com.thatgravyboat.skyblockhud.commands; +// +//import java.util.List; +//import java.util.Set; +//import net.minecraft.command.CommandBase; +//import net.minecraft.command.ICommandSender; +//import net.minecraft.util.BlockPos; +//import org.apache.commons.lang3.ArrayUtils; +// +//public abstract class SimpleSubCommand extends CommandBase { +// +// private final String commandName; +// private final Set subCommands; +// +// public SimpleSubCommand(String commandName, Set subCommands) { +// this.commandName = commandName; +// this.subCommands = subCommands; +// } +// +// @Override +// public String getCommandName() { +// return commandName; +// } +// +// @Override +// public String getCommandUsage(ICommandSender sender) { +// return "/" + commandName; +// } +// +// @Override +// public void processCommand(ICommandSender sender, String[] args) { +// if (args.length == 0) { +// processNoSubCommand(sender); +// return; +// } +// if (subCommands.contains(args[0])) { +// processSubCommand(sender, args[0], ArrayUtils.remove(args, 0)); +// return; +// } +// processBadSubCommand(sender, args[0]); +// } +// +// @Override +// public boolean canCommandSenderUseCommand(ICommandSender sender) { +// return true; +// } +// +// @Override +// public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { +// if (args.length == 1) { +// return getListOfStringsMatchingLastWord(args, subCommands); +// } +// return null; +// } +// +// abstract void processSubCommand(ICommandSender sender, String subCommand, String[] args); +// +// abstract void processNoSubCommand(ICommandSender sender); +// +// public void processBadSubCommand(ICommandSender sender, String subCommand) {} +//} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/config/KeyBindings.java b/src/main/java/com/thatgravyboat/skyblockhud_2/config/KeyBindings.java new file mode 100644 index 000000000..0d2e5e5a3 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/config/KeyBindings.java @@ -0,0 +1,8 @@ +package com.thatgravyboat.skyblockhud_2.config; + +import net.minecraft.client.settings.KeyBinding; + +public class KeyBindings { + + public static KeyBinding map = new KeyBinding("Opens the big map.", 50, "SkyblockHud"); +} diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfig.java b/src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfig.java new file mode 100644 index 000000000..62cd406fc --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfig.java @@ -0,0 +1,456 @@ +//package com.thatgravyboat.skyblockhud.config; +// +//import com.google.gson.annotations.Expose; +//import at.lorenz.mod.LorenzMod; +//import com.thatgravyboat.skyblockhud.core.GuiScreenElementWrapper; +//import com.thatgravyboat.skyblockhud.core.config.Config; +//import com.thatgravyboat.skyblockhud.core.config.Position; +//import com.thatgravyboat.skyblockhud.core.config.annotations.*; +//import com.thatgravyboat.skyblockhud.core.config.gui.GuiPositionEditor; +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.List; +//import net.minecraft.client.Minecraft; +// +//public class SBHConfig extends Config { +// +// private void editOverlay(String activeConfig, int width, int height, Position position) { +// Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {}, () -> {}, () -> LorenzMod.screenToOpen = new GuiScreenElementWrapper(new SBHConfigEditor(LorenzMod.config, activeConfig)))); +// } +// +// public void executeRunnable(String runnableId) { +// // String activeConfigCategory = null; +// // if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) { +// // GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen; +// // if (wrapper.element instanceof SBHConfigEditor) { +// // activeConfigCategory = ((SBHConfigEditor) wrapper.element).getSelectedCategoryName(); +// // } +// // } +// // +// // switch (runnableId) { +// // case "rpg": +// // editOverlay(activeConfigCategory, 120, 47, rpg.rpgHudPosition); +// // return; +// // case "d1": +// // editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer1); +// // return; +// // case "d2": +// // editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer2); +// // return; +// // case "d3": +// // editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer3); +// // return; +// // case "d4": +// // editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer4); +// // return; +// // case "main": +// // editOverlay(activeConfigCategory, 1000, 34, main.mainHudPos); +// // return; +// // case "ultimate": +// // editOverlay(activeConfigCategory, 182, 5, dungeon.barPosition); +// // return; +// // case "map": +// // editOverlay(activeConfigCategory, 72, 72, map.miniMapPosition); +// // return; +// // case "tracker": +// // editOverlay(activeConfigCategory, 130, 70, trackers.trackerPosition); +// // return; +// // case "drill": +// // editOverlay(activeConfigCategory, 136, 7, mining.drillBar); +// // return; +// // case "heat": +// // editOverlay(activeConfigCategory, 45, 7, mining.heatBar); +// // return; +// // case "dialogue": +// // editOverlay(activeConfigCategory, 182, 68, misc.dialoguePos); +// // return; +// // } +// } +// +// @Expose +// @Category(name = "Lorenz Options", desc = "Just a test by lorenz.") +// public Lorenz lorenz = new Lorenz(); +// +// @Expose +// @Category(name = "Misc Options", desc = "Just a bunch of random options.") +// public Misc misc = new Misc(); +// +// @Expose +// @Category(name = "Main Hud", desc = "All Options for the main hud.") +// public MainHud main = new MainHud(); +// +// @Expose +// @Category(name = "RPG Hud", desc = "All Options for the RPG hud.") +// public RPGHud rpg = new RPGHud(); +// +// @Expose +// @Category(name = "Dungeon Hud", desc = "All Options for the Dungeon hud.") +// public DungeonHud dungeon = new DungeonHud(); +// +// @Expose +// @Category(name = "Renderer", desc = "All Options for rendering.") +// public Renderer renderer = new Renderer(); +// +// @Expose +// @Category(name = "Map", desc = "All Options for the Map.") +// public Map map = new Map(); +// +// @Expose +// @Category(name = "Mining", desc = "All Options for the Mining Stuff.") +// public Mining mining = new Mining(); +// +// // @Expose +// // @Category(name = "Tracker", desc = "All Options for the Trackers.") +// // public Trackers trackers = new Trackers(); +// +// public static class Lorenz { +// +// @Expose +// @ConfigOption(name = "Lorenz Small Test A", desc = "abc") +// @ConfigEditorBoolean +// public boolean test = false; +// +// @Expose +// @ConfigOption(name = "Lorenz Small Test B", desc = "abc") +// @ConfigEditorBoolean +// public boolean test2 = false; +// +// @Expose +// @ConfigOption(name = "Lorenz Small Test C", desc = "abc") +// @ConfigEditorBoolean +// public boolean test3 = false; +// } +// +// public static class Misc { +// +// @Expose +// @ConfigOption(name = "Hide Scoreboard", desc = "Hides the scoreboard when in Skyblock.") +// @ConfigEditorBoolean +// public boolean hideScoreboard = false; +// +// @Expose +// @ConfigOption(name = "Texture Styles", desc = "If this list only contains 1 thing that means your texture pack doesnt support styles") +// @ConfigEditorStyle +// public int style = 0; +// +// @Expose +// @ConfigOption(name = "Hide Dialogue Box", desc = "Hides the Dialogue Box.") +// @ConfigEditorBoolean +// public boolean hideDialogueBox = true; +// +// @Expose +// @ConfigOption(name = "Dialogue Box", desc = "") +// @ConfigEditorButton(runnableId = "dialogue", buttonText = "Edit") +// public Position dialoguePos =