Expose attribute sentiment (#12974)

Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
This commit is contained in:
Strokkur24
2025-08-23 19:15:16 +02:00
committed by GitHub
parent a9e7674933
commit 5622c9dd73
5 changed files with 29 additions and 2 deletions
+1
View File
@@ -254,6 +254,7 @@ public net.minecraft.world.entity.Mob lootTable
public net.minecraft.world.entity.Mob lootTableSeed
public net.minecraft.world.entity.OminousItemSpawner setItem(Lnet/minecraft/world/item/ItemStack;)V
public net.minecraft.world.entity.OminousItemSpawner spawnItemAfterTicks
public net.minecraft.world.entity.ai.attributes.Attribute sentiment
public net.minecraft.world.entity.ai.attributes.AttributeSupplier getAttributeInstance(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;
public net.minecraft.world.entity.ai.control.MoveControl$Operation
public net.minecraft.world.entity.ai.gossip.GossipContainer gossips
@@ -163,6 +163,12 @@ public interface Attribute extends OldEnum<Attribute>, Keyed, Translatable, net.
return Registry.ATTRIBUTE.getOrThrow(NamespacedKey.minecraft(key));
}
/**
* {@return the sentiment of this attribute}
*/
@NotNull
Sentiment getSentiment();
/**
* @param name of the attribute.
* @return the attribute with the given name.
@@ -185,4 +191,17 @@ public interface Attribute extends OldEnum<Attribute>, Keyed, Translatable, net.
static Attribute[] values() {
return Lists.newArrayList(Registry.ATTRIBUTE).toArray(new Attribute[0]);
}
/**
* An attribute sentiment describes the intent behind the attribute, meaning
* whether it is supposed to be a positive, neutral, or negative attribute.
*/
enum Sentiment {
// Start generate - AttributeSentiment
// @GeneratedFrom 1.21.8
POSITIVE,
NEUTRAL,
NEGATIVE;
// End generate - AttributeSentiment
}
}
@@ -48,6 +48,7 @@ import org.bukkit.Sound;
import org.bukkit.SoundCategory;
import org.bukkit.Statistic;
import org.bukkit.Tag;
import org.bukkit.attribute.Attribute;
import org.bukkit.block.Biome;
import org.bukkit.block.BlockType;
import org.bukkit.block.banner.PatternType;
@@ -129,6 +130,7 @@ public final class Rewriters {
.register("SalmonVariant", Salmon.Variant.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.Salmon.Variant.class))
.register("ArmadilloState", Armadillo.State.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.armadillo.Armadillo.ArmadilloState.class))
.register("SoundCategory", SoundCategory.class, new EnumCloneRewriter<>(SoundSource.class))
.register("AttributeSentiment", Attribute.Sentiment.class, new EnumCloneRewriter<>(net.minecraft.world.entity.ai.attributes.Attribute.Sentiment.class))
.register("ItemUseAnimation", ItemUseAnimation.class, new EnumCloneRewriter<>(net.minecraft.world.item.ItemUseAnimation.class))
.register("ItemRarity", ItemRarity.class, new EnumCloneRewriter<>(Rarity.class) {
@Override
@@ -5,9 +5,9 @@
ResourceKey<Recipe<?>> resourceKey = recipeHolder.id();
if (!this.known.contains(resourceKey) && !recipeHolder.value().isSpecial()) {
+ // Paper start - PlayerRecipeDiscoverEvent event
+ org.bukkit.event.player.PlayerRecipeDiscoverEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRecipeListUpdateEvent(player, recipeHolder);
+ final org.bukkit.event.player.PlayerRecipeDiscoverEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRecipeListUpdateEvent(player, recipeHolder);
+ if (event.isCancelled()) continue;
+ // Paper end
+ // Paper end - PlayerRecipeDiscoverEvent event
this.add(resourceKey);
this.addHighlight(resourceKey);
this.displayResolver
@@ -56,6 +56,11 @@ public class CraftAttribute extends OldEnumHolderable<Attribute, net.minecraft.w
super(holder, count++);
}
@Override
public Sentiment getSentiment() {
return Sentiment.valueOf(this.getHandle().sentiment.name());
}
@Override
public String getTranslationKey() {
return this.getHandle().getDescriptionId();