From 8a40bbaf18e6fa1595e6746c9aeeaeb8952000b1 Mon Sep 17 00:00:00 2001 From: funcjay Date: Fri, 10 Mar 2023 00:01:59 +0100 Subject: [PATCH] fixed yippie it works wowiee (This shit sucks.) --- .../hl2/btafemaleplayer/FemalePlayerBTA.java | 3 +-- .../hl2/btafemaleplayer/GenderSettings.java | 22 ++++++++----------- .../commands/GenderCommand.java | 3 +++ .../mixin/GameSettingsMixin.java | 20 +++++++++++++++++ .../resources/bta-female-player.mixins.json | 3 ++- 5 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 src/main/java/sh/hl2/btafemaleplayer/mixin/GameSettingsMixin.java diff --git a/src/main/java/sh/hl2/btafemaleplayer/FemalePlayerBTA.java b/src/main/java/sh/hl2/btafemaleplayer/FemalePlayerBTA.java index a05c66a..5395426 100644 --- a/src/main/java/sh/hl2/btafemaleplayer/FemalePlayerBTA.java +++ b/src/main/java/sh/hl2/btafemaleplayer/FemalePlayerBTA.java @@ -25,9 +25,8 @@ public class FemalePlayerBTA implements ModInitializer { File settingsFile = FabricLoader.getInstance().getConfigDir().resolve(FEM_SETTINGS_FILE).toFile(); if (!settingsFile.exists()) { + LOGGER.warn("BTA FemPlayer - Settings file doesn't exist, creating one now"); GenderSettings.writeSettings(); } - - GenderSettings.readSettings(); } } diff --git a/src/main/java/sh/hl2/btafemaleplayer/GenderSettings.java b/src/main/java/sh/hl2/btafemaleplayer/GenderSettings.java index 92da717..4597069 100644 --- a/src/main/java/sh/hl2/btafemaleplayer/GenderSettings.java +++ b/src/main/java/sh/hl2/btafemaleplayer/GenderSettings.java @@ -3,7 +3,6 @@ package sh.hl2.btafemaleplayer; import net.fabricmc.loader.api.FabricLoader; import java.io.*; -import java.util.Scanner; public class GenderSettings { private static String playerGender = "m"; @@ -24,30 +23,27 @@ public class GenderSettings { } public static void writeSettings() { + FemalePlayerBTA.LOGGER.warn("BTA FemPlayer - Writing settings file"); + try { BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write(playerGender); writer.close(); - } catch (IllegalAccessException e) { + } catch (Exception e) { FemalePlayerBTA.LOGGER.error("BTA FemPlayer - Failed to write settings file!"); e.printStackTrace(); } } public static void readSettings() { + FemalePlayerBTA.LOGGER.warn("BTA FemPlayer - Reading settings file"); + try { - Scanner reader = new Scanner(file); - String data = "m"; - while (reader.hasNextLine()) { - data = reader.nextLine(); - FemalePlayerBTA.LOGGER.warn("BTA FemPlayer [DEBUG] - Read gender as " + data); - } - reader.close(); - setGender(data); - } catch (FileNotFoundException e) { + BufferedReader reader = new BufferedReader(new FileReader(file)); + String value = reader.readLine(); + setGender(value); + } catch (Exception e) { FemalePlayerBTA.LOGGER.error("BTA FemPlayer - Failed to read settings file!"); e.printStackTrace(); } - - setGender("m"); } } diff --git a/src/main/java/sh/hl2/btafemaleplayer/commands/GenderCommand.java b/src/main/java/sh/hl2/btafemaleplayer/commands/GenderCommand.java index 50aef73..e539a64 100644 --- a/src/main/java/sh/hl2/btafemaleplayer/commands/GenderCommand.java +++ b/src/main/java/sh/hl2/btafemaleplayer/commands/GenderCommand.java @@ -41,6 +41,9 @@ extends Command { public void sendCommandSyntax(CommandHandler handler, CommandSender sender) { if (sender instanceof PlayerCommandSender) { sender.sendMessage("/gender <[male/m] | [female/f]>"); + + String genTemp = GenderSettings.getGender().equalsIgnoreCase("m") ? "Male" : "Female"; + sender.sendMessage("Current gender: " + genTemp); } } } diff --git a/src/main/java/sh/hl2/btafemaleplayer/mixin/GameSettingsMixin.java b/src/main/java/sh/hl2/btafemaleplayer/mixin/GameSettingsMixin.java new file mode 100644 index 0000000..647a768 --- /dev/null +++ b/src/main/java/sh/hl2/btafemaleplayer/mixin/GameSettingsMixin.java @@ -0,0 +1,20 @@ +package sh.hl2.btafemaleplayer.mixin; + +import net.minecraft.src.GameSettings; +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 sh.hl2.btafemaleplayer.GenderSettings; + +@Mixin(value = GameSettings.class, remap = false) +public class GameSettingsMixin { + @Inject(method = "loadOptions", at = @At("TAIL")) + public void loadOptions(CallbackInfo ci) { + GenderSettings.readSettings(); + } + @Inject(method = "saveOptions", at = @At("TAIL")) + public void saveOptions(CallbackInfo ci) { + GenderSettings.writeSettings(); + } +} diff --git a/src/main/resources/bta-female-player.mixins.json b/src/main/resources/bta-female-player.mixins.json index 7d09079..43cae5a 100644 --- a/src/main/resources/bta-female-player.mixins.json +++ b/src/main/resources/bta-female-player.mixins.json @@ -7,7 +7,8 @@ ], "client": [ "EntityLivingMixin", - "CommandsMixin" + "CommandsMixin", + "GameSettingsMixin" ], "injectors": { "defaultRequire": 1