Freeze_Dolphin
本帖最后由 Freeze_Dolphin 于 2021-8-13 15:22 编辑

RT,没有实质性的附魔但是显示为附魔的样子
不能有任何有作用的附魔
因为这样的话玩家可以用祛魔机获取上面的附魔(

mcmod的指令生成器里有个这样的选项:


生成出来的指令是这样的:



就是怎么用插件实现这样的(
附:
我是已经想到可能是怎么实现的了,但是我不方便测试(电脑显卡配置不够开mc)

这是我的代码





Narcissu14
  1. public ItemBuilder glow(boolean glow) {
  2.         net.minecraft.server.v1_12_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item);
  3.         NBTTagCompound tag = null;
  4.         if (!nmsStack.hasTag()) {
  5.             tag = new NBTTagCompound();
  6.             nmsStack.setTag(tag);
  7.         }
  8.         if (tag == null) tag = nmsStack.getTag();
  9.         NBTTagList ench = new NBTTagList();
  10.         tag.set("ench", ench);
  11.         nmsStack.setTag(tag);
  12.         item = CraftItemStack.asCraftMirror(nmsStack);
  13.         return this;
  14.     }
复制代码

1.12以上的版本我没试过,不确定是否还可用



Freeze_Dolphin
Narcissu14 发表于 2021-8-13 16:14
1.12以上的版本我没试过,不确定是否还可用

woc我这里没有CraftItemStack

这是我的pom



William_Shi
Freeze_Dolphin 发表于 2021-8-13 19:10
woc我这里没有CraftItemStack

这是我的pom

1.17以下  net.minecraft.server 的代码,属于反混淆,是侵权行为,处于灰色地带。它和 org.bukkit.craftbukkit 这个包底下的代码是放在一起偷偷发布的。你这里引入的包没有nms和obc。

Narcissu14
maven本地引用一下核心文件,比如spigot-1.12.2.jar

Freeze_Dolphin
Narcissu14 发表于 2021-8-13 19:39
maven本地引用一下核心文件,比如spigot-1.12.2.jar

maven引本地库会警告(

而且本地库一引就是60多MB
这不太好传github吧(

就没有什么方法优雅的引入吗(


William_Shi
Freeze_Dolphin 发表于 2021-8-13 19:44
maven引本地库会警告(

而且本地库一引就是60多MB

当然有。比如说某一些仓库会直接发布craftbukkit包及nms的代码,把侵权放在明面上。当然你也可以用buildtools把依赖加到mavenlocal里。

Freeze_Dolphin
William_Shi 发表于 2021-8-13 20:26
当然有。比如说某一些仓库会直接发布craftbukkit包及nms的代码,把侵权放在明面上。当然你也可以用buildt ...

已经用上NBTAPI了

反射一堆的我三行就好了:
public static ItemStack glow(ItemStack item) {
        NBTItem nbti = new NBTItem(item);
        nbti.mergeCompound(new NBTContainer("{Enchantments:[{}]}"));
        return nbti.getItem();
}