How can I modify item attributes using skript-mirror?
[doublepost=1560507623,1560407153][/doublepost]Solved by myself.
[doublepost=1560507623,1560407153][/doublepost]Solved by myself.
Code:
import:
java.lang.Object
java.util.List
java.util.Arrays
java.util.ArrayList
org.bukkit.inventory.ItemFlag
org.bukkit.enchantments.Enchantment
org.bukkit.inventory.meta.ItemMeta
import:
java.lang.String
java.util.regex.Pattern
org.bukkit.Bukkit
org.bukkit.entity.Entity
org.bukkit.inventory.ItemStack
ch.njol.skript.Skript
ch.njol.skript.util.Version
ch.njol.skript.aliases.ItemType
option nms-version:
get:
return Bukkit.getServer().getClass().getPackage().getName().split("\.")[3]
import:
org.bukkit.craftbukkit.{@nms-version}.inventory.CraftItemStack
org.bukkit.craftbukkit.{@nms-version}.block.CraftBlock
net.minecraft.server.{@nms-version}.ItemStack as NMSItemStack
net.minecraft.server.{@nms-version}.NBTTagCompound
net.minecraft.server.{@nms-version}.NBTTagList
net.minecraft.server.{@nms-version}.MojangsonParser
net.minecraft.server.{@nms-version}.BlockPosition
net.minecraft.server.{@nms-version}.NBTTagString
net.minecraft.server.{@nms-version}.Item
net.minecraft.server.{@nms-version}.Items
local itemtypes property item NBT:
get:
set {_item} to CraftItemStack.asNMSCopy(expression-1.getRandom())
set {_nbt} to {_item}.getTag() if {_item}.hasTag() is true, else new NBTTagCompound()
return {_nbt}
add string:
set {_appended-nbt} to MojangsonParser.parse(change value)
loop expressions-1:
set {_item} to CraftItemStack.asNMSCopy(loop-value.getRandom())
if {_appended-nbt} is set:
if {_item}.hasTag() is true:
{_item}.a({_appended-nbt})
else:
{_item}.setTag({_appended-nbt})
set {_meta} to CraftItemStack.getItemMeta({_item})
loop-value.setItemMeta({_meta})
remove string:
set {_removed-nbt} to MojangsonParser.parse(change value)
loop expressions-1:
set {_item} to CraftItemStack.asNMSCopy(expression-1.getRandom())
if {_removed-nbt} is set:
{_item}.hasTag() is true
{_item}.remove({_removed-nbt})
set {_meta} to CraftItemStack.getItemMeta({_item})
loop-value.setItemMeta({_meta})
set string:
set {_new-nbt} to MojangsonParser.parse(change value)
loop expressions-1:
set {_item} to CraftItemStack.asNMSCopy(loop-value.getRandom())
if {_new-nbt} is set:
{_item}.setTag({_new-nbt})
set {_meta} to CraftItemStack.getItemMeta({_item})
loop-value.setItemMeta({_meta})
expression %itemtype% with nbt %string%:
get:
set {_item} to expression-1
set item nbt of {_item} to expression-2
return {_item}
command /adt:
trigger:
set player's tool to player's tool with nbt "{AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:999999,AttributeName:generic.attackDamage,Name:Barrier}]}"