9
0
mirror of https://github.com/Xiao-MoMi/Custom-Nameplates.git synced 2025-12-19 15:09:23 +00:00

fix scale

This commit is contained in:
XiaoMoMi
2025-01-24 19:28:39 +08:00
parent c8f8c38cc8
commit 16976e6347
3 changed files with 8 additions and 3 deletions

View File

@@ -70,7 +70,7 @@ public abstract class CustomNameplates implements NameplatesPlugin {
protected MainTask mainTask;
protected SchedulerTask scheduledMainTask;
protected ConcurrentHashMap<UUID, CNPlayer> onlinePlayerMap = new ConcurrentHashMap<>();
protected Int2ObjectOpenHashMap<CNPlayer> entityIDFastLookup = new Int2ObjectOpenHashMap<>();
protected ConcurrentHashMap<Integer, CNPlayer> entityIDFastLookup = new ConcurrentHashMap<>();
protected AdvanceManager advanceManager;
protected BackgroundManager backgroundManager;
protected EventManager eventManager;

View File

@@ -19,6 +19,8 @@ package net.momirealms.customnameplates.bukkit;
import it.unimi.dsi.fastutil.ints.IntList;
import me.clip.placeholderapi.PlaceholderAPI;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.Component;
import net.momirealms.customnameplates.api.CNPlayer;
import net.momirealms.customnameplates.api.ConfigManager;
import net.momirealms.customnameplates.api.CustomNameplates;
@@ -103,6 +105,9 @@ public class BukkitPlatform implements Platform {
// some plugins would send null to clear the actionbar, what a bad solution
Object component = Optional.ofNullable(Reflections.field$ClientboundSetActionBarTextPacket$text.get(packet)).orElse(Reflections.instance$Component$empty);
Object contents = Reflections.method$Component$getContents.invoke(component);
if (contents == null) {
return;
}
if (Reflections.clazz$ScoreContents.isAssignableFrom(contents.getClass())) {
//String name = scoreContentNameFunction.apply(Reflections.field$ScoreContents$name.get(contents));
String objective = (String) Reflections.field$ScoreContents$objective.get(contents);
@@ -305,7 +310,7 @@ public class BukkitPlatform implements Platform {
Object attributeHolder = Reflections.field$ClientboundUpdateAttributesPacket$AttributeSnapshot$attribute.get(attributeSnapshot);
Object attribute = Reflections.method$Holder$value.invoke(attributeHolder);
String id = (String) Reflections.field$Attribute$id.get(attribute);
if (id.equals("attribute.name.generic.scale")) {
if (id.equals("attribute.name.generic.scale") || id.equals("attribute.name.scale")) {
double baseValue = (double) Reflections.field$ClientboundUpdateAttributesPacket$AttributeSnapshot$base.get(attributeSnapshot);
@SuppressWarnings("unchecked")
Collection<Object> modifiers = (Collection<Object>) Reflections.field$ClientboundUpdateAttributesPacket$AttributeSnapshot$modifiers.get(attributeSnapshot);

View File

@@ -274,7 +274,7 @@ public class Reflections {
try {
Field field = ReflectionUtils.getDeclaredField(
clazz$ClientboundBossEventPacket,
"f", "REMOVE_OPERATION");
VersionHelper.isVersionNewerThan1_20_5() ? "g" : "f", "REMOVE_OPERATION");
field.setAccessible(true);
instance$ClientboundBossEventPacket$REMOVE_OPERATION = requireNonNull(field.get(null));
} catch (IllegalAccessException e) {