diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 6b3c7b1f..1570ae42 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v5 with: - java-version: 21 + java-version: 25 distribution: temurin cache: gradle @@ -38,9 +38,14 @@ jobs: - name: Build run: ./gradlew build - - name: Publish + - name: Publishing Curseforge if: github.event_name == 'push' && github.ref_protected && github.ref_type == 'branch' - run: ./gradlew publishMods + run: ./gradlew publishCurseforge env: CURSETOKEN: ${{ secrets.CURSETOKEN }} + + - name: Publishing Modrinth + if: github.event_name == 'push' && github.ref_protected && github.ref_type == 'branch' + run: ./gradlew publishModrinth + env: MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} \ No newline at end of file diff --git a/build.gradle b/build.gradle index c027b307..02367da9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,22 +1,11 @@ -buildscript { - repositories { - maven { url = 'https://maven.minecraftforge.net/' } - maven { url = 'https://plugins.gradle.org/m2/' } - mavenCentral() - } - dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:6.0.+' - classpath "gradle.plugin.com.matthewprenger:CurseGradle:1.4.0" - classpath "com.modrinth.minotaur:Minotaur:2.+" - } +plugins { + id 'net.minecraftforge.gradle' version '6.0.+' + id 'com.gradleup.shadow' version '9.2.0+' + id 'eclipse' + id 'net.darkhax.curseforgegradle' version '1.3.+' + id "com.modrinth.minotaur" version "2.+" } -apply plugin: 'net.minecraftforge.gradle' -apply plugin: 'eclipse' -apply plugin: 'maven-publish' -apply plugin: 'com.matthewprenger.cursegradle' -apply plugin: 'com.modrinth.minotaur' - group = project.mod_group version = project.mod_version @@ -57,6 +46,14 @@ dependencies { } jar { + enabled = false +} + +shadowJar { + archiveClassifier.set('') + configurations = [] + relocate 'com.troblecodings.linkableapi', "${project.group}.tcredstone.shadow.linkableapi" + manifest { attributes([ "Specification-Title": project.mod_name, @@ -68,25 +65,23 @@ jar { "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } -} -def key = System.getenv("CURSETOKEN") -if (key == null) - key = 'dev' - -curseforge { - apiKey = key - - project { - id = project.curseforge_project_id - - changelog = file("changelog.md") - changelogType = "markdown" - - releaseType = "release" + from("changelog.md") + from("LICENSE") +} - addGameVersion project.minecraft_version - } +tasks.register("publishCurseforge", net.darkhax.curseforgegradle.TaskPublishCurseForge) { + def key = System.getenv("CURSETOKEN") + if (key == null) + key = 'dev' + apiToken = key + def mainFile = upload(project.curseforge_project_id, shadowJar) + mainFile.changelog = file("changelog.md").text + mainFile.changelogType = 'markdown' + mainFile.releaseType = 'release' + mainFile.addModLoader("${project.loader}") + mainFile.addEnvironment("Client", "Server") + mainFile.addGameVersion("${project.minecraft_version}") } modrinth { @@ -97,7 +92,7 @@ modrinth { versionNumber = project.version versionName = "${project.mod_name} ${project.version}" - uploadFile = jar + uploadFile = shadowJar gameVersions = [project.minecraft_version] loaders = [project.loader] @@ -105,6 +100,6 @@ modrinth { changelog = file("changelog.md").text } -tasks.register("publishMods") { - dependsOn("curseforge", "modrinth") -} \ No newline at end of file +tasks.register("publishModrinth") { + dependsOn("modrinth") +} diff --git a/changelog.md b/changelog.md index 73c02309..44b556ef 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # Changelog +## [1.21 - 3.2.5] + +* chore: update buildscript +* chore: relocate linkableapi + ## [1.21 - 3.2.4] * fix: correct redstone update diff --git a/checkstyle.xml b/checkstyle.xml index ae39936f..5a5f95c5 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -56,4 +56,8 @@ + + + + diff --git a/gradle.properties b/gradle.properties index ea370443..06d03fd9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,14 +5,14 @@ org.gradle.daemon=false # Mod Meta mod_name=TC-Redstone mod_group=com.troblecodings -mod_version=3.2.4 +mod_version=3.2.5 # Minecraft minecraft_version=1.21 # Forge forge_version=51.0.33 -loader=forge +loader=Forge # Java java_version=21 diff --git a/linkableapi b/linkableapi index 1cb3a6b0..a2059e74 160000 --- a/linkableapi +++ b/linkableapi @@ -1 +1 @@ -Subproject commit 1cb3a6b044704751136a372cc475e6e4cf3671a6 +Subproject commit a2059e7459d93595a36b3da5562c93a81ab289a8 diff --git a/settings.gradle b/settings.gradle index 93f1b806..894bacb3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,13 +1,10 @@ pluginManagement { repositories { gradlePluginPortal() - maven { - name = 'MinecraftForge' - url = 'https://maven.minecraftforge.net/' - } + maven { url = 'https://maven.minecraftforge.net/' } } } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' -} \ No newline at end of file +} diff --git a/src/main/java/com/troblecodings/tcredstone/GIRCRedstoneMain.java b/src/main/java/com/troblecodings/tcredstone/TCRedstoneMain.java similarity index 79% rename from src/main/java/com/troblecodings/tcredstone/GIRCRedstoneMain.java rename to src/main/java/com/troblecodings/tcredstone/TCRedstoneMain.java index 314b4ca5..a3dc047d 100644 --- a/src/main/java/com/troblecodings/tcredstone/GIRCRedstoneMain.java +++ b/src/main/java/com/troblecodings/tcredstone/TCRedstoneMain.java @@ -3,22 +3,22 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import com.troblecodings.tcredstone.init.GIRCInit; +import com.troblecodings.tcredstone.init.TCInit; import net.minecraft.core.component.DataComponentType; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraftforge.fml.common.Mod; -@Mod(GIRCRedstoneMain.MODID) -public class GIRCRedstoneMain { +@Mod(TCRedstoneMain.MODID) +public class TCRedstoneMain { public static final DataComponentType COMPOUND_DATA = DataComponentType.builder().persistent(CompoundTag.CODEC) .networkSynchronized(ByteBufCodecs.COMPOUND_TAG).build(); - public GIRCRedstoneMain() { - GIRCInit.init(); + public TCRedstoneMain() { + TCInit.init(); } public static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneEmitter.java b/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneEmitter.java index 0d6a0b70..92666ce4 100644 --- a/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneEmitter.java +++ b/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneEmitter.java @@ -1,7 +1,7 @@ package com.troblecodings.tcredstone.block; import com.troblecodings.linkableapi.Message; -import com.troblecodings.tcredstone.init.GIRCInit; +import com.troblecodings.tcredstone.init.TCInit; import com.troblecodings.tcredstone.tile.TileRedstoneEmitter; import net.minecraft.core.BlockPos; @@ -28,7 +28,7 @@ public ItemInteractionResult useItemOn(final ItemStack stack, final BlockState s final BlockHitResult hit) { if (world.isClientSide) return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; - if (player.getItemInHand(hand).getItem().equals(GIRCInit.RS_LINKER.get())) + if (player.getItemInHand(hand).getItem().equals(TCInit.RS_LINKER.get())) return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; final BlockEntity entity = world.getBlockEntity(pos); if (entity instanceof TileRedstoneEmitter) { diff --git a/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneMultiEmitter.java b/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneMultiEmitter.java index 1513d5f8..c200da27 100644 --- a/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneMultiEmitter.java +++ b/src/main/java/com/troblecodings/tcredstone/block/BlockRedstoneMultiEmitter.java @@ -3,7 +3,7 @@ import java.util.List; import com.troblecodings.linkableapi.Message; -import com.troblecodings.tcredstone.init.GIRCInit; +import com.troblecodings.tcredstone.init.TCInit; import com.troblecodings.tcredstone.tile.TileRedstoneMultiEmitter; import net.minecraft.core.BlockPos; @@ -34,7 +34,7 @@ public ItemInteractionResult useItemOn(final ItemStack stack, final BlockState s final BlockHitResult hit) { if (world.isClientSide) return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; - if (player.getItemInHand(hand).getItem().equals(GIRCInit.RS_LINKER.get())) + if (player.getItemInHand(hand).getItem().equals(TCInit.RS_LINKER.get())) return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; final BlockEntity entity = world.getBlockEntity(pos); if (entity instanceof TileRedstoneMultiEmitter) { diff --git a/src/main/java/com/troblecodings/tcredstone/init/GIRCInit.java b/src/main/java/com/troblecodings/tcredstone/init/TCInit.java similarity index 84% rename from src/main/java/com/troblecodings/tcredstone/init/GIRCInit.java rename to src/main/java/com/troblecodings/tcredstone/init/TCInit.java index 499f9390..0020845e 100644 --- a/src/main/java/com/troblecodings/tcredstone/init/GIRCInit.java +++ b/src/main/java/com/troblecodings/tcredstone/init/TCInit.java @@ -4,7 +4,7 @@ import com.troblecodings.linkableapi.Linkingtool; import com.troblecodings.linkableapi.MultiLinkingTool; -import com.troblecodings.tcredstone.GIRCRedstoneMain; +import com.troblecodings.tcredstone.TCRedstoneMain; import com.troblecodings.tcredstone.block.BlockRedstoneAcceptor; import com.troblecodings.tcredstone.block.BlockRedstoneEmitter; import com.troblecodings.tcredstone.block.BlockRedstoneMultiEmitter; @@ -32,14 +32,14 @@ import net.minecraftforge.registries.RegisterEvent; import net.minecraftforge.registries.RegistryObject; -public class GIRCInit { +public final class TCInit { public static final DeferredRegister ITEM_REGISTRY = - DeferredRegister.create(ForgeRegistries.ITEMS, GIRCRedstoneMain.MODID); + DeferredRegister.create(ForgeRegistries.ITEMS, TCRedstoneMain.MODID); public static final DeferredRegister BLOCK_REGISTRY = - DeferredRegister.create(ForgeRegistries.BLOCKS, GIRCRedstoneMain.MODID); + DeferredRegister.create(ForgeRegistries.BLOCKS, TCRedstoneMain.MODID); public static final DeferredRegister> TILEENTITY_REGISTRY = - DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, GIRCRedstoneMain.MODID); + DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TCRedstoneMain.MODID); public static final RegistryObject RS_ACCEPTOR = internalRegisterBlock("acceptor", () -> new BlockRedstoneAcceptor(BlockBehaviour.Properties.of() // TODO Material.METAL @@ -55,12 +55,12 @@ public static boolean acceptAcceptor(final Level level, final BlockPos pos) { return level.getBlockState(pos).getBlock() instanceof BlockRedstoneAcceptor; } - public static final RegistryObject RS_LINKER = - ITEM_REGISTRY.register("linker", () -> new Linkingtool(null, GIRCInit::acceptAcceptor)); + public static final RegistryObject RS_LINKER = ITEM_REGISTRY.register("linker", + () -> new Linkingtool(null, TCInit::acceptAcceptor, TCRedstoneMain.COMPOUND_DATA)); public static final RegistryObject RS_MULTILINKER = ITEM_REGISTRY.register("multilinker", - () -> new MultiLinkingTool(null, GIRCInit::acceptAcceptor)); + () -> new MultiLinkingTool(null, TCInit::acceptAcceptor, TCRedstoneMain.COMPOUND_DATA)); public static final RegistryObject REMOTE_ACTIVATOR = ITEM_REGISTRY.register("activator", - () -> new RemoteActivator(null, GIRCInit::acceptAcceptor)); + () -> new RemoteActivator(null, TCInit::acceptAcceptor)); public static final RegistryObject> EMITER_TILE = TILEENTITY_REGISTRY.register("emitter", () -> BlockEntityType.Builder @@ -70,6 +70,9 @@ public static boolean acceptAcceptor(final Level level, final BlockPos pos) { TILEENTITY_REGISTRY.register("multiemitter", () -> BlockEntityType.Builder .of(TileRedstoneMultiEmitter::new, RS_MULTI_EMITTER.get()).build(null)); + private TCInit() { + } + private static final RegistryObject internalRegisterBlock(final String name, final Supplier sup) { final RegistryObject registerObject = BLOCK_REGISTRY.register(name, sup); @@ -79,7 +82,7 @@ private static final RegistryObject internalRegisterBlock(final String na public static void init() { final IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); - bus.register(GIRCInit.class); + bus.register(TCInit.class); ITEM_REGISTRY.register(bus); BLOCK_REGISTRY.register(bus); TILEENTITY_REGISTRY.register(bus); @@ -96,8 +99,8 @@ public static void onCreativeTabs(final BuildCreativeModeTabContentsEvent event) public static void registerDataComponents(final RegisterEvent event) { event.register(BuiltInRegistries.DATA_COMPONENT_TYPE.key(), registry -> { registry.register( - ResourceLocation.fromNamespaceAndPath(GIRCRedstoneMain.MODID, "compound_data"), - GIRCRedstoneMain.COMPOUND_DATA); + ResourceLocation.fromNamespaceAndPath(TCRedstoneMain.MODID, "compound_data"), + TCRedstoneMain.COMPOUND_DATA); }); } diff --git a/src/main/java/com/troblecodings/tcredstone/item/RemoteActivator.java b/src/main/java/com/troblecodings/tcredstone/item/RemoteActivator.java index 43b9a91d..138f8f28 100644 --- a/src/main/java/com/troblecodings/tcredstone/item/RemoteActivator.java +++ b/src/main/java/com/troblecodings/tcredstone/item/RemoteActivator.java @@ -4,7 +4,7 @@ import java.util.function.BiPredicate; import com.troblecodings.linkableapi.Linkingtool; -import com.troblecodings.tcredstone.GIRCRedstoneMain; +import com.troblecodings.tcredstone.TCRedstoneMain; import com.troblecodings.tcredstone.tile.TileRedstoneEmitter; import net.minecraft.core.BlockPos; @@ -21,14 +21,14 @@ public class RemoteActivator extends Linkingtool { public RemoteActivator(final CreativeModeTab tab, final BiPredicate predicate) { - super(tab, predicate, _u -> false); + super(tab, predicate, _u -> false, TCRedstoneMain.COMPOUND_DATA); } @Override public InteractionResultHolder use(final Level level, final Player player, final InteractionHand hand) { final ItemStack itemstack = player.getItemInHand(hand); - final CompoundTag tag = itemstack.get(GIRCRedstoneMain.COMPOUND_DATA); // TODO + final CompoundTag tag = itemstack.get(TCRedstoneMain.COMPOUND_DATA); if (tag != null) { if (!hand.equals(InteractionHand.MAIN_HAND) || level.isClientSide) return InteractionResultHolder.pass(itemstack); @@ -37,7 +37,6 @@ public InteractionResultHolder use(final Level level, final Player pl final Optional linkpos = NbtUtils.readBlockPos(comp, LINKINGTOOL_TAG); final boolean state = TileRedstoneEmitter.redstoneUpdate(linkpos, level); message(player, "ra.state", String.valueOf(state)); - return InteractionResultHolder.success(itemstack); } } return InteractionResultHolder.success(itemstack); diff --git a/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneEmitter.java b/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneEmitter.java index fa2c8645..f8d50f28 100644 --- a/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneEmitter.java +++ b/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneEmitter.java @@ -4,7 +4,7 @@ import com.troblecodings.linkableapi.ILinkableTile; import com.troblecodings.tcredstone.block.BlockRedstoneAcceptor; -import com.troblecodings.tcredstone.init.GIRCInit; +import com.troblecodings.tcredstone.init.TCInit; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup.Provider; @@ -16,7 +16,7 @@ public class TileRedstoneEmitter extends BlockEntity implements ILinkableTile { public TileRedstoneEmitter(final BlockPos pos, final BlockState state) { - super(GIRCInit.EMITER_TILE.get(), pos, state); + super(TCInit.EMITER_TILE.get(), pos, state); } private BlockPos linkedpos = null; diff --git a/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneMultiEmitter.java b/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneMultiEmitter.java index 037f3d2e..811c7848 100644 --- a/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneMultiEmitter.java +++ b/src/main/java/com/troblecodings/tcredstone/tile/TileRedstoneMultiEmitter.java @@ -7,7 +7,7 @@ import com.troblecodings.linkableapi.ILinkableTile; import com.troblecodings.linkableapi.MultiLinkingTool; import com.troblecodings.tcredstone.block.BlockRedstoneAcceptor; -import com.troblecodings.tcredstone.init.GIRCInit; +import com.troblecodings.tcredstone.init.TCInit; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup.Provider; @@ -27,7 +27,7 @@ public class TileRedstoneMultiEmitter extends BlockEntity implements ILinkableTi private static final String LINKED_POS_LIST = "linkedPos"; public TileRedstoneMultiEmitter(final BlockPos pos, final BlockState state) { - super(GIRCInit.MULTI_EMITER_TILE.get(), pos, state); + super(TCInit.MULTI_EMITER_TILE.get(), pos, state); } public CompoundTag writeBlockPosToNBT(final List pos, final CompoundTag compound) { diff --git a/suppressions.xml b/suppressions.xml new file mode 100644 index 00000000..ff8eaa72 --- /dev/null +++ b/suppressions.xml @@ -0,0 +1,9 @@ + + + + + +