Skip to content

Commit

Permalink
chore: ported to 1.20.6
Browse files Browse the repository at this point in the history
Note: most non-FTB dependencies not ported yet
  • Loading branch information
desht committed May 20, 2024
1 parent 2bc86a4 commit 77f6ffa
Show file tree
Hide file tree
Showing 23 changed files with 70 additions and 82 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
with:
curse-publish-task: ""
maven-snapshots: true
java-version: 21
secrets:
ftb-maven-token: ${{ secrets.FTB_MAVEN_TOKEN }}
saps-token: ${{ secrets.SAPS_TOKEN }}
saps-token: ${{ secrets.SAPS_TOKEN }}
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ jobs:
uses: FTBTeam/mods-meta/.github/workflows/standard-release.yml@main
with:
curse-publish-task: curseforge
java-version: 21
secrets:
ftb-maven-token: ${{ secrets.FTB_MAVEN_TOKEN }}
saps-token: ${{ secrets.SAPS_TOKEN }}
curse-token: ${{ secrets.CURSEFORGE_KEY }}
curse-token: ${{ secrets.CURSEFORGE_KEY }}
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
}

architectury {
Expand Down Expand Up @@ -83,7 +83,7 @@ allprojects {

tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
options.release = 21
}

java {
Expand Down
2 changes: 1 addition & 1 deletion common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ dependencies {

compileOnly("net.luckperms:api:${rootProject.luckperms_api_version}")

modCompileOnlyApi "dev.latvian.mods:kubejs:${rootProject.kubejs_version}"
modCompileOnlyApi "dev.latvian.mods:kubejs-neoforge:${rootProject.kubejs_version}"
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ public ServerPlayer getPlayer() {
}

public BlockPos getClaimPos() {
return chunk.getPos().getChunkPos().getWorldPosition();
return chunk.getPos().chunkPos().getWorldPosition();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.ftb.mods.ftbxmodcompat.ftbquests.jei;

import dev.ftb.mods.ftbquests.client.ClientQuestFile;
import dev.ftb.mods.ftbquests.registry.ModDataComponents;
import dev.ftb.mods.ftbxmodcompat.FTBXModCompat;
import dev.ftb.mods.ftbxmodcompat.ftbquests.QuestItems;
import mezz.jei.api.IModPlugin;
Expand Down Expand Up @@ -38,7 +39,7 @@ public ResourceLocation getPluginUid() {
public void registerItemSubtypes(ISubtypeRegistration r) {
if (FTBXModCompat.isFTBQuestsLoaded) {
r.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, QuestItems.lootCrate(),
(stack, uidContext) -> stack.hasTag() ? stack.getTag().getString("type") : "");
(stack, uidContext) -> stack.getOrDefault(ModDataComponents.LOOT_CRATE.get(), ""));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.mojang.blaze3d.vertex.PoseStack;
import dev.ftb.mods.ftblibrary.ui.GuiHelper;
import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.quest.loot.WeightedReward;
import dev.ftb.mods.ftbquests.registry.ModItems;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.LootCrateTextRenderer;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.WrappedLootCrate;
import mezz.jei.api.constants.VanillaTypes;
Expand Down Expand Up @@ -51,7 +51,7 @@ public void draw(GuiGraphics graphics, int xOffset, int yOffset) {
if (!crates.isEmpty()) {
GuiHelper.drawItem(graphics, crates.get((int) ((System.currentTimeMillis() / 1000L) % crates.size())).crateStack, 0, true, null);
} else {
GuiHelper.drawItem(graphics, new ItemStack(FTBQuestsItems.LOOTCRATE.get()), 0, true, null);
GuiHelper.drawItem(graphics, new ItemStack(ModItems.LOOTCRATE.get()), 0, true, null);
}

poseStack.popPose();
Expand Down Expand Up @@ -87,7 +87,7 @@ public void setRecipe(IRecipeLayoutBuilder builder, WrappedLootCrate recipe, IFo
.addIngredients(() -> Ingredient.class, recipe.outputIngredients())
.addTooltipCallback((recipeSlotView, tooltip) -> recipeSlotView.getDisplayedIngredient()
.flatMap(ingr -> ingr.getIngredient(VanillaTypes.ITEM_STACK)).ifPresent(stack -> {
if (ItemStack.isSameItemSameTags(stack, recipe.outputs.get(finalSlot))) {
if (ItemStack.isSameItemSameComponents(stack, recipe.outputs.get(finalSlot))) {
String chanceStr = ChatFormatting.GOLD + WeightedReward.chanceString(
recipe.sortedRewards.get(finalSlot).getWeight(),
recipe.crate.getTable().getTotalWeight(true)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.ftb.mods.ftbxmodcompat.ftbquests.jei;

import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.registry.ModItems;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.WrappedLootCrate;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.WrappedLootCrateCache;
import mezz.jei.api.constants.VanillaTypes;
Expand Down Expand Up @@ -33,7 +33,7 @@ public enum LootCrateRecipeManagerPlugin implements IRecipeManagerPlugin {
public <V> List<RecipeType<?>> getRecipeTypes(IFocus<V> focus) {
if (focus.getTypedValue().getIngredient() instanceof ItemStack stack)
if (focus.getRole() == RecipeIngredientRole.INPUT) {
if (stack.getItem() == FTBQuestsItems.LOOTCRATE.get()) {
if (stack.getItem() == ModItems.LOOTCRATE.get()) {
return List.of(JEIRecipeTypes.LOOT_CRATE);
}
} else if (focus.getRole() == RecipeIngredientRole.OUTPUT) {
Expand All @@ -48,7 +48,7 @@ public <V> List<RecipeType<?>> getRecipeTypes(IFocus<V> focus) {
@Override
public <T, V> List<T> getRecipes(IRecipeCategory<T> recipeCategory, IFocus<V> focus) {
if (recipeCategory instanceof LootCrateCategory && focus.getTypedValue().getIngredient() instanceof ItemStack stack) {
if (stack.getItem() == FTBQuestsItems.LOOTCRATE.get() && focus.getRole() == RecipeIngredientRole.CATALYST) {
if (stack.getItem() == ModItems.LOOTCRATE.get() && focus.getRole() == RecipeIngredientRole.CATALYST) {
// safe to cast here since we've checked the category
//noinspection unchecked
return (List<T>) cache.getWrappedLootCrates();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.mojang.blaze3d.platform.InputConstants;
import dev.ftb.mods.ftbquests.api.FTBQuestsAPI;
import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.registry.ModItems;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.WrappedQuest;
import mezz.jei.api.constants.VanillaTypes;
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
Expand All @@ -29,7 +29,7 @@ public class QuestCategory implements IRecipeCategory<WrappedQuest> {

public QuestCategory(IGuiHelper guiHelper) {
background = guiHelper.createDrawable(TEXTURE, 0, 0, 144, 74);
icon = guiHelper.createDrawableIngredient(VanillaTypes.ITEM_STACK, new ItemStack(FTBQuestsItems.BOOK.get()));
icon = guiHelper.createDrawableIngredient(VanillaTypes.ITEM_STACK, new ItemStack(ModItems.BOOK.get()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.ftb.mods.ftbxmodcompat.ftbquests.jei;

import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.registry.ModItems;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.WrappedQuestCache;
import mezz.jei.api.recipe.IFocus;
import mezz.jei.api.recipe.RecipeIngredientRole;
Expand All @@ -24,7 +24,7 @@ public void refresh() {
public <T, V> List<T> getRecipes(IRecipeCategory<T> recipeCategory, IFocus<V> focus) {
if (recipeCategory instanceof QuestCategory && focus.getTypedValue().getIngredient() instanceof ItemStack stack) {
// (List<T>) casts should be safe since we've verified the category
if (stack.getItem() == FTBQuestsItems.BOOK.get() && focus.getRole() == RecipeIngredientRole.CATALYST) {
if (stack.getItem() == ModItems.BOOK.get() && focus.getRole() == RecipeIngredientRole.CATALYST) {
//noinspection unchecked
return (List<T>) cache.getCachedItems();
}
Expand All @@ -50,7 +50,7 @@ public <T> List<T> getRecipes(IRecipeCategory<T> recipeCategory) {
@Override
public <V> List<RecipeType<?>> getRecipeTypes(IFocus<V> focus) {
if (focus.getTypedValue().getIngredient() instanceof ItemStack stack) {
if (focus.getRole() == RecipeIngredientRole.INPUT && (stack.getItem() == FTBQuestsItems.BOOK.get() || !cache.findQuestsWithInput(stack).isEmpty())
if (focus.getRole() == RecipeIngredientRole.INPUT && (stack.getItem() == ModItems.BOOK.get() || !cache.findQuestsWithInput(stack).isEmpty())
|| focus.getRole() == RecipeIngredientRole.OUTPUT && !cache.findQuestsWithOutput(stack).isEmpty()) {
return List.of(JEIRecipeTypes.QUEST);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ public boolean addProgress(Object id, long progress) {
public void changeProgress(Object id, Consumer<ProgressChange> consumer) {
TeamData data = getData();
QuestObjectBase origin = data.getFile().getBase(data.getFile().getID(id));
ProgressChange progressChange = new ProgressChange(data.getFile(), origin, Util.NIL_UUID);

if (origin != null) {
ProgressChange progressChange = new ProgressChange(origin, Util.NIL_UUID);
consumer.accept(progressChange);
origin.forceProgressRaw(data, progressChange);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import it.unimi.dsi.fastutil.Hash;
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;

import java.util.List;
Expand Down Expand Up @@ -40,18 +39,12 @@ public void clear() {
private static class ItemStackHashingStrategy implements Hash.Strategy<ItemStack> {
@Override
public int hashCode(ItemStack object) {
int hashCode = Item.getId(object.getItem());
if (object.getTag() != null)
hashCode += 37 * object.getTag().hashCode();
return hashCode;
return ItemStack.hashItemAndComponents(object);
}

@Override
public boolean equals(ItemStack o1, ItemStack o2) {
return (o1 == o2) ||
o1 != null && o2 != null
&& o1.getItem() == o2.getItem()
&& (o1.getTag() == null || o1.getTag().equals(o2.getTag()));
return ItemStack.isSameItemSameComponents(o1, o2);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import dev.ftb.mods.ftblibrary.icon.ItemIcon;
import dev.ftb.mods.ftbquests.quest.loot.LootCrate;
import dev.ftb.mods.ftbquests.quest.loot.WeightedReward;
import net.minecraft.nbt.StringTag;
import net.minecraft.core.component.DataComponents;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
Expand Down Expand Up @@ -37,12 +37,12 @@ public WrappedLootCrate(LootCrate c) {
outputs.add(stack.copy());
} else if (reward.getReward().getIcon() instanceof ItemIcon) {
stack = ((ItemIcon) reward.getReward().getIcon()).getStack().copy();
stack.setHoverName(reward.getReward().getTitle());
stack.set(DataComponents.CUSTOM_NAME, reward.getReward().getTitle());
outputs.add(stack);
} else {
stack = new ItemStack(Items.PAINTING);
stack.setHoverName(reward.getReward().getTitle());
stack.addTagElement("icon", StringTag.valueOf(reward.getReward().getIcon().toString()));
stack.set(DataComponents.CUSTOM_NAME, reward.getReward().getTitle());
// stack.addTagElement("icon", StringTag.valueOf(reward.getReward().getIcon().toString()));
outputs.add(stack);
}
}
Expand All @@ -51,7 +51,7 @@ public WrappedLootCrate(LootCrate c) {
cycledOutputs = new ArrayList<>(outputs.size());

for (ItemStack stack : outputs) {
cycledOutputs.add(Collections.singletonList(stack));
cycledOutputs.add(List.of(stack));
}
} else {
// too many items to fit in display; cycle them
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public List<WrappedLootCrate> findCratesWithOutput(ItemStack stack) {

public List<WrappedLootCrate> findCratesWithInput(ItemStack stack) {
return inputCache.getList(stack, k -> getWrappedLootCrates().stream()
.filter(crate -> ItemStack.isSameItemSameTags(crate.crateStack, stack))
.filter(crate -> ItemStack.isSameItemSameComponents(crate.crateStack, stack))
.toList()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@
import dev.ftb.mods.ftbquests.quest.reward.Reward;
import dev.ftb.mods.ftbquests.quest.task.ItemTask;
import dev.ftb.mods.ftbquests.quest.task.Task;
import net.minecraft.nbt.StringTag;
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

Expand Down Expand Up @@ -52,12 +53,12 @@ public WrappedQuest(Quest q, List<Reward> rewards) {
input.add(List.copyOf(ItemMatchingSystem.INSTANCE.getAllMatchingStacks(stack)));
} else if (task.getIcon() instanceof ItemIcon itemIcon) {
stack = itemIcon.getStack().copy();
stack.setHoverName(task.getTitle());
stack.set(DataComponents.CUSTOM_NAME, task.getTitle());
input.add(Collections.singletonList(stack));
} else {
stack = new ItemStack(Items.PAINTING);
stack.setHoverName(task.getTitle());
stack.addTagElement("icon", StringTag.valueOf(task.getIcon().toString()));
stack.set(DataComponents.CUSTOM_NAME, task.getTitle());
// stack.addTagElement("icon", StringTag.valueOf(task.getIcon().toString()));
input.add(Collections.singletonList(stack));
}
}
Expand Down Expand Up @@ -88,7 +89,7 @@ public WrappedQuest(Quest q, List<Reward> rewards) {
ImmutableList.Builder<ItemStack> builder = ImmutableList.builder();
if (table.shouldShowTooltip()) {
ItemStack unknown = new ItemStack(Items.BARRIER);
unknown.setHoverName(Component.literal("Unknown Reward"));
unknown.set(DataComponents.CUSTOM_NAME, Component.literal("Unknown Reward"));
builder.add(unknown);
} else {
for (WeightedReward wr : table.getWeightedRewards()) {
Expand All @@ -101,12 +102,12 @@ public WrappedQuest(Quest q, List<Reward> rewards) {
}
} else if (reward.getIcon() instanceof ItemIcon itemIcon) {
stack = itemIcon.getStack().copy();
stack.setHoverName(reward.getTitle());
stack.set(DataComponents.CUSTOM_NAME, reward.getTitle());
output.add(Collections.singletonList(stack));
} else {
stack = new ItemStack(Items.PAINTING);
stack.setHoverName(reward.getTitle());
stack.addTagElement("icon", StringTag.valueOf(reward.getIcon().toString()));
stack.set(DataComponents.CUSTOM_NAME, reward.getTitle());
// stack.addTagElement("icon", StringTag.valueOf(reward.getIcon().toString()));
output.add(Collections.singletonList(stack));
}
}
Expand All @@ -121,21 +122,11 @@ public List<Ingredient> outputIngredients() {
}

public boolean hasInput(ItemStack stack) {
for (var l : input) {
for (var stack1 : l) {
if (ItemStack.isSameItemSameTags(stack1, stack)) return true;
}
}
return false;
return input.stream().flatMap(Collection::stream).anyMatch(stack1 -> ItemStack.isSameItemSameComponents(stack1, stack));
}

public boolean hasOutput(ItemStack stack) {
for (var l : output) {
for (var stack1 : l) {
if (ItemStack.isSameItemSameTags(stack1, stack)) return true;
}
}
return false;
return output.stream().flatMap(Collection::stream).anyMatch(stack1 -> ItemStack.isSameItemSameComponents(stack1, stack));
}

public void openQuestGui() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.ftb.mods.ftbxmodcompat.ftbquests.rei;

import com.google.common.collect.Lists;
import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.quest.loot.WeightedReward;
import dev.ftb.mods.ftbquests.registry.ModItems;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.LootCrateTextRenderer;
import dev.ftb.mods.ftbxmodcompat.ftbquests.recipemod_common.WrappedLootCrate;
import me.shedaniel.math.Point;
Expand Down Expand Up @@ -34,7 +34,7 @@ public Component getTitle() {

@Override
public Renderer getIcon() {
return EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(FTBQuestsItems.LOOTCRATE.get()));
return EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(ModItems.LOOTCRATE.get()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.ftb.mods.ftbxmodcompat.ftbquests.rei;

import com.google.common.collect.Lists;
import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.registry.ModItems;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.gui.Renderer;
Expand Down Expand Up @@ -32,7 +32,7 @@ public Component getTitle() {

@Override
public Renderer getIcon() {
return EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(FTBQuestsItems.BOOK.get()));
return EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(ModItems.BOOK.get()));
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ dependencies {

modCompileOnly("eu.pb4:common-protection-api:${common_prot_api_version}") { transitive = false }

modCompileOnly "dev.latvian.mods:kubejs-fabric:${rootProject.kubejs_version}"
// modCompileOnly "dev.latvian.mods:kubejs-fabric:${rootProject.kubejs_version}"
modImplementation "me.shedaniel:RoughlyEnoughItems-fabric:${rootProject.rei_version}"

// compile-only because for some reason loom isn't deobfuscating these...
Expand Down
Loading

0 comments on commit 77f6ffa

Please sign in to comment.