Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 4242|回复: 8

[插件开发教程] 1.11现已正式发布,BukkitAPI 1.10->1.11改动介绍[开发者必看]

[复制链接]
jiongjionger 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
10260
钻石
性别
保密
注册时间
2014-2-7
查看详细资料
发表于 2016-11-15 15:04:57 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 jiongjionger 于 2016-11-18 00:10 编辑

  昨日万年跳票的Mojang正式发布了1.11,Bukkit API草案在今日也已公布,按照以往的情况来看,和预计20日发布的正式版并不会有太大差距,如有变更,本帖会做修正。(目前Bukkit API已经正式发布,新增和改动的部分已更新 2016/11/18)

  总结:放在前面,怕没人看。这次API的改动可以说还是比较大的,对老插件兼容性而言新增的部分自然不需要考虑,但是Bukkit API这次一口气删除了很多原来是Deprecated状态的接口、方法、事件入口(Event),这可能导致一些远古插件(在1.6/1.7时代就弃坑的插件)无法在1.11正常工作,即便这些插件并没有使用到NMS。例如一些远古的大型插件用到了CallEvent,比如EntityDamageEvent(final Entity damagee, final DamageCause cause, final int damage),但是这个实现已经被删除,这个插件就无法在1.11中工作。

  具体改动如下:

  • Block(方块):
    新增:ShulkerBox(继承了BlockState, InventoryHolder, Lockable)

  • Command(命令):
    删除:删除了早已处于Deprecated状态的tabComplete(CommandSender sender, String[] args)

  • Enchantment(附魔):
    新增:BINDING_CURSE(绑定诅咒,内部ID:10)
    新增:VANISHING_CURSE(消失诅咒,内部ID:71)

  • Entity(实体):
    新增:AbstractHorse接口(马),继承Animals, Vehicle, InventoryHolder, Tameable
    新增:ChestedHorse接口,继承AbstractHorse,内部方法有isCarryingChest(是否装备了箱子)、setCarryingChest(设置是否装备箱子)
    新增:Donkey接口(驴),继承ChestedHorse
    新增:ElderGuardian接口(深海守卫者),继承Guardian
    新增:Evoker接口(唤魔者),继承Monster
    新增:EvokerFangs接口(唤魔者召唤的地刺),继承Entity
    删除:FallingSand(坠落中的沙子)
    新增:Husk接口(尸壳),继承Zombie
    新增:Llama接口(羊驼),继承ChestedHorse
    新增:LlamaSpit接口(羊驼的口水),继承Projectile
    新增:Mule接口(骡子),继承ChestedHorse
    删除:PoweredMinecart接口
    新增:SkeletonHorse接口(骷髅马),继承AbstractHorse
    删除:StorageMinecart接口
    新增:Stray接口(流髑),继承Skeleton
    新增:Vex接口(猥傀),继承Monster
    新增:Vindicator接口(卫道士),继承Monster
    新增:WitherSkeleton接口(凋零骷髅),继承Skeleton
    新增:ZombieHorse接口(僵尸马),继承AbstractHorse
    新增:ZombieVillager接口(僵尸村民),继承Zombie

  • Event(事件):

  • Block(方块):
    删除:删除了早已Deprecated的BlockIgniteEvent(final Block theBlock, final IgniteCause cause, final Player thePlayer)
  
  • Entity(实体):
    删除:删除了CreatureSpawnEvent中实体生成的来源:Bed(玩家睡觉时生成)

    删除
    :删除了EntityChangeBlockEvent中早已Deprecated的EntityChangeBlockEvent(final LivingEntity what, final Block block, final Material to)

    删除
    :删除了EntityDamageByBlockEvent中早已Deprecated的EntityDamageByBlockEvent(final Block damager, final Entity damagee, final DamageCause cause, final int damage)

    删除
    :删除了EntityDamageByEntityEvent中早已Deprecated的EntityDamageByEntityEvent(final Entity damager, final Entity damagee, final DamageCause cause, final int damage)

    删除
    :删除了EntityDamageEvent中早已Deprecated的EntityDamageEvent(final Entity damagee, final DamageCause cause, final int damage)

    新增
    :在EntityDamageEvent中新增了伤害的来源:CRAMMING

    删除:删除了EntityRegainHealthEvent中早已Deprecated的EntityRegainHealthEvent(final Entity entity, final int amount, final RegainReason regainReason)
    
  • Entity - Inventory(容器):
    删除:删除了CraftItemEvent中早已Deprecated的CraftItemEvent(Recipe recipe, InventoryView what, SlotType type, int slot, boolean right, boolean shift)

    删除:删除了InventoryClickEvent中早已Deprecated的InventoryClickEvent(InventoryView view, SlotType type, int slot, boolean right, boolean shift)
    
  • Entity - Player(玩家):
    删除:删除了PlayerCommandPreprocessEvent中的setFormat和getFormat方法

    删除:删除了PlayerFishEvent中早已Deprecated的PlayerFishEvent(final Player player, final Entity entity, final State state)

    删除:删除了PlayerInventoryEvent整个事件

    删除:删除了PlayerLoginEvent中早已Deprecated的PlayerLoginEvent(final Player player)、PlayerLoginEvent(final Player player, final String
hostname)、PlayerLoginEvent(final Player player, final Result result, final String message)

  • Inventory(容器):
    新增:LlamaInventory(羊驼的背包)

  • JavaPlugin(插件入口)
    删除:删除了早已废弃的JavaPlugin(final PluginLoader loader, final Server server, final PluginDescriptionFile description, final File dataFolder, final File file)


  • Potion(药水)
    删除:删除了早已Deprecated的Potion(PotionType type, Tier tier)
    删除:删除了早已Deprecated的Potion(PotionType type, Tier tier, boolean splash)
    删除:删除了早已Deprecated的Potion(PotionType type, Tier tier, boolean splash, boolean extended)
    删除:删除了getTier、setTier方法和枚举元素Tier

  • Map
    增加:增加isUnlimitedTracking()方法和setUnlimitedTracking方法(分别是判断鼠标是不是在Map里面和设置这个值)

  • Bukkit(API)
    删除:删除了useExactLoginLocation方法(判断碰撞箱,登录的时候是否需要移动玩家)


  • DyeColor(颜色)
    删除:删除了getData和getByData方法
    新增:新增了getWoolData和getByWoolData方法


  • Material(材料、材质)
    新增:OBSERVER(侦测器)
    新增:TOTEM(不死图腾)
    新增:SHULKER_SHELL(潜影贝壳)
    下面都是各种颜色的潜影盒
    新增WHITE_SHULKER_BOX
    新增:ORANGE_SHULKER_BOX
    新增:MAGENTA_SHULKER_BOX
    新增:LIGHT_BLUE_SHULKER_BOX
    新增:YELLOW_SHULKER_BOX
    新增:LIME_SHULKER_BOX
    新增:GRAY_SHULKER_BOX
    新增:PINK_SHULKER_BOX
    新增:SILVER_SHULKER_BOX
    新增:CYAN_SHULKER_BOX
    新增:PURPLE_SHULKER_BOX
    新增:BLUE_SHULKER_BOX
    新增:BROWN_SHULKER_BOX
    新增:GREEN_SHULKER_BOX
    新增:RED_SHULKER_BOX
    新增:BLACK_SHULKER_BOX

  • Particle(粒子)
    新增:TOTEM(不死图腾)
    新增:SPIT(羊驼口水)


  • Sound(声效)
    新增:BLOCK_SHULKER_BOX_CLOSE
    新增:BLOCK_SHULKER_BOX_OPEN
    新增:ENTITY_ELDER_GUARDIAN_FLOP
    新增:ENTITY_EVOCATION_FANGS_ATTACK
    新增:ENTITY_EVOCATION_ILLAGER_AMBIENT
    新增:ENTITY_EVOCATION_ILLAGER_CAST_SPELL
    新增:ENTITY_EVOCATION_ILLAGER_DEATH
    新增:ENTITY_EVOCATION_ILLAGER_HURT
    新增:ENTITY_EVOCATION_ILLAGER_PREPARE_ATTACK
    新增:ENTITY_EVOCATION_ILLAGER_PREPARE_SUMMON
    新增:ENTITY_EVOCATION_ILLAGER_PREPARE_WOLOLO
    删除:ENTITY_EXPERIENCE_ORB_TOUCH


  • 额外说明
    关于实体的命名规则有所改变。但是对于插件作者影响不大,不过如果插件使用getType().toString()等方法判断实体类型则需要修改你的代码!实体的命名规则主要是取消了下划线和大小写的改变,这部分内容在Wiki和论坛的1.11的特性列表内已经列举,故不赘叙。


评分

参与人数 16人气 +27 金粒 +241 收起 理由
awt2003 + 1 + 20 MCBBS有你更精彩~
1582952890 + 2 + 35 MCBBS有你更精彩~
Viosin + 1 MCBBS有你更精彩~
hcrgm1 + 2 MCBBS有你更精彩~
冰心丶 + 1 + 15 666
andylizi + 3 + 30 666
frank1113 + 1 很棒的作品!
凋灵兔子 + 1 看见队形我就手痒
ablu2g + 1 + 20 MCBBS有你更精彩~
810587921 + 2 MCBBS有你更精彩~
Zero_Exact + 3 + 25 MCBBS有你更精彩~
gamerteam + 2 + 20 MCBBS有你更精彩~
602723113 + 1 + 20 MCBBS有你更精彩~
刘在石 + 1 + 15 MCBBS有你更精彩~
耗子 + 2 MCBBS有你更精彩~
混乱 + 4 + 40 MCBBS有你更精彩~

查看全部评分

星燚 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
4837
钻石
性别
保密
注册时间
2016-2-13
查看详细资料
发表于 2016-11-15 16:19:07 | 显示全部楼层
我来补一句
详细的git的修改记录在这里
https://hub.spigotmc.org/stash/p ... ds%2Fversion%2F1.11

评分

参与人数 2人气 +3 收起 理由
Zero_Exact + 2 辣鸡
XIAOMM + 1 烧纸

查看全部评分

回复

使用道具 举报

q983603969 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1433
钻石
性别
保密
注册时间
2014-8-21
查看详细资料
发表于 2016-11-17 21:57:00 | 显示全部楼层
API下载地址???
回复

使用道具 举报

andylizi 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
15496
钻石
性别
保密
注册时间
2014-4-26
查看详细资料
发表于 2016-11-18 18:11:48 | 显示全部楼层
哇。比我负责多了。膜拜。

话说删除了这么多。。搞不懂他们怎么想的,完全不需要考虑兼容性?不怕被插件作者打死?咋不学学人家Java类库。。。mod不能兼容是没办法,bukkitapi本身就是一个“API”啊
回复

使用道具 举报

2048028141 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2095
钻石
性别
保密
注册时间
2016-12-17
查看详细资料
头像被屏蔽
发表于 2017-1-22 15:51:59 | 显示全部楼层
还以为mod端复活了,楼主别那么让人真怂
回复

使用道具 举报

liushihaoee 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
9
钻石
性别
保密
注册时间
2017-1-28
查看详细资料
发表于 2017-2-11 12:29:54 | 显示全部楼层
2048028141 发表于 2017-1-22 15:51
还以为mod端复活了,楼主别那么让人真怂

太好了~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

zbw001 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
408
钻石
性别
保密
注册时间
2013-12-26
查看详细资料
发表于 2017-2-14 09:03:59 | 显示全部楼层
请问。。bukkitapi发布在哪里。。。我从来没找到过。。
回复

使用道具 举报

sofa 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1331
钻石
性别
保密
注册时间
2013-7-27
查看详细资料
发表于 2017-2-25 19:33:08 | 显示全部楼层
zbw001 发表于 2017-2-14 09:03
请问。。bukkitapi发布在哪里。。。我从来没找到过。。

spigotmc官网上
回复

使用道具 举报

langyo 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5731
钻石
性别
保密
注册时间
2015-4-17
查看详细资料
发表于 2017-2-25 21:52:25 | 显示全部楼层
额,只用getType()不就行了…为什么非要再转换成String呢…XD
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2019-8-21 08:20 , Processed in 0.038796 second(s), Total 19, Slave 16 queries , Gzip On, MemCached On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2019 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表