package nl.kallestruik.dtweaks.tweaks.miscellaneoustweaks import nl.kallestruik.dtweaks.DTweaks import nl.kallestruik.dtweaks.fakeplayer.FakePlayer import nl.kallestruik.dtweaks.managers.FakePlayerManager import nl.kallestruik.dtweaks.tweaks.ITweak import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.HandlerList import org.bukkit.event.Listener import org.bukkit.event.player.PlayerInteractEntityEvent import org.bukkit.inventory.EquipmentSlot class FakePlayers( private val fakePlayerManager: FakePlayerManager, private val plugin: DTweaks ): ITweak, Listener { override fun getIdentifier(): String = "FakePlayers" override fun getCategories(): List = listOf("players") override fun onEnable() { plugin.server.pluginManager.registerEvents(this, plugin) } override fun onDisable() { HandlerList.unregisterAll(this) fakePlayerManager.killAllFakePlayers() } @EventHandler fun onRightClickEntity(event: PlayerInteractEntityEvent) { if (event.hand != EquipmentSlot.HAND) return val fakePlayer = event.rightClicked as? Player ?: return if ((fakePlayer as CraftPlayer).handle !is FakePlayer) return val playerItem = event.player.inventory.itemInMainHand.clone() val fakePlayerItem = fakePlayer.inventory.itemInMainHand.clone() event.player.inventory.setItemInMainHand(fakePlayerItem) fakePlayer.inventory.setItemInMainHand(playerItem) fakePlayer.handle.tick() } }