SuperLeadRope/src/main/java/top/r3944realms/superleadrope/util/capability/LeashUtil.java
3944Realms 1a56faad9f feature: 1.添加了拴绳相关属性的配置 2.创建ILeashState实现自定义拴绳渲染位置(待关联)
refactor: 1.调整和优化两Cap的Nbt序列化实现
todo:1.渲染器相关代码并未清除(暂时) 2.永恒土豆待分离逻辑
2025-09-14 00:50:35 +08:00

37 lines
1.6 KiB
Java

/*
* Super Lead rope mod
* Copyright (C) 2025 R3944Realms
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package top.r3944realms.superleadrope.util.capability;
import net.minecraft.world.entity.Entity;
import org.jetbrains.annotations.NotNull;
import top.r3944realms.superleadrope.content.capability.CapabilityHandler;
import top.r3944realms.superleadrope.content.capability.inter.ILeashData;
import top.r3944realms.superleadrope.content.capability.inter.ILeashState;
import java.util.Objects;
import java.util.Optional;
public class LeashUtil {
public static Optional<ILeashData> getLeashData(@NotNull Entity entity) {
Objects.requireNonNull(entity, "Entity cannot be null");
return entity.getCapability(CapabilityHandler.LEASH_DATA_CAP).resolve();
}
public static Optional<ILeashState> getLeashState(@NotNull Entity entity) {
Objects.requireNonNull(entity, "Entity cannot be null");
return entity.getCapability(CapabilityHandler.LEASH_STATE_CAP).resolve();
}
}