geforkt von Mirrors/Paper
SPIGOT-7771: Material.getDefaultAttributes always returns an empty map
By: md_5 <git@md-5.net>
Dieser Commit ist enthalten in:
Ursprung
9707379cfa
Commit
8537c328d0
@ -201,7 +201,11 @@ public class CraftItemType<M extends ItemMeta> implements ItemType.Typed<M>, Han
|
|||||||
public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(EquipmentSlot slot) {
|
public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(EquipmentSlot slot) {
|
||||||
ImmutableMultimap.Builder<Attribute, AttributeModifier> defaultAttributes = ImmutableMultimap.builder();
|
ImmutableMultimap.Builder<Attribute, AttributeModifier> defaultAttributes = ImmutableMultimap.builder();
|
||||||
|
|
||||||
ItemAttributeModifiers nmsDefaultAttributes = item.getDefaultAttributeModifiers();
|
ItemAttributeModifiers nmsDefaultAttributes = item.components().getOrDefault(DataComponents.ATTRIBUTE_MODIFIERS, ItemAttributeModifiers.EMPTY);
|
||||||
|
if (nmsDefaultAttributes.modifiers().isEmpty()) {
|
||||||
|
nmsDefaultAttributes = item.getDefaultAttributeModifiers();
|
||||||
|
}
|
||||||
|
|
||||||
nmsDefaultAttributes.forEach(CraftEquipmentSlot.getNMS(slot), (key, value) -> {
|
nmsDefaultAttributes.forEach(CraftEquipmentSlot.getNMS(slot), (key, value) -> {
|
||||||
Attribute attribute = CraftAttribute.minecraftToBukkit(key.value());
|
Attribute attribute = CraftAttribute.minecraftToBukkit(key.value());
|
||||||
defaultAttributes.put(attribute, CraftAttributeInstance.convert(value, slot));
|
defaultAttributes.put(attribute, CraftAttributeInstance.convert(value, slot));
|
||||||
|
@ -2,7 +2,6 @@ package org.bukkit.craftbukkit.util;
|
|||||||
|
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
import com.google.common.io.Files;
|
import com.google.common.io.Files;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
@ -35,7 +34,6 @@ import net.minecraft.util.datafix.fixes.DataConverterTypes;
|
|||||||
import net.minecraft.world.entity.EntityTypes;
|
import net.minecraft.world.entity.EntityTypes;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.alchemy.PotionRegistry;
|
import net.minecraft.world.item.alchemy.PotionRegistry;
|
||||||
import net.minecraft.world.item.component.ItemAttributeModifiers;
|
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.state.IBlockData;
|
import net.minecraft.world.level.block.state.IBlockData;
|
||||||
import net.minecraft.world.level.storage.SavedFile;
|
import net.minecraft.world.level.storage.SavedFile;
|
||||||
@ -50,12 +48,10 @@ import org.bukkit.advancement.Advancement;
|
|||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.attribute.AttributeModifier;
|
import org.bukkit.attribute.AttributeModifier;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.craftbukkit.CraftEquipmentSlot;
|
|
||||||
import org.bukkit.craftbukkit.CraftFeatureFlag;
|
import org.bukkit.craftbukkit.CraftFeatureFlag;
|
||||||
import org.bukkit.craftbukkit.CraftRegistry;
|
import org.bukkit.craftbukkit.CraftRegistry;
|
||||||
import org.bukkit.craftbukkit.CraftServer;
|
import org.bukkit.craftbukkit.CraftServer;
|
||||||
import org.bukkit.craftbukkit.attribute.CraftAttribute;
|
import org.bukkit.craftbukkit.attribute.CraftAttribute;
|
||||||
import org.bukkit.craftbukkit.attribute.CraftAttributeInstance;
|
|
||||||
import org.bukkit.craftbukkit.block.data.CraftBlockData;
|
import org.bukkit.craftbukkit.block.data.CraftBlockData;
|
||||||
import org.bukkit.craftbukkit.damage.CraftDamageEffect;
|
import org.bukkit.craftbukkit.damage.CraftDamageEffect;
|
||||||
import org.bukkit.craftbukkit.damage.CraftDamageSourceBuilder;
|
import org.bukkit.craftbukkit.damage.CraftDamageSourceBuilder;
|
||||||
@ -334,15 +330,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(Material material, EquipmentSlot slot) {
|
public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(Material material, EquipmentSlot slot) {
|
||||||
ImmutableMultimap.Builder<Attribute, AttributeModifier> defaultAttributes = ImmutableMultimap.builder();
|
return material.getDefaultAttributeModifiers(slot);
|
||||||
|
|
||||||
ItemAttributeModifiers nmsDefaultAttributes = getItem(material).getDefaultAttributeModifiers();
|
|
||||||
nmsDefaultAttributes.forEach(CraftEquipmentSlot.getNMS(slot), (key, value) -> {
|
|
||||||
Attribute attribute = CraftAttribute.minecraftToBukkit(key.value());
|
|
||||||
defaultAttributes.put(attribute, CraftAttributeInstance.convert(value, slot));
|
|
||||||
});
|
|
||||||
|
|
||||||
return defaultAttributes.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren