API & Listeners - Sbaoor-fly/CSR-IronPythonRunner GitHub Wiki

一、API定义接口

通用数据处理

(1) tool.WriteAllText(path,text)

  • 覆盖式写入文件

(2) tool.AppendAllText(path,text)

  • 向文件中追加写入

(3) tool.ReadAllLine(path)

  • 返回一个list,每个value为文件的每一行

(4) tool.ShareData(key,value)

  • 设置一个共享数据,共享成功返回0,不成功返回1

(5) tool.GetShareData(key)

  • 获得一个共享数据,若无key则返回1

(6) tool.ChangeShareData

  • 修改共享数据,修改成功返回0,不成功返回1

(7) tool.RemoveShareData(key)

  • 移除共享数据,移除成功返回0,不成功返回1

(8) tool.ShareFunc(key,func)

  • 共享一个函数对象

(9) tool.GetShareFunc(key)

  • 获得一个函数对象

(10) tool.WorkingPath()

  • 返回BDS完整工作路径

(11) tool.HttpPost(Url,DataStr)

  • 发起一个非异步HttpPost请求

(12) tool.HttpGet(Url,DataStr)

  • 发起一个非异步HttpGet请求

(13) tool.CreateDir(path)

  • 创建文件夹

(14) tool.IfFile(path)

  • 返回一个bool值判断文件是否存在

(15) tool.IfDir(path)

  • 返回一个bool值判断文件夹是否存在

(16) tool.CreateSqlite()

  • 创建Sqlite对象

MC玩家互动相关功能

(1) mc.runcmd(cmd)

  • 执行后台命令

(2) mc.MCCSAPIVERSION()

  • 返回CSR版本

(3) mc.MCPYAPIVERSION()

  • 返回当前IronPythonRunner版本

(4) mc.AnalysisEvent()

  • 解析一个事件数据

(5) mc.logout(msg)

  • 向控制台输出

(6) mc.getOnLinePlayers()

  • 获取在线玩家

(7) mc.getPlayerAbilities(uuid)

  • 获取uuid对应玩家能力表

(8) mc.getPlayerAttributes(uuid)

  • 获取uuid对应玩家属性表

(9) mc.getPlayerEffects(uuid)

  • 获取uuid对应玩家所有效果表

(10) mc.getscoreboard(uuid,scoreboardname)

  • 获取对应uuid玩家特定计分板的数值

(11) mc.addPlayerItem(uuid,id,aux ,count)

  • 为uuid对应玩家添加特定物品id和特定特殊值的物品count个

(12) mc.setCommandDescribe(key,descripition)

  • 设置一个描述为description的key指令

(13) mc.teleport(uuid,x,y,z,did)

  • 传送uuid对应玩家到did维度的x,y,z处

(14) mc. setPlayerBossBart(uuid,title,percent)

  • 设置uuid对应玩家标题为title,血条百分比为percent的boss血条

(15) mc.setPlayerSidebar(uuid,title,list)

  • 设置uuid对应玩家侧边栏,标题为title,内容为json格式的list

(16) mc.getPlayerItems(uuid)

  • 获取uuid对应玩家物品

(17) mc.setPlayerPermissionAndGametype(uuid, modes)

  • 设置uuid对应玩家新游戏与权限模式

(18) mc.disconnectClient(uuid,tips)

  • 强制断开uuid对应玩家连接

(19) mc.transferserver(uuid, addr, port)

  • 传送uuid对应玩家到IP为addr的服务器port端口

(20) mc.getPlayerMaxAttributes(uuid)

  • 获取uuid对应玩家最大能力表

(21) mc.tellraw(player,msg)

  • 向对应玩家发送msg信息

(22) mc.talkAs(uuid,msg)

  • 模拟uuid对应玩家说一句话

(23) mc.getPlayerMaxAttributes(uuid)

  • 获取uuid对应玩家最大能力表

(24) mc.sendSimpleForm(uuid,title,contest,buttons)

  • 向uuid对应玩家发送一个简单的表单,返回表单id

(25) mc.releaseForm(formid)

  • 放弃一个id为formid的表单

(26) mc.removePlayerBossBar(uuid)

  • 清除uuid对应玩家boss血条

(27) mc.removePlayerSidebar(uuid)

  • 清除uuid对应玩家侧边栏

(28) mc.sendCustomForm(uuid,json)

  • 向uuid对应玩家发送一个自定义表单,返回表单id
'{"content":[{"type":"label","text":"这是一个文本标签"},{"placeholder":"水印文本","default":"","type":"input","text":""},{"default":true,"type":"toggle","text":"开关~或许是吧"},{"min":0.0,"max":10.0,"step":2.0,"default":3.0,"type":"slider","text":"游标滑块!?"},{"default":1,"steps":["Step 1","Step 2","Step 3"],"type":"step_slider","text":"矩阵滑块?!"},{"default":1,"options":["Option 1","Option 2","Option 3"],"type":"dropdown","text":"如你所见,下拉框"}], "type":"custom_form","title":"这是一个自定义窗体"}'

(29) mc.sendModalForm(uuid, title, contest, button1,button2)

  • 向uuid对应玩家发送一个模式对话框,返回表单id

(30) mc.setServerMotd(motd ,isshow)

  • 设置服务器MOTD,isshow为一个bool值

(31) mc.reName(uuid, name)

  • 重命名一个玩家

(32) mc.runcmdAs(uuid, command)

  • 模拟玩家执行一个命令

(33) mc.selectPlayer(uuid)

  • 查询uuid对应玩家基本信息

(34) mc.creatPlayerObject(uuid)

  • 创建玩家指针对象

(35)mc.creatGUI()

  • 创建GUI对象

MC核心玩法相关功能

监听器 是否可拦截 对应事件 描述
mobdie MobDieEvent 生物死亡
respawn RespawnEvent 玩家重生
inputcommand InputCommandEvent 玩家输入指令
equippedarm EquippedArmorEvent 玩家穿戴盔甲
destroyblock DestroyBlockEvent 玩家破坏方块
inputtext InputTextEvent 玩家输入文本
attack AttackEvent 玩家攻击
server_command ServerCmdEvent 后台输入指令
load_name LoadNameEvent 加载玩家名字
player_left PlayerLeftEvent 玩家退出
formselect FormSelectEvent 玩家选择表单
useitem UseItemEvent 玩家使用物品
placeblock PlacedBlockEvent 玩家放置方块
levelexplode LevelExplodeEvent 方块/实体爆炸
pistonpush PistonPushEvent 活塞推动方块
blockcmd BlockCmdEvent 命令方块执行命令
npccmd NpcCmdEvent NPC执行命令
openchest StartOpenChestEvent 开启箱子
closechest StopOpenChestEvent 关闭箱子
server_cmdoutput ServerCmdOutputEvent 后台输出

(1) load_name

xuid —— 玩家对应xuid

uuid ——玩家对应uuid

playername —— 玩家名称

(2) player_left

xuid —— 玩家对应xuid

uuid ——玩家对应uuid

playername —— 玩家名称

(3) server_command

cmd —— 后台输入的指令

(4) attack

actorname —— 被攻击实体名称

playername —— 攻击者名称

dimensionid —— 玩家所在维度ID

XYZ —— 玩家所处位置

(5) inputtext

playername —— 玩家名称

msg —— 输入的文本

dimensionid —— 玩家所在维度ID

XYZ —— 玩家所在位置

(6) destroyblock

playername —— 玩家名称

blockid —— 方块id

XYZ —— 玩家所在位置

position —— 方块所在位置

blockname —— 方块名称

(7) mobdie

srcname —— 伤害源名称

mobname —— 实体名称

dimensionid —— 生物所在维度ID

playername —— 若为玩家死亡则附带此项

(8) respawn

XYZ —— 玩家所在位置

dimensionid —— 玩家所在维度ID

playername —— 玩家名称

(9) inputcommand

cmd —— 玩家输入的指令

dimensionid —— 玩家所在维度ID

playername —— 玩家名称

XYZ —— 玩家所在位置

(10) equippedarm

playername —— 玩家名称

itemid —— 物品id

itemcount —— 物品数量

itemname —— 物品名字

itemaux —— 物品特殊值

solt —— 操作格子

XYZ —— 玩家所在位置

(11) formselect

formid —— 表单id

selected —— 选择项

uuid —— 玩家uuid

playername —— 玩家名称

(12) useitem

playername —— 玩家名称

itemid —— 物品id

itemcount —— 物品数量

itemname —— 物品名字

itemaux —— 物品特殊值

playername —— 玩家名称

XYZ —— 玩家所在位置

position —— 方块所在位置

(13) placeblock

playername —— 玩家名称

XYZ —— 玩家所在位置

position —— 方块所在位置

blockid —— 方块id

blockname —— 方块名字

dimensionid —— 方块所在维度ID

(14) levelexplode

blockid —— 爆炸方块id

entityid —— 爆炸实体id

blockname —— 爆炸方块名称

entityname—— 爆炸实体名称

position —— 爆炸所在位置

explodepower —— 爆炸强度

dimensionid —— 爆炸所在维度ID

(15) npccmd

npcname —— npc名称

actionid —— 选择项

actions —— 指令列表

position —— npc所在位置

entityid —— ncp实体id

entityname —— npc实体名称

dimensionid —— npc所在维度ID

(16) pistonpush

targetposition —— 被推动的方块所在位置

targetblockid —— 被推动的方块id

targetblockname ——被推动的方块名称
 
dimensionid —— 活塞所在维度ID

blockid —— 活塞id

blockname —— 活塞名称

(17) blockcmd

cmd —— 执行的命令

position —— 命令方块所在位置

dimensionid —— 命令方块所在维度ID

type —— 执行者类型

tickdelay —— 执行间隔

(18) openchest

playername —— 玩家名称

XYZ —— 玩家所在位置

position —— 箱子所在位置

blockid —— 箱子id

blockname —— 箱子名字

dimensionid —— 箱子所在维度ID

(19) colsechest

playername —— 玩家名称

XYZ —— 玩家所在位置

position —— 箱子所在位置

blockid —— 箱子id

blockname —— 箱子名字

dimensionid —— 箱子所在维度ID

(20) server_cmdoutput

output —— 后台输出的信息