46 lines
No EOL
1.6 KiB
Kotlin
46 lines
No EOL
1.6 KiB
Kotlin
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<String> = 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()
|
|
}
|
|
} |