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

添加entity.item链式参数

This commit is contained in:
XiaoMoMi
2025-10-20 17:56:10 +08:00
parent 728b6e2433
commit 549f758cae
7 changed files with 36 additions and 2 deletions

View File

@@ -0,0 +1,8 @@
package net.momirealms.craftengine.core.entity;
import net.momirealms.craftengine.core.item.Item;
public interface ItemEntity {
Item<?> getItem();
}

View File

@@ -38,7 +38,6 @@ public class StringKeyConstructor extends SafeConstructor {
this.path = path;
}
private boolean isVersionMatch(String versionSpec) {
int index = versionSpec.indexOf('~');
// 没有范围值

View File

@@ -21,6 +21,7 @@ public abstract class AbstractChainParameterContext extends AbstractCommonContex
CHAIN_PARAMETERS.put(DirectContextParameters.OFF_HAND_ITEM, itemProvider);
CHAIN_PARAMETERS.put(DirectContextParameters.FURNITURE_ITEM, itemProvider);
CHAIN_PARAMETERS.put(DirectContextParameters.ITEM_IN_HAND, itemProvider);
CHAIN_PARAMETERS.put(DirectContextParameters.ITEM, itemProvider);
}
@SuppressWarnings("unchecked")

View File

@@ -48,6 +48,7 @@ public final class DirectContextParameters {
public static final ContextKey<UUID> UUID = ContextKey.direct("uuid");
public static final ContextKey<Item<?>> MAIN_HAND_ITEM = ContextKey.direct("main_hand_item");
public static final ContextKey<Item<?>> OFF_HAND_ITEM = ContextKey.direct("off_hand_item");
public static final ContextKey<Item<?>> ITEM = ContextKey.direct("item");
public static final ContextKey<CustomBlock> CUSTOM_BLOCK = ContextKey.direct("custom_block");
public static final ContextKey<ExistingBlock> BLOCK = ContextKey.direct("block");
public static final ContextKey<Long> TIME = ContextKey.direct("time");

View File

@@ -1,6 +1,7 @@
package net.momirealms.craftengine.core.plugin.context.parameter;
import net.momirealms.craftengine.core.entity.Entity;
import net.momirealms.craftengine.core.entity.ItemEntity;
import net.momirealms.craftengine.core.plugin.context.ChainParameterProvider;
import net.momirealms.craftengine.core.plugin.context.ContextKey;
import net.momirealms.craftengine.core.util.MiscUtils;
@@ -25,6 +26,12 @@ public class EntityParameterProvider implements ChainParameterProvider<Entity> {
CONTEXT_FUNCTIONS.put(DirectContextParameters.NAME, Entity::name);
CONTEXT_FUNCTIONS.put(DirectContextParameters.UUID, Entity::uuid);
CONTEXT_FUNCTIONS.put(DirectContextParameters.WORLD, Entity::world);
CONTEXT_FUNCTIONS.put(DirectContextParameters.ITEM, e -> {
if (e instanceof ItemEntity itemEntity) {
return itemEntity.getItem();
}
return null;
});
}
@SuppressWarnings("unchecked")