Skip to content

Commit

Permalink
fix receives message event in 1.13
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Oct 10, 2018
1 parent b89935c commit 7fa0b53
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 27 deletions.
Expand Up @@ -58,10 +58,7 @@ public static void setFieldValue(Class clazz, String fieldName, Object object, O
if (!field.isAccessible()) {
field.setAccessible(true);
}
int mod = field.getModifiers();
if (Modifier.isFinal(mod)) {
setFieldValue(Field.class, "modifiers", field, mod & ~Modifier.FINAL);
}
fixFinal(field);
cache.put(fieldName, field);
field.set(object, value);
}
Expand All @@ -70,6 +67,13 @@ public static void setFieldValue(Class clazz, String fieldName, Object object, O
}
}

public static void fixFinal(Field field) {
int mod = field.getModifiers();
if (Modifier.isFinal(mod)) {
setFieldValue(Field.class, "modifiers", field, mod & ~Modifier.FINAL);
}
}

public static Map<String, Field> getFields(Class clazz) {
if (cachedFields.containsKey(clazz)) {
return cachedFields.get(clazz);
Expand Down
Expand Up @@ -125,7 +125,6 @@ else if (event.rawJsonModified) {
@Override
public boolean sendPacket(Player player, PacketOutEntityMetadata entityMetadata) {
HashSet<UUID> players = GlowCommand.glowViewers.get(entityMetadata.getEntityId());
// TODO: Check effect type against GLOWING (24)
return players != null && entityMetadata.checkForGlow() && !players.contains(player.getUniqueId());
}

Expand Down
Expand Up @@ -118,24 +118,24 @@ public static Object duplo(Object a) {
}

@Override
public void sendPacket(Packet packet) {
public void sendPacket(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> genericfuturelistener) {
// If the packet sending isn't cancelled, allow normal sending
if (packet instanceof PacketPlayOutChat) {
if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutChat_v1_13_R2((PacketPlayOutChat) packet))) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else if (packet instanceof PacketPlayOutEntity) {
try {
int ider = ENTITY_ID_PACKENT.getInt(packet);
Entity e = player.getWorld().getEntity(ider);
if (e == null) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
else {
if (!((Handler_v1_13_R2) NMSHandler.getInstance()).attachmentsA.containsKey(e.getUniqueID())
|| ((Handler_v1_13_R2) NMSHandler.getInstance()).attachmentsA.get(e.getUniqueID()).equals(player.getUniqueID())) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
UUID att = ((Handler_v1_13_R2) NMSHandler.getInstance()).attachments2.get(e.getUniqueID());
if (att != null) {
Expand All @@ -157,12 +157,12 @@ else if (packet instanceof PacketPlayOutEntityVelocity) {
int ider = ENTITY_ID_PACKVELENT.getInt(packet);
Entity e = player.getWorld().getEntity(ider);
if (e == null) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
else {
if (!((Handler_v1_13_R2) NMSHandler.getInstance()).attachmentsA.containsKey(e.getUniqueID())
|| ((Handler_v1_13_R2) NMSHandler.getInstance()).attachmentsA.get(e.getUniqueID()).equals(player.getUniqueID())) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
UUID att = ((Handler_v1_13_R2) NMSHandler.getInstance()).attachments2.get(e.getUniqueID());
if (att != null) {
Expand All @@ -184,12 +184,12 @@ else if (packet instanceof PacketPlayOutEntityTeleport) {
int ider = ENTITY_ID_PACKTELENT.getInt(packet);
Entity e = player.getWorld().getEntity(ider);
if (e == null) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
else {
if (!((Handler_v1_13_R2) NMSHandler.getInstance()).attachmentsA.containsKey(e.getUniqueID())
|| ((Handler_v1_13_R2) NMSHandler.getInstance()).attachmentsA.get(e.getUniqueID()).equals(player.getUniqueID())) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
UUID att = ((Handler_v1_13_R2) NMSHandler.getInstance()).attachments2.get(e.getUniqueID());
if (att != null) {
Expand All @@ -214,7 +214,7 @@ else if (packet instanceof PacketPlayOutNamedEntitySpawn
PacketOutSpawnEntity spawnEntity = new PacketOutSpawnEntity_v1_13_R2(player, packet);
final Entity entity = player.getWorld().getEntity(spawnEntity.getEntityId());
if (entity == null) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
else if (!NMSHandler.getInstance().getEntityHelper().isHidden(player.getBukkitEntity(), entity.getBukkitEntity())) {
if (entity instanceof EntityFakePlayer_v1_13_R2) {
Expand All @@ -227,7 +227,7 @@ public void run() {
}
}, 5);
}
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else if (packet instanceof PacketPlayOutPlayerInfo) {
Expand All @@ -237,17 +237,17 @@ else if (packet instanceof PacketPlayOutPlayerInfo) {
}
else if (packet instanceof PacketPlayOutEntityMetadata) {
if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutEntityMetadata_v1_13_R2((PacketPlayOutEntityMetadata) packet))) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else if (packet instanceof PacketPlayOutSetSlot) {
if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutSetSlot_v1_13_R2((PacketPlayOutSetSlot) packet))) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else if (packet instanceof PacketPlayOutWindowItems) {
if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutWindowItems_v1_13_R2((PacketPlayOutWindowItems) packet))) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else if (packet instanceof PacketPlayOutCustomPayload) {
Expand All @@ -263,27 +263,22 @@ else if (packet instanceof PacketPlayOutCustomPayload) {
MinecraftKey key = serializer.l();
if (key != null && key.equals(PacketPlayOutCustomPayload.a)) { // MC|TrList -> minecraft:trader_list
if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutTradeList_v1_13_R2(payload, serializer))) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
catch (Exception e) {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}
else {
oldManager.sendPacket(packet);
oldManager.sendPacket(packet, genericfuturelistener);
}
}

@Override
public void sendPacket(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> genericfuturelistener) {
oldManager.sendPacket(packet, genericfuturelistener);
}

@Override
public void a() {
oldManager.a();
Expand Down Expand Up @@ -369,6 +364,7 @@ public SocketAddress getRawAddress() {
directionField.setAccessible(true);
managerField = PlayerConnection.class.getDeclaredField("networkManager");
managerField.setAccessible(true);
ReflectionHelper.fixFinal(managerField);
}
catch (Exception e) {
e.printStackTrace();
Expand Down

0 comments on commit 7fa0b53

Please sign in to comment.