Skip to content

Commit 3ab24ec

Browse files
committed
Increase compatibility with 1.20.6+
1 parent 5bad508 commit 3ab24ec

File tree

1 file changed

+32
-0
lines changed
  • src/main/java/studio/magemonkey/divinity/nms/packets/versions

1 file changed

+32
-0
lines changed

src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R4.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import studio.magemonkey.divinity.Divinity;
1717
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
1818
import studio.magemonkey.divinity.data.api.DivinityUser;
19+
import studio.magemonkey.divinity.data.api.UserEntityNamesMode;
1920
import studio.magemonkey.divinity.data.api.UserProfile;
2021
import studio.magemonkey.divinity.manager.EntityManager;
2122

@@ -179,4 +180,35 @@ protected void manageDamageParticle(@NotNull EnginePlayerPacketEvent e, @NotNull
179180
ex.printStackTrace();
180181
}
181182
}
183+
184+
@Override
185+
protected void manageEntityNames(@NotNull EnginePlayerPacketEvent e, @NotNull Object packet) {
186+
DivinityUser user = plugin.getUserManager().getOrLoadUser(e.getReciever());
187+
if (user == null) return;
188+
189+
UserProfile profile = user.getActiveProfile();
190+
UserEntityNamesMode namesMode = profile.getNamesMode();
191+
if (namesMode == UserEntityNamesMode.DEFAULT) return;
192+
193+
Class pClass = Reflex.getClass(PACKET_LOCATION, "PacketPlayOutEntityMetadata");
194+
195+
Object p = pClass.cast(packet);
196+
@SuppressWarnings("unchecked")
197+
List<Object> list = (List<Object>) Reflex.getFieldValue(p, "d");
198+
if (list == null) return;
199+
200+
// Hide or show custom entity names
201+
if (list.size() > 13) {
202+
Object index3 = list.get(13);
203+
204+
Method bMethod = Reflex.getMethod(index3.getClass(), "c");
205+
206+
Object b = Reflex.invokeMethod(bMethod, index3);
207+
if (b == null || !b.getClass().equals(Boolean.class)) return;
208+
//Object nameVisible = Reflex.getFieldValue(index3, "b");
209+
210+
boolean visibility = namesMode == UserEntityNamesMode.ALWAYS_VISIBLE;
211+
Reflex.setFieldValue(index3, "c", visibility);
212+
}
213+
}
182214
}

0 commit comments

Comments
 (0)