Package cn.nukkit.scoreboard.manager
Class ScoreboardManager
java.lang.Object
cn.nukkit.scoreboard.manager.ScoreboardManager
- All Implemented Interfaces:
IScoreboardManager
@PowerNukkitXOnly
@Since("1.19.30-r1")
public class ScoreboardManager
extends Object
implements IScoreboardManager
-
Field Summary
Modifier and TypeFieldDescriptionprotected Map<DisplaySlot,
IScoreboard> protected Map<String,
IScoreboard> protected IScoreboardStorage
protected Set<IScoreboardViewer>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
addScoreboard
(IScoreboard scoreboard) 添加一个计分板boolean
addViewer
(IScoreboardViewer viewer) 添加一个观察者void
beforePlayerQuit
(Player player) 服务端内部方法boolean
containScoreboard
(IScoreboard scoreboard) 检查是否存在指定计分板boolean
containScoreboard
(String name) 检查是否存在指定计分板获取显示槽位信息getDisplaySlot
(DisplaySlot slot) 获取指定显示槽位的计分板(若存在)getScoreboard
(String objectiveName) 获取计分板对象(若存在)获取所有计分板对象获取计分板存储器实例获取所有观察者void
onEntityDead
(EntityLiving entity) 服务端内部方法void
onPlayerJoin
(Player player) 你可能会对这里的代码感到疑惑 这里其实是为了规避玩家下线导致的“玩家离线”计分项 我们在玩家下线时,删除其他在线玩家显示槽位中的“玩家离线” 并在其重新连接上服务器时加回去void
read()
从存储器重新读取计分板信息boolean
removeScoreboard
(IScoreboard scoreboard) 删除一个计分板boolean
removeScoreboard
(String objectiveName) 删除一个计分板boolean
removeViewer
(IScoreboardViewer viewer) 删除一个观察者(若存在)void
save()
通过存储器保存计分板信息void
setDisplay
(DisplaySlot slot, IScoreboard scoreboard) 设置指定槽位显示计分板 若形参scoreboard为null,则清除指定槽位内容
-
Field Details
-
scoreboards
-
display
-
viewers
-
storage
-
-
Constructor Details
-
ScoreboardManager
-
-
Method Details
-
addScoreboard
Description copied from interface:IScoreboardManager
添加一个计分板- Specified by:
addScoreboard
in interfaceIScoreboardManager
- Parameters:
scoreboard
- 目标计分板- Returns:
- 是否添加成功(返回false若计分板已存在或者事件被撤销)
-
removeScoreboard
Description copied from interface:IScoreboardManager
删除一个计分板- Specified by:
removeScoreboard
in interfaceIScoreboardManager
- Parameters:
scoreboard
- 目标计分板- Returns:
- 是否删除成功(返回false若计分板已存在或者事件被撤销)
-
removeScoreboard
Description copied from interface:IScoreboardManager
删除一个计分板- Specified by:
removeScoreboard
in interfaceIScoreboardManager
- Parameters:
objectiveName
- 目标计分板标识名称- Returns:
- 是否删除成功(返回false若计分板已存在或者事件被撤销)
-
getScoreboard
Description copied from interface:IScoreboardManager
获取计分板对象(若存在)- Specified by:
getScoreboard
in interfaceIScoreboardManager
- Parameters:
objectiveName
- 目标计分板标识名称- Returns:
- 计分板对象
-
containScoreboard
Description copied from interface:IScoreboardManager
检查是否存在指定计分板- Specified by:
containScoreboard
in interfaceIScoreboardManager
- Parameters:
scoreboard
- 指定计分板- Returns:
- 是否存在
-
containScoreboard
Description copied from interface:IScoreboardManager
检查是否存在指定计分板- Specified by:
containScoreboard
in interfaceIScoreboardManager
- Parameters:
name
- 指定计分板标识名称- Returns:
- 是否存在
-
getDisplaySlot
Description copied from interface:IScoreboardManager
获取指定显示槽位的计分板(若存在)- Specified by:
getDisplaySlot
in interfaceIScoreboardManager
- Parameters:
slot
- 指定槽位- Returns:
- 计分板对象
-
setDisplay
Description copied from interface:IScoreboardManager
设置指定槽位显示计分板 若形参scoreboard为null,则清除指定槽位内容- Specified by:
setDisplay
in interfaceIScoreboardManager
- Parameters:
slot
- 指定槽位scoreboard
- 计分板对象
-
addViewer
Description copied from interface:IScoreboardManager
添加一个观察者- Specified by:
addViewer
in interfaceIScoreboardManager
- Parameters:
viewer
- 目标观察者- Returns:
- 是否添加成功
-
removeViewer
Description copied from interface:IScoreboardManager
删除一个观察者(若存在)- Specified by:
removeViewer
in interfaceIScoreboardManager
- Parameters:
viewer
- 目标观察者- Returns:
- 是否删除成功
-
onPlayerJoin
你可能会对这里的代码感到疑惑 这里其实是为了规避玩家下线导致的“玩家离线”计分项 我们在玩家下线时,删除其他在线玩家显示槽位中的“玩家离线” 并在其重新连接上服务器时加回去- Specified by:
onPlayerJoin
in interfaceIScoreboardManager
-
beforePlayerQuit
Description copied from interface:IScoreboardManager
服务端内部方法- Specified by:
beforePlayerQuit
in interfaceIScoreboardManager
-
onEntityDead
Description copied from interface:IScoreboardManager
服务端内部方法- Specified by:
onEntityDead
in interfaceIScoreboardManager
-
save
public void save()Description copied from interface:IScoreboardManager
通过存储器保存计分板信息- Specified by:
save
in interfaceIScoreboardManager
-
read
public void read()Description copied from interface:IScoreboardManager
从存储器重新读取计分板信息- Specified by:
read
in interfaceIScoreboardManager
-
getScoreboards
Description copied from interface:IScoreboardManager
获取所有计分板对象- Specified by:
getScoreboards
in interfaceIScoreboardManager
- Returns:
- 所有计分板对象
-
getDisplay
Description copied from interface:IScoreboardManager
获取显示槽位信息- Specified by:
getDisplay
in interfaceIScoreboardManager
- Returns:
- 显示槽位信息
-
getViewers
Description copied from interface:IScoreboardManager
获取所有观察者- Specified by:
getViewers
in interfaceIScoreboardManager
- Returns:
- 所有观察者
-
getStorage
Description copied from interface:IScoreboardManager
获取计分板存储器实例- Specified by:
getStorage
in interfaceIScoreboardManager
- Returns:
- 存储器实例
-