Skip to content

Commit 1840dd7

Browse files
committed
Update to MC 1.21.10
1 parent d4012fc commit 1840dd7

31 files changed

+845
-582
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,6 @@ keystore.jks
2727
secrets.properties
2828
build_number.properties
2929
changelog.txt
30+
31+
.cache
32+
config

build.gradle

Lines changed: 56 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
2-
id 'net.neoforged.gradle.userdev' version '7.0.192'
3-
id 'net.darkhax.curseforgegradle' version '1.1.26'
2+
id 'net.neoforged.moddev' version '2.0.119'
3+
id 'net.darkhax.curseforgegradle' version '1.1.28'
44
id 'com.github.kt3k.coveralls' version '2.12.0'
55
id 'com.diffplug.spotless' version '6.25.0'
66
id 'com.github.johnrengelman.shadow' version '8.1.1'
@@ -11,7 +11,6 @@ apply plugin: 'idea'
1111
apply plugin: 'maven-publish'
1212
apply plugin: 'jacoco'
1313

14-
import net.neoforged.gradle.common.tasks.PotentiallySignJar
1514
import net.darkhax.curseforgegradle.Constants
1615
import net.darkhax.curseforgegradle.TaskPublishCurseForge
1716

@@ -114,7 +113,13 @@ repositories {
114113
}
115114

116115
dependencies {
117-
implementation "net.neoforged:neoforge:${project.neoforge_version}"
116+
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1'
117+
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.1'
118+
testImplementation 'org.junit.platform:junit-platform-suite-api:1.14.1'
119+
testImplementation 'org.hamcrest:hamcrest:2.1'
120+
testImplementation "org.mockito:mockito-core:2.+"
121+
testRuntimeOnly 'org.junit.platform:junit-platform-suite-engine'
122+
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
118123

119124
// Add something like 'cyclopscore_version_local=0.1.0-DEV' to your gradle.properties if you want to use a custom local CyclopsCore version.
120125
if(secrets.cyclopscore_version_local) {
@@ -134,16 +139,17 @@ dependencies {
134139
}
135140
}
136141

137-
// Add something like 'integratedtunnelscompat_version_local=0.1.0-DEV' to your gradle.properties if you want to use a custom local Integrated Tunnels Compat version.
138-
if(secrets.integratedtunnelscompat_version_local) {
139-
shadow("org.cyclops.integratedtunnelscompat:integratedtunnelscompat-${project.minecraft_version}-neoforge:${secrets.integratedtunnelscompat_version_local}") {
140-
transitive = false
141-
}
142-
} else {
143-
shadow("org.cyclops.integratedtunnelscompat:integratedtunnelscompat-${project.minecraft_version}-neoforge:${project.integratedtunnelscompat_version}") {
144-
transitive = false
145-
}
146-
}
142+
// TODO: restore
143+
// // Add something like 'integratedtunnelscompat_version_local=0.1.0-DEV' to your gradle.properties if you want to use a custom local Integrated Tunnels Compat version.
144+
// if(secrets.integratedtunnelscompat_version_local) {
145+
// shadow("org.cyclops.integratedtunnelscompat:integratedtunnelscompat-${project.minecraft_version}-neoforge:${secrets.integratedtunnelscompat_version_local}") {
146+
// transitive = false
147+
// }
148+
// } else {
149+
// shadow("org.cyclops.integratedtunnelscompat:integratedtunnelscompat-${project.minecraft_version}-neoforge:${project.integratedtunnelscompat_version}") {
150+
// transitive = false
151+
// }
152+
// }
147153

148154
if(secrets.commoncapabilities_version_local) {
149155
implementation "org.cyclops.commoncapabilities:commoncapabilities-${project.minecraft_version}-neoforge:${secrets.commoncapabilities_version_local}:deobf"
@@ -157,50 +163,55 @@ dependencies {
157163
modLib ("io.netty:netty-codec-http:4.1.77.Final") {
158164
transitive = false
159165
}
160-
161-
testImplementation "junit:junit:4.12"
162166
}
163167

164-
minecraft {
165-
accessTransformers {
166-
file('src/main/resources/META-INF/accesstransformer.cfg')
167-
}
168+
test {
169+
useJUnitPlatform()
168170
}
169171

170-
subsystems {
172+
neoForge {
173+
version = "${neoforge_version}"
174+
171175
parchment {
172-
minecraftVersion = "${project.parchment_minecraft_version}"
173-
mappingsVersion = "${project.parchment_version}"
176+
mappingsVersion = "${parchment_version}"
177+
minecraftVersion = "${parchment_minecraft_version}"
174178
}
175-
}
176-
177-
runs {
178-
configureEach {
179-
systemProperty 'forge.logging.markers', 'REGISTRIES'
180-
systemProperty 'forge.logging.console.level', 'debug'
181-
systemProperty 'forge.logging.console.level', 'debug'
182-
modSource project.sourceSets.main
183179

184-
dependencies {
185-
runtime project.configurations.modLib
186-
}
187-
}
188-
189-
client {
190-
systemProperty 'neoforge.enabledGameTestNamespaces', "cyclopscore,${mod_id}"
180+
// Automatically enable neoforge AccessTransformers if the file exists
181+
def at = file('src/main/resources/META-INF/accesstransformer.cfg')
182+
if (at.exists()) {
183+
accessTransformers = [ at.absolutePath ]
191184
}
192185

193-
server {
194-
systemProperty 'neoforge.enabledGameTestNamespaces', "cyclopscore,${mod_id}"
195-
argument '--nogui'
186+
validateAccessTransformers = true
187+
188+
runs {
189+
client {
190+
client()
191+
}
192+
server {
193+
server()
194+
programArgument '--nogui'
195+
}
196+
gameTestServer {
197+
type = "gameTestServer"
198+
}
199+
configureEach {
200+
systemProperty 'forge.logging.markers', 'REGISTRIES'
201+
logLevel = org.slf4j.event.Level.DEBUG
202+
systemProperty 'neoforge.enabledGameTestNamespaces', "cyclopscore,${mod_id}"
203+
}
196204
}
197205

198-
gameTestServer {
199-
systemProperty 'neoforge.enabledGameTestNamespaces', "cyclopscore,${mod_id}"
206+
mods {
207+
"${mod_id}" {
208+
sourceSet(sourceSets.main)
209+
}
200210
}
201211

202-
clientData {
203-
arguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
212+
unitTest {
213+
enable()
214+
testedMod = mods.integratedtunnels
204215
}
205216
}
206217

@@ -226,21 +237,6 @@ javadoc {
226237
options.addStringOption('Xdoclint:accessibility,html,reference,syntax', '-quiet')
227238
}
228239

229-
task signJar(type: PotentiallySignJar, dependsOn: jar) {
230-
dependsOn(tasks.jar)
231-
232-
onlyIf {
233-
System.getenv().SIGN_KEYSTORE
234-
}
235-
236-
keyStore = System.getenv().SIGN_KEYSTORE
237-
alias = System.getenv().SIGN_ALIAS
238-
storePass = System.getenv().SIGN_STOREPASS
239-
keyPass = System.getenv().SIGN_KEYPASS
240-
input = jar.archivePath
241-
output = jar.archivePath
242-
}
243-
244240
task deobfJar(type: Jar) {
245241
from sourceSets.main.output
246242
archiveClassifier.set('deobf')

gradle.properties

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ group=org.cyclops.integratedtunnels
44
java_version=21
55

66
# Common
7-
minecraft_version=1.21.8
7+
minecraft_version=1.21.10
88
mod_name=IntegratedTunnels
99
mod_author=rubensworks (aka kroeser)
1010
mod_id=integratedtunnels
@@ -15,13 +15,13 @@ display_url=https://www.curseforge.com/minecraft/mc-mods/integrated-tunnels
1515
description=Transfer other stuff over Integrated Dynamics networks.
1616
fingerprint=bd0353b3e8a2810d60dd584e256e364bc3bedd44
1717

18-
parchment_version=2025.06.15
19-
parchment_minecraft_version=1.21.5
18+
parchment_version=2025.10.12
19+
parchment_minecraft_version=1.21.10
2020
curseforge_project_id=251389
2121
modrinth_project_id=Etqy1Omb
2222

2323
# NeoForge
24-
neoforge_version=21.8.20
24+
neoforge_version=21.10.53-beta
2525
neoforge_loader_version_range=[4,)
2626
neoforge_update_json_url=https://raw.githubusercontent.com/CyclopsMC/Versions/master/neoforge_update/integrated-tunnels.json
2727

@@ -31,7 +31,7 @@ org.gradle.daemon=false
3131
org.gradle.caching=true
3232

3333
# Dependencies
34-
cyclopscore_version=1.25.5-800
35-
integrateddynamics_version=1.24.1-1388
34+
cyclopscore_version=1.25.5-858
35+
integrateddynamics_version=1.24.1-1415
3636
integratedtunnelscompat_version=1.0.0-69
37-
commoncapabilities_version=2.9.7-251
37+
commoncapabilities_version=2.9.7-299
Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
package org.cyclops.integratedtunnels;
22

33
import net.minecraft.resources.ResourceLocation;
4-
import net.neoforged.neoforge.energy.IEnergyStorage;
5-
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
6-
import net.neoforged.neoforge.items.IItemHandler;
4+
import net.neoforged.neoforge.transfer.ResourceHandler;
5+
import net.neoforged.neoforge.transfer.energy.EnergyHandler;
6+
import net.neoforged.neoforge.transfer.fluid.FluidResource;
7+
import net.neoforged.neoforge.transfer.item.ItemResource;
78
import org.cyclops.commoncapabilities.IngredientComponents;
89
import org.cyclops.commoncapabilities.api.capability.itemhandler.ISlotlessItemHandler;
9-
import org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerEnergyStorage;
10-
import org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerFluidStack;
10+
import org.cyclops.commoncapabilities.api.ingredient.IngredientComponent;
11+
import org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerEnergyHandler;
1112
import org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerItemStack;
1213
import org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerItemStackSlotless;
14+
import org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerResourceHandler;
1315
import org.cyclops.integrateddynamics.api.network.NetworkCapability;
1416
import org.cyclops.integrateddynamics.api.part.PartCapability;
1517
import org.cyclops.integrateddynamics.core.part.event.RegisterPartCapabilitiesEvent;
@@ -24,33 +26,33 @@ public class Capabilities {
2426
public static final class ItemNetwork {
2527
public static final NetworkCapability<IItemNetwork> NETWORK = NetworkCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "item_network"), IItemNetwork.class);
2628
}
27-
public static final class ItemHandler {
28-
public static final NetworkCapability<IItemHandler> NETWORK = NetworkCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "item_handler"), IItemHandler.class);
29-
public static final PartCapability<IItemHandler> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "item_handler"), IItemHandler.class);
29+
public static final class Item {
30+
public static final NetworkCapability<ResourceHandler<ItemResource>> NETWORK = NetworkCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "item_handler"), ResourceHandler.asClass());
31+
public static final PartCapability<ResourceHandler<ItemResource>> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "item_handler"), ResourceHandler.asClass());
3032
}
3133
public static final class SlotlessItemHandler {
3234
public static final PartCapability<ISlotlessItemHandler> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "slotless_item_handler"), ISlotlessItemHandler.class);
3335
}
3436
public static final class FluidNetwork {
3537
public static final NetworkCapability<IFluidNetwork> NETWORK = NetworkCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "fluid_network"), IFluidNetwork.class);
3638
}
37-
public static final class FluidHandler {
38-
public static final NetworkCapability<IFluidHandler> NETWORK = NetworkCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "fluid_handler"), IFluidHandler.class);
39-
public static final PartCapability<IFluidHandler> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "fluid_handler"), IFluidHandler.class);
39+
public static final class Fluid {
40+
public static final NetworkCapability<ResourceHandler<FluidResource>> NETWORK = NetworkCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "fluid_handler"), ResourceHandler.asClass());
41+
public static final PartCapability<ResourceHandler<FluidResource>> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "fluid_handler"), ResourceHandler.asClass());
4042
}
41-
public static final class EnergyStorage {
42-
public static final PartCapability<IEnergyStorage> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "energy_storage"), IEnergyStorage.class);
43+
public static final class Energy {
44+
public static final PartCapability<EnergyHandler> PART = PartCapability.create(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "energy_storage"), EnergyHandler.class);
4345
}
4446

4547
public static void registerPartCapabilities(RegisterPartCapabilitiesEvent event) {
46-
event.register(net.neoforged.neoforge.capabilities.Capabilities.ItemHandler.BLOCK, ItemHandler.PART);
48+
event.register(net.neoforged.neoforge.capabilities.Capabilities.Item.BLOCK, Item.PART);
4749
event.register(org.cyclops.commoncapabilities.api.capability.Capabilities.SlotlessItemHandler.BLOCK, SlotlessItemHandler.PART);
48-
event.register(net.neoforged.neoforge.capabilities.Capabilities.FluidHandler.BLOCK, FluidHandler.PART);
49-
event.register(net.neoforged.neoforge.capabilities.Capabilities.EnergyStorage.BLOCK, EnergyStorage.PART);
50+
event.register(net.neoforged.neoforge.capabilities.Capabilities.Fluid.BLOCK, Fluid.PART);
51+
event.register(net.neoforged.neoforge.capabilities.Capabilities.Energy.BLOCK, Energy.PART);
5052

51-
IngredientComponents.ENERGY.setStorageWrapperHandler(EnergyStorage.PART, new IngredientComponentStorageWrapperHandlerEnergyStorage<>(IngredientComponents.ENERGY, EnergyStorage.PART));
52-
IngredientComponents.ITEMSTACK.setStorageWrapperHandler(ItemHandler.PART, new IngredientComponentStorageWrapperHandlerItemStack<>(IngredientComponents.ITEMSTACK, ItemHandler.PART, SlotlessItemHandler.PART));
53+
IngredientComponents.ENERGY.setStorageWrapperHandler(Energy.PART, new IngredientComponentStorageWrapperHandlerEnergyHandler<>(IngredientComponents.ENERGY, Energy.PART));
54+
IngredientComponents.ITEMSTACK.setStorageWrapperHandler(Item.PART, new IngredientComponentStorageWrapperHandlerItemStack<>(IngredientComponents.ITEMSTACK, Item.PART, SlotlessItemHandler.PART));
5355
IngredientComponents.ITEMSTACK.setStorageWrapperHandler(SlotlessItemHandler.PART, new IngredientComponentStorageWrapperHandlerItemStackSlotless<>(IngredientComponents.ITEMSTACK, SlotlessItemHandler.PART));
54-
IngredientComponents.FLUIDSTACK.setStorageWrapperHandler(FluidHandler.PART, new IngredientComponentStorageWrapperHandlerFluidStack<>(IngredientComponents.FLUIDSTACK, FluidHandler.PART));
56+
IngredientComponents.FLUIDSTACK.setStorageWrapperHandler(Fluid.PART, new IngredientComponentStorageWrapperHandlerResourceHandler<>(IngredientComponents.FLUIDSTACK, Fluid.PART, IngredientComponent.FLUIDSTACK_CONVERTER));
5557
}
5658
}

src/main/java/org/cyclops/integratedtunnels/api/world/IBlockPlaceHandler.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.minecraft.core.Direction;
66
import net.minecraft.core.BlockPos;
77
import net.minecraft.world.level.Level;
8+
import net.neoforged.neoforge.transfer.transaction.TransactionContext;
89

910
/**
1011
* An interface for custom block placing actions.
@@ -36,7 +37,8 @@ public interface IBlockPlaceHandler {
3637
* @param hitY The Y position that is being targeted.
3738
* @param hitZ The Z position that is being targeted.
3839
* @param player The placing player.
40+
* @param transactionContext The transaction.
3941
*/
40-
public void placeBlock(ItemStack itemStack, Level world, BlockPos pos, Direction side, float hitX, float hitY, float hitZ, Player player);
42+
public void placeBlock(ItemStack itemStack, Level world, BlockPos pos, Direction side, float hitX, float hitY, float hitZ, Player player, TransactionContext transactionContext);
4143

4244
}

src/main/java/org/cyclops/integratedtunnels/capability/network/TunnelNetworkCapabilityConstructors.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package org.cyclops.integratedtunnels.capability.network;
22

33
import net.neoforged.bus.api.SubscribeEvent;
4-
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
5-
import net.neoforged.neoforge.items.IItemHandler;
4+
import net.neoforged.neoforge.transfer.ResourceHandler;
5+
import net.neoforged.neoforge.transfer.fluid.FluidResource;
6+
import net.neoforged.neoforge.transfer.ResourceHandler;
7+
import net.neoforged.neoforge.transfer.item.ItemResource;
68
import org.cyclops.commoncapabilities.api.ingredient.IngredientComponent;
79
import org.cyclops.cyclopscore.modcompat.capabilities.DefaultCapabilityProvider;
810
import org.cyclops.integrateddynamics.api.network.AttachCapabilitiesEventNetwork;
@@ -20,17 +22,17 @@ public class TunnelNetworkCapabilityConstructors {
2022
@SubscribeEvent
2123
public void onNetworkLoad(AttachCapabilitiesEventNetwork event) {
2224
ItemNetwork itemNetwork = new ItemNetwork(IngredientComponent.ITEMSTACK);
23-
IItemHandler itemHandler = itemNetwork.getChannelExternal(net.neoforged.neoforge.capabilities.Capabilities.ItemHandler.BLOCK,
25+
ResourceHandler<ItemResource> itemHandler = itemNetwork.getChannelExternal(net.neoforged.neoforge.capabilities.Capabilities.Item.BLOCK,
2426
IPositionedAddonsNetworkIngredients.DEFAULT_CHANNEL);
2527
event.register(Capabilities.ItemNetwork.NETWORK, new DefaultCapabilityProvider<>(itemNetwork));
26-
event.register(Capabilities.ItemHandler.NETWORK, new DefaultCapabilityProvider<>(itemHandler));
28+
event.register(Capabilities.Item.NETWORK, new DefaultCapabilityProvider<>(itemHandler));
2729
event.addFullNetworkListener(itemNetwork);
2830

2931
FluidNetwork fluidNetwork = new FluidNetwork(IngredientComponent.FLUIDSTACK);
30-
IFluidHandler fluidChannel = fluidNetwork.getChannelExternal(net.neoforged.neoforge.capabilities.Capabilities.FluidHandler.BLOCK,
32+
ResourceHandler<FluidResource> fluidChannel = fluidNetwork.getChannelExternal(net.neoforged.neoforge.capabilities.Capabilities.Fluid.BLOCK,
3133
IPositionedAddonsNetworkIngredients.DEFAULT_CHANNEL);
3234
event.register(Capabilities.FluidNetwork.NETWORK, new DefaultCapabilityProvider<>(fluidNetwork));
33-
event.register(Capabilities.FluidHandler.NETWORK, new DefaultCapabilityProvider<>(fluidChannel));
35+
event.register(Capabilities.Fluid.NETWORK, new DefaultCapabilityProvider<>(fluidChannel));
3436
event.addFullNetworkListener(fluidNetwork);
3537
}
3638

0 commit comments

Comments
 (0)