Photon-GitHub / AntiCheatAddition

An anticheat with nieche checks to cover cheats usually not covered by anticheats.
GNU General Public License v3.0
154 stars 43 forks source link

[ ⭐️ ] Suggestion >> Durability hider #597

Closed Regomy closed 4 months ago

Regomy commented 5 months ago
import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.event.PacketListenerAbstract;
import com.github.retrooper.packetevents.event.PacketSendEvent;
import com.github.retrooper.packetevents.manager.server.ServerVersion;
import com.github.retrooper.packetevents.protocol.item.ItemStack;
import com.github.retrooper.packetevents.protocol.item.enchantment.Enchantment;
import com.github.retrooper.packetevents.protocol.item.enchantment.type.EnchantmentTypes;
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
import com.github.retrooper.packetevents.protocol.player.ClientVersion;
import com.github.retrooper.packetevents.protocol.player.Equipment;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityEquipment;
import java.util.Collections;
import java.util.List;

public class EntityDurHider extends Check implements PacketCheck {

    public void onPacketSend(PacketSendEvent event) {
        if (event.getPacketType() == PacketType.Play.Server.ENTITY_EQUIPMENT) {
            WrapperPlayServerEntityEquipment packet = new WrapperPlayServerEntityEquipment(event);
            List equipmentList = packet.getEquipment();

            if (equipmentList.isEmpty()) return;

           equipmentList.stream().filter(Objects::nonNull).forEach(equipment -> {
                ItemStack itemStack = equipment.getItem();
                        if(itemStack.isDamageableItem()) {
                            if (PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_13)) {
                                itemStack.setDamageValue(0);
                            } else {
                                itemStack.setLegacyData(0);
                            }

                            equipment.setItem(itemStack);
                        }
                    });

            packet.setEquipment(equipmentList);
            event.markForReEncode(true);
        }
    }
}
Photon-GitHub commented 4 months ago

Added in 9.1.0