Skip to content

Commit

Permalink
chore: initial port to 1.20.1
Browse files Browse the repository at this point in the history
Note: all external soft dependencies removed (KubeJS, JEI, REI, Game Stages...)
These will be reimplemented via the FTB XMod Compat 1.20.1 port
  • Loading branch information
desht committed Jul 14, 2023
1 parent 1689d21 commit fd9ae23
Show file tree
Hide file tree
Showing 164 changed files with 1,127 additions and 2,748 deletions.
12 changes: 10 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 "0.12.0-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.2-SNAPSHOT" apply false
id "com.matthewprenger.cursegradle" version "1.4.0" apply false
}

Expand Down Expand Up @@ -49,7 +49,15 @@ allprojects {
}

maven {
url "https://maven.saps.dev/minecraft"
url "https://maven.saps.dev/releases"
content {
includeGroup "dev.latvian.mods"
includeGroup "dev.ftb.mods"
}
}

maven {
url "https://maven.saps.dev/snapshots"
content {
includeGroup "dev.latvian.mods"
includeGroup "dev.ftb.mods"
Expand Down
4 changes: 0 additions & 4 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ dependencies {
modApi("dev.ftb.mods:ftb-library:${rootProject.ftb_library_version}") { transitive false }
modApi "dev.ftb.mods:ftb-teams:${rootProject.ftb_teams_version}"
modApi "dev.latvian.mods:item-filters:${rootProject.itemfilters_version}"

modCompileOnly "me.shedaniel:RoughlyEnoughItems-api:${rootProject.rei_version}"

modImplementation "dev.latvian.mods:kubejs:${rootProject.kubejs_version}"
}

def ENV = System.getenv()
Expand Down
22 changes: 16 additions & 6 deletions common/src/main/java/dev/ftb/mods/ftbquests/FTBQuests.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package dev.ftb.mods.ftbquests;

import dev.architectury.registry.CreativeTabRegistry;
import dev.architectury.utils.EnvExecutor;
import dev.ftb.mods.ftbquests.client.FTBQuestsClient;
import dev.ftb.mods.ftbquests.client.FTBQuestsNetClient;
import dev.ftb.mods.ftbquests.item.FTBQuestsItems;
import dev.ftb.mods.ftbquests.integration.RecipeModHelper;
import dev.ftb.mods.ftbquests.net.FTBQuestsNetHandler;
import dev.ftb.mods.ftbquests.quest.reward.RewardTypes;
import dev.ftb.mods.ftbquests.quest.task.TaskTypes;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Objects;

public class FTBQuests {
public static final String MOD_ID = "ftbquests";
public static final Logger LOGGER = LogManager.getLogger("FTB Quests");
Expand All @@ -23,7 +21,8 @@ public class FTBQuests {
public static FTBQuestsCommon PROXY;
public static FTBQuestsNetCommon NET_PROXY;

public static final CreativeModeTab ITEM_GROUP = CreativeTabRegistry.create(new ResourceLocation(FTBQuests.MOD_ID, FTBQuests.MOD_ID), () -> new ItemStack(FTBQuestsItems.BOOK.get()));
private static RecipeModHelper recipeModHelper;
private static final RecipeModHelper NO_OP_HELPER = new RecipeModHelper.NoOp();

public FTBQuests() {
TaskTypes.init();
Expand All @@ -36,6 +35,17 @@ public FTBQuests() {
PROXY.init();
}

public static RecipeModHelper getRecipeModHelper() {
return Objects.requireNonNullElse(recipeModHelper, NO_OP_HELPER);
}

public static void setRecipeModHelper(RecipeModHelper recipeModHelper) {
if (FTBQuests.recipeModHelper != null) {
throw new IllegalStateException("recipe mod helper has already been initialised!");
}
FTBQuests.recipeModHelper = recipeModHelper;
}

public void setup() {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
import dev.ftb.mods.ftbquests.quest.task.Task;
import dev.ftb.mods.ftbquests.util.DeferredInventoryDetection;
import dev.ftb.mods.ftbquests.util.FTBQuestsInventoryListener;
import dev.ftb.mods.ftbteams.event.PlayerChangedTeamEvent;
import dev.ftb.mods.ftbteams.event.PlayerLoggedInAfterTeamEvent;
import dev.ftb.mods.ftbteams.event.TeamCreatedEvent;
import dev.ftb.mods.ftbteams.event.TeamEvent;
import dev.ftb.mods.ftbteams.api.event.PlayerChangedTeamEvent;
import dev.ftb.mods.ftbteams.api.event.PlayerLoggedInAfterTeamEvent;
import dev.ftb.mods.ftbteams.api.event.TeamCreatedEvent;
import dev.ftb.mods.ftbteams.api.event.TeamEvent;
import net.minecraft.commands.CommandBuildContext;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
Expand Down Expand Up @@ -154,7 +154,7 @@ private void playerTick(Player player) {
return;
}

long t = player.level.getGameTime();
long t = player.level().getGameTime();

file.withPlayerContext((ServerPlayer) player, () -> {
for (Task task : autoSubmitTasks) {
Expand Down Expand Up @@ -189,7 +189,7 @@ private void cloned(ServerPlayer oldPlayer, ServerPlayer newPlayer, boolean wonG
return;
}

if (PlayerHooks.isFake(newPlayer) || newPlayer.level.getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY)) {
if (PlayerHooks.isFake(newPlayer) || newPlayer.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY)) {
return;
}

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

import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EntityType;

public class FTBQuestsTags {
public static class EntityTypes {
public static final TagKey<EntityType<?>> NO_LOOT_CRATES
= TagKey.create(Registry.ENTITY_TYPE_REGISTRY, new ResourceLocation(FTBQuests.MOD_ID, "no_loot_crates"));
= TagKey.create(Registries.ENTITY_TYPE, new ResourceLocation(FTBQuests.MOD_ID, "no_loot_crates"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Material;
import org.jetbrains.annotations.Nullable;

public abstract class BaseInputBlock extends BaseEntityBlock {
public BaseInputBlock() {
super(BlockBehaviour.Properties.of(Material.STONE).strength(0.3F));
super(BlockBehaviour.Properties.of().strength(0.3F));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.material.Material;
import org.jetbrains.annotations.Nullable;

public class DetectorBlock extends BaseEntityBlock {
public DetectorBlock() {
super(BlockBehaviour.Properties.of(Material.STONE).strength(0.3F));
super(BlockBehaviour.Properties.of().strength(0.3F));
registerDefaultState(stateDefinition.any().setValue(BlockStateProperties.POWERED, false));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import dev.architectury.registry.registries.DeferredRegister;
import dev.architectury.registry.registries.RegistrySupplier;
import dev.ftb.mods.ftbquests.FTBQuests;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.level.block.Block;

/**
* @author LatvianModder
*/
public class FTBQuestsBlocks {
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(FTBQuests.MOD_ID, Registry.BLOCK_REGISTRY);
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(FTBQuests.MOD_ID, Registries.BLOCK);

public static final RegistrySupplier<Block> BARRIER = BLOCKS.register("barrier", QuestBarrierBlock::new);
public static final RegistrySupplier<Block> STAGE_BARRIER = BLOCKS.register("stage_barrier", StageBarrierBlock::new);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,13 @@
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraft.world.level.material.MapColor;
import net.minecraft.world.phys.BlockHitResult;
import org.jetbrains.annotations.Nullable;

public class LootCrateOpenerBlock extends Block implements EntityBlock {
public LootCrateOpenerBlock() {
super(Properties.of(Material.WOOD, MaterialColor.WOOD).strength(1.8f));
super(Properties.of().mapColor(MapColor.WOOD).strength(1.8f));
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraft.world.level.material.MapColor;
import net.minecraft.world.level.material.PushReaction;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
Expand All @@ -32,7 +32,9 @@ public class QuestBarrierBlock extends BaseEntityBlock {
public static final BooleanProperty OPEN = BooleanProperty.create("open");

protected QuestBarrierBlock() {
super(Properties.of(Material.BARRIER, MaterialColor.COLOR_LIGHT_BLUE)
super(Properties.of()
.mapColor(MapColor.COLOR_LIGHT_BLUE)
.pushReaction(PushReaction.BLOCK)
.noOcclusion()
.isViewBlocking((blockState, blockGetter, blockPos) -> false)
.isSuffocating((blockState, blockGetter, blockPos) -> false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
import dev.ftb.mods.ftbquests.quest.QuestFile;
import dev.ftb.mods.ftbquests.quest.ServerQuestFile;
import dev.ftb.mods.ftbquests.quest.task.Task;
import dev.ftb.mods.ftbteams.FTBTeamsAPI;
import dev.ftb.mods.ftbteams.data.Team;
import dev.ftb.mods.ftbteams.api.FTBTeamsAPI;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
Expand All @@ -38,7 +37,6 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
import org.jetbrains.annotations.Nullable;
Expand All @@ -50,7 +48,7 @@ public class TaskScreenBlock extends BaseEntityBlock {
private final int size;

protected TaskScreenBlock(int size) {
super(Properties.of(Material.METAL, DyeColor.BLACK).strength(0.3f));
super(Properties.of().mapColor(DyeColor.BLACK).strength(0.3f));
this.size = size;

registerDefaultState(getStateDefinition().any().setValue(FACING, Direction.NORTH));
Expand Down Expand Up @@ -146,7 +144,7 @@ public void onRemove(BlockState blockState, Level level, BlockPos blockPos, Bloc

@Override
public float getDestroyProgress(BlockState blockState, Player player, BlockGetter blockGetter, BlockPos blockPos) {
if (player.level.getBlockEntity(blockPos) instanceof ITaskScreen taskScreen && taskScreen.isIndestructible()) {
if (player.level().getBlockEntity(blockPos) instanceof ITaskScreen taskScreen && taskScreen.isIndestructible()) {
return 0f;
}
return super.getDestroyProgress(blockState, player, blockGetter, blockPos);
Expand Down Expand Up @@ -190,8 +188,9 @@ public static boolean hasPermissionToEdit(ServerPlayer player, ITaskScreen scree
}

// ...or in the same team as the owner of the screen
Team team = FTBTeamsAPI.getManager().getTeamByID(screen.getTeamId());
return team != null && team.isMember(player.getUUID());
return FTBTeamsAPI.api().getManager().getTeamByID(screen.getTeamId())
.map(team -> team.getRankForPlayer(player.getUUID()).isMemberOrBetter())
.orElse(false);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import dev.ftb.mods.ftbquests.block.FTBQuestsBlocks;
import dev.ftb.mods.ftbquests.block.LootCrateOpenerBlock;
import dev.ftb.mods.ftbquests.block.TaskScreenBlock;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
Expand All @@ -19,7 +19,7 @@
* @author LatvianModder
*/
public class FTBQuestsBlockEntities {
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(FTBQuests.MOD_ID, Registry.BLOCK_ENTITY_TYPE_REGISTRY);
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(FTBQuests.MOD_ID, Registries.BLOCK_ENTITY_TYPE);

public static <T extends BlockEntity> RegistrySupplier<BlockEntityType<T>> register(String id, BlockEntityType.BlockEntitySupplier<T> factory, Collection<RegistrySupplier<Block>> blocks) {
return BLOCK_ENTITIES.register(id, () -> BlockEntityType.Builder.of(factory, blocks.stream().map(Supplier::get).toArray(Block[]::new)).build(null));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package dev.ftb.mods.ftbquests.block.entity;

import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.NotNull;

import javax.annotation.Nonnull;
import java.util.Optional;
import java.util.UUID;

public interface ITaskScreen {
Optional<TaskScreenBlockEntity> getCoreScreen();

@Nonnull
@NotNull
UUID getTeamId();

boolean isInputOnly();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void update(String s) {

@Override
public boolean isOpen(Player player) {
TeamData data = FTBQuests.PROXY.getQuestFile(player.level.isClientSide()).getData(player);
TeamData data = FTBQuests.PROXY.getQuestFile(player.level().isClientSide()).getData(player);
QuestObject o = data.file.get(object);
return o != null && data.isCompleted(o);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.ftb.mods.ftbquests.block.entity;

import dev.ftb.mods.ftbquests.integration.StageHelper;
import dev.ftb.mods.ftblibrary.integration.stages.StageHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
Expand Down Expand Up @@ -70,6 +70,6 @@ public void update(String s) {

@Override
public boolean isOpen(Player player) {
return !stage.isEmpty() && StageHelper.INSTANCE.get().has(player, stage);
return !stage.isEmpty() && StageHelper.INSTANCE.getProvider().has(player, stage);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@
import net.minecraft.world.level.block.state.BlockState;
import org.jetbrains.annotations.NotNull;

import javax.annotation.Nonnull;
import java.lang.ref.WeakReference;
import java.util.Optional;
import java.util.UUID;

public class TaskScreenAuxBlockEntity extends BlockEntity implements ITaskScreen, Nameable {
@Nonnull
@NotNull
private WeakReference<TaskScreenBlockEntity> coreScreen = new WeakReference<>(null);
private BlockPos corePosPending; // non-null after NBT load & before querying/resolving

Expand Down Expand Up @@ -46,7 +45,7 @@ public Optional<TaskScreenBlockEntity> getCoreScreen() {
return Optional.ofNullable(coreScreen.get());
}

public void setCoreScreen(@Nonnull TaskScreenBlockEntity coreScreen) {
public void setCoreScreen(@NotNull TaskScreenBlockEntity coreScreen) {
// this must ONLY be called from TaskScreenBlock#onPlacedBy() !
if (this.coreScreen.get() != null) throw new IllegalStateException("coreScreen is already set and can't be changed!");

Expand Down
Loading

0 comments on commit fd9ae23

Please sign in to comment.