Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
matrix:
# Use these Java versions
java: [
21, # Current Java LTS
25, # Current Java LTS
]
runs-on: ubuntu-22.04
steps:
Expand All @@ -30,7 +30,7 @@ jobs:
- name: build
run: ./gradlew build
- name: capture build artifacts
if: ${{ matrix.java == '21' }} # Only upload artifacts built from latest java
if: ${{ matrix.java == '25' }} # Only upload artifacts built from latest java
uses: actions/upload-artifact@v4
with:
name: Artifacts
Expand Down
24 changes: 15 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'net.fabricmc.fabric-loom-remap' version '1.14-SNAPSHOT'
id 'net.fabricmc.fabric-loom' version "${loom_version}"
id 'maven-publish'
}

Expand All @@ -23,21 +23,27 @@ repositories {
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
implementation "net.fabricmc:fabric-loader:${project.loader_version}"

// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"

if (Boolean.valueOf(project.dependencies_enabled)) {
modApi("me.shedaniel.cloth:cloth-config-fabric:21.11.151") {
api("me.shedaniel.cloth:cloth-config-fabric:21.11.151") {
exclude(group: "net.fabricmc.fabric-api")
}
include "me.shedaniel.cloth:cloth-config-fabric:21.11.151"

modApi "com.terraformersmc:modmenu:17.0.0-alpha.1"
api "com.terraformersmc:modmenu:17.0.0-alpha.1"
}

implementation files(
"${rootProject.projectDir}/deps/vanillaoptionsapi-1.0.0.jar",
"${rootProject.projectDir}/deps/vanillaoptionsapi-1.0.0-sources.jar"
)

// include "${rootProject.projectDir}\\deps\\vanillaoptionsapi-1.0.0.jar"

implementation 'com.electronwill.night-config:json:3.6.6'

}
Expand All @@ -51,7 +57,7 @@ processResources {
}

tasks.withType(JavaCompile).configureEach {
it.options.release = 21
it.options.release = 25
}

java {
Expand All @@ -60,8 +66,8 @@ java {
// If you remove this line, sources will not be generated.
withSourcesJar()

sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_25
targetCompatibility = JavaVersion.VERSION_25
}

jar {
Expand Down
Binary file added deps/vanillaoptionsapi-1.0.0-sources.jar
Binary file not shown.
Binary file added deps/vanillaoptionsapi-1.0.0.jar
Binary file not shown.
14 changes: 7 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ org.gradle.parallel=true

# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.21.11
yarn_mappings=1.21.11+build.1
loader_version=0.18.1
minecraft_version=26.1-snapshot-11
loader_version=0.18.4
loom_version=1.15-SNAPSHOT

# Mod Properties
mod_version=1.5.0
maven_group=embin.strangeitems
mod_version=1.6.0-beta.1
maven_group=embinmc.mod
archives_base_name=strangeitems

# Dependencies
fabric_version=0.139.4+1.21.11
fabric_version=0.143.11+26.1

dependencies_enabled=true
dependencies_enabled=false
12 changes: 0 additions & 12 deletions src/main/java/embin/strangeitems/ModMenuIntegration.java

This file was deleted.

58 changes: 0 additions & 58 deletions src/main/java/embin/strangeitems/client/StrangeItemsClient.java

This file was deleted.

19 changes: 0 additions & 19 deletions src/main/java/embin/strangeitems/mixin/EnchantmentMixin.java

This file was deleted.

28 changes: 0 additions & 28 deletions src/main/java/embin/strangeitems/mixin/ExampleMixin.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package embinmc.mod.strangeitems;

import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import embinmc.mod.strangeitems.util.StrangeUtil;
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.component.CustomData;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.SimpleSmithingRecipe;
import net.minecraft.world.item.crafting.SmithingRecipeInput;
import net.minecraft.world.item.crafting.PlacementInfo;
import net.minecraft.world.level.Level;
import org.jspecify.annotations.NonNull;

import java.util.List;
import java.util.Optional;

public class CollectorsTransformRecipe extends SimpleSmithingRecipe {
private final Ingredient target, transformer;

public static final MapCodec<CollectorsTransformRecipe> CODEC = RecordCodecBuilder.mapCodec(c -> c.group(
Recipe.CommonInfo.MAP_CODEC.forGetter(o -> o.commonInfo),
Ingredient.CODEC.fieldOf("target").forGetter(o -> o.target),
Ingredient.CODEC.fieldOf("transformer").forGetter(o -> o.transformer)
).apply(c, CollectorsTransformRecipe::new));
public static final StreamCodec<RegistryFriendlyByteBuf, CollectorsTransformRecipe> STREAM_CODEC = StreamCodec.composite(
Recipe.CommonInfo.STREAM_CODEC,
o -> o.commonInfo,
Ingredient.CONTENTS_STREAM_CODEC,
o -> o.target,
Ingredient.CONTENTS_STREAM_CODEC,
o -> o.transformer,
CollectorsTransformRecipe::new
);
public static final RecipeSerializer<CollectorsTransformRecipe> SERIALIZER = new RecipeSerializer<>(CODEC, STREAM_CODEC);

protected CollectorsTransformRecipe(CommonInfo commonInfo, Ingredient target, Ingredient transformer) {
super(commonInfo);
this.target = target;
this.transformer = transformer;
}

@Override
public @NonNull ItemStack assemble(SmithingRecipeInput input) {
// dont override "custom data" component, modify it instead
ItemStack itemStack = new ItemStack(input.base().typeHolder(), input.base().count(), input.base().getComponentsPatch());
itemStack.update(DataComponents.CUSTOM_DATA, CustomData.EMPTY, cd -> cd.update(nbt -> nbt.putBoolean(StrangeUtil.COLLECTORS_ITEM_TAG, true)));
return itemStack;
}

@Override
public boolean matches(@NonNull SmithingRecipeInput input, @NonNull Level level) {
// require base and addition items to be the same
return super.matches(input, level) && input.base().getItem() == input.addition().getItem();
}

@Override
public @NonNull RecipeSerializer<? extends SimpleSmithingRecipe> getSerializer() {
return CollectorsTransformRecipe.SERIALIZER;
}

@Override
public @NonNull Optional<Ingredient> templateIngredient() {
return Optional.of(this.transformer);
}

@Override
public @NonNull Ingredient baseIngredient() {
return this.target;
}

@Override
public @NonNull Optional<Ingredient> additionIngredient() {
return Optional.of(this.target);
}

@Override
protected @NonNull PlacementInfo createPlacementInfo() {
return PlacementInfo.create(List.of(
this.transformer,
this.target,
this.target
));
}
}
11 changes: 11 additions & 0 deletions src/main/java/embinmc/mod/strangeitems/ModMenuIntegration.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package embinmc.mod.strangeitems;

// import com.terraformersmc.modmenu.api.ConfigScreenFactory;
// import com.terraformersmc.modmenu.api.ModMenuApi;

public class ModMenuIntegration /*implements ModMenuApi*/ {
// @Override
// public ConfigScreenFactory<?> getModConfigScreenFactory() {
// return parent -> ConfigScreen.configBuilder(parent).build();
// }
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package embin.strangeitems;
package embinmc.mod.strangeitems;

import embin.strangeitems.event.ServerPlayerEvents;
import embin.strangeitems.tracker.Trackers;
import embin.strangeitems.util.Id;
import embinmc.mod.strangeitems.event.ServerPlayerEvents;
import embinmc.mod.strangeitems.tracker.Trackers;
import embinmc.mod.strangeitems.util.Id;
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.Identifier;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package embin.strangeitems;
package embinmc.mod.strangeitems;

import embin.strangeitems.tracker.Trackers;
import embinmc.mod.strangeitems.tracker.Trackers;
import embinmc.mod.strangeitems.util.Id;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.event.lifecycle.v1.*;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -24,6 +26,7 @@ public void onInitialize() {
StrangeItemsComponents.init();

SIRegisteredEvents.registerEvents();
Registry.register(BuiltInRegistries.RECIPE_SERIALIZER, Id.of("smithing_collectors"), CollectorsTransformRecipe.SERIALIZER);

LOGGER.info("These items... they're strange...");
//StrangeItems.LOGGER.info("Reading config...");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package embin.strangeitems;
package embinmc.mod.strangeitems;

import embin.strangeitems.util.Id;
import embinmc.mod.strangeitems.util.Id;
import net.minecraft.core.Registry;
import net.minecraft.core.component.DataComponentType;
import net.minecraft.core.registries.BuiltInRegistries;
Expand All @@ -16,6 +16,7 @@ public class StrangeItemsComponents {
);
*/

@Deprecated
public static final DataComponentType<Unit> COLLECTORS_ITEM = Registry.register(
BuiltInRegistries.DATA_COMPONENT_TYPE,
Id.of("strangeitems:collectors_item"),
Expand All @@ -25,6 +26,7 @@ public class StrangeItemsComponents {
/**
* Items with this component will have every registered tracker on them and will increment them accordingly if they're capable of doing so.
*/
@Deprecated
public static final DataComponentType<Unit> HAS_ALL_TRACKERS = Registry.register(
BuiltInRegistries.DATA_COMPONENT_TYPE,
Id.of("strangeitems:has_all_trackers"),
Expand Down
Loading