---
sidebarDepth: 1
---
# 工具
## AddRepeatedTimer
服务端客户端
### 服务端接口
method in mod.server.component.gameCompServer.GameComponentServer
- 描述
添加服务端触发的定时器,重复执行
- 参数
| 参数名 |
数据类型
| 说明 |
| :--- | :--- | :--- |
| delay | float | 延迟时间,单位秒 |
| func | function | 定时器触发函数 |
| *args | any | 变长参数,可以不设置 |
| **kwargs | any | 字典变长参数,可以不设置 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| CallLater | 返回触发的定时器实例 |
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddRepeatedTimer(3.0,func,args,kwargs)
```
### 客户端接口
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
添加客户端触发的定时器,重复执行
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| delay | float | 延迟时间,单位秒 |
| func | function | 定时器触发函数 |
| *args | any | 变长参数,可以不设置 |
| **kwargs | any | 字典变长参数,可以不设置 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| CallLater | 返回触发的定时器实例 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddRepeatedTimer(3.0,func,args,kwargs)
```
## AddTimer
服务端客户端
### 服务端接口
method in mod.server.component.gameCompServer.GameComponentServer
- 描述
添加服务端触发的定时器,非重复
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| delay | float | 延迟时间,单位秒 |
| func | function | 定时器触发函数 |
| *args | any | 变长参数,可以不设置 |
| **kwargs | any | 字典变长参数,可以不设置 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| CallLater | 返回单次触发的定时器实例 |
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddTimer(3.0,func,args,kwargs)
```
### 客户端接口
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
添加客户端触发的定时器,非重复
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| delay | float | 延迟时间,单位秒 |
| func | function | 定时器触发函数 |
| *args | any | 变长参数,可以不设置 |
| **kwargs | any | 字典变长参数,可以不设置 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| CallLater | 返回单次触发的定时器实例 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddTimer(3.0,func,args,kwargs)
```
## CancelTimer
服务端客户端
### 服务端接口
method in mod.server.component.gameCompServer.GameComponentServer
- 描述
取消定时器
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| timer | CallLater | AddTimer和AddRepeatedTimer时返回的定时器实例 |
- 返回值
无
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
comp.CancelTimer(timer)
```
### 客户端接口
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
取消定时器
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| timer | CallLater | AddOnceTimer和AddRepeatedTimer时返回的定时器实例 |
- 返回值
无
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.CancelTimer(timer)
```
## CheckNameValid
服务端客户端
### 服务端接口
method in mod.server.component.gameCompServer.GameComponentServer
- 描述
检查昵称是否合法,即不包含敏感词
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| name | str | 昵称 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | True:昵称合法 False:昵称非法 |
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckNameValid("史蒂夫")
```
### 客户端接口
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
检查昵称是否合法,即不包含敏感词
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| name | str | 昵称 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | True:昵称合法 False:昵称非法 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckNameValid("史蒂夫")
```
## CheckWordsValid
服务端客户端
### 服务端接口
method in mod.server.component.gameCompServer.GameComponentServer
- 描述
检查语句是否合法,即不包含敏感词
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| words | str | 语句 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | True:语句合法
False:语句非法 |
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckWordsValid("creeper? Aww man")
```
### 客户端接口
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
检查语句是否合法,即不包含敏感词
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| words | str | 语句 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | True:语句合法
False:语句非法 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckWordsValid("creeper? Aww man")
```
## GetChinese
服务端客户端
### 服务端接口
method in mod.server.component.gameCompServer.GameComponentServer
- 描述
获取langStr对应的中文,可参考PC开发包中\handheld\localization\handheld\data\resource_packs\vanilla\texts\zh_CN.lang
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| langStr | str | 传入的langStr |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| str | langStr对应的中文,若找不到对应的中文,则会返回langStr本身 |
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
# 获取"entity.wolf.name"对应的中文("狼")
Chinese = comp.GetChinese("entity.wolf.name")
```
### 客户端接口
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
获取langStr对应的中文,可参考PC开发包中\handheld\localization\handheld\data\resource_packs\vanilla\texts\zh_CN.lang
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| langStr | str | 传入的langStr |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| str | langStr对应的中文,若找不到对应的中文,则会返回langStr本身 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
# 获取"entity.wolf.name"对应的中文("狼")
Chinese = comp.GetChinese("entity.wolf.name")
```
## GetFps
客户端
method in mod.client.component.gameCompClient.GameComponentClient
- 描述
获取fps
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| float | 当前fps值 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
fps = comp.GetFps()
```
## GetMinecraftEnum
服务端客户端
### 服务端接口
method in mod.server.extraServerApi
- 描述
用于获取[枚举值文档](../../枚举值/索引.md)中的枚举值
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| minecraftEnum | 枚举集合类 |
- 示例
```python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId)
# 使用枚举值作为其他接口的参数
comp.SetPlayerGameType(serverApi.GetMinecraftEnum().GameType.Survival)
```
### 客户端接口
method in mod.client.extraClientApi
- 描述
用于获取[枚举值文档](../../枚举值/索引.md)中的枚举值
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| minecraftEnum | 枚举集合类 |
- 示例
```python
import mod.client.extraClientApi as clientApi
# 使用枚举值与事件参数比较
class BattleUI(ScreenNode):
def OnButtonTouch(self, args):
touchEventEnum = clientApi.GetMinecraftEnum().TouchEvent
if touchEvent == touchEventEnum.TouchUp:
pass
def Create(self):
self.AddTouchEventHandler("/panel/test_btn", self.OnButtonTouch, {"isSwallow":True})
```
## GetModConfigJson
客户端
method in mod.client.extraClientApi
- 描述
以字典形式返回指定路径的json格式配置文件的内容,文件必须放置在资源包的/modconfigs目录下
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| path | str | 指定路径的json文件 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| dict | 配置内容的字典,当读取文件失败时返回空字典 |
- 示例
```python
import mod.client.extraClientApi as clientApi
data = clientApi.GetModConfigJson("modconfigs/monster.json")
```
## StartCoroutine
服务端客户端
### 服务端接口
method in mod.server.extraServerApi
- 描述
开启服务端协程,实现函数分段式执行,可用于缓解复杂逻辑计算导致游戏卡顿问题
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| iterOrFunc | generator或callable([],generator) | 传入带有yield函数或传入生成器。如传入生成器则将从生成器中断位置开始执行,如传入函数将从头开始执行 |
| callback | function | 协程执行完后的回调函数,默认为None |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| generator | 函数生成器 |
- 示例
```python
#通过生成器执行协程
import server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(serverApi.GetLevelId())
def callback():
print "callback"
def coroutineTest():
for i in xrange(1000):
print i
yield
generator = serverApi.StartCoroutine(coroutineTest, callback)
#执行1秒后停止协程
comp.AddTimer(1.0, serverApi.StopCoroutine, generator)
#5秒后传入StartCoroutine返回的生成器,则函数将从停止位置继续执行
comp.AddTimer(5.0, serverApi.StartCoroutine, generator, callback)
#----------------------------------------------------------------
#通过函数执行协程
import server.extraServerApi as serverApi
def callback():
print "callback"
def coroutineTest():
for i in xrange(1000):
print i
yield
#传入函数,函数将从头开始执行
serverApi.StartCoroutine(coroutineTest, callback)
```
### 客户端接口
method in mod.client.extraClientApi
- 描述
开启客户端协程,实现函数分段式执行,可用于缓解复杂逻辑计算导致游戏卡顿问题
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| iterOrFunc | generator或callable([],generator) | 传入带有yield函数或传入生成器。如传入生成器则将从生成器中断位置开始执行,如传入函数将从头开始执行 |
| callback | function | 协程执行完后的回调函数,默认为None |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| generator | 函数生成器 |
- 示例
```python
#通过生成器执行协程
import client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(clientApi.GetLevelId())
def callback():
print "callback"
def coroutineTest():
for i in xrange(1000):
print i
yield
generator = clientApi.StartCoroutine(coroutineTest, callback)
#执行1秒后停止协程
comp.AddTimer(1.0, clientApi.StopCoroutine, generator)
#执行5秒后传入StartCoroutine返回的生成器,则函数将从停止位置继续执行
comp.AddTimer(5.0, clientApi.StartCoroutine, generator, callback)
#----------------------------------------------------------------
#通过函数执行协程
import client.extraClientApi as clientApi
def callback():
print "callback"
def coroutineTest():
for i in xrange(1000):
print i
yield
#传入函数,函数将从头开始执行
clientApi.StartCoroutine(coroutineTest, callback)
```
## StopCoroutine
服务端客户端
### 服务端接口
method in mod.server.extraServerApi
- 描述
停止协程
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| iter | generator | 需要停止的生成器对象,StartCoroutine的返回值 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 是否成功 |
- 示例
```python
import mod.server.extraServerApi as serverApi
serverApi.StopCoroutine(generator)
```
### 客户端接口
method in mod.client.extraClientApi
- 描述
停止客户端协程
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| iter | generator | 需要停止的生成器对象,StartCoroutine的返回值 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
clientApi.StopCoroutine(generator)
```