9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

use fast nms

This commit is contained in:
XiaoMoMi
2025-03-27 00:33:48 +08:00
parent cc2cdef2f8
commit dad3082768
5 changed files with 8 additions and 2 deletions

View File

@@ -22,6 +22,8 @@ dependencies {
// NBT
compileOnly("net.momirealms:sparrow-nbt:${rootProject.properties["sparrow_nbt_version"]}")
compileOnly("net.momirealms:sparrow-util:${rootProject.properties["sparrow_util_version"]}")
// NMS
compileOnly("net.momirealms:craft-engine-nms-helper:${rootProject.properties["nms_helper_version"]}")
// Placeholder
compileOnly("me.clip:placeholderapi:${rootProject.properties["placeholder_api_version"]}")
// Platform

View File

@@ -24,6 +24,7 @@ dependencies {
implementation("com.saicone.rtag:rtag-item:${rootProject.properties["rtag_version"]}")
implementation("net.momirealms:sparrow-util:${rootProject.properties["sparrow_util_version"]}")
implementation("com.github.Xiao-MoMi:AntiGriefLib:${rootProject.properties["anti_grief_version"]}")
implementation("net.momirealms:craft-engine-nms-helper:${rootProject.properties["nms_helper_version"]}")
}
java {

View File

@@ -23,6 +23,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Callable;
// TODO Inject FallingBlockEntity?
public class ConcretePowderBlockBehavior extends FallingBlockBehavior {
public static final Factory FACTORY = new Factory();
private final Key targetBlock;

View File

@@ -15,6 +15,7 @@ import net.momirealms.craftengine.bukkit.block.BukkitBlockManager;
import net.momirealms.craftengine.bukkit.block.BukkitBlockShape;
import net.momirealms.craftengine.bukkit.item.BukkitItemManager;
import net.momirealms.craftengine.bukkit.item.recipe.BukkitRecipeManager;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.util.BlockStateUtils;
import net.momirealms.craftengine.bukkit.util.NoteBlockChainUpdateUtils;
import net.momirealms.craftengine.bukkit.util.Reflections;
@@ -592,13 +593,13 @@ public class BukkitInjector {
public static final GetAndSetInterceptor INSTANCE = new GetAndSetInterceptor();
@RuntimeType
public Object intercept(@This Object thisObj, @AllArguments Object[] args, @Origin MethodHandle method) throws Throwable {
public Object intercept(@This Object thisObj, @AllArguments Object[] args) {
InjectedPalettedContainerHolder holder = (InjectedPalettedContainerHolder) thisObj;
Object targetStates = holder.target();
int x = (int) args[0];
int y = (int) args[1];
int z = (int) args[2];
Object previousState = method.invoke(targetStates, x, y, z, args[3]);
Object previousState = FastNMS.INSTANCE.method$PalettedContainer$getAndSet(targetStates, x, y, z, args[3]);
try {
Object newState = args[3];
int stateId = BlockStateUtils.blockStateToId(newState);

View File

@@ -49,6 +49,7 @@ mojang_brigadier_version=1.0.18
byte_buddy_version=1.15.11
snake_yaml_version=2.3
anti_grief_version=0.13
nms_helper_version=0.1
# Ignite Dependencies
mixinextras_version=0.4.1
mixin_version=0.15.2+mixin.0.8.7