diff --git a/Common/src/main/java/com/terraformersmc/campanion/config/CampanionConfigManager.java b/Common/src/main/java/com/terraformersmc/campanion/config/CampanionConfigManager.java index 901b2a2e..e6a12c9a 100644 --- a/Common/src/main/java/com/terraformersmc/campanion/config/CampanionConfigManager.java +++ b/Common/src/main/java/com/terraformersmc/campanion/config/CampanionConfigManager.java @@ -7,6 +7,7 @@ public class CampanionConfigManager { private static File file; private static CampanionConfig config; + private static boolean TrinketsEnabled = false; private static void prepareBiomeConfigFile() { if (file != null) { @@ -69,4 +70,13 @@ public static void save() { public static CampanionConfig getConfig() { return config; } + + public static boolean IsTrinketsEnabled() { + return TrinketsEnabled; + } + + public static void setTrinketsSupport(boolean value){ + TrinketsEnabled = value; + } +} } diff --git a/Common/src/main/java/com/terraformersmc/campanion/network/C2SOpenBackpack.java b/Common/src/main/java/com/terraformersmc/campanion/network/C2SOpenBackpack.java index d411e2f7..0f66eb74 100644 --- a/Common/src/main/java/com/terraformersmc/campanion/network/C2SOpenBackpack.java +++ b/Common/src/main/java/com/terraformersmc/campanion/network/C2SOpenBackpack.java @@ -22,6 +22,11 @@ public static void handle(Supplier server, ServerPlayer player, // stack = component.getEquipped(itemStack -> itemStack.getItem() instanceof BackpackItem).get(0).getB(); // } // } + + if (CampanionConfigManager.IsTrinketsEnabled()) { + ItemStack temp = TrinketSupportFunc.apply(player); + if (temp != null) stack = temp; + } if (stack.getItem() instanceof BackpackItem) { BackpackItem.Type type = ((BackpackItem) stack.getItem()).type; diff --git a/Fabric/build.gradle b/Fabric/build.gradle index 1edba5fa..9bf72c1f 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -12,6 +12,7 @@ dependencies { mappings loom.officialMojangMappings() modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" + modImplementation "dev.emi:trinkets:${trinkets_version}" implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' implementation project(":Common") } diff --git a/Fabric/gradle.properties b/Fabric/gradle.properties index 41a6ccd9..8f6440f4 100644 --- a/Fabric/gradle.properties +++ b/Fabric/gradle.properties @@ -7,7 +7,7 @@ minecraft_version=1.19.2 dossier_version=0.6.0 reach_entity_attributes_version=2.1.1 #gravestones_version=v1.9 -trinkets_version=3.3.0 +trinkets_version=3.4.1 # CurseForge Metadata curseforge_slug=campanion diff --git a/Fabric/src/main/java/com/terraformersmc/campanion/CampanionFabric.java b/Fabric/src/main/java/com/terraformersmc/campanion/CampanionFabric.java index b944cece..0c2a1c66 100644 --- a/Fabric/src/main/java/com/terraformersmc/campanion/CampanionFabric.java +++ b/Fabric/src/main/java/com/terraformersmc/campanion/CampanionFabric.java @@ -18,6 +18,27 @@ public class CampanionFabric implements ModInitializer { @Override public void onInitialize() { Campanion.init(); + + CampanionConfigManager.setTrinketsSupport(FabricLoader.getInstance().isModLoaded("trinkets") && CampanionConfigManager.getConfig().isTrinketsBackpacksEnabled()); + //Support for trinkets + if (CampanionConfigManager.IsTrinketsEnabled()) { + TrinketsApi.registerTrinketPredicate(new ResourceLocation("campanion", "backpacks"), (stack, ref, entity) -> { + if (stack.is(CampanionItemTags.BACKPACKS)) { + return CampanionConfigManager.getConfig().isTrinketsBackpacksEnabled() ? TriState.TRUE : TriState.FALSE; + } + return TriState.DEFAULT; + }); + + C2SOpenBackpack.TrinketSupportFunc = (player) -> { + TrinketComponent component = TrinketsApi.getTrinketComponent(player).orElse(null); + if (component != null && component.isEquipped(itemStack -> itemStack.getItem() instanceof BackpackItem)) { + return component.getEquipped(itemStack -> itemStack.getItem() instanceof BackpackItem).get(0).getB(); + } + return null; + }; + } + + Campanion.registerDispenserBehavior(); CampanionStats.loadClass(); diff --git a/build.gradle b/build.gradle index 1d169b6a..2cf05ca0 100644 --- a/build.gradle +++ b/build.gradle @@ -47,6 +47,15 @@ subprojects { name = 'BlameJared Maven (CrT / Bookshelf)' url = 'https://maven.blamejared.com' } + + maven { + name = "TerraformersMC" + url = "https://maven.terraformersmc.com/" + } + maven { + name = "Ladysnake Libs" + url = "https://ladysnake.jfrog.io/artifactory/mods" + } } tasks.withType(JavaCompile).configureEach {