diff --git a/src/main/java/xyz/limepot/roses_mod/RosesMod.java b/src/main/java/xyz/limepot/roses_mod/RosesMod.java index 658dd23..da8ecde 100644 --- a/src/main/java/xyz/limepot/roses_mod/RosesMod.java +++ b/src/main/java/xyz/limepot/roses_mod/RosesMod.java @@ -22,7 +22,6 @@ import org.quiltmc.qsl.worldgen.biome.api.BiomeModifications; import org.quiltmc.qsl.worldgen.biome.api.BiomeSelectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import xyz.limepot.roses_mod.config.ModConfigs; import xyz.limepot.roses_mod.world.gen.ModFlowerGeneration; @@ -44,9 +43,6 @@ public class RosesMod implements ModInitializer { @Override public void onInitialize(ModContainer mod) { - //Register Configs - ModConfigs.registerConfigs(); - //REGISTER WORLDGEN ModFlowerGeneration.generateFlowers(); diff --git a/src/main/java/xyz/limepot/roses_mod/config/ModConfigProvider.java b/src/main/java/xyz/limepot/roses_mod/config/ModConfigProvider.java deleted file mode 100644 index bba2ee1..0000000 --- a/src/main/java/xyz/limepot/roses_mod/config/ModConfigProvider.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * This is free and unencumbered software released into the public domain. - * - * Anyone is free to copy, modify, publish, use, compile, sell, or - * distribute this software, either in source code form or as a compiled - * binary, for any purpose, commercial or non-commercial, and by any - * means. - * - * In jurisdictions that recognize copyright laws, the author or authors - * of this software dedicate any and all copyright interest in the - * software to the public domain. We make this dedication for the benefit - * of the public at large and to the detriment of our heirs and - * successors. We intend this dedication to be an overt act of - * relinquishment in perpetuity of all present and future rights to this - * software under copyright law. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * For more information, please refer to - */ - -package xyz.limepot.roses_mod.config; - -import com.mojang.datafixers.util.Pair; - -import java.util.ArrayList; -import java.util.List; - -public class ModConfigProvider implements SimpleConfig.DefaultConfig { - - private String configContents = ""; - - public List getConfigsList() { - return configsList; - } - - private final List configsList = new ArrayList<>(); - - public void addKeyValuePair(Pair keyValuePair, String comment) { - configsList.add(keyValuePair); - configContents += keyValuePair.getFirst() + "=" + keyValuePair.getSecond() + " #" - + comment + " | default: " + keyValuePair.getSecond() + "\n"; - } - - @Override - public String get(String namespace) { - return configContents; - } -} diff --git a/src/main/java/xyz/limepot/roses_mod/config/ModConfigs.java b/src/main/java/xyz/limepot/roses_mod/config/ModConfigs.java deleted file mode 100644 index 6bb52f5..0000000 --- a/src/main/java/xyz/limepot/roses_mod/config/ModConfigs.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * This is free and unencumbered software released into the public domain. - * - * Anyone is free to copy, modify, publish, use, compile, sell, or - * distribute this software, either in source code form or as a compiled - * binary, for any purpose, commercial or non-commercial, and by any - * means. - * - * In jurisdictions that recognize copyright laws, the author or authors - * of this software dedicate any and all copyright interest in the - * software to the public domain. We make this dedication for the benefit - * of the public at large and to the detriment of our heirs and - * successors. We intend this dedication to be an overt act of - * relinquishment in perpetuity of all present and future rights to this - * software under copyright law. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * For more information, please refer to - */ - -package xyz.limepot.roses_mod.config; - -import com.mojang.datafixers.util.Pair; -import xyz.limepot.roses_mod.RosesMod; - -public class ModConfigs { - public static SimpleConfig CONFIG; - private static ModConfigProvider configs; - - public static boolean BUSH_RECIP; - - /* - //EXAMPLES - public static String TEST; - public static int SOME_INT; - public static double SOME_DOUBLE; - public static int MAX_DAMAGE_DOWSING_ROD; - */ - - public static void registerConfigs() { - configs = new ModConfigProvider(); - createConfigs(); - - CONFIG = SimpleConfig.of(RosesMod.MOD_ID + "config").provider(configs).request(); - - assignConfigs(); - } - - private static void createConfigs() { - configs.addKeyValuePair(new Pair<>("bush.crafting.recipe.feature", true), "bool"); - ////EXAMPLES - //configs.addKeyValuePair(new Pair<>("key.test.value1", "Just a Testing string!"), "String"); - //configs.addKeyValuePair(new Pair<>("key.test.value2", 50), "int"); - //configs.addKeyValuePair(new Pair<>("key.test.value3", 4142.5), "double"); - //configs.addKeyValuePair(new Pair<>("dowsing.rod.max.damage", 32), "int"); - } - - private static void assignConfigs() { - BUSH_RECIP = Boolean.parseBoolean(CONFIG.getOrDefault("bush.crafting.recipe.feature", "false")); - ////EXAMPLES - //TEST = CONFIG.getOrDefault("key.test.value1", "Nothing"); - //SOME_INT = CONFIG.getOrDefault("key.test.value2", 42); - //SOME_DOUBLE = CONFIG.getOrDefault("key.test.value3", 42.0d); - //MAX_DAMAGE_DOWSING_ROD = CONFIG.getOrDefault("dowsing.rod.max.damage", 32); - - System.out.println("All " + configs.getConfigsList().size() + " have been set properly"); - } -} diff --git a/src/main/java/xyz/limepot/roses_mod/config/SimpleConfig.java b/src/main/java/xyz/limepot/roses_mod/config/SimpleConfig.java deleted file mode 100644 index 6347986..0000000 --- a/src/main/java/xyz/limepot/roses_mod/config/SimpleConfig.java +++ /dev/null @@ -1,283 +0,0 @@ -/* - * This is free and unencumbered software released into the public domain. - * - * Anyone is free to copy, modify, publish, use, compile, sell, or - * distribute this software, either in source code form or as a compiled - * binary, for any purpose, commercial or non-commercial, and by any - * means. - * - * In jurisdictions that recognize copyright laws, the author or authors - * of this software dedicate any and all copyright interest in the - * software to the public domain. We make this dedication for the benefit - * of the public at large and to the detriment of our heirs and - * successors. We intend this dedication to be an overt act of - * relinquishment in perpetuity of all present and future rights to this - * software under copyright law. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * For more information, please refer to - */ - -package xyz.limepot.roses_mod.config; - -/* - * Copyright (c) 2021 magistermaks - * Slightly modified by Kaupenjoe 2021 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.quiltmc.loader.api.QuiltLoader; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Scanner; - -public class SimpleConfig { - - private static final Logger LOGGER = LogManager.getLogger("SimpleConfig"); - private final HashMap config = new HashMap<>(); - private final ConfigRequest request; - private boolean broken = false; - - public interface DefaultConfig { - String get( String namespace ); - - static String empty( String namespace ) { - return ""; - } - } - - public static class ConfigRequest { - - private final File file; - private final String filename; - private DefaultConfig provider; - - private ConfigRequest(File file, String filename ) { - this.file = file; - this.filename = filename; - this.provider = DefaultConfig::empty; - } - - /** - * Sets the default config provider, used to generate the - * config if it's missing. - * - * @param provider default config provider - * @return current config request object - * @see DefaultConfig - */ - public ConfigRequest provider( DefaultConfig provider ) { - this.provider = provider; - return this; - } - - /** - * Loads the config from the filesystem. - * - * @return config object - * @see SimpleConfig - */ - public SimpleConfig request() { - return new SimpleConfig( this ); - } - - private String getConfig() { - return provider.get( filename ) + "\n"; - } - - } - - /** - * Creates new config request object, ideally `namespace` - * should be the name of the mod id of the requesting mod - * - * @param filename - name of the config file - * @return new config request object - */ - public static ConfigRequest of( String filename ) { - //Modified by LimePotato - Path path = QuiltLoader.getConfigDir(); - return new ConfigRequest( path.resolve( filename + ".properties" ).toFile(), filename ); - } - - private void createConfig() throws IOException { - - // try creating missing files - request.file.getParentFile().mkdirs(); - Files.createFile( request.file.toPath() ); - - // write default config data - PrintWriter writer = new PrintWriter(request.file, "UTF-8"); - writer.write( request.getConfig() ); - writer.close(); - - } - - private void loadConfig() throws IOException { - Scanner reader = new Scanner( request.file ); - for( int line = 1; reader.hasNextLine(); line ++ ) { - parseConfigEntry( reader.nextLine(), line ); - } - } - - // Modification by Kaupenjoe - private void parseConfigEntry( String entry, int line ) { - if( !entry.isEmpty() && !entry.startsWith( "#" ) ) { - String[] parts = entry.split("=", 2); - if( parts.length == 2 ) { - // Recognizes comments after a value - String temp = parts[1].split(" #")[0]; - config.put( parts[0], temp ); - }else{ - throw new RuntimeException("Syntax error in config file on line " + line + "!"); - } - } - } - - private SimpleConfig(ConfigRequest request ) { - this.request = request; - String identifier = "Config '" + request.filename + "'"; - - if( !request.file.exists() ) { - LOGGER.info( identifier + " is missing, generating default one..." ); - - try { - createConfig(); - } catch (IOException e) { - LOGGER.error( identifier + " failed to generate!" ); - LOGGER.trace( e ); - broken = true; - } - } - - if( !broken ) { - try { - loadConfig(); - } catch (Exception e) { - LOGGER.error( identifier + " failed to load!" ); - LOGGER.trace( e ); - broken = true; - } - } - - } - - /** - * Queries a value from config, returns `null` if the - * key does not exist. - * - * @return value corresponding to the given key - * @see SimpleConfig#getOrDefault - */ - @Deprecated - public String get( String key ) { - return config.get( key ); - } - - /** - * Returns string value from config corresponding to the given - * key, or the default string if the key is missing. - * - * @return value corresponding to the given key, or the default value - */ - public String getOrDefault( String key, String def ) { - String val = get(key); - return val == null ? def : val; - } - - /** - * Returns integer value from config corresponding to the given - * key, or the default integer if the key is missing or invalid. - * - * @return value corresponding to the given key, or the default value - */ - public int getOrDefault( String key, int def ) { - try { - return Integer.parseInt( get(key) ); - } catch (Exception e) { - return def; - } - } - - /** - * Returns boolean value from config corresponding to the given - * key, or the default boolean if the key is missing. - * - * @return value corresponding to the given key, or the default value - */ - public boolean getOrDefault( String key, boolean def ) { - String val = get(key); - if( val != null ) { - return val.equalsIgnoreCase("true"); - } - - return def; - } - - /** - * Returns double value from config corresponding to the given - * key, or the default string if the key is missing or invalid. - * - * @return value corresponding to the given key, or the default value - */ - public double getOrDefault( String key, double def ) { - try { - return Double.parseDouble( get(key) ); - } catch (Exception e) { - return def; - } - } - - /** - * If any error occurred during loading or reading from the config - * a 'broken' flag is set, indicating that the config's state - * is undefined and should be discarded using `delete()` - * - * @return the 'broken' flag of the configuration - */ - public boolean isBroken() { - return broken; - } - - /** - * deletes the config file from the filesystem - * - * @return true if the operation was successful - */ - public boolean delete() { - LOGGER.warn( "Config '" + request.filename + "' was removed from existence! Restart the game to regenerate it." ); - return request.file.delete(); - } - -} diff --git a/src/main/java/xyz/limepot/roses_mod/mixin/TitleScreenMixin.java b/src/main/java/xyz/limepot/roses_mod/mixin/TitleScreenMixin.java deleted file mode 100644 index 28db741..0000000 --- a/src/main/java/xyz/limepot/roses_mod/mixin/TitleScreenMixin.java +++ /dev/null @@ -1,16 +0,0 @@ -package xyz.limepot.roses_mod.mixin; - -import xyz.limepot.roses_mod.RosesMod; -import net.minecraft.client.gui.screen.TitleScreen; -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(TitleScreen.class) -public class TitleScreenMixin { - @Inject(method = "init", at = @At("TAIL")) - public void rosesMod$onInit(CallbackInfo ci) { - RosesMod.LOGGER.info(""); - } -} diff --git a/src/main/resources/quilt.mod.json b/src/main/resources/quilt.mod.json index b096004..e1271d6 100644 --- a/src/main/resources/quilt.mod.json +++ b/src/main/resources/quilt.mod.json @@ -38,7 +38,6 @@ } ] }, - "mixin": "roses_mod.mixins.json", "modmenu:api": true, "modmenu": { "update_checker": true, diff --git a/src/main/resources/roses_mod.mixins.json b/src/main/resources/roses_mod.mixins.json deleted file mode 100644 index 575e112..0000000 --- a/src/main/resources/roses_mod.mixins.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "required": true, - "minVersion": "0.8", - "package": "xyz.limepot.roses_mod.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [], - "client": [ - "TitleScreenMixin" - ], - "injectors": { - "defaultRequire": 1 - } -}