9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-22 16:39:28 +00:00

Skript表达式中如果没找到对应ID物品则返回null, 而不是抛出npe.

This commit is contained in:
Catnies
2025-06-06 15:36:09 +08:00
parent 04b1f7873d
commit c40a72f34b
2 changed files with 9 additions and 6 deletions

View File

@@ -7,14 +7,13 @@ import ch.njol.skript.lang.SkriptParser;
import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.skript.lang.util.SimpleExpression;
import ch.njol.util.Kleenean; import ch.njol.util.Kleenean;
import net.momirealms.craftengine.bukkit.api.CraftEngineItems; import net.momirealms.craftengine.bukkit.api.CraftEngineItems;
import net.momirealms.craftengine.core.item.CustomItem;
import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemBuildContext;
import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.Key;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Objects;
public class ExprCustomItem extends SimpleExpression<ItemStack> { public class ExprCustomItem extends SimpleExpression<ItemStack> {
public static void register() { public static void register() {
@@ -36,7 +35,8 @@ public class ExprCustomItem extends SimpleExpression<ItemStack> {
String itemId = this.itemId.getSingle(e); String itemId = this.itemId.getSingle(e);
if (itemId == null) if (itemId == null)
return null; return null;
return new ItemStack[] {Objects.requireNonNull(CraftEngineItems.byId(Key.of(itemId))).buildItemStack(ItemBuildContext.EMPTY)}; CustomItem<ItemStack> customItem = CraftEngineItems.byId(Key.of(itemId));
return customItem == null ? null : new ItemStack[] {customItem.buildItemStack(ItemBuildContext.EMPTY)};
} }
@Override @Override

View File

@@ -5,7 +5,7 @@ import net.momirealms.craftengine.bukkit.api.CraftEngineFurniture;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Objects; import java.util.Optional;
public class ExprEntityFurnitureID extends SimplePropertyExpression<Object, String> { public class ExprEntityFurnitureID extends SimplePropertyExpression<Object, String> {
@@ -15,8 +15,11 @@ public class ExprEntityFurnitureID extends SimplePropertyExpression<Object, Stri
@Override @Override
public @Nullable String convert(Object object) { public @Nullable String convert(Object object) {
if (object instanceof Entity entity && CraftEngineFurniture.isFurniture(entity)) if (object instanceof Entity entity && CraftEngineFurniture.isFurniture(entity)) {
return Objects.requireNonNull(CraftEngineFurniture.getLoadedFurnitureByBaseEntity(entity)).id().toString(); return Optional.ofNullable(CraftEngineFurniture.getLoadedFurnitureByBaseEntity(entity))
.map(it -> it.id().toString())
.orElse(null);
}
return null; return null;
} }