Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-11-16 04:50:07 +01:00
Fix attribute modifier tooltips (#4816)
Dieser Commit ist enthalten in:
Ursprung
48ea81eb98
Commit
ff1e1dd7e3
@ -52,6 +52,7 @@ import org.geysermc.geyser.text.ChatColor;
|
||||
import org.geysermc.geyser.text.MinecraftLocale;
|
||||
import org.geysermc.geyser.translator.text.MessageTranslator;
|
||||
import org.geysermc.geyser.util.InventoryUtils;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.entity.attribute.AttributeType;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.entity.attribute.ModifierOperation;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.item.component.*;
|
||||
@ -209,7 +210,7 @@ public final class ItemTranslator {
|
||||
Map<ItemAttributeModifiers.EquipmentSlotGroup, List<String>> slotsToModifiers = new HashMap<>();
|
||||
for (ItemAttributeModifiers.Entry entry : modifiers.getModifiers()) {
|
||||
// convert the modifier tag to a lore entry
|
||||
String loreEntry = attributeToLore(entry.getModifier(), language);
|
||||
String loreEntry = attributeToLore(entry.getAttribute(), entry.getModifier(), language);
|
||||
if (loreEntry == null) {
|
||||
continue; // invalid or failed
|
||||
}
|
||||
@ -254,13 +255,13 @@ public final class ItemTranslator {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static String attributeToLore(ItemAttributeModifiers.AttributeModifier modifier, String language) {
|
||||
private static String attributeToLore(int attribute, ItemAttributeModifiers.AttributeModifier modifier, String language) {
|
||||
double amount = modifier.getAmount();
|
||||
if (amount == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String name = modifier.getId().asMinimalString();
|
||||
String name = AttributeType.Builtin.from(attribute).getIdentifier().asMinimalString();
|
||||
// the namespace does not need to be present, but if it is, the java client ignores it as of pre-1.20.5
|
||||
|
||||
ModifierOperation operation = modifier.getOperation();
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren