diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1b0523..e2fa68a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,8 @@ +# Automatically build the project and run any configured tests for every push +# and submitted pull request. This can help catch issues that only occur on +# certain platforms or Java versions, and provides a first line of defence +# against bad commits. + name: build on: [pull_request, push] @@ -5,11 +10,12 @@ jobs: build: strategy: matrix: + # Use these Java versions java: [ - 21, # java version used since 1.20.5 + 17, # Current Java LTS & minimum supported by Minecraft ] - # only linux - os: [ubuntu-latest] + # and run on both Linux and Windows + os: [ubuntu-22.04, windows-2022] runs-on: ${{ matrix.os }} steps: - name: checkout repository @@ -22,10 +28,12 @@ jobs: java-version: ${{ matrix.java }} distribution: 'microsoft' - name: make gradle wrapper executable + if: ${{ runner.os != 'Windows' }} run: chmod +x ./gradlew - name: build run: ./gradlew build - name: capture build artifacts + if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS uses: actions/upload-artifact@v3 with: name: Artifacts diff --git a/README.md b/README.md index 1ad91ae..2146f3c 100644 --- a/README.md +++ b/README.md @@ -1,24 +1 @@ -# Moonlight Meadows Utility Mod for Modern versions of Minecraft - -Requires Fabric, Fabric API, and Minecraft 1.21 - -Default ClickGUI Key is Right Alt. - -Grab the latest release build [here](https://github.com/kawaiizenbo/MoonlightMeadows/releases) -Grab the latest nightly build [here](https://nightly.link/kawaiizenbo/MoonlightMeadows/workflows/build/main/Artifacts.zip) - -## Screenshots -![Title Screen](./readme-assets/title.png) -*Title Screen* - -![In-Game HUD](./readme-assets/ingame.png) -*In-Game HUD* - -![ClickGUI](./readme-assets/clickgui.png) -*ClickGUI* - - -## Disclaimer -Please use this mod at your own risk, we are not responsible for any serious injury or death caused by this mod. -Do not use while operating heavy machinery. -This project is not affiliated with Mojang or Microsoft. +# Moonlight Meadows Utility Mod for Minecraft 1.19.3 diff --git a/build.gradle b/build.gradle index 87ccbb0..ef0decd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,10 @@ plugins { - id 'fabric-loom' version '1.8-SNAPSHOT' + id 'fabric-loom' version '1.0-SNAPSHOT' id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_21 -targetCompatibility = JavaVersion.VERSION_21 +sourceCompatibility = JavaVersion.VERSION_17 +targetCompatibility = JavaVersion.VERSION_17 archivesBaseName = project.archives_base_name version = project.mod_version @@ -46,8 +46,8 @@ processResources { } tasks.withType(JavaCompile).configureEach { - // Minecraft 1.20.5 (24w14a) upwards uses Java 21. - it.options.release = 21 + // Minecraft 1.18 (1.18-pre2) upwards uses Java 17. + it.options.release = 17 } java { diff --git a/gradle.properties b/gradle.properties index c91a95b..64db257 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,14 +4,14 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop - minecraft_version=1.21.4 - yarn_mappings=1.21.4+build.8 - loader_version=0.16.10 + minecraft_version=1.19.3 + yarn_mappings=1.19.3+build.5 + loader_version=0.14.17 # Mod Properties - mod_version = 0.4.0 + mod_version = dev maven_group = me.kawaiizenbo archives_base_name = moonlight # Dependencies - fabric_version=0.115.0+1.21.4 + fabric_version=0.75.1+1.19.3 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd49..943f0cb 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b41..f398c33 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip networkTimeout=10000 -validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1aa94a4..65dcd68 100755 --- a/gradlew +++ b/gradlew @@ -83,8 +83,10 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -131,13 +133,10 @@ location of your Java installation." fi else JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." - fi fi # Increase the maximum file descriptors if we can. @@ -145,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -198,15 +197,11 @@ if "$cygwin" || "$msys" ; then done fi - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/readme-assets/clickgui-old.png b/readme-assets/clickgui-old.png deleted file mode 100644 index d377230..0000000 Binary files a/readme-assets/clickgui-old.png and /dev/null differ diff --git a/readme-assets/clickgui.png b/readme-assets/clickgui.png deleted file mode 100644 index beb240e..0000000 Binary files a/readme-assets/clickgui.png and /dev/null differ diff --git a/readme-assets/ingame-old.png b/readme-assets/ingame-old.png deleted file mode 100644 index a54558b..0000000 Binary files a/readme-assets/ingame-old.png and /dev/null differ diff --git a/readme-assets/ingame.png b/readme-assets/ingame.png deleted file mode 100644 index e752937..0000000 Binary files a/readme-assets/ingame.png and /dev/null differ diff --git a/readme-assets/title-old.png b/readme-assets/title-old.png deleted file mode 100644 index 80a29bc..0000000 Binary files a/readme-assets/title-old.png and /dev/null differ diff --git a/readme-assets/title.png b/readme-assets/title.png deleted file mode 100644 index b77ff6d..0000000 Binary files a/readme-assets/title.png and /dev/null differ diff --git a/src/main/java/me/kawaiizenbo/moonlight/Config.java b/src/main/java/me/kawaiizenbo/moonlight/Config.java deleted file mode 100644 index f2356cd..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/Config.java +++ /dev/null @@ -1,175 +0,0 @@ -package me.kawaiizenbo.moonlight; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.nio.file.Files; -import java.util.HashMap; -import java.util.Map; - -import com.google.gson.Gson; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.module.settings.IndexSetting; -import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; -import me.kawaiizenbo.moonlight.module.settings.Setting; -import me.kawaiizenbo.moonlight.module.settings.StringSetting; -import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; -import net.minecraft.client.MinecraftClient; - -public class Config -{ - MinecraftClient mc = MinecraftClient.getInstance(); - public File configDir = new File(mc.runDirectory.getPath() + "/moonlight"); - public File configFile = new File(configDir, "config.json"); - public Map config = new HashMap<>(); - protected static Gson gson = new Gson(); - - public Config() - { - configDir.mkdirs(); - } - - public boolean doesConfigExist() - { - return !Files.exists(configFile.toPath()); - } - - public void loadDefaultConfig() - { - ModuleManager.INSTANCE = new ModuleManager(); - config.put("theme", 2); - Map mi = new HashMap<>(); - for (Module m : ModuleManager.INSTANCE.modules) - { - Map mo = new HashMap<>(); - mo.put("enabled", m.enabled); - Map ms = new HashMap<>(); - for (Setting s : m.settings) - { - if (s instanceof BooleanSetting) - { - ms.put(s.name, ((BooleanSetting)s).value); - } - else if (s instanceof DoubleSetting) - { - ms.put(s.name, ((DoubleSetting)s).value); - } - else if (s instanceof StringSetting) - { - ms.put(s.name, ((StringSetting)s).value); - } - else if (s instanceof KeycodeSetting) - { - ms.put(s.name, ((KeycodeSetting)s).value); - } - else if (s instanceof IndexSetting) - { - ms.put(s.name, ((IndexSetting)s).index); - } - } - mo.put("settings", ms); - mi.put(m.name, mo); - } - config.put("modules", mi); - - HUDModuleManager.INSTANCE = new HUDModuleManager(); - Map hi = new HashMap<>(); - for (HUDModule h : HUDModuleManager.INSTANCE.modules) - { - Map ho = new HashMap<>(); - ho.put("enabled", h.enabled); - Map hs = new HashMap<>(); - for (Setting s : h.settings) - { - if (s instanceof BooleanSetting) - { - hs.put(s.name, ((BooleanSetting)s).value); - } - else if (s instanceof DoubleSetting) - { - hs.put(s.name, ((DoubleSetting)s).value); - } - else if (s instanceof StringSetting) - { - hs.put(s.name, ((StringSetting)s).value); - } - else if (s instanceof KeycodeSetting) - { - hs.put(s.name, ((KeycodeSetting)s).value); - } - else if (s instanceof IndexSetting) - { - hs.put(s.name, ((IndexSetting)s).index); - } - } - ho.put("settings", hs); - ho.put("x", h.x); - ho.put("y", h.y); - hi.put(h.name, ho); - } - config.put("hud", hi); - int xOffset = 4; - int yOffset = 4; - Map pi = new HashMap<>(); - for (Category category : Category.values()) - { - Map po = new HashMap<>(); - if (xOffset > 400) - { - xOffset = 4; - yOffset = 128; - } - po.put("x", xOffset); - po.put("y", yOffset); - po.put("collapsed", false); - pi.put(category.name, po); - xOffset += 100; - } - config.put("panes", pi); - ClickGUIScreen.INSTANCE = new ClickGUIScreen(); - } - - @SuppressWarnings("unchecked") - public void load() throws IOException - { - try - { - String configText = new String(Files.readAllBytes(configFile.toPath())); - config = (Map)gson.fromJson(configText, Map.class); - } - catch (Exception e) - { - throw new IOException("Failed to load config file."); - } - } - - public void save() - { - try - { - if (!doesConfigExist()) configFile.createNewFile(); - } - catch(Exception e) - { - e.printStackTrace(); - } - try - { - String configText = gson.toJson(config); - FileWriter writer = new FileWriter(configFile); - writer.write(configText); - writer.close(); - } - catch (Exception e) - { - e.printStackTrace(); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java index dfe4324..c36ff76 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java @@ -1,26 +1,9 @@ package me.kawaiizenbo.moonlight; import net.fabricmc.api.ModInitializer; - import org.slf4j.Logger; - -import java.util.HashMap; -import java.util.Map; import org.slf4j.LoggerFactory; -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.module.settings.IndexSetting; -import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; -import me.kawaiizenbo.moonlight.module.settings.Setting; -import me.kawaiizenbo.moonlight.module.settings.StringSetting; -import me.kawaiizenbo.moonlight.theme.Theme; -import me.kawaiizenbo.moonlight.ui.clickgui.CategoryPane; -import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; import me.kawaiizenbo.moonlight.util.ColorUtils; public class Moonlight implements ModInitializer @@ -28,177 +11,11 @@ public class Moonlight implements ModInitializer public static final Moonlight INSTANCE = new Moonlight(); public static final Logger LOGGER = LoggerFactory.getLogger("Moonlight"); public static final String clientTag = ColorUtils.aqua + "Moonlight Meadows"; - public static final String versionTag = ColorUtils.magenta + "v0.4.0"; - public static Theme THEME = Theme.DARK; - public static int THEME_IDX = 2; - public static Config CONFIG = new Config(); + public static final String versionTag = ColorUtils.magenta + "v0.dev"; @Override public void onInitialize() { LOGGER.info("Moonlight loading..."); - loadConfig(); - } - - @SuppressWarnings("unchecked") - public void loadConfig() - { - try - { - LOGGER.info("Loading config..."); - CONFIG.load(); - THEME_IDX = ((Double)CONFIG.config.get("theme")).intValue(); - THEME = Theme.THEME_LIST[THEME_IDX]; - for (Module m : ModuleManager.INSTANCE.modules) - { - m.enabled = (boolean)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("enabled"); - for (Setting s : m.settings) - { - if (s instanceof BooleanSetting) - { - ((BooleanSetting)s).value = (boolean)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof DoubleSetting) - { - ((DoubleSetting)s).value = (Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof StringSetting) - { - ((StringSetting)s).value = (String)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof KeycodeSetting) - { - ((KeycodeSetting)s).value = ((Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name)).intValue(); - } - else if (s instanceof IndexSetting) - { - ((IndexSetting)s).index = ((Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name)).intValue(); - } - } - } - for (HUDModule m : HUDModuleManager.INSTANCE.modules) - { - m.enabled = (boolean)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("enabled"); - m.x = ((Double)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("x")).intValue(); - m.y = ((Double)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("y")).intValue(); - for (Setting s : m.settings) - { - if (s instanceof BooleanSetting) - { - ((BooleanSetting)s).value = (boolean)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof DoubleSetting) - { - ((DoubleSetting)s).value = (Double)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof StringSetting) - { - ((StringSetting)s).value = (String)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name); - } - else if (s instanceof KeycodeSetting) - { - ((KeycodeSetting)s).value = ((Double)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name)).intValue(); - } - else if (s instanceof IndexSetting) - { - ((IndexSetting)s).index = ((Double)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name)).intValue(); - } - } - } - } - catch(Exception e) - { - LOGGER.warn("Config Error: " + e.getMessage()); - LOGGER.info("Loading default config..."); - CONFIG.loadDefaultConfig(); - CONFIG.save(); - } - } - - public void saveConfig() - { - LOGGER.info("Saving config..."); - CONFIG.config.put("theme", THEME_IDX); - Map mi = new HashMap<>(); - for (Module m : ModuleManager.INSTANCE.modules) - { - Map mo = new HashMap<>(); - mo.put("enabled", m.enabled); - Map ms = new HashMap<>(); - for (Setting s : m.settings) - { - if (s instanceof BooleanSetting) - { - ms.put(s.name, ((BooleanSetting)s).value); - } - else if (s instanceof DoubleSetting) - { - ms.put(s.name, ((DoubleSetting)s).value); - } - else if (s instanceof StringSetting) - { - ms.put(s.name, ((StringSetting)s).value); - } - else if (s instanceof KeycodeSetting) - { - ms.put(s.name, ((KeycodeSetting)s).value); - } - else if (s instanceof IndexSetting) - { - ms.put(s.name, ((IndexSetting)s).index); - } - } - mo.put("settings", ms); - mi.put(m.name, mo); - } - CONFIG.config.put("modules", mi); - - Map hi = new HashMap<>(); - for (HUDModule h : HUDModuleManager.INSTANCE.modules) - { - Map ho = new HashMap<>(); - ho.put("enabled", h.enabled); - Map hs = new HashMap<>(); - for (Setting s : h.settings) - { - if (s instanceof BooleanSetting) - { - hs.put(s.name, ((BooleanSetting)s).value); - } - else if (s instanceof DoubleSetting) - { - hs.put(s.name, ((DoubleSetting)s).value); - } - else if (s instanceof StringSetting) - { - hs.put(s.name, ((StringSetting)s).value); - } - else if (s instanceof KeycodeSetting) - { - hs.put(s.name, ((KeycodeSetting)s).value); - } - else if (s instanceof IndexSetting) - { - hs.put(s.name, ((IndexSetting)s).index); - } - } - ho.put("settings", hs); - ho.put("x", h.x); - ho.put("y", h.y); - hi.put(h.name, ho); - } - CONFIG.config.put("hud", hi); - - Map pi = new HashMap<>(); - for (CategoryPane c : ClickGUIScreen.INSTANCE.categoryPanes) - { - Map po = new HashMap<>(); - po.put("x", c.x); - po.put("y", c.y); - po.put("collapsed", c.collapsed); - pi.put(c.category.name, po); - } - CONFIG.config.put("panes", pi); - CONFIG.save(); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java b/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java index a790653..bec3fd0 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java @@ -29,8 +29,6 @@ public class CommandManager add(new Help()); add(new Toggle()); add(new Teleport()); - add(new Reset()); - add(new DeathPos()); commands.sort(Comparator.comparing(Command::getName)); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java b/src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java new file mode 100644 index 0000000..f33f589 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/command/ModuleArgumentType.java @@ -0,0 +1,63 @@ +package me.kawaiizenbo.moonlight.command; + +import java.util.Collection; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; +import com.mojang.brigadier.suggestion.Suggestions; +import com.mojang.brigadier.suggestion.SuggestionsBuilder; + +import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.ModuleManager; +import net.minecraft.command.CommandSource; +import net.minecraft.text.Text; + +public class ModuleArgumentType implements ArgumentType +{ + private static final Collection EXAMPLES = ModuleManager.INSTANCE.modules + .stream() + .limit(3) + .map(module -> module.name) + .collect(Collectors.toList()); + + private static final DynamicCommandExceptionType NO_SUCH_MODULE = new DynamicCommandExceptionType(o -> + Text.literal("Module with name " + o + " doesn't exist.")); + + public static ModuleArgumentType module() + { + return new ModuleArgumentType(); + } + + public static Module_ getModule(final CommandContext context, final String name) + { + return context.getArgument(name, Module_.class); + } + + @Override + public Module_ parse(StringReader reader) throws CommandSyntaxException + { + String argument = reader.readString(); + Module_ module = ModuleManager.INSTANCE.getModuleByName(argument); + + if (module == null) throw NO_SUCH_MODULE.create(argument); + + return module; + } + + @Override + public CompletableFuture listSuggestions(CommandContext context, SuggestionsBuilder builder) + { + return CommandSource.suggestMatching(ModuleManager.INSTANCE.modules.stream().map(module -> module.name), builder); + } + + @Override + public Collection getExamples() + { + return EXAMPLES; + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/DeathPos.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/DeathPos.java deleted file mode 100644 index 4b20903..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/command/commands/DeathPos.java +++ /dev/null @@ -1,43 +0,0 @@ -package me.kawaiizenbo.moonlight.command.commands; - -import com.mojang.brigadier.builder.LiteralArgumentBuilder; - -import me.kawaiizenbo.moonlight.command.Command; -import me.kawaiizenbo.moonlight.util.ChatUtils; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import net.minecraft.command.CommandSource; -import net.minecraft.util.math.GlobalPos; - -public class DeathPos extends Command -{ - public DeathPos() - { - super("deathpos", "Shows your last death position."); - } - - @Override - public void build(LiteralArgumentBuilder builder) - { - builder.executes(context -> - { - GlobalPos pos = null; - try - { - pos = mc.player.getLastDeathPos().get(); - if (pos == null) throw new Exception(); - } - catch (Exception e) - { - ChatUtils.sendMsg(ColorUtils.reset + "You have not died in this world."); - return SINGLE_SUCCESS; - } - - ChatUtils.sendMsg(ColorUtils.reset + "You last died at: " + - ColorUtils.aqua + " X: " + ColorUtils.gray + pos.pos().getX() + - ColorUtils.aqua + " Y: " + ColorUtils.gray + pos.pos().getY() + - ColorUtils.aqua + " Z: " + ColorUtils.gray + pos.pos().getZ() - ); - return SINGLE_SUCCESS; - }); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Help.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Help.java index c1601fa..d4ccae3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Help.java +++ b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Help.java @@ -14,19 +14,19 @@ public class Help extends Command { super("help", "Gives you a list of all of the commands"); } - + @Override public void build(LiteralArgumentBuilder builder) { builder.executes(context -> { - for (Command cmd : CommandManager.get().getAll()) - { + for (Command cmd : CommandManager.get().getAll()) { ChatUtils.sendMsg(ColorUtils.aqua + "Command: " + ColorUtils.gray + cmd.getName()); ChatUtils.sendMsg(ColorUtils.gray + cmd.getDescription()); - ChatUtils.sendMsg(ColorUtils.gray + ""); } return SINGLE_SUCCESS; - }); + }); + } + } diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Reset.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Reset.java deleted file mode 100644 index ee713f9..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Reset.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.kawaiizenbo.moonlight.command.commands; - -import com.mojang.brigadier.builder.LiteralArgumentBuilder; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.command.Command; -import net.minecraft.command.CommandSource; - -public class Reset extends Command -{ - public Reset() - { - super("reset", "Resets all config options."); - } - - @Override - public void build(LiteralArgumentBuilder builder) - { - builder.executes(context -> - { - Moonlight.CONFIG.loadDefaultConfig(); - return SINGLE_SUCCESS; - }); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java index 7153f76..b289f99 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java +++ b/src/main/java/me/kawaiizenbo/moonlight/command/commands/Toggle.java @@ -1,12 +1,11 @@ package me.kawaiizenbo.moonlight.command.commands; -import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import me.kawaiizenbo.moonlight.command.Command; -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module; -import net.minecraft.client.MinecraftClient; +import me.kawaiizenbo.moonlight.command.ModuleArgumentType; +import me.kawaiizenbo.moonlight.module.Module_; +import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.command.CommandSource; public class Toggle extends Command @@ -14,18 +13,19 @@ public class Toggle extends Command public Toggle() { - super("toggle", "Toggle a module on or off."); + super("toggle", "Toggle a module."); } @Override public void build(LiteralArgumentBuilder builder) { - builder.then(argument("module", StringArgumentType.string()) - .executes(context -> + builder.then(argument("module", new ModuleArgumentType()).executes(context -> { - String m = context.getArgument("module", String.class); - Module module = ModuleManager.INSTANCE.getModuleByName(m); - MinecraftClient.getInstance().send(() -> module.toggle()); + ClientPlayerEntity player = mc.player; + assert player != null; + + Module_ m = context.getArgument("module", Module_.class); + m.toggle(); return SINGLE_SUCCESS; })); diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java index 8fd8e88..b3aa1af 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java @@ -10,15 +10,16 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import me.kawaiizenbo.moonlight.command.CommandManager; import me.kawaiizenbo.moonlight.util.ChatUtils; import net.minecraft.network.ClientConnection; -import net.minecraft.network.packet.Packet; +import net.minecraft.network.Packet; import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket; @Mixin(ClientConnection.class) public class ClientConnectionMixin { - @Inject(method = "send(Lnet/minecraft/network/packet/Packet;)V", at = @At("HEAD"), cancellable = true) + @Inject(method = "send(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true) public void send(Packet packet, CallbackInfo ci) { + // Call commands if the prefix is sent if(packet instanceof ChatMessageC2SPacket && ((ChatMessageC2SPacket) packet).chatMessage().startsWith(CommandManager.get().getPrefix())) { try diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java deleted file mode 100644 index a87e8c7..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java +++ /dev/null @@ -1,45 +0,0 @@ -package me.kawaiizenbo.moonlight.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.entity.MovementType; -import net.minecraft.util.math.Vec3d; - -@Mixin(ClientPlayerEntity.class) -public class ClientPlayerEntityMixin -{ - @Inject(method = "move", at = @At(value = "TAIL"), cancellable = true) - public void onMove(MovementType type, Vec3d movement, CallbackInfo ci) - { - for (Module m : ModuleManager.INSTANCE.getEnabledModules()) - { - m.onMotion(type, movement); - } - } - - @SuppressWarnings("resource") - @Inject(method = "tick", at = @At(value = "HEAD"), cancellable = true) - public void onTick(CallbackInfo ci) - { - for (Module m : ModuleManager.INSTANCE.getEnabledModules()) - { - if (MinecraftClient.getInstance().player != null) m.tick(); - } - } - - @Inject(method = "init", at = @At(value = "TAIL"), cancellable = true) - public void onInit(CallbackInfo ci) - { - for (Module m : ModuleManager.INSTANCE.getEnabledModules()) - { - m.onEnable(); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/InGameHudMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/InGameHudMixin.java index 84c006f..58a0b75 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/InGameHudMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/InGameHudMixin.java @@ -1,32 +1,26 @@ package me.kawaiizenbo.moonlight.mixin; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.modules.HUDEnabler; -import me.kawaiizenbo.moonlight.ui.LegacyHUD; -import me.kawaiizenbo.moonlight.ui.ModulesListOverlay; -import me.kawaiizenbo.moonlight.ui.hud.HUDRenderer; -import net.minecraft.client.gui.DrawContext; +import me.kawaiizenbo.moonlight.ui.HUD; import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.render.RenderTickCounter; +import net.minecraft.client.util.math.MatrixStack; @Mixin(InGameHud.class) public class InGameHudMixin { + + @Shadow private int scaledWidth; + @Shadow private int scaledHeight; @Inject(at = @At("TAIL"), method = "render") - public void onRender (DrawContext drawContext, RenderTickCounter tickCounter, CallbackInfo info) + public void onRender (MatrixStack matrices, float tickDelta, CallbackInfo info) { - HUDEnabler hudModule = (HUDEnabler)ModuleManager.INSTANCE.getModuleByName("HUD"); - if (hudModule.enabled) - { - if (hudModule.mode.index == 1) LegacyHUD.INSTANCE.render(drawContext, drawContext.getScaledWindowWidth(), drawContext.getScaledWindowHeight()); - else HUDRenderer.INSTANCE.render(drawContext); - } - if (ModuleManager.INSTANCE.getModuleByName("ModulesList").enabled) ModulesListOverlay.INSTANCE.render(drawContext, drawContext.getScaledWindowWidth(), drawContext.getScaledWindowHeight()); + if (ModuleManager.INSTANCE.getModuleByName("HUD").enabled) HUD.INSTANCE.renderHUD(matrices, scaledWidth, scaledHeight); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java index 079b1f5..3773df0 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/KeyboardMixin.java @@ -8,27 +8,16 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.ModuleManager; import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; import net.minecraft.client.Keyboard; import net.minecraft.client.MinecraftClient; @Mixin(Keyboard.class) -public abstract class KeyboardMixin -{ +public abstract class KeyboardMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "onKey", at = @At("HEAD"), cancellable = true) - public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info) - { - if (key == GLFW.GLFW_KEY_RIGHT_ALT) MinecraftClient.getInstance().setScreen(ClickGUIScreen.INSTANCE); - for (Module m : ModuleManager.INSTANCE.modules) - { - if (key == m.keybind.value && action == GLFW.GLFW_PRESS && MinecraftClient.getInstance().currentScreen == null) - { - m.toggle(); - } - } + public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info) { + if (key == GLFW.GLFW_KEY_RIGHT_SHIFT) MinecraftClient.getInstance().setScreen(ClickGUIScreen.INSTANCE); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/LivingEntityMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/LivingEntityMixin.java new file mode 100644 index 0000000..45bf020 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/LivingEntityMixin.java @@ -0,0 +1,25 @@ +package me.kawaiizenbo.moonlight.mixin; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.entity.LivingEntity; + +import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.ModuleManager; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntity.class) +public class LivingEntityMixin +{ + @Inject(at = @At("HEAD"), method = "tick()V") + private void init(CallbackInfo info) + { + for (Module_ mod : ModuleManager.INSTANCE.getEnabledModules()) + { + if (MinecraftClient.getInstance().player != null) mod.tick(); + } + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/MinecraftClientMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/MinecraftClientMixin.java deleted file mode 100644 index b9f6a6b..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/MinecraftClientMixin.java +++ /dev/null @@ -1,18 +0,0 @@ -package me.kawaiizenbo.moonlight.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.At; - -import me.kawaiizenbo.moonlight.Moonlight; -import net.minecraft.client.MinecraftClient; - -@Mixin(MinecraftClient.class) -public class MinecraftClientMixin -{ - @Inject(at = @At("TAIL"), method = "scheduleStop") - public void onShutdown(CallbackInfo ci) { - Moonlight.INSTANCE.saveConfig(); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/MultiplayerScreenMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/MultiplayerScreenMixin.java new file mode 100644 index 0000000..668ebf0 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/MultiplayerScreenMixin.java @@ -0,0 +1,36 @@ +package me.kawaiizenbo.moonlight.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import me.kawaiizenbo.moonlight.ui.altmanager.AltManagerScreen; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.text.Text; + +@Mixin(MultiplayerScreen.class) +public class MultiplayerScreenMixin extends Screen +{ + protected MultiplayerScreenMixin(Text title) + { + super(title); + } + + @Inject(at = @At("TAIL"), method = "init") + private void altManagerButton(CallbackInfo callbackInfo) + { + this.addDrawableChild(ButtonWidget.builder(Text.literal("Alt Manager"), this::gotoAltManagerScreen) + .position(this.width - 102, 2) + .size(100, 20) + .build()); + } + + private void gotoAltManagerScreen(ButtonWidget button) + { + MinecraftClient.getInstance().setScreen(AltManagerScreen.INSTANCE); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/PowderSnowBlockMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/PowderSnowBlockMixin.java deleted file mode 100644 index cf45529..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/PowderSnowBlockMixin.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.kawaiizenbo.moonlight.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import me.kawaiizenbo.moonlight.module.ModuleManager; -import net.minecraft.block.PowderSnowBlock; -import net.minecraft.entity.Entity; - -@Mixin(PowderSnowBlock.class) -public class PowderSnowBlockMixin -{ - - @Inject(at = @At("HEAD"), method = "canWalkOnPowderSnow", cancellable = true) - private static void canWalkOnPowderSnow(Entity entity, CallbackInfoReturnable cir) - { - if (ModuleManager.INSTANCE.getModuleByName("Anti Powder Snow").enabled) cir.setReturnValue(true); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/SimpleOptionMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/SimpleOptionMixin.java deleted file mode 100644 index 5ff254b..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/SimpleOptionMixin.java +++ /dev/null @@ -1,34 +0,0 @@ -package me.kawaiizenbo.moonlight.mixin; - -import java.util.Objects; -import java.util.function.Consumer; - -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import me.kawaiizenbo.moonlight.util.ISimpleOption; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.option.SimpleOption; - -@Mixin(SimpleOption.class) -public class SimpleOptionMixin implements ISimpleOption -{ - @Shadow T value; - @Shadow @Final private Consumer changeCallback; - - @Override - public void setValueUnrestricted(T object) - { - if (!MinecraftClient.getInstance().isRunning()) - { - this.value = object; - return; - } - if (!Objects.equals(this.value, object)) - { - this.value = object; - this.changeCallback.accept(this.value); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java index d1bb458..20d8c0e 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/TitleScreenMixin.java @@ -1,6 +1,7 @@ package me.kawaiizenbo.moonlight.mixin; import me.kawaiizenbo.moonlight.Moonlight; +import me.kawaiizenbo.moonlight.ui.altmanager.AltManagerScreen; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -9,9 +10,13 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; import net.minecraft.util.Util; import net.minecraft.util.math.MathHelper; @@ -32,12 +37,26 @@ public abstract class TitleScreenMixin extends Screen } @Inject(at = @At("TAIL"), method = "render") - private void clientTag(DrawContext drawContext, int mouseX, int mouseY, float delta, CallbackInfo info) + private void clientTag(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo info) { float f = this.doBackgroundFade ? (Util.getMeasuringTimeMs() - this.backgroundFadeStart) / 1000.0F : 1.0F; float g = this.doBackgroundFade ? MathHelper.clamp(f - 1.0F, 0.0F, 1.0F) : 1.0F; int l = MathHelper.ceil(g * 255.0F) << 24; - drawContext.drawTextWithShadow(this.textRenderer, Moonlight.clientTag + " " + Moonlight.versionTag, 2, 2, 16777215 | l); + DrawableHelper.drawStringWithShadow(matrices, this.textRenderer, Moonlight.clientTag + " " + Moonlight.versionTag, 2, 2, 16777215 | l); + } + + @Inject(at = @At("TAIL"), method = "init") + private void altManagerButton(CallbackInfo callbackInfo) + { + this.addDrawableChild(ButtonWidget.builder(Text.literal("Alt Manager"), this::gotoAltManagerScreen) + .position(this.width - 102, 2) + .size(100, 20) + .build()); + } + + private void gotoAltManagerScreen(ButtonWidget button) + { + MinecraftClient.getInstance().setScreen(AltManagerScreen.INSTANCE); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/Category.java b/src/main/java/me/kawaiizenbo/moonlight/module/Category.java index ad4ad63..6e6ec7f 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/Category.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/Category.java @@ -2,20 +2,17 @@ package me.kawaiizenbo.moonlight.module; public enum Category { - COMBAT("Combat", 0xFFFF5555), - MOVEMENT("Movement", 0xFFFF55FF), - RENDER("Render", 0xFF5555FF), - WORLD("World", 0xFF55FF55), - PLAYER("Player", 0xFF00AAAA), - CHAT("Chat", 0xFFFFAA00), - SPECIAL("Special", 0xFFFFFFFF); + COMBAT("Combat"), + MOVEMENT("Movement"), + RENDER("Render"), + WORLD("World"), + PLAYER("Player"), + CHAT("Chat"); public String name; - public int color; - Category(String name, int color) + Category(String name) { this.name = name; - this.color = color; } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/Module.java b/src/main/java/me/kawaiizenbo/moonlight/module/Module.java deleted file mode 100644 index 371ad6d..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/Module.java +++ /dev/null @@ -1,70 +0,0 @@ -package me.kawaiizenbo.moonlight.module; - -import java.util.ArrayList; - -import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; -import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; -import me.kawaiizenbo.moonlight.module.settings.Setting; -import me.kawaiizenbo.moonlight.ui.ModulesListOverlay; -import net.minecraft.client.MinecraftClient; -import net.minecraft.entity.MovementType; -import net.minecraft.util.math.Vec3d; - -public abstract class Module -{ - protected static MinecraftClient mc = MinecraftClient.getInstance(); - public String name; - public String description; - public Category category; - public boolean enabled; - public ArrayList settings; - public boolean showEditButton; - - public BooleanSetting showInModulesList = new BooleanSetting("Show in Modules List", true); - public KeycodeSetting keybind = new KeycodeSetting("Keybind", 0); - - public Module(String name, String description, Category category) - { - this.name = name; - this.description = description; - this.category = category; - settings = new ArrayList<>(); - settings.add(showInModulesList); - settings.add(keybind); - } - - public void onEnable() { ModulesListOverlay.INSTANCE.update(); } - public void onDisable() { ModulesListOverlay.INSTANCE.update(); } - public void onMotion(MovementType type, Vec3d movement) {} - public void tick() {} - - public void toggle() - { - enabled = !enabled; - if(enabled) { - onEnable(); - } else { - onDisable(); - } - } - - public Setting getSettingByName(String settingName) - { - for(Setting setting : settings) - { - if ((setting.name.trim().equalsIgnoreCase(settingName))) - { - return setting; - } - } - return null; - } - - protected void addSettings(Setting... settings) - { - for(Setting setting : settings) - { - this.settings.add(setting); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java index 070c027..13b2da4 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java @@ -7,39 +7,34 @@ import me.kawaiizenbo.moonlight.module.modules.*; public class ModuleManager { public static ModuleManager INSTANCE = new ModuleManager(); - public ArrayList modules = new ArrayList<>(); + public ArrayList modules = new ArrayList<>(); public ModuleManager() { registerModules( new Fly(), new NoFall(), - new HUDEnabler(), + new HUDModule(), new Step(), - new Fullbright(), - new Speed(), - new ModulesList(), - new ChatSpammer(), - new Rotation(), - new AutoJump(), - new Reach(), - new AntiPowderSnow(), - new AutoTotem(), - new AutoWalk() - /*new Timer()*/ + new Fullbright() ); } - - private void registerModules(Module... modules) + + public void registerModule(Module_ module) { - for (Module module : modules) { + modules.add(module); + } + + public void registerModules(Module_... modules) + { + for (Module_ module : modules) { this.modules.add(module); } } - public Module getModuleByName(String moduleName) + public Module_ getModuleByName(String moduleName) { - for(Module module : modules) + for(Module_ module : modules) { if ((module.name.trim().equalsIgnoreCase(moduleName))) { @@ -49,10 +44,10 @@ public class ModuleManager return null; } - public ArrayList getModulesByCategory(Category category) + public ArrayList getModulesByCategory(Category category) { - ArrayList returnedModules = new ArrayList<>(); - for(Module module : modules) + ArrayList returnedModules = new ArrayList<>(); + for(Module_ module : modules) { if (module.category == category) { @@ -62,10 +57,10 @@ public class ModuleManager return returnedModules; } - public ArrayList getEnabledModules() + public ArrayList getEnabledModules() { - ArrayList enabledModules = new ArrayList<>(); - for (Module module : modules) + ArrayList enabledModules = new ArrayList<>(); + for (Module_ module : modules) { if (!module.enabled) continue; diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/Module_.java b/src/main/java/me/kawaiizenbo/moonlight/module/Module_.java new file mode 100644 index 0000000..41fd06a --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/Module_.java @@ -0,0 +1,39 @@ +package me.kawaiizenbo.moonlight.module; + +import java.util.ArrayList; + +import me.kawaiizenbo.moonlight.module.settings.Setting; +import net.minecraft.client.MinecraftClient; + +public abstract class Module_ +{ + protected static MinecraftClient mc = MinecraftClient.getInstance(); + public String name; + public String description; + public Category category; + public boolean enabled; + public ArrayList settings; + public int keyBind; + + public Module_(String name, String description, Category category) + { + this.name = name; + this.description = description; + this.category = category; + settings = new ArrayList<>(); + } + + public void onEnable() {} + public void onDisable() {} + public void tick() {} + + public void toggle() + { + enabled = !enabled; + if(enabled) { + onEnable(); + } else { + onDisable(); + } + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AntiPowderSnow.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/AntiPowderSnow.java deleted file mode 100644 index fdc21b4..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AntiPowderSnow.java +++ /dev/null @@ -1,12 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; - -public class AntiPowderSnow extends Module -{ - public AntiPowderSnow() - { - super("Anti Powder Snow", "Allows the player to walk on powder snow.", Category.PLAYER); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoJump.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoJump.java deleted file mode 100644 index e2b187d..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoJump.java +++ /dev/null @@ -1,27 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.util.Timer; - -public class AutoJump extends Module -{ - public DoubleSetting delay = new DoubleSetting("Delay (Seconds)", 1, 0.1, 10, 1); - private Timer timer = new Timer(); - - public AutoJump() - { - super("Auto Jump", "Automatically jumps on a timer.", Category.MOVEMENT); - settings.add(delay); - } - - @Override - public void tick() - { - if (timer.hasTimeElapsed((long)delay.value * 1000, true) && mc.player.isOnGround() && mc.player.hasVehicle() == false) - { - mc.player.jump(); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoTotem.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoTotem.java deleted file mode 100644 index 019e00c..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoTotem.java +++ /dev/null @@ -1,36 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; -import net.minecraft.item.Items; -import net.minecraft.screen.slot.SlotActionType; - -public class AutoTotem extends Module -{ - public BooleanSetting overrideItems = new BooleanSetting("Override other items", false); - - public AutoTotem() - { - super("Auto Totem", "Automatically puts totems in offhand.", Category.COMBAT); - settings.add(overrideItems); - } - - @Override - public void tick() - { - if (mc.player.getInventory().offHand.get(0).getItem() != Items.TOTEM_OF_UNDYING) - { - if((!mc.player.getInventory().offHand.isEmpty()) && !overrideItems.value) return; - for (int i = 0; i <= 35; i++) - { - if (mc.player.getInventory().getStack(i).getItem() == Items.TOTEM_OF_UNDYING) - { - mc.interactionManager.clickSlot(0, i, 8, SlotActionType.SWAP, mc.player); - mc.interactionManager.clickSlot(0, 45, 8, SlotActionType.SWAP, mc.player); - mc.interactionManager.clickSlot(0, i, 8, SlotActionType.SWAP, mc.player); - } - } - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoWalk.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoWalk.java deleted file mode 100644 index 3fea35f..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/AutoWalk.java +++ /dev/null @@ -1,26 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; - -public class AutoWalk extends Module -{ - - public AutoWalk() - { - super("Auto Walk", "Automatically moves forward.", Category.MOVEMENT); - } - - @Override - public void tick() - { - mc.options.forwardKey.setPressed(true); - } - - @Override - public void onDisable() - { - super.onDisable(); - mc.options.forwardKey.setPressed(false); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ChatSpammer.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/ChatSpammer.java deleted file mode 100644 index 5c21e27..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ChatSpammer.java +++ /dev/null @@ -1,30 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.module.settings.StringSetting; -import me.kawaiizenbo.moonlight.util.Timer; - -public class ChatSpammer extends Module -{ - public StringSetting message = new StringSetting("Message", "E4PE4J"); - public DoubleSetting delay = new DoubleSetting("Delay (Seconds)", 1, 0.1, 10, 1); - private Timer timer = new Timer(); - - public ChatSpammer() - { - super("Chat Spammer", "Spams a selected message in chat.", Category.CHAT); - settings.add(message); - settings.add(delay); - } - - @Override - public void tick() - { - if (timer.hasTimeElapsed((long)delay.value * 1000, true)) - { - mc.player.networkHandler.sendChatMessage(message.value); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java index 90db457..5695dff 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fly.java @@ -1,9 +1,9 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.Module_; -public class Fly extends Module +public class Fly extends Module_ { public Fly() @@ -20,7 +20,6 @@ public class Fly extends Module @Override public void onDisable() { - super.onDisable(); mc.player.getAbilities().flying = false; } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java index 8fe2c61..f56eba3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java @@ -1,28 +1,25 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.util.ISimpleOption; +import me.kawaiizenbo.moonlight.module.Module_; -public class Fullbright extends Module +public class Fullbright extends Module_ { public Fullbright() { super("Fullbright", "Allows you to see in the dark.", Category.RENDER); } - @SuppressWarnings("unchecked") - @Override + @Override public void onEnable() { - super.onEnable(); - ((ISimpleOption)(Object)mc.options.getGamma()).setValueUnrestricted(100.0); + // i dont know why but this makes it darker than 1.0 + mc.options.getGamma().setValue(100.0); } @Override public void onDisable() { - super.onDisable(); mc.options.getGamma().setValue(1.0); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDEnabler.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDEnabler.java deleted file mode 100644 index 866699b..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDEnabler.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.IndexSetting; - -public class HUDEnabler extends Module -{ - public IndexSetting mode = new IndexSetting("Mode", 0, "Modular", "Legacy"); - - public HUDEnabler() - { - super("HUD", "The Moonlight HUD.", Category.RENDER); - this.enabled = true; - this.showInModulesList.value = false; - this.showEditButton = true; - settings.add(mode); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java new file mode 100644 index 0000000..ee2c3e6 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/HUDModule.java @@ -0,0 +1,16 @@ +package me.kawaiizenbo.moonlight.module.modules; + +import me.kawaiizenbo.moonlight.module.Category; +import me.kawaiizenbo.moonlight.module.Module_; +import me.kawaiizenbo.moonlight.module.settings.ColorSetting; + +public class HUDModule extends Module_ +{ + public ColorSetting color = new ColorSetting("Color", 0x55FFFF); + public HUDModule() + { + super("HUD", "Enables or disables the Moonlight HUD.", Category.RENDER); + this.enabled = true; + settings.add(color); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java deleted file mode 100644 index 3f6a03c..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/ModulesList.java +++ /dev/null @@ -1,14 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; - -public class ModulesList extends Module -{ - public ModulesList() - { - super("ModulesList", "Shows enabled modules on side of screen", Category.RENDER); - this.enabled = true; - this.showInModulesList.value = false; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java index 102dc8c..f84d4b4 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/NoFall.java @@ -1,10 +1,10 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.Module_; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -public class NoFall extends Module +public class NoFall extends Module_ { public NoFall() { @@ -14,6 +14,6 @@ public class NoFall extends Module @Override public void tick() { - if(mc.player.fallDistance >= 2.5) mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(true, false)); + if(mc.player.fallDistance >= 2.5) mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(true)); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Reach.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Reach.java deleted file mode 100644 index af245ab..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Reach.java +++ /dev/null @@ -1,44 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import net.minecraft.entity.attribute.EntityAttributes; - -public class Reach extends Module -{ - DoubleSetting blockRange = new DoubleSetting("Block Range", 4.5, 1, 10, 1); - DoubleSetting entityRange = new DoubleSetting("Entity Range", 3.0, 1, 10, 1); - double oldBe = 4.5; - double oldEe = 3.0; - - public Reach() - { - super("Reach", "Extends player interaction distance.", Category.MOVEMENT); - settings.add(blockRange); - settings.add(entityRange); - } - - @Override - public void onEnable() - { - super.onEnable(); - oldBe = mc.player.getAttributeInstance(EntityAttributes.BLOCK_INTERACTION_RANGE).getBaseValue(); - oldEe = mc.player.getAttributeInstance(EntityAttributes.ENTITY_INTERACTION_RANGE).getBaseValue(); - } - - @Override - public void tick() - { - mc.player.getAttributeInstance(EntityAttributes.BLOCK_INTERACTION_RANGE).setBaseValue(blockRange.value); - mc.player.getAttributeInstance(EntityAttributes.ENTITY_INTERACTION_RANGE).setBaseValue(entityRange.value); - } - - @Override - public void onDisable() - { - super.onDisable(); - mc.player.getAttributeInstance(EntityAttributes.BLOCK_INTERACTION_RANGE).setBaseValue(oldBe); - mc.player.getAttributeInstance(EntityAttributes.ENTITY_INTERACTION_RANGE).setBaseValue(oldEe); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Rotation.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Rotation.java deleted file mode 100644 index b6e974d..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Rotation.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; - -public class Rotation extends Module -{ - DoubleSetting pitch = new DoubleSetting("Pitch", 0, 0, 360, 0); - DoubleSetting yaw = new DoubleSetting("Yaw", 0, 0, 360, 0); - - public Rotation() - { - super("Rotation", "Locks camera to specified pitch and yaw.", Category.PLAYER); - settings.add(pitch); - settings.add(yaw); - } - - @Override - public void tick() - { - mc.player.setPitch((float)pitch.value); - mc.player.setYaw((float)yaw.value); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java deleted file mode 100644 index 385f571..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Speed.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import net.minecraft.entity.attribute.EntityAttributes; - -public class Speed extends Module -{ - double old = 0.1; - - DoubleSetting speed = new DoubleSetting("Speed", 1.4, 0.1, 10, 1); - public Speed() - { - super("Speed", "Allows you to move faster.", Category.MOVEMENT); - settings.add(speed); - } - - @Override - public void onEnable() - { - super.onEnable(); - old = mc.player.getAttributeInstance(EntityAttributes.MOVEMENT_SPEED).getBaseValue(); - } - - @Override - public void tick() - { - mc.player.getAttributeInstance(EntityAttributes.MOVEMENT_SPEED).setBaseValue(speed.value/10d); - } - - @Override - public void onDisable() - { - super.onDisable(); - mc.player.getAttributeInstance(EntityAttributes.MOVEMENT_SPEED).setBaseValue(old); - } - -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java index ac115d1..7983e62 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Step.java @@ -1,38 +1,28 @@ package me.kawaiizenbo.moonlight.module.modules; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.Module_; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import net.minecraft.entity.attribute.EntityAttributes; -public class Step extends Module +public class Step extends Module_ { DoubleSetting stepHeight = new DoubleSetting("Height", 1, 1, 10, 0); - double old = 0.6; public Step() { super("Step", "Allows you to step up full blocks.", Category.MOVEMENT); settings.add(stepHeight); } - - @Override - public void onEnable() - { - super.onEnable(); - old = mc.player.getAttributeInstance(EntityAttributes.STEP_HEIGHT).getBaseValue(); - } @Override public void tick() - { - mc.player.getAttributeInstance(EntityAttributes.STEP_HEIGHT).setBaseValue(stepHeight.value); + { + mc.player.stepHeight = (float)stepHeight.value; } @Override public void onDisable() { - super.onDisable(); - mc.player.getAttributeInstance(EntityAttributes.STEP_HEIGHT).setBaseValue(old); + mc.player.stepHeight = 0.5f; } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java deleted file mode 100644 index f1e1118..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestModule.java +++ /dev/null @@ -1,48 +0,0 @@ -package me.kawaiizenbo.moonlight.module.modules; - -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.Module; -import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.module.settings.StringSetting; -import net.minecraft.entity.MovementType; -import net.minecraft.util.math.Vec3d; - -public class TestModule extends Module -{ - public BooleanSetting bs = new BooleanSetting("BooleanSetting", false); - public DoubleSetting ds = new DoubleSetting("DoubleSetting", 1, 0, 10, 10); - public StringSetting ss = new StringSetting("StringSetting", "string"); - - public TestModule() - { - super("Test Module", "Used for testing module features.", Category.WORLD); - addSettings(bs, ds, ss); - } - - @Override - public void onEnable() - { - super.onEnable(); - System.out.println("Test Module Enabled"); - } - - @Override - public void onDisable() - { - super.onDisable(); - System.out.println("Test Module Disabled"); - } - - @Override - public void onMotion(MovementType type, Vec3d movement) - { - System.out.println("Test Module motion"); - } - - @Override - public void tick() - { - System.out.println("Test Module Tick"); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java index 83338ec..e0f0529 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java @@ -1,8 +1,7 @@ package me.kawaiizenbo.moonlight.module.settings; -import me.kawaiizenbo.moonlight.Moonlight; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; public class BooleanSetting extends Setting @@ -16,13 +15,13 @@ public class BooleanSetting extends Setting } @Override - public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) + public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) { - super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); - drawContext.fill(x+180, y+7, x+190, y+17, Moonlight.THEME.border.getRGB()); - drawContext.fill(x+181, y+8, x+189, y+16, Moonlight.THEME.background.getRGB()); - drawContext.fill(x+182, y+9, x+188, y+15, value ? Moonlight.THEME.accent.getRGB() : Moonlight.THEME.background.getRGB()); + super.render(matrices, x, y, mouseX, mouseY); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF); + DrawableHelper.fill(matrices, x+175, y+7, x+185, y+17, 0xFFFFFFFF); + DrawableHelper.fill(matrices, x+176, y+8, x+184, y+16, 0xFF222222); + DrawableHelper.fill(matrices, x+177, y+9, x+183, y+15, value ? 0xFF55FFFF : 0xFF222222); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/ColorSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/ColorSetting.java new file mode 100644 index 0000000..09431c2 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/ColorSetting.java @@ -0,0 +1,43 @@ +package me.kawaiizenbo.moonlight.module.settings; + +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; + +public class ColorSetting extends Setting +{ + public int value; + public int r; + public int g; + public int b; + + + public ColorSetting(String name, int value) + { + this.name = name; + this.value = value; + this.height = 64; + this.r = (value >> 16) & 0xFF; + this.g = (value >> 8) & 0xFF; + this.b = value & 0xFF; + } + + @Override + public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) + { + super.render(matrices, x, y, mouseX, mouseY); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(name), x+2, y+2, 0xFFFFFF); + int redDisplayStartColor = ((255&0x0ff)<<24)|((0&0x0ff)<<16)|((g&0x0ff)<<8)|(b&0x0ff); + int redDisplayEndColor = ((255&0x0ff)<<24)|((255&0x0ff)<<16)|((g&0x0ff)<<8)|(b&0x0ff); + int greenDisplayStartColor = ((255&0x0ff)<<24)|((r&0x0ff)<<16)|((0&0x0ff)<<8)|(b&0x0ff); + int greenDisplayEndColor = ((255&0x0ff)<<24)|((r&0x0ff)<<16)|((255&0x0ff)<<8)|(b&0x0ff); + int blueDisplayStartColor = ((255&0x0ff)<<24)|((r&0x0ff)<<16)|((g&0x0ff)<<8)|(0&0x0ff); + int blueDisplayEndColor = ((255&0x0ff)<<24)|((r&0x0ff)<<16)|((g&0x0ff)<<8)|(255&0x0ff); + DrawableHelper.fillGradient(matrices, x+80, y+2, x+92, y+62, redDisplayEndColor, redDisplayStartColor, 0); + DrawableHelper.fillGradient(matrices, x+95, y+2, x+107, y+62, greenDisplayEndColor, greenDisplayStartColor, 0); + DrawableHelper.fillGradient(matrices, x+110, y+2, x+122, y+62, blueDisplayEndColor, blueDisplayStartColor, 0); + textRenderer.drawWithShadow(matrices, Text.literal("Red: " + r), x+130, y+10, 0xFFFFFFFF); + textRenderer.drawWithShadow(matrices, Text.literal("Green: " + g), x+130, y+26, 0xFFFFFFFF); + textRenderer.drawWithShadow(matrices, Text.literal("Blue: " + b), x+130, y+42, 0xFFFFFFFF); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java index 7a6a123..f4ccdd2 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java @@ -1,9 +1,8 @@ package me.kawaiizenbo.moonlight.module.settings; -import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.util.MathUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; public class DoubleSetting extends Setting @@ -24,10 +23,10 @@ public class DoubleSetting extends Setting } @Override - public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) + public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) { - super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawText(textRenderer, Text.literal(name), x+2, y+4, Moonlight.THEME.text.getRGB(), false); + super.render(matrices, x, y, mouseX, mouseY); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(name), x+2, y+2, 0xFFFFFF); double diff = Math.min(100, Math.max(0, (mouseX - x)/1.9)); if (sliding) @@ -44,11 +43,11 @@ public class DoubleSetting extends Setting } String valueString = ""+MathUtils.round(value, roundingPlace); - drawContext.drawText(textRenderer, Text.literal(valueString), (x+190)-textRenderer.getWidth(valueString), y+4, Moonlight.THEME.text.getRGB(), false); - drawContext.fill(x+2, y+16, x+190, y+18, 0xFF777777); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(valueString), (x+190)-textRenderer.getWidth(valueString), y+2, 0xFFFFFF); + DrawableHelper.fill(matrices, x+2, y+16, x+190, y+18, 0xFF666666); int scaledValue = (int)((value/max)*190); - drawContext.fill(x+2, y+16, (x+2)+scaledValue, y+18, Moonlight.THEME.accent.getRGB()); - drawContext.fill(x+2+(scaledValue-1), y+14, x+2+(scaledValue+1), y+20, Moonlight.THEME.border.getRGB()); + DrawableHelper.fill(matrices, x+2, y+16, (x+2)+scaledValue, y+18, 0xFF55FFFF); + DrawableHelper.fill(matrices, x+2+(scaledValue-1), y+14, x+2+(scaledValue+1), y+20, 0xFFFFFFFF); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java deleted file mode 100644 index 4f44ec8..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java +++ /dev/null @@ -1,42 +0,0 @@ -package me.kawaiizenbo.moonlight.module.settings; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.util.DrawUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.text.Text; - -public class IndexSetting extends Setting -{ - public int index; - public String[] elements; - - public IndexSetting(String name, int index, String... elements) - { - this.name = name; - this.index = index; - this.elements = elements; - } - - @Override - public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) - { - super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); - drawContext.fill(x+96, y+5, x+190, y+19, Moonlight.THEME.border.getRGB()); - drawContext.fill(x+97, y+6, x+189, y+18, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); - drawContext.drawText(textRenderer, elements[index], x+98, y+8, Moonlight.THEME.text.getRGB(), false); - drawContext.drawGuiTexture(RenderLayer::getGuiTextured, DrawUtils.getThemedGUIIcon("updown", Moonlight.THEME.background), x+177, y+6, 12, 12); - } - - @Override - public void mouseClicked(double mouseX, double mouseY, int button) - { - if (hovered((int)mouseX, (int)mouseY) && button == 0) - { - if (index >= elements.length-1) index = 0; - else index++; - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java deleted file mode 100644 index 37ab7c0..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java +++ /dev/null @@ -1,71 +0,0 @@ -package me.kawaiizenbo.moonlight.module.settings; - -import org.lwjgl.glfw.GLFW; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.util.KeycodeUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.text.Text; - -public class KeycodeSetting extends Setting -{ - public int value; - private boolean isWaiting = false; - - public KeycodeSetting(String name, int value) - { - this.name = name; - this.value = value; - } - - @Override - public void mouseClicked(double mouseX, double mouseY, int button) - { - if (isWaiting) - { - isWaiting = false; - return; - } - if (hovered((int)mouseX, (int)mouseY) && button == 0) - { - isWaiting = true; - } - } - - @Override - public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) - { - super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); - if (isWaiting) - { - String waiting = "Press any key."; - int twwidth = textRenderer.getWidth(waiting); - drawContext.drawText(textRenderer, waiting, x+190-twwidth, y+8, Moonlight.THEME.text.getRGB(), false); - } - else - { - String key = KeycodeUtils.keyTable[value]; - if (value == GLFW.GLFW_KEY_UNKNOWN) key = ""; - int twidth = textRenderer.getWidth(key); - drawContext.drawText(textRenderer, key, x+190-twidth, y+8, Moonlight.THEME.text.getRGB(), false); - } - } - - @Override - public void keyPressed(int keyCode, int scanCode, int modifiers) - { - if (isWaiting) - { - if (keyCode == 256) - { - // escape was pressed, exit safely - isWaiting = false; - return; - } - value = keyCode; - isWaiting = false; - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java index cb6447a..6c7bcec 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java @@ -1,19 +1,22 @@ package me.kawaiizenbo.moonlight.module.settings; -import me.kawaiizenbo.moonlight.Moonlight; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.util.math.MatrixStack; public class Setting { public String name; + protected TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; + public int height = 24; int x = 0, y = 0; - public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) + public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) { this.x = x; this.y = y; - drawContext.fill(x, y, x+192, y+24, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB(): Moonlight.THEME.background.getRGB()); + DrawableHelper.fill(matrices, x, y, x+192, y+height, hovered(mouseX, mouseY) ? 0xFF444444: 0xFF222222); } @@ -25,6 +28,6 @@ public class Setting protected boolean hovered(int mouseX, int mouseY) { - return mouseX >= x && mouseX <= x + 192 && mouseY >= y && mouseY <= y + 24; + return mouseX >= x && mouseX <= x + 192 && mouseY >= y && mouseY <= y + height; } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java index bee45b3..79a23a1 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java @@ -1,72 +1,6 @@ package me.kawaiizenbo.moonlight.module.settings; -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.util.KeycodeUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.text.Text; - public class StringSetting extends Setting { - public String value; - private boolean focused = false; - - public StringSetting(String name, String value) - { - this.name = name; - this.value = value; - } - - @Override - public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) - { - super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); - int twidth = textRenderer.getWidth(value); - drawContext.fill(x+96, y+5, x+190, y+19, Moonlight.THEME.border.getRGB()); - drawContext.fill(x+97, y+6, x+189, y+18, Moonlight.THEME.background.getRGB()); - int cursorPos = x+98+twidth; - if (focused) drawContext.fill(cursorPos, y+7, cursorPos+1, y+17, Moonlight.THEME.accent.getRGB()); - drawContext.drawText(textRenderer, value, x+98, y+8, Moonlight.THEME.text.getRGB(), false); - } - - @Override - public void mouseClicked(double mouseX, double mouseY, int button) - { - if (focused) - { - focused = false; - return; - } - if (hovered((int)mouseX, (int)mouseY) && button == 0) - { - focused = true; - } - } - - @Override - public void keyPressed(int keyCode, int scanCode, int modifiers) - { - if (focused) - { - if (keyCode == 256 || keyCode == 257) - { - // escape or enter was pressed, exit safely - focused = false; - return; - } - if (keyCode == 259) - { - // backspace, remove a character - if (value.length() > 0) value = value.substring(0, value.length() - 1); - return; - } - if (keyCode > 96) return; // not a typing key - String append = KeycodeUtils.keyTable[keyCode]; - if (modifiers == 1) append = KeycodeUtils.shiftedKeyTable[keyCode]; - if (append == "Unknown") return; - if (append == "Space") append = " "; - value += append; - } - } + } diff --git a/src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java b/src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java deleted file mode 100644 index fd464ce..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java +++ /dev/null @@ -1,81 +0,0 @@ -package me.kawaiizenbo.moonlight.theme; - -public class Theme -{ - public static final Theme LIGHT = new Theme( - "Light", - new ThemeColor(0x222222), - new ThemeColor(0xFFFFFF), - new ThemeColor(0xFFFFFF), - new ThemeColor(0xDDDDDD), - new ThemeColor(0x00AAAA), - new ThemeColor(0x55FFFF), - new ThemeColor(0x222222), - false, - false - ); - public static final Theme HIGHCONTRAST = new Theme( - "High Contrast", - new ThemeColor(0x000000), - new ThemeColor(0xFFFFFF), - new ThemeColor(0xFFFFFF), - new ThemeColor(0x777777), - new ThemeColor(0x00AAAA), - new ThemeColor(0xFFFFFF), - new ThemeColor(0x000000), - false, - true - ); - public static final Theme DARK = new Theme( - "Dark", - new ThemeColor(0xFFFFFF), - new ThemeColor(0xFFFFFF), - new ThemeColor(0x222222), - new ThemeColor(0x333333), - new ThemeColor(0x55FFFF), - new ThemeColor(0x55FFFF), - new ThemeColor(0xFFFFFF), - false, - false - ); - public static final Theme[] THEME_LIST = - { - LIGHT, HIGHCONTRAST, DARK - }; - - public String name; - public ThemeColor text; - public ThemeColor headerText; - public ThemeColor background; - public ThemeColor hover; - public ThemeColor accent; - public ThemeColor hudAccent; - public ThemeColor border; - public boolean useDarkIcons; - public boolean themedWindowBorders; - - public Theme( - String name, - ThemeColor text, - ThemeColor headerText, - ThemeColor background, - ThemeColor hover, - ThemeColor accent, - ThemeColor hudAccent, - ThemeColor border, - boolean useDarkIcons, - boolean themedWindowBorders - ) - { - this.name = name; - this.text = text; - this.headerText = headerText; - this.background = background; - this.hover = hover; - this.accent = accent; - this.hudAccent = hudAccent; - this.border = border; - this.useDarkIcons = useDarkIcons; - this.themedWindowBorders = themedWindowBorders; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java b/src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java deleted file mode 100644 index 019cc44..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.kawaiizenbo.moonlight.theme; - -public class ThemeColor -{ - public int r, g, b; - - public ThemeColor(int r, int g, int b) - { - this.r = r; - this.g = g; - this.b = b; - } - - public ThemeColor(int RGBcolor) - { - this.r = (RGBcolor&0x00FF0000)>>16; - this.g = (RGBcolor&0x0000FF00)>>8; - this.b = (RGBcolor&0x000000FF)>>0; - } - - public int getRGB() - { - return ((255&0x0ff)<<24)|((r&0x0ff)<<16)|((g&0x0ff)<<8)|(b&0x0ff); - } - - public void setRGB(int RGBcolor) - { - this.r = RGBcolor&0x00FF0000; - this.g = RGBcolor&0x0000FF00; - this.b = RGBcolor&0x000000FF; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/HUD.java b/src/main/java/me/kawaiizenbo/moonlight/ui/HUD.java new file mode 100644 index 0000000..70d3dc8 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/HUD.java @@ -0,0 +1,41 @@ +package me.kawaiizenbo.moonlight.ui; + +import me.kawaiizenbo.moonlight.Moonlight; +import me.kawaiizenbo.moonlight.util.ColorUtils; +import me.kawaiizenbo.moonlight.util.MathUtils; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.math.Vec3d; + +public class HUD +{ + public static HUD INSTANCE = new HUD(); + private MinecraftClient mc = MinecraftClient.getInstance(); + TextRenderer textRenderer = mc.textRenderer; + + public void renderHUD(MatrixStack matrix, int scaledWidth, int scaledHeight) + { + // do not draw if F3 enabled + if (mc.options.debugEnabled) return; + + // draw stats + textRenderer.drawWithShadow(matrix, Moonlight.clientTag + " " + Moonlight.versionTag, 2, 2, 16777215); + textRenderer.drawWithShadow(matrix, "FPS: " + ColorUtils.gray + mc.fpsDebugString.split(" ")[0], 2, 12, 0x55FFFF); + textRenderer.drawWithShadow(matrix, "Ping: " + ColorUtils.gray + (mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()) == null ? 0 : mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()).getLatency()), 2, 22, 0x55FFFF); + textRenderer.drawWithShadow(matrix, "Meters/s: " + ColorUtils.gray + MathUtils.round(moveSpeed(), 2), 2, scaledHeight - 20, 0x55FFFF); + + // draw coordinates + textRenderer.drawWithShadow(matrix, "X: " + ColorUtils.gray + MathUtils.round(mc.player.getX(), 1) + + ColorUtils.reset + " Y: " + ColorUtils.gray + MathUtils.round(mc.player.getY(), 1) + + ColorUtils.reset + " Z: " + ColorUtils.gray + MathUtils.round(mc.player.getZ(), 1), 2, scaledHeight - 10, 0x55FFFF); + } + + private double moveSpeed() + { + Vec3d move = new Vec3d(mc.player.getX() - mc.player.prevX, 0, mc.player.getZ() - mc.player.prevZ).multiply(20); + + return Math.abs(MathUtils.length2D(move)) ; + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/LegacyHUD.java b/src/main/java/me/kawaiizenbo/moonlight/ui/LegacyHUD.java deleted file mode 100644 index 2caf08f..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/LegacyHUD.java +++ /dev/null @@ -1,45 +0,0 @@ -package me.kawaiizenbo.moonlight.ui; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import me.kawaiizenbo.moonlight.util.MathUtils; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.util.math.Vec3d; - -public class LegacyHUD -{ - // This is deprecated and will be removed in a later version - public static LegacyHUD INSTANCE = new LegacyHUD(); - private MinecraftClient mc = MinecraftClient.getInstance(); - - public void render(DrawContext drawContext, int scaledWidth, int scaledHeight) - { - // do not draw if F3 enabled - if (mc.getDebugHud().shouldShowDebugHud()) return; - - // draw stats - drawContext.drawTextWithShadow(mc.textRenderer, "FPS: " + ColorUtils.gray + mc.fpsDebugString.split(" ")[0], 2, 2, 0xFF55FFFF); - drawContext.drawTextWithShadow(mc.textRenderer, "Ping: " + ColorUtils.gray + (mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()) == null ? 0 : mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()).getLatency()), 2, 12, 0xFF55FFFF); - drawContext.drawTextWithShadow(mc.textRenderer, "Meters/s: " + ColorUtils.gray + MathUtils.round(moveSpeed(), 2), 2, scaledHeight - 20, 0xFF55FFFF); - - // draw coordinates - drawContext.drawTextWithShadow(mc.textRenderer, - "X: " + ColorUtils.gray + String.format("%.1f", mc.player.getX()) + ColorUtils.reset + - " Y: " + ColorUtils.gray + String.format("%.1f", mc.player.getY()) + ColorUtils.reset + - " Z: " + ColorUtils.gray + String.format("%.1f", mc.player.getZ()), 2, scaledHeight - 10, 0xFF55FFFF - ); - - // draw client tag - drawContext.drawTextWithShadow(mc.textRenderer, Moonlight.clientTag + " " + Moonlight.versionTag, - scaledWidth - mc.textRenderer.getWidth(Moonlight.clientTag + " " + Moonlight.versionTag) - 2, scaledHeight - 10, 16777215); - } - - private double moveSpeed() - { - Vec3d move = new Vec3d(mc.player.getX() - mc.player.prevX, 0, mc.player.getZ() - mc.player.prevZ).multiply(20); - - return Math.abs(MathUtils.length2D(move)) ; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java deleted file mode 100644 index 95d6a5e..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java +++ /dev/null @@ -1,40 +0,0 @@ -package me.kawaiizenbo.moonlight.ui; - -import java.util.ArrayList; - -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.Module; -import net.minecraft.client.MinecraftClient; - -import net.minecraft.client.gui.DrawContext; - -public class ModulesListOverlay -{ - // this will be replaced with a new hud version at some point - - public static ModulesListOverlay INSTANCE = new ModulesListOverlay(); - private MinecraftClient mc = MinecraftClient.getInstance(); - private ArrayList enabledModules = ModuleManager.INSTANCE.getEnabledModules(); - - public void render(DrawContext drawContext, int scaledWidth, int scaledHeight) - { - // do not draw if F3 enabled - if (mc.getDebugHud().shouldShowDebugHud()) return; - - int yOffset = 0; - for (Module m : enabledModules) - { - if (!m.showInModulesList.value) continue; - int nameWidth = mc.textRenderer.getWidth(m.name); - drawContext.fill(scaledWidth - nameWidth - 8, yOffset, scaledWidth, yOffset+12, 0x77222222); - drawContext.fill(scaledWidth - 2, yOffset, scaledWidth, yOffset+12, 0xFF55FFFF); - drawContext.drawText(mc.textRenderer, m.name, scaledWidth - nameWidth - 4, yOffset + 2, 0xFFFFFFFF, false); - yOffset += 12; - } - } - - public void update() - { - enabledModules = ModuleManager.INSTANCE.getEnabledModules(); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java deleted file mode 100644 index 8d735c1..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java +++ /dev/null @@ -1,45 +0,0 @@ -package me.kawaiizenbo.moonlight.ui; - -import me.kawaiizenbo.moonlight.Moonlight; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -public class SetScreenButton -{ - String text; - Screen screen; - int x, y, width; - - public SetScreenButton(String text, int x, int y, Screen screen) - { - this.text = text; - this.x = x; - this.y = y; - this.screen = screen; - } - - public void render(DrawContext drawContext, TextRenderer textRenderer, int mouseX, int mouseY, int x, int y) - { - this.x = x; - this.y = y; - width = textRenderer.getWidth(text); - drawContext.fill(x-1, y-1, x + width + 1, y + 10, hovered(mouseX, mouseY) ? 0x22222222 : 0); - drawContext.drawText(textRenderer, Text.literal(text), x, y, Moonlight.THEME.headerText.getRGB(), false); - } - - public boolean hovered(int mouseX, int mouseY) - { - return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 10; - } - - public void mouseClicked(int mouseX, int mouseY) - { - if (hovered(mouseX, mouseY)) - { - MinecraftClient.getInstance().setScreen(screen); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/TextButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/TextButton.java new file mode 100644 index 0000000..14a4ddd --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/TextButton.java @@ -0,0 +1,43 @@ +package me.kawaiizenbo.moonlight.ui; + +import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; + +public class TextButton +{ + String text; + int x, y, color, width; + + public TextButton(String text, int x, int y, int color) + { + this.text = text; + this.x = x; + this.y = y; + this.color = color; + } + + public void render(MatrixStack matrices, TextRenderer textRenderer, int mouseX, int mouseY) + { + width = textRenderer.getWidth(text); + DrawableHelper.fill(matrices, x-1, y-1, x + width + 1, y + 10, hovered(mouseX, mouseY) ? 0xFF444444 : 0xFF222222); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(text), x, y, color); + } + + public boolean hovered(int mouseX, int mouseY) + { + return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 10; + } + + public void mouseClicked(int mouseX, int mouseY) + { + if (hovered(mouseX, mouseY)) + { + // i have no clue how to pass a method so this is kind of stupid + MinecraftClient.getInstance().setScreen(ClickGUIScreen.INSTANCE); + } + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/altmanager/AltManagerScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/altmanager/AltManagerScreen.java new file mode 100644 index 0000000..28b8f91 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/altmanager/AltManagerScreen.java @@ -0,0 +1,22 @@ +package me.kawaiizenbo.moonlight.ui.altmanager; + +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; + +public class AltManagerScreen extends Screen +{ + public static AltManagerScreen INSTANCE = new AltManagerScreen(); + + protected AltManagerScreen() + { + super(Text.literal("Alt Manager")); + } + + @Override + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) + { + renderBackgroundTexture(0); + } + +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java deleted file mode 100644 index 61100e6..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java +++ /dev/null @@ -1,87 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.clickgui; - -import java.util.ArrayList; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.util.DrawUtils; -import me.kawaiizenbo.moonlight.module.Module; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.Identifier; - -public class CategoryPane -{ - public Category category; - public int x, y, height, width = 96; - int startX, startY; - boolean dragging = false; - public boolean collapsed = false; - ArrayList moduleButtons; - Identifier icon; - - public CategoryPane(Category category, int initialX, int initialY, boolean collapsed) - { - this.category = category; - this.x = initialX; - this.y = initialY; - this.collapsed = collapsed; - moduleButtons = new ArrayList(); - icon = DrawUtils.getThemedGUIIcon(category.name.toLowerCase()); - for (Module m : ModuleManager.INSTANCE.getModulesByCategory(category)) - { - moduleButtons.add(new ModuleButton(m)); - } - if (moduleButtons.size() == 0) collapsed = true; - height = (moduleButtons.size()*12) + 18; - } - - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta, TextRenderer textRenderer) - { - if (dragging) - { - x = mouseX - startX; - y = mouseY - startY; - } - drawContext.fill(x, y, x+width, collapsed ? y+16 : y+height, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : category.color); - //drawContext.fill(x+2, y+2, x+(width-2), y+14, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); - drawContext.drawGuiTexture(RenderLayer::getGuiTextured, icon, x+2, y+2, 12, 12); - drawContext.drawText(textRenderer, category.name, x+16, y+4, Moonlight.THEME.headerText.getRGB(), false); - if (!collapsed) - { - int buttonYOffset = y+16; - for (ModuleButton m : moduleButtons) - { - m.render(drawContext, mouseX, mouseY, x+2, buttonYOffset, textRenderer); - buttonYOffset += 12; - } - } - } - - public boolean hovered(int mouseX, int mouseY) - { - return mouseX >= x+2 && mouseX <= x+(width-2) && mouseY >= y+2 && mouseY <= y+14; - } - - public void mouseClicked(int mouseX, int mouseY, int button) - { - for (ModuleButton moduleButton : moduleButtons) - { - if (moduleButton.mouseClicked(mouseX, mouseY, button)) return; - } - if (hovered(mouseX, mouseY) && button == 1) collapsed = !collapsed; - else if (hovered(mouseX, mouseY) && button == 0) - { - startX = (int)mouseX-x; - startY = (int)mouseY-y; - dragging = true; - } - } - - public void mouseReleased(int mouseX, int mouseY, int button) - { - dragging = false; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java index c90375b..4bb014e 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java @@ -1,75 +1,61 @@ package me.kawaiizenbo.moonlight.ui.clickgui; import java.util.ArrayList; -import java.util.Map; -import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.Category; -import me.kawaiizenbo.moonlight.theme.Theme; -import me.kawaiizenbo.moonlight.util.MathUtils; -import net.minecraft.client.gui.DrawContext; +import me.kawaiizenbo.moonlight.module.ModuleManager; +import me.kawaiizenbo.moonlight.module.Module_; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; -public class ClickGUIScreen extends Screen +public class ClickGUIScreen extends Screen { - public static ClickGUIScreen INSTANCE = new ClickGUIScreen(); - public ArrayList categoryPanes; + public static ClickGUIScreen INSTANCE = new ClickGUIScreen(); + public static ArrayList moduleButtons; - @SuppressWarnings("unchecked") public ClickGUIScreen() { super(Text.literal("ClickGUI")); - categoryPanes = new ArrayList(); - Map panePos = ((Map)Moonlight.CONFIG.config.get("panes")); + moduleButtons = new ArrayList<>(); + int yOffset; for (Category category : Category.values()) { - if(category.name == "Special") continue; - int xOffset = MathUtils.d2iSafe(((Map)panePos.get(category.name)).get("x")); - int yOffset = MathUtils.d2iSafe(((Map)panePos.get(category.name)).get("y")); - boolean collapsed = (boolean)((Map)panePos.get(category.name)).get("collapsed"); - categoryPanes.add(new CategoryPane(category, xOffset, yOffset, collapsed)); + yOffset = 25; + for (Module_ module : ModuleManager.INSTANCE.getModulesByCategory(category)) + { + moduleButtons.add(new ModuleButton(module, 9+(module.category.ordinal()*70), yOffset)); + yOffset += 14; + } } + } @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - this.renderBackground(drawContext, mouseX, mouseY, delta); - drawContext.fill(width-80, height-16, width, height, Moonlight.THEME.border.getRGB()); - drawContext.fill(width-78, height-14, width-2, height-2, (mouseX > width-80 && mouseY > height-16) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); - drawContext.drawText(textRenderer, "Change Theme", width-75, height-12, Moonlight.THEME.text.getRGB(), false); - for (CategoryPane category : categoryPanes) + this.renderBackground(matrices); + int categoryLabelXOffset = 10; + for (Category category : Category.values()) { - category.render(drawContext, mouseX, mouseY, delta, textRenderer); + textRenderer.draw(matrices, category.name, categoryLabelXOffset, 10, 0xFFFFFF); + categoryLabelXOffset += 70; + } + for (ModuleButton moduleButton : moduleButtons) + { + moduleButton.render(matrices, mouseX, mouseY); } } @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { - for (CategoryPane category : categoryPanes) + for (ModuleButton modButton : moduleButtons) { - category.mouseClicked((int) mouseX, (int) mouseY, button); - } - if (mouseX > width-80 && mouseY > height-16) - { - if (Moonlight.THEME_IDX >= Theme.THEME_LIST.length-1) Moonlight.THEME_IDX = 0; - else Moonlight.THEME_IDX++; - Moonlight.THEME = Theme.THEME_LIST[Moonlight.THEME_IDX]; + modButton.mouseClicked((int) mouseX, (int) mouseY, button); } return super.mouseClicked(mouseX, mouseY, button); } - - @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) - { - for (CategoryPane category : categoryPanes) - { - category.mouseReleased((int) mouseX, (int) mouseY, button); - } - return super.mouseReleased(mouseX, mouseY, button); - } @Override public boolean shouldPause() diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java index 1627c6b..0eeba92 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java @@ -1,29 +1,31 @@ package me.kawaiizenbo.moonlight.ui.clickgui; -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.Module_; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.util.math.MatrixStack; public class ModuleButton { - public Module module; + public Module_ module; public int x, y, width, height = 0; + private MinecraftClient mc = MinecraftClient.getInstance(); - public ModuleButton(Module module) + public ModuleButton(Module_ module, int x, int y) { this.module = module; - this.width = 92; - this.height = 12; - } - - public void render(DrawContext drawContext, int mouseX, int mouseY, int x, int y, TextRenderer textRenderer) - { this.x = x; this.y = y; - drawContext.fill(x, y, x + width, y + height, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); - drawContext.drawText(textRenderer, module.name, x+2, y+2, module.enabled ? Moonlight.THEME.accent.getRGB() : Moonlight.THEME.text.getRGB(), false); + this.width = 70; + this.height = 14; + } + + public void render(MatrixStack matrices, int mouseX, int mouseY) + { + TextRenderer textRenderer = mc.textRenderer; + DrawableHelper.fill(matrices, x, y, x + width, y + height, hovered(mouseX, mouseY) ? 0xFF333333 : 0xFF222222); + textRenderer.draw(matrices, module.name, x+3, y+3, module.enabled ? 0x55FFFF : 0xFFFFFF); } public boolean hovered(int mouseX, int mouseY) @@ -31,7 +33,7 @@ public class ModuleButton return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height; } - public boolean mouseClicked(int mouseX, int mouseY, int button) + public void mouseClicked(int mouseX, int mouseY, int button) { if (hovered(mouseX, mouseY)) { @@ -43,8 +45,6 @@ public class ModuleButton { MinecraftClient.getInstance().setScreen(new SettingsScreen(module)); } - return true; } - return false; } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java index 5e8351f..152a2dc 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java @@ -1,62 +1,41 @@ package me.kawaiizenbo.moonlight.ui.clickgui; -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.module.Module; +import me.kawaiizenbo.moonlight.module.Module_; import me.kawaiizenbo.moonlight.module.settings.Setting; -import me.kawaiizenbo.moonlight.ui.SetScreenButton; -import me.kawaiizenbo.moonlight.ui.hud.editor.HUDEditorScreen; +import me.kawaiizenbo.moonlight.ui.TextButton; import me.kawaiizenbo.moonlight.util.ColorUtils; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; public class SettingsScreen extends Screen { - private Module module; - private SetScreenButton backButton; - private SetScreenButton editButton; + private Module_ module; + private TextButton backButton; - boolean dragging = false; - int startX, startY, x = (ClickGUIScreen.INSTANCE.width/2)-112, y = (ClickGUIScreen.INSTANCE.height/2)-96, windowWidth = 224, windowHeight = 192; - - public SettingsScreen(Module module) + protected SettingsScreen(Module_ module) { super(Text.literal("Settings")); - backButton = new SetScreenButton(ColorUtils.underline + "< Back", x+4, y+4, ClickGUIScreen.INSTANCE); - editButton = new SetScreenButton(ColorUtils.underline + "Edit", x+windowWidth-22, y+4, HUDEditorScreen.INSTANCE); this.module = module; } @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - this.renderBackground(drawContext, mouseX, mouseY, delta); - - // move window if dragging - if (dragging) - { - x = mouseX - startX; - y = mouseY - startY; - } - drawContext.fill(x, y, x+windowWidth, y+windowHeight, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : module.category.color); - drawContext.fill(x+2, y+2, x+windowWidth-2, y+windowHeight-2, Moonlight.THEME.background.getRGB()); - drawContext.fill(x, y, x+windowWidth, y+16, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : module.category.color); - //drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, Moonlight.THEME.background.getRGB()); - drawContext.drawText(textRenderer, module.name, x+((windowWidth/2)-(textRenderer.getWidth(module.name)/2)), y+4, Moonlight.THEME.headerText.getRGB(), false); - drawContext.drawText(textRenderer, module.description, x+8, y+24, Moonlight.THEME.text.getRGB(), false); - backButton.render(drawContext, textRenderer, mouseX, mouseY, x+4, y+4); - if (module.showEditButton) editButton.render(drawContext, textRenderer, mouseX, mouseY, x+windowWidth-22, y+4); - int yOffset = y+40; + this.renderBackground(matrices); + DrawableHelper.fill(matrices, (width/2)-112, (height/2)-96, (width/2)+112, (height/2)+96, 0xFF222222); + DrawableHelper.drawCenteredText(matrices, textRenderer, module.name, width/2, (height/2)-88, 0xFFFFFF); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(module.description), (width/2)-104, (height/2)-72, 0xFFFFFF); + backButton = new TextButton(ColorUtils.underline + "< Back", (width/2)-104, (height/2)-88, 0xFFFFFF); + backButton.render(matrices, textRenderer, mouseX, mouseY); + int yOffset = (height/2)-56; for (Setting setting : module.settings) { - setting.render(drawContext, x+16, yOffset, mouseX, mouseY, textRenderer); - yOffset += 25; + setting.render(matrices, (width/2)-96, yOffset, mouseX, mouseY); + yOffset += setting.height + 1; } - } - - public boolean barHovered(int mouseX, int mouseY) - { - return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 16; + // add keybind setting here eventually } @Override @@ -68,14 +47,7 @@ public class SettingsScreen extends Screen @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (barHovered((int)mouseX, (int)mouseY)) - { - startX = (int)mouseX-x; - startY = (int)mouseY-y; - dragging = true; - } backButton.mouseClicked((int)mouseX, (int)mouseY); - editButton.mouseClicked((int)mouseX, (int)mouseY); for (Setting setting : module.settings) { setting.mouseClicked(mouseX, mouseY, button); @@ -86,7 +58,6 @@ public class SettingsScreen extends Screen @Override public boolean mouseReleased(double mouseX, double mouseY, int button) { - dragging = false; for (Setting setting : module.settings) { setting.mouseReleased(mouseX, mouseY, button); diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java deleted file mode 100644 index 96cc293..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java +++ /dev/null @@ -1,68 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud; - -import java.util.ArrayList; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.module.settings.Setting; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; - -public abstract class HUDModule -{ - public int x, y, height, width; - public String name; - int startX, startY; - boolean dragging = false; - public boolean enabled = false; - public ArrayList settings; - - protected static MinecraftClient mc = MinecraftClient.getInstance(); - - public HUDModule(String name, int x, int y) - { - this.name = name; - this.x = x; - this.y = y; - settings = new ArrayList<>(); - } - - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - if (editMode) - { - if (dragging) - { - x = mouseX - startX; - y = mouseY - startY; - } - drawContext.fill(x-1, y-1, x+width+1, y+height+1, enabled ? Moonlight.THEME.accent.getRGB() : 0xFF555555); - drawContext.fill(x, y, x+width, y+height, 0xFF222222); - } - } - - public boolean hovered(int mouseX, int mouseY) - { - return mouseX >= x && mouseX <= x+width && mouseY >= y && mouseY <= y+height; - } - - public void mouseClicked(int mouseX, int mouseY, int button) - { - if (hovered(mouseX, mouseY) && button == 0) - { - startX = (int)mouseX-x; - startY = (int)mouseY-y; - dragging = true; - } - } - - public void mouseReleased(int mouseX, int mouseY, int button) - { - dragging = false; - } - - public void toggle() - { - enabled = !enabled; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java deleted file mode 100644 index b2b3dc7..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java +++ /dev/null @@ -1,56 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud; - -import java.util.ArrayList; - -import me.kawaiizenbo.moonlight.ui.hud.modules.*; - -public class HUDModuleManager -{ - public static HUDModuleManager INSTANCE = new HUDModuleManager(); - public ArrayList modules = new ArrayList<>(); - - public HUDModuleManager() - { - registerModules( - new ClientTag(2, 2), - new FPS(2, 12), - new Ping(2, 22), - new MovementSpeed(2, 32), - new Coordinates(2, 42), - new ArmorDisplay(2, 52), - new TotemCounter(20, 52) - //new TestModuleHUD(20, 50) - ); - } - - private void registerModules(HUDModule... modules) - { - for (HUDModule module : modules) { - this.modules.add(module); - } - } - - public HUDModule getModuleByName(String moduleName) - { - for(HUDModule module : modules) - { - if ((module.name.trim().equalsIgnoreCase(moduleName))) - { - return module; - } - } - return null; - } - - public ArrayList getEnabledModules() - { - ArrayList enabledModules = new ArrayList<>(); - for (HUDModule module : modules) - { - if (!module.enabled) - continue; - enabledModules.add(module); - } - return enabledModules; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java deleted file mode 100644 index 8c03be3..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; - -public class HUDRenderer -{ - public static HUDRenderer INSTANCE = new HUDRenderer(); - private MinecraftClient mc = MinecraftClient.getInstance(); - - public void render(DrawContext drawContext) - { - // do not draw if F3 enabled - if (mc.getDebugHud().shouldShowDebugHud()) return; - - for (HUDModule h : HUDModuleManager.INSTANCE.getEnabledModules()) - { - // mouse coords are not needed when not in edit mode - h.render(drawContext, 0, 0, mc.textRenderer, false, true); - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java deleted file mode 100644 index 6df96cc..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java +++ /dev/null @@ -1,58 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.editor; - -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -public class HUDEditorScreen extends Screen -{ - public static HUDEditorScreen INSTANCE = new HUDEditorScreen(); - HUDModuleList moduleList; - - public HUDEditorScreen() - { - super(Text.literal("HUD Editor")); - moduleList = new HUDModuleList(256, 2, false); - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) - { - this.renderBackground(drawContext, mouseX, mouseY, delta); - for (HUDModule h : HUDModuleManager.INSTANCE.modules) - { - h.render(drawContext, mouseX, mouseY, textRenderer, true, h.enabled); - } - moduleList.render(drawContext, mouseX, mouseY, delta, textRenderer); - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) - { - for (HUDModule h : HUDModuleManager.INSTANCE.modules) - { - h.mouseClicked((int)mouseX, (int)mouseY, button); - } - moduleList.mouseClicked((int)mouseX, (int)mouseY, button); - return super.mouseClicked(mouseX, mouseY, button); - } - - @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) - { - for (HUDModule h : HUDModuleManager.INSTANCE.modules) - { - h.mouseReleased((int)mouseX, (int)mouseY, button); - } - moduleList.mouseReleased((int)mouseX, (int)mouseY, button); - return super.mouseReleased(mouseX, mouseY, button); - } - - @Override - public boolean shouldPause() - { - return false; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java deleted file mode 100644 index cd09ee1..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java +++ /dev/null @@ -1,53 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.editor; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.Identifier; - -public class HUDModuleButton -{ - public HUDModule module; - public int x, y, width, height = 0; - - public HUDModuleButton(HUDModule module) - { - this.module = module; - this.width = 124; - this.height = 12; - } - - public void render(DrawContext drawContext, int mouseX, int mouseY, int x, int y, TextRenderer textRenderer) - { - this.x = x; - this.y = y; - drawContext.fill(x, y, x + width, y + height, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); - drawContext.drawText(textRenderer, module.name, x+2, y+2, module.enabled ? Moonlight.THEME.accent.getRGB() : Moonlight.THEME.text.getRGB(), false); - if (!module.settings.isEmpty()) drawContext.drawGuiTexture(RenderLayer::getGuiTextured, Identifier.of("moonlight", "settings"), x+width-12, y, 12, 12); - } - - public boolean hovered(int mouseX, int mouseY) - { - return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height; - } - - public boolean mouseClicked(int mouseX, int mouseY, int button) - { - if (hovered(mouseX, mouseY)) - { - if (button == 0) - { - module.toggle(); - } - else if (button == 1) - { - if (!module.settings.isEmpty()) MinecraftClient.getInstance().setScreen(new HUDModuleSettingsScreen(module)); - } - return true; - } - return false; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java deleted file mode 100644 index f9cfdad..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java +++ /dev/null @@ -1,82 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.editor; - -import java.util.ArrayList; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; -import me.kawaiizenbo.moonlight.util.DrawUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.Identifier; - -public class HUDModuleList -{ - public int x, y, height, width = 128; - int startX, startY; - boolean dragging = false; - public boolean collapsed = false; - ArrayList buttons; - - public HUDModuleList(int initialX, int initialY, boolean collapsed) - { - this.x = initialX; - this.y = initialY; - this.collapsed = collapsed; - buttons = new ArrayList(); - for (HUDModule m : HUDModuleManager.INSTANCE.modules) - { - buttons.add(new HUDModuleButton(m)); - } - if (buttons.size() == 0) collapsed = true; - height = (buttons.size()*12) + 18; - } - - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta, TextRenderer textRenderer) - { - if (dragging) - { - x = mouseX - startX; - y = mouseY - startY; - } - drawContext.fill(x, y, x+width, collapsed ? y+16 : y+height, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : Moonlight.THEME.accent.getRGB()); - //drawContext.fill(x+2, y+2, x+(width-2), y+14, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); - drawContext.drawGuiTexture(RenderLayer::getGuiTextured, DrawUtils.getThemedGUIIcon("hud"), x+2, y+2, 12, 12); - drawContext.drawText(textRenderer, "HUD Modules", x+16, y+4, Moonlight.THEME.headerText.getRGB(), false); - if (!collapsed) - { - int buttonYOffset = y+16; - for (HUDModuleButton m : buttons) - { - m.render(drawContext, mouseX, mouseY, x+2, buttonYOffset, textRenderer); - buttonYOffset += 12; - } - } - } - - public boolean hovered(int mouseX, int mouseY) - { - return mouseX >= x+2 && mouseX <= x+(width-2) && mouseY >= y+2 && mouseY <= y+14; - } - - public void mouseClicked(int mouseX, int mouseY, int button) - { - for (HUDModuleButton moduleButton : buttons) - { - if (moduleButton.mouseClicked(mouseX, mouseY, button)) return; - } - if (hovered(mouseX, mouseY) && button == 1) collapsed = !collapsed; - else if (hovered(mouseX, mouseY) && button == 0) - { - startX = (int)mouseX-x; - startY = (int)mouseY-y; - dragging = true; - } - } - - public void mouseReleased(int mouseX, int mouseY, int button) - { - dragging = false; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java deleted file mode 100644 index a3d2a90..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java +++ /dev/null @@ -1,101 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.editor; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.module.settings.Setting; -import me.kawaiizenbo.moonlight.ui.SetScreenButton; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -public class HUDModuleSettingsScreen extends Screen -{ - // adapted for hud modules - private HUDModule module; - private SetScreenButton backButton; - - boolean dragging = false; - int startX, startY, x = (HUDEditorScreen.INSTANCE.width/2)-112, y = (HUDEditorScreen.INSTANCE.height/2)-96, windowWidth = 224, windowHeight = 192; - - public HUDModuleSettingsScreen(HUDModule module) - { - super(Text.literal("Settings")); - backButton = new SetScreenButton(ColorUtils.underline + "< Back", x+4, y+4, HUDEditorScreen.INSTANCE); - this.module = module; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) - { - this.renderBackground(drawContext, mouseX, mouseY, delta); - - // move window if dragging - if (dragging) - { - x = mouseX - startX; - y = mouseY - startY; - } - drawContext.fill(x, y, x+windowWidth, y+windowHeight, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : Moonlight.THEME.accent.getRGB()); - drawContext.fill(x+2, y+2, x+windowWidth-2, y+windowHeight-2, Moonlight.THEME.background.getRGB()); - drawContext.fill(x, y, x+windowWidth, y+16, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : Moonlight.THEME.accent.getRGB()); - //drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, Moonlight.THEME.background.getRGB()); - drawContext.drawText(textRenderer, module.name, x+((windowWidth/2)-(textRenderer.getWidth(module.name)/2)), y+4, Moonlight.THEME.headerText.getRGB(), false); - backButton.render(drawContext, textRenderer, mouseX, mouseY, x+4, y+4); - int yOffset = y+24; - for (Setting setting : module.settings) - { - setting.render(drawContext, x+16, yOffset, mouseX, mouseY, textRenderer); - yOffset += 25; - } - } - - public boolean barHovered(int mouseX, int mouseY) - { - return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 16; - } - - @Override - public boolean shouldPause() - { - return false; - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) - { - if (barHovered((int)mouseX, (int)mouseY)) - { - startX = (int)mouseX-x; - startY = (int)mouseY-y; - dragging = true; - } - backButton.mouseClicked((int)mouseX, (int)mouseY); - for (Setting setting : module.settings) - { - setting.mouseClicked(mouseX, mouseY, button); - } - return super.mouseClicked(mouseX, mouseY, button); - } - - @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) - { - dragging = false; - for (Setting setting : module.settings) - { - setting.mouseReleased(mouseX, mouseY, button); - } - return super.mouseReleased(mouseX, mouseY, button); - } - - @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) - { - for (Setting setting : module.settings) - { - setting.keyPressed(keyCode, scanCode, modifiers); - } - return super.keyPressed(keyCode, scanCode, modifiers); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java deleted file mode 100644 index 8c3bf83..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java +++ /dev/null @@ -1,31 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.item.ItemStack; - -public class ArmorDisplay extends HUDModule -{ - - public ArmorDisplay(int x, int y) - { - super("Armor Display", x, y); - this.width = 16; - this.height = 64; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - int yOffset = 0; - for (int i = 39; i >= 36; i--) - { - ItemStack piece = mc.player.getInventory().getStack(i); - drawContext.drawItem(piece, x, y+yOffset); - drawContext.drawStackOverlay(textRenderer, piece, x, y+yOffset); - yOffset += 16; - } - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ClientTag.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ClientTag.java deleted file mode 100644 index d8f0ff8..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ClientTag.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; - -public class ClientTag extends HUDModule -{ - public ClientTag(int x, int y) - { - super("Client Tag", x, y); - this.width = 128; - this.height = 8; - this.enabled = true; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, Moonlight.clientTag + " " + Moonlight.versionTag, x, y, 16777215); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java deleted file mode 100644 index 699a5a9..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java +++ /dev/null @@ -1,29 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; - -public class Coordinates extends HUDModule -{ - public Coordinates(int x, int y) - { - super("Coordinates", x, y); - this.width = 128; - this.height = 8; - this.enabled = true; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, - "X: " + ColorUtils.gray + String.format("%.1f", mc.player.getX()) + ColorUtils.reset + - " Y: " + ColorUtils.gray + String.format("%.1f", mc.player.getY()) + ColorUtils.reset + - " Z: " + ColorUtils.gray + String.format("%.1f", mc.player.getZ()), x, y, Moonlight.THEME.hudAccent.getRGB() - ); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java deleted file mode 100644 index c7dd4a6..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; - -public class FPS extends HUDModule -{ - public FPS(int x, int y) - { - super("FPS", x, y); - this.width = 48; - this.height = 8; - this.enabled = true; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, "FPS: " + ColorUtils.gray + mc.fpsDebugString.split(" ")[0], x, y, Moonlight.THEME.hudAccent.getRGB()); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java deleted file mode 100644 index a21c01f..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java +++ /dev/null @@ -1,33 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import me.kawaiizenbo.moonlight.util.MathUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.util.math.Vec3d; - -public class MovementSpeed extends HUDModule -{ - public MovementSpeed(int x, int y) - { - super("Movement Speed", x, y); - this.width = 72; - this.height = 8; - this.enabled = true; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, "Meters/s: " + ColorUtils.gray + MathUtils.round(moveSpeed(), 2), x, y, Moonlight.THEME.hudAccent.getRGB()); - } - - private double moveSpeed() - { - Vec3d move = new Vec3d(mc.player.getX() - mc.player.prevX, 0, mc.player.getZ() - mc.player.prevZ).multiply(20); - return Math.abs(MathUtils.length2D(move)) ; - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java deleted file mode 100644 index 935fbe4..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; - -public class Ping extends HUDModule -{ - public Ping(int x, int y) - { - super("Ping", x, y); - this.width = 48; - this.height = 8; - this.enabled = true; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, "Ping: " + ColorUtils.gray + (mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()) == null ? 0 : mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()).getLatency()), x, y, Moonlight.THEME.hudAccent.getRGB()); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java deleted file mode 100644 index fed72f9..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java +++ /dev/null @@ -1,29 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.module.settings.StringSetting; -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; - -public class TestModuleHUD extends HUDModule -{ - public StringSetting text = new StringSetting("Text", "hii :3"); - public DoubleSetting number = new DoubleSetting("test", 1, 0, 10, 0); - - public TestModuleHUD(int x, int y) - { - super("Test HUD Module", x, y); - this.width = 96; - this.height = 8; - settings.add(text); - settings.add(number); - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawText(textRenderer, text.value, x, y, 0xFFFFFF, false); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java deleted file mode 100644 index fb0a618..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.kawaiizenbo.moonlight.ui.hud.modules; - -import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; - -public class TotemCounter extends HUDModule -{ - - public TotemCounter(int x, int y) - { - super("Totem Counter", x, y); - this.width = 24; - this.height = 16; - } - - @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) - { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - int count = 0; - for (int i = 0; i < 36; i++) - { - ItemStack stack = mc.player.getInventory().getStack(i); - if (stack.getItem() == Items.TOTEM_OF_UNDYING) count += stack.getCount(); - } - drawContext.drawItem(Items.TOTEM_OF_UNDYING.getDefaultStack(), x, y); - drawContext.drawTextWithShadow(textRenderer, count+"", x+16, y+8, 16777215); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java index 4262b8a..1893b5c 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java +++ b/src/main/java/me/kawaiizenbo/moonlight/util/ChatUtils.java @@ -1,15 +1,29 @@ package me.kawaiizenbo.moonlight.util; +import org.jetbrains.annotations.Nullable; + import net.minecraft.client.MinecraftClient; import net.minecraft.text.Text; +import net.minecraft.util.Formatting; public class ChatUtils { private static MinecraftClient mc = MinecraftClient.getInstance(); public static void sendMsg(String message) + { + sendMsg(null, null, Text.literal(message)); + } + + public static void sendMsg(@Nullable String prefixTitle, @Nullable Formatting prefixColor, Text msg) { if (mc.world == null) return; - mc.inGameHud.getChatHud().addMessage(Text.literal(message)); + + //Text message = Text.literal(""); + //message.append(CommandManager.get().getPrefix()); + //if (prefixTitle != null) message.append(CommandManager.get().getPrefix()); + //message.append(msg); + + mc.inGameHud.getChatHud().addMessage(msg); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/ColorUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/ColorUtils.java index 03a0b4c..b398b8c 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/util/ColorUtils.java +++ b/src/main/java/me/kawaiizenbo/moonlight/util/ColorUtils.java @@ -27,14 +27,4 @@ public class ColorUtils public static String strikethrough = "\247m"; public static String obfuscated = "\247k"; public static String reset = "\247r"; - - public static int rgbaToInt(int r, int g, int b, int a) - { - return ((a&0x0ff)<<24)|((r&0x0ff)<<16)|((g&0x0ff)<<8)|(b&0x0ff); - } - - public static int rgbToInt(int r, int g, int b) - { - return ((r&0x0ff)<<16)|((g&0x0ff)<<8)|(b&0x0ff); - } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java deleted file mode 100644 index 03443bc..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.kawaiizenbo.moonlight.util; - -import me.kawaiizenbo.moonlight.Moonlight; -import me.kawaiizenbo.moonlight.theme.ThemeColor; -import net.minecraft.util.Identifier; - -public class DrawUtils -{ - public static Identifier getThemedGUIIcon(String textureName, ThemeColor invert) - { - boolean mode = ((invert.r + invert.g + invert.b) / 3) > 77; - String addition = mode ? "_light" : ""; - return Identifier.of("moonlight", textureName+addition); - } - - public static Identifier getThemedGUIIcon(String textureName) - { - String addition = Moonlight.THEME.useDarkIcons ? "_light" : ""; - return Identifier.of("moonlight", textureName+addition); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/ISimpleOption.java b/src/main/java/me/kawaiizenbo/moonlight/util/ISimpleOption.java deleted file mode 100644 index 38ff2b7..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/util/ISimpleOption.java +++ /dev/null @@ -1,6 +0,0 @@ -package me.kawaiizenbo.moonlight.util; - -public interface ISimpleOption -{ - public void setValueUnrestricted(T value); -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/KeycodeUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/KeycodeUtils.java deleted file mode 100644 index c3e1b04..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/util/KeycodeUtils.java +++ /dev/null @@ -1,710 +0,0 @@ -package me.kawaiizenbo.moonlight.util; - -public class KeycodeUtils -{ - public static String[] keyTable = { - "", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Space", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "'", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - ",", - "-", - ".", - "/", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "Unknown", - ";", - "Unknown", - "=", - "Unknown", - "Unknown", - "Unknown", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "[", - "\\", - "]", - "Unknown", - "Unknown", - "`", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "World 1", - "World 2", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Escape", - "Enter", - "Tab", - "Backspace", - "Insert", - "Delete", - "Right", - "Left", - "Down", - "Up", - "Page Up", - "Page Down", - "Home", - "End", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Caps Lock", - "Scroll Lock", - "Num Lock", - "Print Screen", - "Pause", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "F1", - "F2", - "F3", - "F4", - "F5", - "F6", - "F7", - "F8", - "F9", - "F10", - "F11", - "F12", - "F13", - "F14", - "F15", - "F16", - "F17", - "F18", - "F19", - "F20", - "F21", - "F22", - "F23", - "F24", - "F25", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Num 0", - "Num 1", - "Num 2", - "Num 3", - "Num 4", - "Num 5", - "Num 6", - "Num 7", - "Num 8", - "Num 9", - "Num .", - "Num /", - "Num *", - "Num -", - "Num +", - "Num Enter", - "Num =", - "Unknown", - "Unknown", - "Unknown", - "Left Shift", - "Left Control", - "Left Alt", - "Left Command", - "Right Shift", - "Right Control", - "Right Alt", - "Right Command", - "Menu", - "Last", - }; - - public static String[] shiftedKeyTable = { - "", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Space", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "\"", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "<", - "_", - ">", - "?", - ")", - "!", - "@", - "#", - "$", - "%", - "^", - "&", - "*", - "(", - "Unknown", - ":", - "Unknown", - "+", - "Unknown", - "Unknown", - "Unknown", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "{", - "|", - "}", - "Unknown", - "Unknown", - "~", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "World 1", - "World 2", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Escape", - "Enter", - "Tab", - "Backspace", - "Insert", - "Delete", - "Right", - "Left", - "Down", - "Up", - "Page Up", - "Page Down", - "Home", - "End", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Caps Lock", - "Scroll Lock", - "Num Lock", - "Print Screen", - "Pause", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "F1", - "F2", - "F3", - "F4", - "F5", - "F6", - "F7", - "F8", - "F9", - "F10", - "F11", - "F12", - "F13", - "F14", - "F15", - "F16", - "F17", - "F18", - "F19", - "F20", - "F21", - "F22", - "F23", - "F24", - "F25", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Unknown", - "Num 0", - "Num 1", - "Num 2", - "Num 3", - "Num 4", - "Num 5", - "Num 6", - "Num 7", - "Num 8", - "Num 9", - "Num .", - "Num /", - "Num *", - "Num -", - "Num +", - "Num Enter", - "Num =", - "Unknown", - "Unknown", - "Unknown", - "Left Shift", - "Left Control", - "Left Alt", - "Left Command", - "Right Shift", - "Right Control", - "Right Alt", - "Right Command", - "Menu", - "Last", - }; -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/MathUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/MathUtils.java index 3f5d81a..885d4f2 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/util/MathUtils.java +++ b/src/main/java/me/kawaiizenbo/moonlight/util/MathUtils.java @@ -17,19 +17,6 @@ public class MathUtils return bd.doubleValue(); } - public static int d2iSafe(Object value) - { - int out = 0; - try - { - out = (int)Math.floor((double)value); - } catch (Exception e) - { - out = (int)value; - } - return out; - } - public static double length2D(Vec3d vec3d) { return MathHelper.sqrt((float)(vec3d.x * vec3d.x + vec3d.z * vec3d.z)); diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/ReflectionUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/ReflectionUtils.java deleted file mode 100644 index 37f1e86..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/util/ReflectionUtils.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.kawaiizenbo.moonlight.util; - -import java.lang.reflect.Method; - -public class ReflectionUtils -{ - public static Method tryGetMethod(String methodName, Class class1) - { - // safety be damned this is my own code i get to control when it crashes - try - { - return class1.getDeclaredMethod(methodName, new Class[1]); - } - catch (Exception e) - { - e.printStackTrace(); - return (Method)null; - } - } - - public static void tryCallMethod(Method method, Object... parameters) - { - // hope that shits static - try - { - method.invoke(null, parameters); - } - catch (Exception e) - { - // go fuck yourself - e.printStackTrace(); - } - - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/Timer.java b/src/main/java/me/kawaiizenbo/moonlight/util/Timer.java deleted file mode 100644 index 3043761..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/util/Timer.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.kawaiizenbo.moonlight.util; - -public class Timer -{ - public long lastMS = System.currentTimeMillis(); - - public void reset() - { - lastMS = System.currentTimeMillis(); - } - - public boolean hasTimeElapsed(long time, boolean reset) - { - if (lastMS > System.currentTimeMillis()) - { - lastMS = System.currentTimeMillis(); - } - - if (System.currentTimeMillis()-lastMS > time) - { - if (reset) reset(); - - return true; - } - - else - { - return false; - } - - } -} diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/chat.png b/src/main/resources/assets/moonlight/textures/gui/sprites/chat.png deleted file mode 100644 index 09aaee2..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/chat.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/chat_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/chat_light.png deleted file mode 100644 index 99d12cf..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/chat_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/combat.png b/src/main/resources/assets/moonlight/textures/gui/sprites/combat.png deleted file mode 100644 index 1c3c01c..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/combat.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/combat_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/combat_light.png deleted file mode 100644 index 235bda7..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/combat_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/hud.png b/src/main/resources/assets/moonlight/textures/gui/sprites/hud.png deleted file mode 100644 index 854c430..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/hud.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/hud_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/hud_light.png deleted file mode 100644 index 4052a19..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/hud_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/movement.png b/src/main/resources/assets/moonlight/textures/gui/sprites/movement.png deleted file mode 100644 index d58ea80..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/movement.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/movement_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/movement_light.png deleted file mode 100644 index 6e08707..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/movement_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/player.png b/src/main/resources/assets/moonlight/textures/gui/sprites/player.png deleted file mode 100644 index 514dfdb..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/player.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/player_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/player_light.png deleted file mode 100644 index e9454e9..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/player_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/render.png b/src/main/resources/assets/moonlight/textures/gui/sprites/render.png deleted file mode 100644 index 4124739..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/render.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/render_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/render_light.png deleted file mode 100644 index d42ca54..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/render_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/settings.png b/src/main/resources/assets/moonlight/textures/gui/sprites/settings.png deleted file mode 100644 index 93e6cec..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/settings.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/settings_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/settings_light.png deleted file mode 100644 index aaedc9f..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/settings_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/updown.png b/src/main/resources/assets/moonlight/textures/gui/sprites/updown.png deleted file mode 100644 index ca63110..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/updown.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/updown_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/updown_light.png deleted file mode 100644 index 684cdbd..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/updown_light.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/world.png b/src/main/resources/assets/moonlight/textures/gui/sprites/world.png deleted file mode 100644 index 1ef0a88..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/world.png and /dev/null differ diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/world_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/world_light.png deleted file mode 100644 index 1308ef9..0000000 Binary files a/src/main/resources/assets/moonlight/textures/gui/sprites/world_light.png and /dev/null differ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index d09ff4b..f7d986f 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,13 +1,13 @@ { "schemaVersion": 1, "id": "moonlight", - "version": "v0.4.0", + "version": "${version}", + "name": "Moonlight Meadows", "description": "Utility mod with a focus on stability.", "authors": [ "KawaiiZenbo", - "madeline1805", - "BadGamesInc (re-used Hypnotic Code)" + "BadGamesInc" ], "contact": { "homepage": "https://kawaiizenbo.me/", @@ -29,9 +29,9 @@ ], "depends": { - "fabricloader": ">=0.16.9", + "fabricloader": ">=0.14.10", "fabric-api": "*", - "minecraft": "~1.21.3", - "java": ">=21" + "minecraft": "~1.19", + "java": ">=17" } } diff --git a/src/main/resources/moonlight.accesswidener b/src/main/resources/moonlight.accesswidener index 2c77e65..8ba793b 100644 --- a/src/main/resources/moonlight.accesswidener +++ b/src/main/resources/moonlight.accesswidener @@ -1,2 +1,2 @@ accessWidener v1 named -accessible method net/minecraft/client/gui/DrawContext fillGradient (IIIIIII)V +accessible method net/minecraft/client/gui/DrawableHelper fillGradient (Lnet/minecraft/client/util/math/MatrixStack;IIIIIII)V diff --git a/src/main/resources/moonlight.mixins.json b/src/main/resources/moonlight.mixins.json index beea7f0..67d7385 100644 --- a/src/main/resources/moonlight.mixins.json +++ b/src/main/resources/moonlight.mixins.json @@ -7,14 +7,12 @@ ], "client": [ "TitleScreenMixin", - "InGameHudMixin", + "MultiplayerScreenMixin", + "InGameHUDMixin", "ChatInputSuggestorMixin", "ClientConnectionMixin", - "KeyboardMixin", - "SimpleOptionMixin", - "MinecraftClientMixin", - "ClientPlayerEntityMixin", - "PowderSnowBlockMixin" + "LivingEntityMixin", + "KeyboardMixin" ], "injectors": { "defaultRequire": 1