• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
BlocklyNukkit——缔造基岩版新生态 | 图形化插件制作器 & 多语言插件开发平台

插件 BlocklyNukkit——缔造基岩版新生态 | 图形化插件制作器 & 多语言插件开发平台 1.2.11

## 1.2.8.3

Bugs Fixed

- 修复了bnnpc浮空走路bug
- 修复了浮空物品空事件报错
- 现在的报错信息比以前好看多了

manager

- <E> callFunction(String functionname,Object... args) --callFunction会返回函数的返回值了
- <E> getVariableFrom(String scriptName,String varName) --根据bn插件名和变量名获取变量内容
- void putVariableTo(String scriptName,String varName,<E> var) --把变量值以指定变量名放到指定bn插件中
- double getCPULoad()
- int getCPUCores()
- double getMemoryTotalSizeMB()
- double getMemoryUsedSizeMB()
- void forceDisconnect(Player player)
- Array<String> getEventFunctions(Event event)
- void getServerMotd(String host, int port, String callback) --根据服务器IP和端口获取在线人数信息

blockitem

- void setItemColor(Item item,int r,int g,int b)
- void setItemUnbreakable(Item item,boolean unbreakable)

inventory

- Item getEntityHelmet(Entity entity)
- Item getEntityChestplate(Entity entity)
- Item getEntityLeggings(Entity entity)
- Item getEntityBoots(Entity entity)
- Item getEntityItemInHand(Entity entity)
- Item getEntityItemInOffHand(Entity entity)
- void setEntityItemHelmet(Entity entity,Item item)
- void setEntityItemChestplate(Entity entity,Item item)
- void setEntityItemLeggings(Entity entity,Item item)
- void setEntityItemBoots(Entity entity,Item item)
- void setEntityItemInHand(Entity entity,Item item)
- void setEntityItemInOffHand(Entity entity,Item item)
- Item getInventorySlot(Inventory inv,int slot)

window

- void forceClearWindow(Player player)
- int getEventResponseIndex(PlayerFormRespondedEvent event)

entity

- boolean isPlayer(Entity e)
- void spawnFallingBlock(Position pos, Block block, boolean enableGravity,boolean canBePlaced)

gameapi --新的基对象

- void createGame(String name,boolean useTeam,String startGameCallBack,String endGameCallBack,String mainLoopCallBack,String deathCallBack)
-- 创建一个小游戏房间
- void joinGame(Player player, String gameName) --让玩家进入指定名称的小游戏,自动匹配房间
- void leaveGame(Player player) --让玩家从小游戏房间离开
- boolean isPlayerInGame(Player player) --玩家是否正在玩某个小游戏
- GameBase getPlayerRoom(Player player) --获取玩家正在玩的小游戏对象
- Array<GameBase> getAllRoomByName(String gameName) --获取游戏名称相同的所有小游戏房间对象组成的数组
- Array<String> getAllGameNames() --获取所有正在运行的小游戏房间的名字组成的数组
- Messager getMessager(String prefix)
- Messager getGameMessager(GameBase game)
- Multiline getMultiline(String messageType)
- InventoryMenu createInventoryMenu(String inventoryType, String title)
- FormMenu createFormMenu(String title, String content)
- void addMenuItem(InventoryMenu menu, int slot, Item item, String inventoryCallback)
- void addMenuButton(FormMenu menu,String buttonText,String imageData,String formCallback)
- Scoreboard getScoreboard(Player p)
- void setObjective(Scoreboard sb, String objectiveName,String displayName)

GameBase --小游戏房间对象


EventLoader --73 new

- BlockFadeEvent
- BlockFallEvent
- BlockFromToEvent
- BlockGrowEvent
- BlockIgniteEvent
- BlockPistonChangeEvent
- BlockRedstoneEvent
- DoorToggleEvent
- CreatureSpawnEvent
- CreeperPowerEvent
- EntityArmorChangeEvent
- EntityBlockChangeEvent
- EntityCombustByBlockEvent
- EntityCombustByEntityEvent
- EntityCombustEvent
- EntityDamageByBlockEvent
- EntityDamageByChildEntityEvent
- EntityExplodeEvent
- EntityMotionEvent
- EntityPortalEnterEvent
- EntityRegainHealthEvent
- EntityShootBowEvent
- EntityVehicleEnterEvent
- EntityVehicleExitEvent
- ExplosionPrimeEvent
- BrewEvent
- EnchantItemEvent
- InventoryMoveItemEvent
- StartBrewEvent
- ChunkLoadEvent
- ChunkPopulateEvent
- LevelInitEvent
- LevelLoadEvent
- LevelSaveEvent
- LevelUnloadEvent
- SpawnChangeEvent
- ThunderChangeEvent
- WeatherChangeEvent
- PlayerAchievementAwardedEvent
- PlayerAnimationEvent
- PlayerAsyncPreLoginEvent
- PlayerBlockPickEvent
- PlayerBucketEmptyEvent
- PlayerBucketFillEvent
- PlayerChangeSkinEvent
- PlayerChunkRequestEvent
- PlayerCreationEvent
- PlayerDropItemEvent
- PlayerEatFoodEvent
- PlayerEditBookEvent
- PlayerFoodLevelChangeEvent
- PlayerGameModeChangeEvent
- PlayerGlassBottleFillEvent
- PlayerInvalidMoveEvent
- PlayerItemConsumeEvent
- PlayerLocallyInitializedEvent
- PlayerMapInfoRequestEvent
- PlayerMouseOverEntityEvent
- PlayerServerSettingsRequestEvent
- PlayerSettingsRespondedEvent
- PluginDisableEvent
- PluginEnableEvent
- PotionApplyEvent
- PotionCollideEvent
- PlayerDataSerializeEvent
- RemoteServerCommandEvent
- EntityEnterVehicleEvent
- EntityExitVehicleEvent
- VehicleCreateEvent
- VehicleDamageEvent
- VehicleDestroyEvent
- VehicleMoveEvent
- VehicleUpdateEvent
- LightningStrikeEvent
  • 喜欢
反馈: Mcayear
修复bug
- 修复了bnnpc和bn浮空字莫名其妙消失的问题

新增功能
- 现在可以在js代码的开头加上一行注释//pragma es9来开启es9语言特性,但是会有些许性能损失,损失不大,可以放心使用
- bninstall命令已经弃用,所有库全部打包进bn解释器jar,这样做是为了节约内存空间,能够节省至多50MB内存空间。

CustomWindowBuilder 高级菜单管理器新增2个成员函数
- Custom showAsSetting(Player p, String callback) 将此高级表单作为玩家的服务器设置页面
- Custom buildDropdown(String title,String inner,int index) 构建一个下拉菜单并指定默认选项

EventLoader新增1个事件
- ChunkUnloadEvent 区块卸载事件

entity新增6个函数
- void setPlayerExp(Player player,int exp) 设置玩家经验
- int getPlayerExp(Player player) 获取玩家经验
- void setPlayerExpLevel(Player player,int lel) 设置玩家等级
- int getPlayerExpLevel(Player player) 获取玩家等级
- void setPlayerHunger(Player player,int hunger) 设置玩家饥饿度
- int getPlayerHunger(Player player) 获取玩家饥饿度

window新增2个函数
- void makeTipsVar(String varname,String providerCallback) 创建动态的tips插件变量
- void makeTipsStatic(String varname,String toReplace) 创建静态的tips插件变量
  • 喜欢
反馈: Mcayear
BlocklyNukkit 1.2.8.1
新版本发布
更新内容:
BNNPC模块更新,数据库模块修复,bstats支持,浮空物品支持,新的事件,高级窗口的滑条,显示维度动画的传送,快速区块清空,修复bugs
该更新会自动推送,也可以在https://tools.blocklynukkit.com/BlocklyNukkit.jar手动下载

## 1.2.8.1

Entity

- BNNPC buildNPC(Position pos,String name,String skinID,int calltick,String callfunction,String attackfunction)
- void showFloatingItem(Position pos,Item item)
- void removeFloatingItem(Position pos,Item item)

windowbuilder

- Custom buildSlider(String title,double min,double max)
- Custom buildSlider(String title,double min,double max,int step)
- Custom buildSlider(String title,double min,double max,int step,double defaultvalue)
- Custom buildStepSlider(String title,String options)
- Custom buildStepSlider(String title,String options,int index)

window

- String getEventCustomVar(PlayerFormRespondedEvent event,int id,String mode)
- mode可以为input toggle dropdown slider stepslider

BNNPC

- void displaySwing()
- void setSwim(boolean swim)
- void setSwim()
- void setTickCallback(String callback)
- void setAttackCallback(String callback)

manager

- void bStats(String pluginName,String pluginVer,String authorName,int pluginid)
- void callFunction(String functionname,Object... args) --修复了错误的拼写

world

- void loadScreenTP(Player player,Position pos)
- void loadScreenTP(Player player,Position pos,int loadScreenTick)
- void clearChunk(Position pos)

EventLoader

- PlayerHeldEvent
- InventoryClickEvent

Bug Fixed

- manager.kickPlayer不再会显示"kicked by admin"前缀了
- bnnpc打人会正确地摇动手臂了
- callFunction拼写是正确的了
- database现在真的可用了,所有库都会被正确安装
  • 喜欢
反馈: Mcayear
## 1.2.7.5
类库管理器

- 现在类库管理器可以直接安装模块了,暂时只有python和database两个模块
- 使用命令 bninstall 模块名 安装这个类库

window

- void setBelowName(Player player,String str)
- 占位符

manager

- void loadJar(String path)
- 占位符

world

- void setOceanGenerator(int seaLevel)
- 占位符

entity

- BNNPC buildNPC(Position pos,String name,String skinID)
- BNNPC buildNPC(Position pos,String name,String skinID,int calltick,String callfunction)

BNNPC

- void turnRound(double yaw)
- void headUp(double pitch)
- void setEnableAttack(boolean attack)
- void setEnableAttack()
- void setEnableHurt(boolean hurt)
- void setEnableHurt()
- void displayHurt()
- void start()
- void setEnableGravity(boolean gravity)
- void setEnableGravity()
- void setG(double newg)
- void lookAt(Position pos)
- Player getNearestPlayer()
- boolean isSneak()
- void setSneak(boolean sneak)
- void setSneak()
- void jump()
- void setJumpHigh(double j)
- void setEnableKnockBack(boolean knock)
- void setEnableKnockBack()
- void setKnockBase(double base)
- boolean canMoveTo(Position to)
- boolean findAndMove(Position to)
- void setSpeed(double s)
- void setRouteMax(int m)
- void stopMove()
- void hit(Entity entity)

bug fixed:

- entity的effect有些药水不显示问题,但是仍然有些药水效果因为nk不支持无法显示
- world生成VOID和OCEAN出错问题
- 天域世界配置丢失问题
- ssh报错问题
- 现在窗口管理器的操作函数都返回自身,可以直接在代码里连缀了
  • 喜欢
反馈: Mcayear
开发语言
现在可以使用python2.7来制作插件了
添加了对python开发插件的完全支持,只需要下载额外的py支持包即可使用python插件
对于python开发插件的支持将与JavaScript保持同步,python与js使用同一套bn类库,所有js的bn类库(除了Java模块)之外都可以在python中直接调用,无需import
支持全部的python2.7原生标准语法和标准库,运行时与js相同,编译为java字节码运行,不必担心效率低下问题
pythonForBN支持模块下载:<a href="https://tools.blocklynukkit.com/pythonForBN.jar" target="_blank">https://tools.blocklynukkit.com/pythonForBN.jar</a>
下载后直接放到./plugins/BlocklyNukkit文件夹下面即可

事件加载器新增事件

  • PlayerInteractEntityEvent
  • PlayerDamageByPlayerEvent
  • EntityKilledByEntityEvent
  • PlayerDamageByEntityEvent
  • EntityKilledByEntityEvent
  • EntityKilledByPlayerEvent
  • PlayerRespawnEvent

window

  • void setPlayerBossBar(Player player,String text,float len)
  • void removePlayerBossBar(Player player)
  • double getLengthOfPlayerBossBar(Player player)
  • String getTextOfPlayerBossBar(Player player)

manager

  • void createPermission(String per,String description,String defaultper)
  • void removePermission(String per)
  • boolean checkPlayerPermission(String per,Player player)
  • String MD5Encryption(String str)
  • String SHA1Encryption(String str)
  • void createCommand(String name, String description, String callbackFunctionName, String per)
  • void newCommand(String name, String description, Function jsFunction,String per)

entity

  • int getNetworkID(Entity entity)
  • String getIDName(Entity entity)
  • void spawnEntity(String name,Position pos)

notemusic

  • HornSongPlayer buildHorn(Song song, Position pos, boolean isloop, boolean isautodestroy)
  • void addPlayerToHorn(HornSongPlayer SongPlayer, Player player)
  • void removePlayerToHorn(HornSongPlayer SongPlayer, Player player)
  • Array getPlayerInHorn(HornSongPlayer radioSongPlayer)
  • void setHornStatus(HornSongPlayer radioSongPlayer, boolean isplaying)
  • Song getSongInHorn(HornSongPlayer radioSongPlayer)

world

- genLevel新增"OCEAN"海洋世界生成器

bug fixed

- setNameTagAlwaysVisable error
以后所有的教程资料均在此更新
  • 喜欢
反馈: Mcayear
blockitem

- 修复了nbt函数的错误

EventLoader

- 修复了玩家判断错误的bug

entity

- 更换浮空字的pid为盔甲架的pid

Loader

  • 现在bn插件控制台输出会使用文件名作为前缀而不是\[BlocklyNukkit\]
  • 非op不再可见bn命令

编辑器

  • 添加JSON模块
  • 添加jar在线编译器
  • 喜欢
反馈: Mcayear
性能:
进行了性能优化,强制底层js转译java字节码时启动invokemethod优化
功能:
对于manager基对象:
新增函数:
  • String readFile(String path)
  • void wirteFile(String path,String text)
  • boolean isFileSame(String path1,String path2)
  • String JSONtoYAML(String json)
  • String YAMLtoJSON(String yaml)
  • void newCommand(String name, String description, Function fun)
  • int setTimeout(Function fun,int delay,<E+>... args)
  • void clearTimeout(int id)
  • int setInterval(Function fun,int delay,<E+>... args)
  • void clearInterval(int id)
  • void isWindows()
  • int getPlayerGameMode(Player player)

对于js加载器:
新增功能
  • NAME 表示加载的js文件的名称(可防御低级改名倒卖)
  • 新版发布后,24小时强制更新
  • 可以在es5语法中使用let和const定义变量

对于Custom/Modal/Simple三种窗口构建器
新增函数:
- void showToPlayerCallLambda(Player p, Function fun)

对于blockitem基对象:
新增函数:
  • Array<Enchantment> getItemEnchant(Item item)
  • int getEnchantID(Enchantment enchantment)
  • int getEnahcntLevel(Enchantment enchantment)

对于事件回调器:
新增事件
  • PlayerJumpEvent
  • PlayerToggleFlightEvent
  • PlayerToggleGlideEvent
  • PlayerToggleSwimEvent
  • PlayerToggleSneakEvent
  • PlayerToggleSprintEvent
  • 喜欢
反馈: Mcayear
对每个js文件运行时沙箱隔离,添加了命名空间和跨命名空间调用,添加了物品nbt和窗口默认值。
  • 喜欢
反馈: Mcayear
修复了bugs。
完善了同步锁。
添加了粒子模块。
添加了查询药水功能。
  • 喜欢
反馈: Mcayear
后退
顶部 底部