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 9202c4a4..8551ea93 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
@@ -56,6 +45,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,
@@ -67,25 +64,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 {
@@ -96,7 +91,7 @@ modrinth {
versionNumber = project.version
versionName = "${project.mod_name} ${project.version}"
- uploadFile = jar
+ uploadFile = shadowJar
gameVersions = [project.minecraft_version]
loaders = [project.loader]
@@ -104,6 +99,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 d51f3cef..60459aeb 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,10 @@
# Changelog
+## [1.20.6 - 3.2.5]
+
+* chore: update buildscript
+* chore: relocate linkableapi
+
## [1.20.6 - 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 a90601c8..f8d43dad 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.20.6
# Forge
forge_version=50.2.0
-loader=forge
+loader=Forge
# Java
java_version=21
diff --git a/linkableapi b/linkableapi
index 974b946b..7cb0225d 160000
--- a/linkableapi
+++ b/linkableapi
@@ -1 +1 @@
-Subproject commit 974b946bb09cef9fdc2ec87f448dc75c965d75f2
+Subproject commit 7cb0225d90a511cf95e8f25ccd3b5f8d5a83dd32
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..894bacb3
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,10 @@
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ maven { url = 'https://maven.minecraftforge.net/' }
+ }
+}
+
+plugins {
+ id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0'
+}
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 df83249b..0cbf3ad4 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);
@@ -80,7 +83,7 @@ private static final RegistryObject internalRegisterBlock(final String na
public static void init() {
@SuppressWarnings("removal")
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);
@@ -97,8 +100,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 @@
+
+
+
+
+
+