All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.nukkit.entity.ai.memory.IMemoryStorage Maven / Gradle / Ivy

There is a newer version: 1.20.40-r1
Show newest version
package cn.nukkit.entity.ai.memory;

import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;

import java.util.Map;

/**
 * 记忆存储器
 */
@PowerNukkitXOnly
@Since("1.19.50-r1")
public interface IMemoryStorage {

    /**
     * 写入数据到记忆类型
     *
     * @param type 记忆类型
     * @param data 数据
     * @param   数据类型
     */
     void put(MemoryType type, D data);

    /**
     * 从指定记忆类型获取数据
     *
     * @param type 记忆类型
     * @param   数据类型
     * @return 数据
     */
     D get(MemoryType type);

    /**
     * 获取所有记忆
     *
     * @return 所有记忆
     */
    Map, ?> getAll();

    /**
     * 清空指定记忆类型数据为null
     *
     * @param type 记忆类型
     */
    void clear(MemoryType type);

    /**
     * 检查指定记忆类型数据是否为空(null)
     *
     * @param type 记忆类型
     * @return 是否为空
     */
    default boolean isEmpty(MemoryType type) {
        return get(type) == null;
    }

    /**
     * 检查指定记忆类型数据是否不为空(null)
     *
     * @param type 记忆类型
     * @return 是否不为空
     */
    default boolean notEmpty(MemoryType type) {
        return get(type) != null;
    }

    /**
     * 使用指定的数据对比记忆类型存储的数据
     *
     * @param type 记忆类型
     * @param to   指定的数据
     * @return 是否相同
     */
    default  boolean compareDataTo(MemoryType type, Object to) {
        D value;
        return (value = get(type)) != null ? value.equals(to) : to == null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy