/Good-Mod

a good mod

Primary LanguageKotlinMIT LicenseMIT

good mod

a good mod

Contributors:

IMPORTANT VERSION 0.0.2-BETA INFORMATION This version does not use records of drops from Version 0.0.1-Beta. All future versions will also not support your drops during Version 0.0.1-Beta. This is due to swapping both the location and the formatting of the drops.json file, the file where your drops are stored. The location is moved from your config folder to the goodmod subdirectory, which ensures compatability with other mods, and the reformatting is due to a rewrite of the config file management system, which makes the code understandable instead of whatever ChatGPT-powered mess I had before.

IF YOU WANT TO RESTORE YOUR DUNGEON DROPS THAT WERE SAVED BY VERSION 0.0.1, then after installing version 0.0.2-Beta and opening the mod, please navigate to your config folder and open both the drops.json file in your config folder, and the drops.json file in the goodmod subdirectory of your config folder. I recommend opening these with Notepad, as I had various encoding issues that Notepad avoids. Specifically, using VSCode messed up the encoding of the files. If you intend on using VSCode, please switch the encoding to ISO 8859-1 BEFORE you save the file. I have absolutely no idea how to do this in Vim or any other text-editor/IDE.

I intend on in the future implementing an (optional) log-scanning function, which will retroactively cache all drops and runs you have saved in your Minecraft logs. Assuming you don't delete logs, this WILL include any drops cached by the 0.0.1-Beta version. So if you do not want to restore the drops manually, feel free to wait for this functionality to be implemented. I intend on working on this after fixing the known bugs and implementing different ways to view your stored dungeon loot.

Features

good mod offers two features I've wanted for a long time, but are not present in Skytils or SBE.
  1. Dungeon Drops Tracker

    SBE actually has this option, but it's extremely outdated and randomly resets itself sometimes. This solution has both a GUI and a chat command element. At some point I will make a good Croesus scanner too because honestly it's not hard.

  2. Hoppity Reminder (THIS FEATURE IS NOT YET AVAILABLE)

    I have lost way too many eggs due to being in a dungeon run and just forgetting about Hoppity. This solution creates an impossible to miss Hoppity alert, and also has the option to automatically send !dt Hoppity in chat.

In the future, I may implement anti-ironman dark auction alerts, so you can outbid any time an ironman player is winning in the dark auction.

Installation

good mod is a Forge mod, so if you don't already have Forge, download the latest 1.8.9 release here, and follow the installer's instructions. If you've never downloaded forge before, notice that the download button redirects you to an ad, and you have to wait 5 seconds (see top right corner) before you can proceed to download. ONLY click the button in the top right corner, or you could get a virus. After you install forge, find the 1.8.9-forge1.8.9-11.15.1.2318-1.8.9 version in your Minecraft launcher (you may have to go over to Installations and create a new one), and run it. After it loads, close your game. I still have to set up Minecraft on my laptop's Windows partition, so I may record a video of installing forge and post it here later.

Normal Install

Download the .jar file in the latest release. Locate your .minecraft folder. On windows, you can find this by opening File Explorer, and searching for %appdata%. On Linux, your .minecraft is probably located at ~/.minecraft. On MacOS, I have no idea. Once inside your .minecraft folder, find and open your mods folder. Now, open another File Explorer window and navigate to your Downloads folder. Locate the good mod .jar file, and drag it into your mods folder.

Wannabe Hacker Install

Alternatively if you're a fan of using the terminal, just copy one of these commands for your respective system:

Windows Powershell:

mv .\Downloads\goodmod-*.jar .\AppData\Roaming\.minecraft\mods

Linux:

mv Downloads/goodmod-*.jar .minecraft/mods

MacOS: lol idk

If you would like to compile from source, I have included instructions at the bottom of this page.

Usage

good mod is a mod for Hypixel SkyBlock, which provides two features that I was tired of waiting for Skytils or SBE to have, so I made them myself. The good mod configuration menu is accessible by running /nicepb. Incase of commands conflicting with other mods, any good mod command with default {command_name} can also be run via the alias /goodmod:{command_name}. For example, if another mod has /nicepb already set, you can open the configuration menu with /goodmod:nicepb.

Every command is configurable. This means if you don't like the command for the config menu being /nicepb, you can change it directly in the config menu. You cannot change the alias /goodmod:{command_name}, you can only change the command name itself. If at any time you forget the command names you've set, run /goodmod:commands to return a list of commands you can call. You can also manually edit the commands in the configuration file.

In the config menu, you will see three things: two input bars, and a bar called "stuff display".

alt text

The top input bar is where you can change the command alias for the /nicepb command. The bottom input bar is where you change the alias for the /owo command, who's functionality I will explain in a second. There are no other commands.

Clicking the "stuff display" button will display all of your dungeon drops in a "neat" display (i will improve it in the future dw).

alt text

If you want a chat readout of this, use the /owo command.

Known Bugs

If you see a bug, report it, and I'll add it here until I fix it!

  • The "stuff display" GUI: This display will likely break or have items cropped out if you do not play in fullscreen, or if you play in a resolution below 1080p. Additionally, you might find the display too small on some large monitors. Automatic scaling will be implemented in the future.
  • in the configuration menu, the blinking cursor will never go away on the top bar. While this does not affect functionality, it's very weird to have both cursors blinking. I have no idea how to fix this but I'll probably figure it out
  • Sometimes, loot just does not register. This appears to only occur when claiming loot after a dungeon run, but it does not happen every time. For now, please claim from Croesus, and report any instances of loot not logging.

Future Plans

I plan to do the following:

  • Fix bugs
  • Clean up the stuff display and make it look nicer
  • Implement toggleable options for the stuff display: either the current display, or display drops on each floor (like split up the recombs you drop per floor)
    • this will require making a new configuration file, so I will move both the drops.json and goodmod.json to their own folder in the config file when I do this, and will make sure to copy the drops.json file contents over if they exist. On the version I release this functionality, the copying mechanism will be run every startup, but in the following version this will be deprecated, and you will need to run a command ingame to copy it over.
  • Clean up the config files by shoving them into their own subdirectory of the config directory
  • finish the readme
  • implement an option to export dungeon drops to a nicely formatted image file you can share with your friends to flex
  • customizability of what items are sent on /owo
  • a toggleable gui element which tracks a list of items you can customize
  • tracking kismets per floor
  • Croesus chest highlights/profit calc based on lowest bin. I know this exist but all the mods suck, and mine will also tell you whether to use a dungeon key/reroll or not

Contributing

See the section on compiling from source for detailed instructions on how to compile the mod yourself.

If you want to contribute, feel free to make a pull request with your changes.

Also even the parts of my code that weren't intentionally screwed up are probably still bad, because I'm not a developer, I'm a random math & physics nerd who plays skyblock and I unironically used ChatGPT a lot to help me get started or for debugging. So improvements to the code would definitely be appreciated because I honestly don't know how.

Compiling from Source

If you want to modify the source code of the mod, or you just want to be edgy and cool, you will need to compile the mod directly from the source code.

Windows:

THIS SECTION IS NOT FINISHED ILL WRITE IT WHEN I WAKE UP OK

I've included some commentary on what everything is/what it does, since many people (like I used to be) are scared of the terminal and think they're going to break their operating system somehow. And I have no idea how else to build a mod. But I'm sure there's a way to do it inside of Intellij or whatever u use idk

The first step is to make sure we have the correct dependencies. You will need Git, Java JDK for versions 8 and 17, and gradle. For Git, you can open Powershell and run

winget install --id Git.Git -e --source winget

winget is (from what I understand) a "package manager" for PowerShell. You can think of it as a sort of "app store"; it downloads "packages", which are like apps, but oftentimes they provide additional functionality to a terminal like PowerShell. Here, we're downloading "Git", which allows us to work with various "git repositories", like github pages.

Linux:

I will not be explaining anything, because if you're on Linux I trust you to know most of this stuff already.

You will need Git, Java JDK for versions 8 and 17, and gradle.

Debian/Ubuntu

sudo apt install git openjdk-8-jdk openjdk-17-jdk gradle

Arch

sudo pacman -S git jdk8-openjdk jdk17-openjdk gradle

After this, clone the git repository to a folder of your choice:

git clone https://github.com/TheHolyChickn/goodmod
cd goodmod

Now, you just need to build the mod.

./gradlew build

You will be able to find the mod at ./build/libs/goodmod-VERSION.jar. For convenience, you can

mv build/libs/goodmod-*.jar ~/.minecraft/mods

MacOS:

lol idk

Licensing

MIT License

Copyright (c) 2024 The Holy Chicken

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.