Skip to content

Commit a353be7

Browse files
Merge pull request #421 from VolmitSoftware/revert-419-main
Revert "Fix StealthSnatch sendCollected Method"
2 parents e8935e7 + 92ab38a commit a353be7

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/main/java/com/volmit/adapt/content/adaptation/stealth/StealthSnatch.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,9 @@
2222
import com.volmit.adapt.api.adaptation.SimpleAdaptation;
2323
import com.volmit.adapt.util.*;
2424
import lombok.NoArgsConstructor;
25-
import net.minecraft.network.protocol.game.PacketPlayOutCollect;
2625
import org.bukkit.Bukkit;
2726
import org.bukkit.Material;
2827
import org.bukkit.Sound;
29-
import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer;
3028
import org.bukkit.entity.Entity;
3129
import org.bukkit.entity.Item;
3230
import org.bukkit.entity.Player;
@@ -118,9 +116,20 @@ private double getRange(double factor) {
118116

119117
public void sendCollected(Player plr, Item item) {
120118
try {
121-
PacketPlayOutCollect packet = new PacketPlayOutCollect(item.getEntityId(), plr.getEntityId(), item.getItemStack().getAmount());
122-
for (Entity i : plr.getWorld().getNearbyEntities(plr.getLocation(), 8, 8, 8, entity -> entity instanceof Player player)) {
123-
((CraftPlayer) i).getHandle().b.a(packet);
119+
String nmstag = Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
120+
Class<?> c = Class.forName("net.minecraft.server." + nmstag + ".PacketPlayOutCollect");
121+
Class<?> p = Class.forName("net.minecraft.server." + nmstag + ".EntityPlayer");
122+
Class<?> pk = Class.forName("net.minecraft.server." + nmstag + ".Packet");
123+
Object v = c.getConstructor().newInstance();
124+
new V(v).set("a", item.getEntityId());
125+
new V(v).set("b", plr.getEntityId());
126+
new V(v).set("c", item.getItemStack().getAmount());
127+
128+
for (Entity i : plr.getWorld().getNearbyEntities(plr.getLocation(), 8, 8, 8)) {
129+
if (i instanceof Player) {
130+
Object pconnect = new V(new V(i).invoke("getHandle")).get("playerConnection");
131+
pconnect.getClass().getMethod("sendPacket", pk).invoke(pconnect, v);
132+
}
124133
}
125134
} catch (Exception e) {
126135
Adapt.error("Failed to send collected packet");

0 commit comments

Comments
 (0)