From 67a0070395a75771ba0c85fbe4e04226b638c44a Mon Sep 17 00:00:00 2001 From: Sunskimmer822 <92886026+Sunskimmer822@users.noreply.github.com> Date: Fri, 18 Mar 2022 09:36:11 -0700 Subject: [PATCH] config and copper --- build.gradle | 20 +- .../java/net/serenas/shitmod/MyContainer.java | 7 + .../java/net/serenas/shitmod/Shitmod.java | 5 + .../net/serenas/shitmod/SimpleConfig.java | 251 ------------------ .../net/serenas/shitmod/blazeMetalSword.java | 1 - .../java/net/serenas/shitmod/configGroup.java | 21 ++ .../java/net/serenas/shitmod/copperAxe.java | 12 + .../java/net/serenas/shitmod/copperHoe.java | 12 + .../net/serenas/shitmod/copperPickaxe.java | 12 + .../net/serenas/shitmod/copperShovel.java | 12 + .../java/net/serenas/shitmod/copperSword.java | 12 + .../shitmod/explosionAspectEnchantment.java | 2 +- 12 files changed, 109 insertions(+), 258 deletions(-) create mode 100644 src/main/java/net/serenas/shitmod/MyContainer.java delete mode 100644 src/main/java/net/serenas/shitmod/SimpleConfig.java create mode 100644 src/main/java/net/serenas/shitmod/configGroup.java create mode 100644 src/main/java/net/serenas/shitmod/copperAxe.java create mode 100644 src/main/java/net/serenas/shitmod/copperHoe.java create mode 100644 src/main/java/net/serenas/shitmod/copperPickaxe.java create mode 100644 src/main/java/net/serenas/shitmod/copperShovel.java create mode 100644 src/main/java/net/serenas/shitmod/copperSword.java diff --git a/build.gradle b/build.gradle index 2a1deb8..94aac8c 100644 --- a/build.gradle +++ b/build.gradle @@ -11,17 +11,24 @@ version = project.mod_version group = project.maven_group repositories { - // Add repositories to retrieve artifacts from in here. - // You should only use this when depending on other mods because - // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html - // for more information about repositories. + maven { + url 'https://jitpack.io' + } + maven { + url "https://maven.terraformersmc.com/" + } + maven { + url "https://maven.shedaniel.me/" + } + } repositories { maven {url = "https://maven.kyrptonaught.dev"} } + + dependencies { // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" @@ -33,6 +40,9 @@ dependencies { modImplementation 'net.kyrptonaught:customportalapi:0.0.1-beta47-1.18' include 'net.kyrptonaught:customportalapi:0.0.1-beta47-1.18' + + modImplementation("com.gitlab.Lortseam:completeconfig:1.3.3") + include 'com.gitlab.Lortseam:completeconfig:1.3.3' } processResources { diff --git a/src/main/java/net/serenas/shitmod/MyContainer.java b/src/main/java/net/serenas/shitmod/MyContainer.java new file mode 100644 index 0000000..f496127 --- /dev/null +++ b/src/main/java/net/serenas/shitmod/MyContainer.java @@ -0,0 +1,7 @@ +package net.serenas.shitmod; + +import me.lortseam.completeconfig.api.ConfigContainer; + +public class MyContainer implements ConfigContainer { + +} diff --git a/src/main/java/net/serenas/shitmod/Shitmod.java b/src/main/java/net/serenas/shitmod/Shitmod.java index be1b5f4..3cdca12 100644 --- a/src/main/java/net/serenas/shitmod/Shitmod.java +++ b/src/main/java/net/serenas/shitmod/Shitmod.java @@ -1,5 +1,6 @@ package net.serenas.shitmod; +import me.lortseam.completeconfig.data.Config; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; @@ -36,6 +37,8 @@ public class Shitmod implements ModInitializer { new Identifier("shitmod", "tools"), () -> new ItemStack(Shitmod.BLAZE_METAL_SHOVEL)); + public static final Config config = new Config("shitmod", new MyContainer(), new configGroup()); + public static final Item FABRIC_ITEM = new FabricItem(new Item.Settings().group(Shitmod.GENERAL_GROUP)); public static final Block FABRIC_BLOCK = new FabricBlock(); @@ -91,6 +94,8 @@ public class Shitmod implements ModInitializer { @Override public void onInitialize() { + config.load(); + Registry.register(Registry.ITEM, new Identifier("shitmod", "fabric_item"), FABRIC_ITEM); Registry.register(Registry.BLOCK, new Identifier("shitmod", "fabric_block"), FABRIC_BLOCK); diff --git a/src/main/java/net/serenas/shitmod/SimpleConfig.java b/src/main/java/net/serenas/shitmod/SimpleConfig.java deleted file mode 100644 index 3ca97ad..0000000 --- a/src/main/java/net/serenas/shitmod/SimpleConfig.java +++ /dev/null @@ -1,251 +0,0 @@ -package net.serenas.shitmod; - -/* - * Copyright (c) 2021 magistermaks - * - * 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 net.fabricmc.loader.api.FabricLoader; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -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 ) { - Path path = FabricLoader.getInstance().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 ); - } - } - - private void parseConfigEntry( String entry, int line ) { - if( !entry.isEmpty() && !entry.startsWith( "#" ) ) { - String[] parts = entry.split("=", 2); - if( parts.length == 2 ) { - config.put( parts[0], parts[1] ); - }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/net/serenas/shitmod/blazeMetalSword.java b/src/main/java/net/serenas/shitmod/blazeMetalSword.java index 0d9e586..7f63f2c 100644 --- a/src/main/java/net/serenas/shitmod/blazeMetalSword.java +++ b/src/main/java/net/serenas/shitmod/blazeMetalSword.java @@ -17,7 +17,6 @@ public class blazeMetalSword extends SwordItem { public blazeMetalSword(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings) { super(toolMaterial, attackDamage, attackSpeed, settings); } - @Override public TypedActionResult use(World World, PlayerEntity PlayerEntity, Hand Hand) { diff --git a/src/main/java/net/serenas/shitmod/configGroup.java b/src/main/java/net/serenas/shitmod/configGroup.java new file mode 100644 index 0000000..bf1553d --- /dev/null +++ b/src/main/java/net/serenas/shitmod/configGroup.java @@ -0,0 +1,21 @@ +package net.serenas.shitmod; + +import me.lortseam.completeconfig.api.ConfigEntry; +import me.lortseam.completeconfig.api.ConfigGroup; + +public class configGroup implements ConfigGroup { + @ConfigEntry + private int swordFireballStrengthMultiplier = 1; + @ConfigEntry + private int axeFireballStrengthMultiplier = 1; + @ConfigEntry + private int explosionAspectStrengthMultiplier = 1; + @ConfigEntry + private int explosiveThornsStrengthMultiplier = 1; + + public void setSetting(int explosionAspectStrengthMultiplier) { + this.explosionAspectStrengthMultiplier = explosionAspectStrengthMultiplier; + + } + +} diff --git a/src/main/java/net/serenas/shitmod/copperAxe.java b/src/main/java/net/serenas/shitmod/copperAxe.java new file mode 100644 index 0000000..780fd19 --- /dev/null +++ b/src/main/java/net/serenas/shitmod/copperAxe.java @@ -0,0 +1,12 @@ +package net.serenas.shitmod; + +import net.minecraft.item.AxeItem; +import net.minecraft.item.ToolMaterial; + +public class copperAxe extends AxeItem { + + protected copperAxe(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + +} diff --git a/src/main/java/net/serenas/shitmod/copperHoe.java b/src/main/java/net/serenas/shitmod/copperHoe.java new file mode 100644 index 0000000..46d6eca --- /dev/null +++ b/src/main/java/net/serenas/shitmod/copperHoe.java @@ -0,0 +1,12 @@ +package net.serenas.shitmod; + +import net.minecraft.item.HoeItem; +import net.minecraft.item.ToolMaterial; + +public class copperHoe extends HoeItem { + + protected copperHoe(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + +} diff --git a/src/main/java/net/serenas/shitmod/copperPickaxe.java b/src/main/java/net/serenas/shitmod/copperPickaxe.java new file mode 100644 index 0000000..c63678e --- /dev/null +++ b/src/main/java/net/serenas/shitmod/copperPickaxe.java @@ -0,0 +1,12 @@ +package net.serenas.shitmod; + +import net.minecraft.item.PickaxeItem; +import net.minecraft.item.ToolMaterial; + +public class copperPickaxe extends PickaxeItem { + + protected copperPickaxe(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + +} diff --git a/src/main/java/net/serenas/shitmod/copperShovel.java b/src/main/java/net/serenas/shitmod/copperShovel.java new file mode 100644 index 0000000..f5338db --- /dev/null +++ b/src/main/java/net/serenas/shitmod/copperShovel.java @@ -0,0 +1,12 @@ +package net.serenas.shitmod; + +import net.minecraft.item.ShovelItem; +import net.minecraft.item.ToolMaterial; + +public class copperShovel extends ShovelItem{ + + public copperShovel(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + +} diff --git a/src/main/java/net/serenas/shitmod/copperSword.java b/src/main/java/net/serenas/shitmod/copperSword.java new file mode 100644 index 0000000..a093550 --- /dev/null +++ b/src/main/java/net/serenas/shitmod/copperSword.java @@ -0,0 +1,12 @@ +package net.serenas.shitmod; + +import net.minecraft.item.SwordItem; +import net.minecraft.item.ToolMaterial; + +public class copperSword extends SwordItem { + + public copperSword(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings) { + super(toolMaterial, attackDamage, attackSpeed, settings); + } + +} diff --git a/src/main/java/net/serenas/shitmod/explosionAspectEnchantment.java b/src/main/java/net/serenas/shitmod/explosionAspectEnchantment.java index a220ec0..9904e7d 100644 --- a/src/main/java/net/serenas/shitmod/explosionAspectEnchantment.java +++ b/src/main/java/net/serenas/shitmod/explosionAspectEnchantment.java @@ -14,7 +14,7 @@ public class explosionAspectEnchantment extends Enchantment { super(Enchantment.Rarity.RARE, EnchantmentTarget.WEAPON, new EquipmentSlot[] {EquipmentSlot.MAINHAND}); } - + @Override public int getMinPower(int level) { return 100;