Created
March 19, 2024 07:09
-
-
Save R2turnTrue/afe1876f06c8baacd03ea14e31a8bfce to your computer and use it in GitHub Desktop.
[Paper 1.20.4] Disable invalid items from creative inventory with ProtocolLib
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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