Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9118626f0f | |||
| 7f117eca3e | |||
| cc1a4153e0 | |||
|
|
4d2b856553 | ||
|
|
dc24c2c39a | ||
|
|
983ee89eda |
|
|
@ -19,10 +19,6 @@ neoForge {
|
||||||
if (at.exists()) {
|
if (at.exists()) {
|
||||||
accessTransformers.from(at.absolutePath)
|
accessTransformers.from(at.absolutePath)
|
||||||
}
|
}
|
||||||
parchment {
|
|
||||||
minecraftVersion = parchment_game_version
|
|
||||||
mappingsVersion = parchment_version
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
@ -48,4 +44,4 @@ configurations {
|
||||||
artifacts {
|
artifacts {
|
||||||
commonJava sourceSets.main.java.sourceDirectories.singleFile
|
commonJava sourceSets.main.java.sourceDirectories.singleFile
|
||||||
commonResources sourceSets.main.resources.sourceDirectories.singleFile
|
commonResources sourceSets.main.resources.sourceDirectories.singleFile
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,14 +26,15 @@ import com.mojang.datafixers.util.Either;
|
||||||
import com.mojang.serialization.DataResult;
|
import com.mojang.serialization.DataResult;
|
||||||
import net.minecraft.commands.arguments.blocks.BlockStateParser;
|
import net.minecraft.commands.arguments.blocks.BlockStateParser;
|
||||||
import net.minecraft.commands.arguments.blocks.BlockStateParser.BlockResult;
|
import net.minecraft.commands.arguments.blocks.BlockStateParser.BlockResult;
|
||||||
|
import net.minecraft.commands.arguments.item.ItemInput;
|
||||||
import net.minecraft.commands.arguments.item.ItemParser;
|
import net.minecraft.commands.arguments.item.ItemParser;
|
||||||
import net.minecraft.commands.arguments.item.ItemParser.ItemResult;
|
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.properties.Property;
|
import net.minecraft.world.level.block.state.properties.Property;
|
||||||
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.scripting.Matchables.NBTCondition;
|
import tschipp.carryon.common.scripting.Matchables.NBTCondition;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
@ -42,22 +43,40 @@ import java.util.Map;
|
||||||
public class ModelOverride {
|
public class ModelOverride {
|
||||||
private BlockResult parsedBlock;
|
private BlockResult parsedBlock;
|
||||||
private Either<ItemStack, BlockState> renderObject;
|
private Either<ItemStack, BlockState> renderObject;
|
||||||
|
private Either<ItemInput, BlockResult> parsedRHS; // 保存原始数据
|
||||||
|
private boolean initialized = false;
|
||||||
|
|
||||||
private ModelOverride(String raw, BlockResult parsedBlock, Type type, Either<ItemResult, BlockResult> parsedRHS)
|
|
||||||
|
private ModelOverride(String raw, BlockResult parsedBlock, Type type, Either<ItemInput, BlockResult> parsedRHS)
|
||||||
{
|
{
|
||||||
this.parsedBlock = parsedBlock;
|
this.parsedBlock = parsedBlock;
|
||||||
|
this.parsedRHS = parsedRHS;
|
||||||
|
// 延迟创建renderObject
|
||||||
|
this.renderObject = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 延迟初始化方法
|
||||||
|
private void ensureInitialized() {
|
||||||
|
if (initialized) return;
|
||||||
|
|
||||||
parsedRHS.ifLeft(res -> {
|
parsedRHS.ifLeft(res -> {
|
||||||
ItemStack stack = new ItemStack(res.item());
|
try {
|
||||||
if(res.components() != null)
|
ItemStack stack = new ItemStack(res.item());
|
||||||
stack.applyComponents(res.components());
|
if(res.components() != null)
|
||||||
this.renderObject = Either.left(stack);
|
stack.applyComponents(res.components());
|
||||||
|
this.renderObject = Either.left(stack);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
this.renderObject = Either.left(ItemStack.EMPTY);
|
||||||
|
Constants.LOG.warn("Delayed init failed for item: {}", res.item().getRegisteredName());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
parsedRHS.ifRight(res -> {
|
parsedRHS.ifRight(res -> {
|
||||||
BlockState state = res.blockState();
|
BlockState state = res.blockState();
|
||||||
this.renderObject = Either.right(state);
|
this.renderObject = Either.right(state);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataResult<ModelOverride> of(String str, HolderLookup.Provider provider)
|
public static DataResult<ModelOverride> of(String str, HolderLookup.Provider provider)
|
||||||
|
|
@ -86,7 +105,7 @@ public class ModelOverride {
|
||||||
to = to.substring(to.indexOf(")") + 1);
|
to = to.substring(to.indexOf(")") + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Either<ItemResult, BlockResult> either;
|
Either<ItemInput, BlockResult> either;
|
||||||
try {
|
try {
|
||||||
if(type == Type.ITEM)
|
if(type == Type.ITEM)
|
||||||
either = Either.left(new ItemParser(provider).parse(new StringReader(to)));
|
either = Either.left(new ItemParser(provider).parse(new StringReader(to)));
|
||||||
|
|
@ -114,6 +133,7 @@ public class ModelOverride {
|
||||||
|
|
||||||
public Either<ItemStack, BlockState> getRenderObject()
|
public Either<ItemStack, BlockState> getRenderObject()
|
||||||
{
|
{
|
||||||
|
ensureInitialized();
|
||||||
return this.renderObject;
|
return this.renderObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,7 @@ import net.minecraft.client.renderer.SubmitNodeCollector;
|
||||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||||
import net.minecraft.client.renderer.entity.state.EntityRenderState;
|
import net.minecraft.client.renderer.entity.state.EntityRenderState;
|
||||||
import net.minecraft.client.renderer.item.ItemStackRenderState;
|
import net.minecraft.client.renderer.item.ItemStackRenderState;
|
||||||
import net.minecraft.client.renderer.rendertype.RenderTypes;
|
import net.minecraft.client.renderer.state.level.CameraRenderState;
|
||||||
import net.minecraft.client.renderer.state.CameraRenderState;
|
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.HumanoidArm;
|
import net.minecraft.world.entity.HumanoidArm;
|
||||||
|
|
@ -79,8 +78,6 @@ public class CarriedObjectRender
|
||||||
{
|
{
|
||||||
CarryOnData carry = CarryOnDataManager.getCarryData(player);
|
CarryOnData carry = CarryOnDataManager.getCarryData(player);
|
||||||
ItemStackRenderState renderState = new ItemStackRenderState();
|
ItemStackRenderState renderState = new ItemStackRenderState();
|
||||||
var layer = renderState.newLayer();
|
|
||||||
layer.setRenderType(RenderTypes.glint());
|
|
||||||
|
|
||||||
matrix.pushPose();
|
matrix.pushPose();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ public class ListHandler {
|
||||||
if(regular.contains(name))
|
if(regular.contains(name))
|
||||||
return true;
|
return true;
|
||||||
for(TagKey<EntityType<?>> tag : tags)
|
for(TagKey<EntityType<?>> tag : tags)
|
||||||
if(entity.getType().is(tag))
|
if(entity.getType().builtInRegistryHolder().is(tag))
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,9 @@ import tschipp.carryon.common.carry.CarryOnDataManager;
|
||||||
public class InventoryMixin
|
public class InventoryMixin
|
||||||
{
|
{
|
||||||
@Unique
|
@Unique
|
||||||
private static final ItemStack DUMMY_STACK = new ItemStack(Blocks.COBBLESTONE, 1);
|
private static ItemStack getDummyStack() {
|
||||||
|
return new ItemStack(Blocks.COBBLESTONE, 1);
|
||||||
|
}
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
public Player player;
|
public Player player;
|
||||||
|
|
@ -56,7 +58,7 @@ public class InventoryMixin
|
||||||
{
|
{
|
||||||
if(slot == selected && CarryOnDataManager.getCarryData(player).isCarrying())
|
if(slot == selected && CarryOnDataManager.getCarryData(player).isCarrying())
|
||||||
{
|
{
|
||||||
return DUMMY_STACK;
|
return getDummyStack();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return original.call(instance, slot);
|
return original.call(instance, slot);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"required": true,
|
"required": true,
|
||||||
"minVersion": "0.8",
|
"minVersion": "0.8",
|
||||||
"package": "tschipp.carryon.mixin",
|
"package": "tschipp.carryon.mixin",
|
||||||
"compatibilityLevel": "JAVA_21",
|
"compatibilityLevel": "JAVA_25",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"EntityMixin",
|
"EntityMixin",
|
||||||
"InventoryMixin",
|
"InventoryMixin",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
plugins {
|
plugins {
|
||||||
id 'multiloader-loader'
|
id 'multiloader-loader'
|
||||||
id 'fabric-loom' version "${loom_version}"
|
id 'net.fabricmc.fabric-loom' version "${loom_version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|
@ -21,18 +21,14 @@ repositories {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
minecraft "com.mojang:minecraft:${minecraft_version}"
|
minecraft "com.mojang:minecraft:${minecraft_version}"
|
||||||
mappings loom.layered() {
|
implementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
||||||
officialMojangMappings()
|
implementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}"
|
||||||
parchment("org.parchmentmc.data:parchment-${parchment_mappings_fabric}@zip")
|
|
||||||
}
|
|
||||||
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
|
||||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}"
|
|
||||||
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
|
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
|
||||||
|
|
||||||
modApi("me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}") {
|
compileOnly("me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}") {
|
||||||
exclude(group: "net.fabricmc.fabric-api")
|
exclude(group: "net.fabricmc.fabric-api")
|
||||||
}
|
}
|
||||||
modApi "com.terraformersmc:modmenu:17.0.0-beta.1"
|
compileOnly "com.terraformersmc:modmenu:18.0.0-alpha.8"
|
||||||
}
|
}
|
||||||
|
|
||||||
loom {
|
loom {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
package tschipp.carryon;
|
package tschipp.carryon;
|
||||||
|
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
|
import net.fabricmc.fabric.api.client.keymapping.v1.KeyMappingHelper;
|
||||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
|
@ -36,7 +36,7 @@ public class CarryOnFabricClientMod implements ClientModInitializer
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient()
|
public void onInitializeClient()
|
||||||
{
|
{
|
||||||
CarryOnKeybinds.registerKeybinds(KeyBindingHelper::registerKeyBinding);
|
CarryOnKeybinds.registerKeybinds(KeyMappingHelper::registerKeyMapping);
|
||||||
ClientEvents.registerEvents();
|
ClientEvents.registerEvents();
|
||||||
CarryOnCommon.registerClientPackets(true);
|
CarryOnCommon.registerClientPackets(true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ public class FabricPlatformHelper implements IPlatformHelper {
|
||||||
@Override
|
@Override
|
||||||
public <T extends PacketBase, B extends FriendlyByteBuf> void registerServerboundPacket(CustomPacketPayload.Type<T> type, Class<T> clazz, StreamCodec<B, T> codec, BiConsumer<T, Player> handler, Object... args)
|
public <T extends PacketBase, B extends FriendlyByteBuf> void registerServerboundPacket(CustomPacketPayload.Type<T> type, Class<T> clazz, StreamCodec<B, T> codec, BiConsumer<T, Player> handler, Object... args)
|
||||||
{
|
{
|
||||||
PayloadTypeRegistry.playC2S().register(type, (StreamCodec<RegistryFriendlyByteBuf, T>)codec);
|
PayloadTypeRegistry.serverboundPlay().register(type, (StreamCodec<RegistryFriendlyByteBuf, T>)codec);
|
||||||
|
|
||||||
ServerPlayNetworking.registerGlobalReceiver(type, (T packet, ServerPlayNetworking.Context context) -> {
|
ServerPlayNetworking.registerGlobalReceiver(type, (T packet, ServerPlayNetworking.Context context) -> {
|
||||||
context.server().execute(() -> {
|
context.server().execute(() -> {
|
||||||
|
|
@ -84,7 +84,7 @@ public class FabricPlatformHelper implements IPlatformHelper {
|
||||||
boolean client = (boolean)args[0];
|
boolean client = (boolean)args[0];
|
||||||
|
|
||||||
if(!client)
|
if(!client)
|
||||||
PayloadTypeRegistry.playS2C().register(type, (StreamCodec<RegistryFriendlyByteBuf, T>)codec);
|
PayloadTypeRegistry.clientboundPlay().register(type, (StreamCodec<RegistryFriendlyByteBuf, T>)codec);
|
||||||
else
|
else
|
||||||
CarryOnFabricClientMod.registerClientboundPacket(type, handler);
|
CarryOnFabricClientMod.registerClientboundPacket(type, handler);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"required": true,
|
"required": true,
|
||||||
"minVersion": "0.8",
|
"minVersion": "0.8",
|
||||||
"package": "tschipp.carryon.mixin",
|
"package": "tschipp.carryon.mixin",
|
||||||
"compatibilityLevel": "JAVA_21",
|
"compatibilityLevel": "JAVA_25",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"PlayerMixinFabric"
|
"PlayerMixinFabric"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -19,14 +19,10 @@ neoForge {
|
||||||
if (at.exists()) {
|
if (at.exists()) {
|
||||||
accessTransformers.from(at.absolutePath)
|
accessTransformers.from(at.absolutePath)
|
||||||
}
|
}
|
||||||
parchment {
|
|
||||||
minecraftVersion = parchment_game_version
|
|
||||||
mappingsVersion = parchment_version
|
|
||||||
}
|
|
||||||
runs {
|
runs {
|
||||||
configureEach {
|
configureEach {
|
||||||
systemProperty('neoforge.enabledGameTestNamespaces', mod_id)
|
systemProperty('neoforge.enabledGameTestNamespaces', mod_id)
|
||||||
ideName = "NeoForge ${it.name.capitalize()} (${project.path})" // Unify the run config names with fabric
|
ideName = "NeoForge ${it.name.capitalize()} (${project.path})"
|
||||||
}
|
}
|
||||||
client {
|
client {
|
||||||
client()
|
client()
|
||||||
|
|
@ -51,124 +47,3 @@ dependencies {
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets.main.resources { srcDir 'src/generated/resources' }
|
sourceSets.main.resources { srcDir 'src/generated/resources' }
|
||||||
|
|
||||||
//plugins {
|
|
||||||
// id 'idea'
|
|
||||||
// id 'maven-publish'
|
|
||||||
// id 'net.neoforged.gradle.userdev' version '7.0.168'
|
|
||||||
// id 'java-library'
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//if (System.getenv('BUILD_NUMBER') != null) {
|
|
||||||
// version += "." + System.getenv('BUILD_NUMBER')
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//base {
|
|
||||||
// archivesName = "${mod_id}-neoforge-${minecraft_version}"
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
////jarJar.enable()
|
|
||||||
//
|
|
||||||
////archivesBaseName = "${mod_id}-neoforge-${minecraft_version}"
|
|
||||||
//
|
|
||||||
///*
|
|
||||||
//mixin {
|
|
||||||
// add sourceSets.main, "${mod_id}.refmap.json"
|
|
||||||
//
|
|
||||||
// config "${mod_id}.mixins.json"
|
|
||||||
// config "${mod_id}.forge.mixins.json"
|
|
||||||
//}
|
|
||||||
//*/
|
|
||||||
//
|
|
||||||
//if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) {
|
|
||||||
// minecraft.accessTransformers.file file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//runs {
|
|
||||||
// // applies to all the run configs below
|
|
||||||
// configureEach {
|
|
||||||
// systemProperty 'forge.logging.markers', 'REGISTRIES'
|
|
||||||
// systemProperty 'forge.logging.console.level', 'debug'
|
|
||||||
// modSource project.sourceSets.main
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// client {
|
|
||||||
// // Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
|
|
||||||
// systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// server {
|
|
||||||
// systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
|
|
||||||
// programArgument '--nogui'
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // This run config launches GameTestServer and runs all registered gametests, then exits.
|
|
||||||
// // By default, the server will crash when no gametests are provided.
|
|
||||||
// // The gametest system is also enabled by default for other run configs under the /test command.
|
|
||||||
// gameTestServer {
|
|
||||||
// systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /*
|
|
||||||
// data {
|
|
||||||
// // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it
|
|
||||||
// // workingDirectory project.file('run-data')
|
|
||||||
//
|
|
||||||
// // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
|
|
||||||
// programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
|
|
||||||
// }*/
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//sourceSets.main.resources { srcDir 'src/generated/resources' }
|
|
||||||
//
|
|
||||||
//configurations {
|
|
||||||
// runtimeClasspath.extendsFrom localRuntime
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//tasks.named("test").configure {
|
|
||||||
// enabled = false
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//dependencies {
|
|
||||||
// implementation "net.neoforged:neoforge:${neoforge_version}"
|
|
||||||
// compileOnly project(":Common")
|
|
||||||
//
|
|
||||||
// api "me.shedaniel.cloth:cloth-config-neoforge:${cloth_config_version}"
|
|
||||||
// //implementation fg.deobf("net.darkhax.gamestages:GameStages-Forge-1.19.2:11.0.2")
|
|
||||||
// //implementation fg.deobf("net.darkhax.bookshelf:Bookshelf-Forge-1.19.3:17.0.2")
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//// NeoGradle compiles the game, but we don't want to add our common code to the game's code
|
|
||||||
//Spec<Task> notNeoTask = { Task it -> !it.name.startsWith("neo") } as Spec<Task>
|
|
||||||
//
|
|
||||||
//tasks.withType(JavaCompile).matching(notNeoTask).configureEach {
|
|
||||||
// source(project(":Common").sourceSets.main.allSource)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//tasks.withType(Javadoc).matching(notNeoTask).configureEach {
|
|
||||||
// source(project(":Common").sourceSets.main.allJava)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//tasks.named("sourcesJar", Jar) {
|
|
||||||
// from(project(":Common").sourceSets.main.allSource)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//tasks.withType(ProcessResources).matching(notNeoTask).configureEach {
|
|
||||||
// from project(":Common").sourceSets.main.resources
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//publishing {
|
|
||||||
// publications {
|
|
||||||
// mavenJava(MavenPublication) {
|
|
||||||
// artifactId base.archivesName.get()
|
|
||||||
// from components.java
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// repositories {
|
|
||||||
// maven {
|
|
||||||
// url "file://" + System.getenv("local_maven")
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
@ -46,6 +46,7 @@ import net.neoforged.neoforge.event.entity.player.AttackEntityEvent;
|
||||||
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
|
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
|
||||||
import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
|
import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
|
||||||
import net.neoforged.neoforge.event.level.BlockEvent;
|
import net.neoforged.neoforge.event.level.BlockEvent;
|
||||||
|
import net.neoforged.neoforge.event.level.block.BreakBlockEvent;
|
||||||
import net.neoforged.neoforge.event.tick.ServerTickEvent;
|
import net.neoforged.neoforge.event.tick.ServerTickEvent;
|
||||||
import tschipp.carryon.CarryOnCommon;
|
import tschipp.carryon.CarryOnCommon;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
|
|
@ -78,7 +79,7 @@ public class CommonEvents
|
||||||
CarryOnData carry = CarryOnDataManager.getCarryData(player);
|
CarryOnData carry = CarryOnDataManager.getCarryData(player);
|
||||||
if (!carry.isCarrying()) {
|
if (!carry.isCarrying()) {
|
||||||
if (PickupHandler.tryPickUpBlock((ServerPlayer) player, pos, level, (pState, pPos) -> {
|
if (PickupHandler.tryPickUpBlock((ServerPlayer) player, pos, level, (pState, pPos) -> {
|
||||||
BlockEvent.BreakEvent breakEvent = new BlockEvent.BreakEvent(level, pPos, pState, player);
|
BreakBlockEvent breakEvent = new BreakBlockEvent(level, pPos, pState, player);
|
||||||
NeoForge.EVENT_BUS.post(breakEvent);
|
NeoForge.EVENT_BUS.post(breakEvent);
|
||||||
return !breakEvent.isCanceled();
|
return !breakEvent.isCanceled();
|
||||||
})) {
|
})) {
|
||||||
|
|
@ -201,7 +202,7 @@ public class CommonEvents
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onBreakBlock(BlockEvent.BreakEvent event)
|
public static void onBreakBlock(BreakBlockEvent event)
|
||||||
{
|
{
|
||||||
if (!CarryOnCommon.onTryBreakBlock(event.getPlayer())) {
|
if (!CarryOnCommon.onTryBreakBlock(event.getPlayer())) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"required": true,
|
"required": true,
|
||||||
"minVersion": "0.8",
|
"minVersion": "0.8",
|
||||||
"package": "tschipp.carryon.mixin",
|
"package": "tschipp.carryon.mixin",
|
||||||
"compatibilityLevel": "JAVA_21",
|
"compatibilityLevel": "JAVA_25",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
plugins {
|
plugins {
|
||||||
// see https://fabricmc.net/develop/ for new versions
|
// see https://fabricmc.net/develop/ for new versions
|
||||||
id 'fabric-loom' version "${loom_version}" apply false
|
id 'net.fabricmc.fabric-loom' version "${loom_version}" apply false
|
||||||
// see https://projects.neoforged.net/neoforged/moddevgradle for new versions
|
// see https://projects.neoforged.net/neoforged/moddevgradle for new versions
|
||||||
id 'net.neoforged.moddev' version "${mod_dev_version}" apply false
|
id 'net.neoforged.moddev' version "${mod_dev_version}" apply false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,18 +25,9 @@ repositories {
|
||||||
}
|
}
|
||||||
filter { includeGroupAndSubgroups('org.spongepowered') }
|
filter { includeGroupAndSubgroups('org.spongepowered') }
|
||||||
}
|
}
|
||||||
exclusiveContent {
|
maven {
|
||||||
forRepositories(
|
name = "NeoForge"
|
||||||
maven {
|
url = 'https://maven.neoforged.net/releases'
|
||||||
name = 'ParchmentMC'
|
|
||||||
url = 'https://maven.parchmentmc.org/'
|
|
||||||
},
|
|
||||||
maven {
|
|
||||||
name = "NeoForge"
|
|
||||||
url = 'https://maven.neoforged.net/releases'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
filter { includeGroup('org.parchmentmc.data') }
|
|
||||||
}
|
}
|
||||||
maven {
|
maven {
|
||||||
name = 'BlameJared'
|
name = 'BlameJared'
|
||||||
|
|
@ -97,8 +88,6 @@ processResources {
|
||||||
'description' : project.description,
|
'description' : project.description,
|
||||||
'neoforge_version' : neoforge_version,
|
'neoforge_version' : neoforge_version,
|
||||||
'neoforge_loader_version_range': neoforge_loader_version_range,
|
'neoforge_loader_version_range': neoforge_loader_version_range,
|
||||||
"forge_version": forge_version,
|
|
||||||
"forge_loader_version_range": forge_loader_version_range,
|
|
||||||
'credits' : credits,
|
'credits' : credits,
|
||||||
'java_version' : java_version,
|
'java_version' : java_version,
|
||||||
'minecraft_version_range_fabric' : minecraft_version_range_fabric,
|
'minecraft_version_range_fabric' : minecraft_version_range_fabric,
|
||||||
|
|
@ -127,8 +116,18 @@ publishing {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
|
maven {
|
||||||
|
name = 'local'
|
||||||
|
url = layout.buildDirectory.dir("repo")
|
||||||
|
}
|
||||||
maven {
|
maven {
|
||||||
url System.getenv('local_maven_url')
|
url System.getenv('local_maven_url')
|
||||||
|
name = 'LTDNexus'
|
||||||
|
url = 'https://nexus.bot.leisuretimedock.top/repository/maven-releases/'
|
||||||
|
credentials {
|
||||||
|
username = System.getenv('LTDNexusUsername') ?: ''
|
||||||
|
password = System.getenv('LTDNexusPassword') ?: ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,44 +1,33 @@
|
||||||
# Project
|
# Project
|
||||||
version=2.9.1
|
version=3.0.2
|
||||||
group=tschipp.carryon
|
group=tschipp.carryon
|
||||||
|
|
||||||
# Common
|
# Common
|
||||||
minecraft_version=1.21.11
|
minecraft_version=26.1.2
|
||||||
mod_name=Carry On
|
mod_name=Carry On
|
||||||
mod_author=Tschipp, PurpliciousCow
|
mod_author=Tschipp, PurpliciousCow
|
||||||
mod_id=carryon
|
mod_id=carryon
|
||||||
license=GNU LGPLv3
|
license=GNU LGPLv3
|
||||||
credits=
|
credits=
|
||||||
description=Carry On is a simple mod that improves game interaction by allowing players to pick up, carry, and place single block Tile Entities using only their empty hands.
|
description=Carry On is a simple mod that improves game interaction by allowing players to pick up, carry, and place single block Tile Entities using only their empty hands.
|
||||||
minecraft_version_range=[1.21.11, 26)
|
minecraft_version_range=[26.1, 27)
|
||||||
minecraft_version_range_fabric=>=1.21.11 <26
|
minecraft_version_range_fabric=>=26.1 <27
|
||||||
neo_form_version=1.21.11-20251209.172050
|
neo_form_version=26.1.2-1
|
||||||
java_version=21
|
java_version=25
|
||||||
parchment_version=2025.12.20
|
mod_dev_version=2.0.141
|
||||||
parchment_game_version=1.21.11
|
|
||||||
mod_dev_version=2.0.134
|
|
||||||
# Forge
|
|
||||||
forge_version=61.0.3
|
|
||||||
forge_loader_version_range=[61,)
|
|
||||||
parchment_mappings=2025.12.20-1.21.11
|
|
||||||
//forge_ats_enabled=true
|
|
||||||
|
|
||||||
# Fabric
|
# Fabric
|
||||||
fabric_version=0.140.2+1.21.11
|
fabric_version=0.148.0+26.1.2
|
||||||
fabric_loader_version=0.18.4
|
fabric_loader_version=0.18.4
|
||||||
parchment_mappings_fabric=1.21.11:2025.12.20
|
loom_version=1.15.5
|
||||||
loom_version=1.13-SNAPSHOT
|
|
||||||
|
|
||||||
# Neoforge
|
# Neoforge
|
||||||
neoforge_version=21.11.14-beta
|
neoforge_version=26.1.2.43-beta
|
||||||
neoforge_loader_version_range=[4,)
|
neoforge_loader_version_range=[4,)
|
||||||
neogradle.subsystems.parchment.minecraftVersion=1.21.11
|
|
||||||
neogradle.subsystems.parchment.mappingsVersion=2025.12.20
|
|
||||||
|
|
||||||
|
|
||||||
# Gradle
|
# Gradle
|
||||||
org.gradle.jvmargs=-Xmx3G
|
org.gradle.jvmargs=-Xmx3G
|
||||||
org.gradle.daemon=false
|
org.gradle.daemon=false
|
||||||
|
|
||||||
mixinextras_version=0.5.0
|
mixinextras_version=0.5.0
|
||||||
cloth_config_version=20.0.148
|
cloth_config_version=26.1.154
|
||||||
|
|
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
|
||||||
|
|
@ -3,19 +3,9 @@ pluginManagement {
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
exclusiveContent {
|
maven {
|
||||||
forRepository {
|
name = 'Fabric'
|
||||||
maven {
|
url = uri('https://maven.fabricmc.net')
|
||||||
name = 'Fabric'
|
|
||||||
url = uri('https://maven.fabricmc.net')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
filter {
|
|
||||||
includeGroup('net.fabricmc')
|
|
||||||
includeGroup('net.fabricmc.unpick')
|
|
||||||
includeGroup('fabric-loom')
|
|
||||||
includeGroup('net.fabricmc.unpick')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
exclusiveContent {
|
exclusiveContent {
|
||||||
forRepository {
|
forRepository {
|
||||||
|
|
@ -31,21 +21,14 @@ pluginManagement {
|
||||||
exclusiveContent {
|
exclusiveContent {
|
||||||
forRepository {
|
forRepository {
|
||||||
maven {
|
maven {
|
||||||
name = 'Forge'
|
name = 'NeoForged'
|
||||||
url = uri('https://maven.minecraftforge.net')
|
url = 'https://maven.neoforged.net/releases'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
filter {
|
filter {
|
||||||
includeGroupAndSubgroups('net.minecraftforge')
|
includeGroupAndSubgroups("net.neoforged")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
maven {
|
|
||||||
name = 'ParchmentMC'
|
|
||||||
url = 'https://maven.parchmentmc.org'
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,5 +43,4 @@ if (System.getenv('BUILD_NUMBER') != null) {
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = 'CarryOn'
|
rootProject.name = 'CarryOn'
|
||||||
//include("Common", "Fabric", "NeoForge")
|
include("Common", "Fabric", "NeoForge")
|
||||||
include("Common", "Fabric", "Forge", "NeoForge")
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user