玩家对象
玩家对象表示一个在线的玩家,包含了玩家的一些属性,也可以通过玩家对象中的方法对玩家进行操作。
获取玩家对象的方法:
- 通过各种会传参玩家对象的事件获取
- 通过玩家数据管理器
PlayerInfoMaintainer
获取获取方法:
pythonclass MyPlugin(Plugin): ... def something(self): players = self.frame.get_players()
1
2
3
4
5内含方法:
players.getAllPlayers
获取当前所有在线的玩家的玩家对象。
- 返回:
返回值类型 说明 list[Player] 所有在线的玩家对象的列表
players.getPlayerByName
根据玩家名获取玩家对象。
- 参数:
参数 类型 说明 name str 玩家名 - 返回:
返回值类型 说明 Player 玩家对象 None 玩家不存在
players.getPlayerByUUID
根据玩家 UUID 获取玩家对象。
- 参数:
参数 类型 说明 uuid str 玩家 UUID - 返回:
返回值类型 说明 Player 玩家对象 None 玩家不存在
players.getPlayerByUniqueID
根据玩家 uniqueID 获取玩家对象。
- 参数:
参数 类型 说明 unique_id int 玩家唯一标识 - 返回:
返回值类型 说明 Player 玩家对象 None 玩家不存在
- 返回:
玩家 Player
对象存储了玩家的各种信息, 有许多方法对玩家执行功能。
属性名 | 类型 | 说明 |
---|---|---|
name | str | 玩家名称 |
uuid | str | 玩家 UUID,玩家唯一标识,在不同租赁服中都相同 |
xuid | str | 玩家 XUID。通常为玩家 UUID 后八位 |
unique_id | int | 玩家唯一标识 |
platform_chat_id | str | 玩家平台聊天 ID,对于网易MC无用 |
build_platform | str | 玩家游戏使用的平台 |
online | bool | 玩家是否在线 |
abilities | Abilities | 玩家拥有的能力权限 |
Player 对象的内含方法
Player.show
对该玩家显示聊天栏消息。
- 参数:
参数名 | 类型 | 说明 |
---|---|---|
text | str | 显示的文本 |
- 示例:
python
player.show("Hello World")
1
Player.input
等待并获取玩家在聊天栏输入的内容。
- 参数:
参数名 | 类型 | 说明 |
---|---|---|
prompt | str | 显示的提示文本,默认不显示 |
timeout | float | 等待输入超时时间,默认为 30 秒 |
- 返回:
不同返回值的类型 | 说明 |
---|---|
str | 玩家在聊天栏输入的内容 |
None | 等待玩家输入超时 |
- 示例:
python
resp = player.input("生命因何而沉睡?")
if resp == "因为我们终将从梦中醒来":
player.show("回答正确!")
elif resp is None:
player.show("看起来你已经陷入沉睡了...")
else:
player.show("回答错误!")
1
2
3
4
5
6
7
2
3
4
5
6
7
Player.setTitle
对该玩家显示标题大字信息。
- 参数:
参数 | 类型 | 说明 |
---|---|---|
title | str | 显示的主标题 |
subtitle | str | 显示的副标题,默认为空 |
- 示例:
python
player.setTitle(
"Hello World",
"欢迎使用 ToolDelta"
)
1
2
3
4
2
3
4
Player.setActionbar
对该玩家显示行动栏信息。
- 参数:
参数 | 类型 | 说明 |
---|---|---|
text | str | 显示的文本 |
- 示例:
python
player.setTitle(
"Hello World",
"欢迎使用 ToolDelta"
)
1
2
3
4
2
3
4
Player.getPos
获取玩家坐标。
- 参数:
参数 | 类型 | 说明 |
---|---|---|
timeout | float | 坐标获取超时时间,默认为 5 秒 |
- 返回:
多返回值类型 | 说明 |
---|---|
int | 玩家所在的维度ID |
float | 玩家所在的 X 坐标 |
float | 玩家所在的 Y 坐标 |
float | 玩家所在的 Z 坐标 |
- 报错:
类型 | 说明 |
---|---|
TimeoutError | 获取坐标返回超时 |
- 示例:
python
dim, x, y, z = player.getPos()
print(dim, x, y, z)
# output: 0 0.5 0.0 0.5
# 代表在主世界的 坐标 0.5, 0, 0.5 处
1
2
3
4
2
3
4
Player.getScore
获取玩家的计分板分数。
- 参数:
参数名 | 类型 | 说明 |
---|---|---|
scoreboard_name | str | 计分板名称 |
timeout | float | 获取计分板超时时间,默认为 5 秒 |
- 返回:
返回类型 | 说明 |
---|---|
int | 玩家的计分板分数 |
- 报错:
类型 | 说明 |
---|---|
TimeoutError | 获取计分板超时 |
ValueError | 计分板不存在或玩家没有分数 |
- 示例:
python
money = player.getScore("金币")
1
Player.getItemCount
获取玩家背包内某物品的数量。
- 参数:
参数名 | 类型 | 说明 |
---|---|---|
item_id | str | 物品 ID |
item_data | int | 物品数据值 |
timeout | float | 获取物品数量超时时间,默认为 5 秒 |
- 返回:
类型 | 说明 |
---|---|
int | 此物品的数量 |
- 报错:
类型 | 说明 |
---|---|
TimeoutError | 获取物品数量超时 |
Player.setAbilities
设置玩家能力权限。
- 参数:
参数名 | 类型 | 说明 |
---|---|---|
abilities | Abilities | 玩家权限能力 |
- 示例:
python
ab = player.abilities
# 禁止该玩家 PVP
ab.attack_players = False
player.setAbilities(ab)
1
2
3
4
2
3
4