Skip to content

Instantly share code, notes, and snippets.

@R2turnTrue
Created March 19, 2024 07:09
Show Gist options
  • Save R2turnTrue/afe1876f06c8baacd03ea14e31a8bfce to your computer and use it in GitHub Desktop.
Save R2turnTrue/afe1876f06c8baacd03ea14e31a8bfce to your computer and use it in GitHub Desktop.
[Paper 1.20.4] Disable invalid items from creative inventory with ProtocolLib
import com.comphenix.protocol.PacketType
import com.comphenix.protocol.events.ListenerPriority
import com.comphenix.protocol.events.PacketAdapter
import com.comphenix.protocol.events.PacketEvent
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.craftbukkit.v1_20_R3.entity.CraftItem
import org.bukkit.craftbukkit.v1_20_R3.inventory.CraftItemStack
import org.bukkit.inventory.ItemStack
object NoInvalidItem {
fun init() {
protocolManager.addPacketListener(object : PacketAdapter(
plugin,
ListenerPriority.NORMAL,
PacketType.Play.Client.SET_CREATIVE_SLOT
) {
override fun onPacketReceiving(event: PacketEvent) {
val packet = event.packet
val slot = packet.integers.read(0)
val item = packet.itemModifier.read(0)
val craftItem = (item as CraftItemStack)
if ((craftItem.handle != null && craftItem.handle.hasTag())) {
//println("cancel")
event.isCancelled = true
}
}
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment