3104026189
如题

小冰糖a
通过op手动编辑物品,这个操作方式可以接受吗,可以的话我给你发一个mod来做这个

名副其实
如果你愿意的话你可以用铁砧,如果名字变化可以用改名字的插件修改名字

南柯郡守
有个unsaveEnchant....的方法

不安全附魔 可以给任意物品附魔

3104026189
深拥v 发表于 2020-6-20 20:07
通过op手动编辑物品,这个操作方式可以接受吗,可以的话我给你发一个mod来做这个 ...

bukkit啊,插件

3104026189
南柯郡守 发表于 2020-6-20 20:14
有个unsaveEnchant....的方法

不安全附魔 可以给任意物品附魔

但是用了没有效果不知道为啥

小冰糖a

我知道,只需要op在自己的客户端里放一个就能用,一个物品编辑器
U.zip (716.22 KB, 下载次数: 2)

解压后把那个.jar放mod里,然后进游戏开创造模式,按U,你试试能不能用

南柯郡守
3104026189 发表于 2020-6-20 20:15
但是用了没有效果不知道为啥

试试通过NBTTAG添加附魔消息

要生艹nms

3104026189
深拥v 发表于 2020-6-20 20:17
我知道,只需要op在自己的客户端里放一个就能用,一个物品编辑器



啊这。。我不要这个,我是要做gui,不是说编辑物品

小冰糖a
3104026189 发表于 2020-6-20 20:18
啊这。。我不要这个,我是要做gui,不是说编辑物品

gui跟附魔有什么关系???
你到底要干嘛,,,

William_Shi
https://bukkit.windit.net/javadoc/org/bukkit/inventory/ItemStack.html#addUnsafeEnchantment-org.bukkit.enchantments.Enchantment-int-


还要写mod??GUI???
你们到底在说啥??
Unsafe怎么就不行了?
还要NBTTag?Bukkit封装好的不香吗???

3104026189
深拥v 发表于 2020-6-20 20:19
gui跟附魔有什么关系???
你到底要干嘛,,,

给gui添加一个附魔特效呗

William_Shi
如果非要NBT
https://www.mcbbs.net/thread-697478-1-1.html

看看这个好了


编程开发提问请到编程求助区提问
绝对比在这里好得多

小冰糖a
3104026189 发表于 2020-6-20 20:24
给gui添加一个附魔特效呗

你是要自己写插件还是怎么,一般的菜单插件都有附魔效果的设定
自己写的话我也支持楼上的看法:去编程求助区那边问
另外你这需求能不能一次描述清楚。。。

3104026189
深拥v 发表于 2020-6-20 20:28
你是要自己写插件还是怎么,一般的菜单插件都有附魔效果的设定
自己写的话我也支持楼上的看法:去编程求 ...

自己写插件啊啊

小冰糖a



你这题目里哪里表现出
“我是要自己写插件、我是要写个GUI、我是要在我写的GUI里添加一个带有附魔效果的物品”
有嘛????
https://www.mcbbs.net/forum-development-1.html
去这问,好好描述

3104026189
南柯郡守 发表于 2020-6-20 20:14
有个unsaveEnchant....的方法

不安全附魔 可以给任意物品附魔

ItemStack.addUnsafeEnchantment(Enchantment.DIG_SPEED,1); 没用啊  添加不了

William_Shi
3104026189 发表于 2020-6-20 20:37
ItemStack.addUnsafeEnchantment(Enchantment.DIG_SPEED,1); 没用啊  添加不了

到编程开发区详细讨论
猜测可能是ItemFlag里面隐藏了附魔
你先试试看 转nmsItem再输出getTag试试看
如果hasTag是false就说明出问题了
要不然的话附魔一定会在NBT反映的

南柯郡守
3104026189 发表于 2020-6-20 20:37
ItemStack.addUnsafeEnchantment(Enchantment.DIG_SPEED,1); 没用啊  添加不了
  1. ItemStack item = player.getInventory().getItemInMainHand();
  2. item.addUnsafeEnchantment(Enchantment.DIG_SPEED,1);
复制代码

3104026189



William_Shi


47行是纯粹的冗余代码
直接getItemMeta就可以了,
如果物品堆没有元数据,调用getItemMeta就会自己调用ItemFactory的相关方法给你新建一个ItemMeta出来,没必要自己写断言更是没有必要
宁可进行参数检查也不建议在插件内使用断言

3104026189
William_Shi 发表于 2020-6-20 20:55
47行是纯粹的冗余代码
直接getItemMeta就可以了,
如果物品堆没有元数据,调用getItemMeta就会自己调用It ...

噢  谢谢大佬指点

南柯郡守

如果没有报错的话先尝试附魔一个正常属性看能不能附魔成功

比如你给这个斧子附魔一个 耐久
如果也不行那只能是走 nms了

3104026189
南柯郡守 发表于 2020-6-20 20:57
如果没有报错的话先尝试附魔一个正常属性看能不能附魔成功

比如你给这个斧子附魔一个 耐久

测试出来了,如果我test.setItemMeta(meta);
那么 就不能添加附魔
不设置就能添加

3104026189
南柯郡守 发表于 2020-6-20 20:57
如果没有报错的话先尝试附魔一个正常属性看能不能附魔成功

比如你给这个斧子附魔一个 耐久

解决了,用meta设置就行了

William_Shi
3104026189 发表于 2020-6-20 21:04
测试出来了,如果我test.setItemMeta(meta);
那么 就不能添加附魔
不设置就能添加

很简单,ItemMeta本质上是操作NBT
对着物品堆进行附魔本质上也是操作NBT
你的meta里面,NBT,没有记录附魔
而物品堆现有的NBT被你加上了附魔
接下来,你setItemMeta
相当于把有附魔的物品堆的NBT直接换成了meta的没有附魔的NBT
那么附魔就被覆盖没了