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

cn.nukkit.scoreboard.manager.IScoreboardManager Maven / Gradle / Ivy

There is a newer version: 1.20.40-r1
Show newest version
package cn.nukkit.scoreboard.manager;

import cn.nukkit.Player;
import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;
import cn.nukkit.entity.EntityLiving;
import cn.nukkit.scoreboard.data.DisplaySlot;
import cn.nukkit.scoreboard.displayer.IScoreboardViewer;
import cn.nukkit.scoreboard.scoreboard.IScoreboard;
import cn.nukkit.scoreboard.storage.IScoreboardStorage;

import javax.annotation.Nullable;
import java.util.Map;
import java.util.Set;

/**
 * 管理,储存一批计分板 
* 此接口面向/scoreboard命令,若只是想要显示信息,请直接操作scoreboard对象 */ @PowerNukkitXOnly @Since("1.19.30-r1") public interface IScoreboardManager { /** * 添加一个计分板 * @param scoreboard 目标计分板 * @return 是否添加成功(返回false若计分板已存在或者事件被撤销) */ boolean addScoreboard(IScoreboard scoreboard); /** * 删除一个计分板 * @param scoreboard 目标计分板 * @return 是否删除成功(返回false若计分板已存在或者事件被撤销) */ boolean removeScoreboard(IScoreboard scoreboard); /** * 删除一个计分板 * @param objectiveName 目标计分板标识名称 * @return 是否删除成功(返回false若计分板已存在或者事件被撤销) */ boolean removeScoreboard(String objectiveName); /** * 获取计分板对象(若存在) * @param objectiveName 目标计分板标识名称 * @return 计分板对象 */ @Nullable IScoreboard getScoreboard(String objectiveName); /** * 获取所有计分板对象 * @return 所有计分板对象 */ Map getScoreboards(); /** * 检查是否存在指定计分板 * @param scoreboard 指定计分板 * @return 是否存在 */ boolean containScoreboard(IScoreboard scoreboard); /** * 检查是否存在指定计分板 * @param name 指定计分板标识名称 * @return 是否存在 */ boolean containScoreboard(String name); /** * 获取显示槽位信息 * @return 显示槽位信息 */ Map getDisplay(); /** * 获取指定显示槽位的计分板(若存在) * @param slot 指定槽位 * @return 计分板对象 */ @Nullable IScoreboard getDisplaySlot(DisplaySlot slot); /** * 设置指定槽位显示计分板 * 若形参scoreboard为null,则清除指定槽位内容 * @param slot 指定槽位 * @param scoreboard 计分板对象 */ void setDisplay(DisplaySlot slot, @Nullable IScoreboard scoreboard); /** * 获取所有观察者 * @return 所有观察者 */ Set getViewers(); /** * 添加一个观察者 * @param viewer 目标观察者 * @return 是否添加成功 */ boolean addViewer(IScoreboardViewer viewer); /** * 删除一个观察者(若存在) * @param viewer 目标观察者 * @return 是否删除成功 */ boolean removeViewer(IScoreboardViewer viewer); /** * 服务端内部方法 */ void onPlayerJoin(Player player); /** * 服务端内部方法 */ void beforePlayerQuit(Player player); /** * 服务端内部方法 */ void onEntityDead(EntityLiving entity); /** * 获取计分板存储器实例 * @return 存储器实例 */ IScoreboardStorage getStorage(); /** * 通过存储器保存计分板信息 */ void save(); /** * 从存储器重新读取计分板信息 */ void read(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy