package cc.maxmc.blastingcrisis.packet import cc.maxmc.blastingcrisis.misc.PacketEntityManager import cc.maxmc.blastingcrisis.misc.debug import net.minecraft.server.v1_8_R3.DataWatcher import org.bukkit.Location import org.bukkit.entity.Player class BEntityVillager private constructor(loc: Location) : BEntity(loc, 120) { var name: (Player) -> String get() = nameTag.name set(name) { nameTag.name = name } private val nameTag = BEntityNameTag(loc) override fun addViewer(viewer: Player) { super.addViewer(viewer) nameTag.addViewer(viewer) } override fun spawnForPlayer(player: Player) { super.spawnForPlayer(player) nameTag.spawnForPlayer(player) } override fun removeViewer(viewer: Player) { super.removeViewer(viewer) nameTag.removeViewer(viewer) } override fun DataWatcher.initEntity() { a(6, 1.0f) // Health a(7, 0) // Potion Effect Color a(8, 0.toByte()) // Is Potion Effect Ambient a(9, 0.toByte()) // Number of Arrows in Entity a(12, 1.toByte()) // Age (0 - child, 1 - adult) a(15, 0.toByte()) // AI /* 0 Farmer 1 Librarian 2 Priest 3 Blacksmith 4 Butcher */ a(16, 0) // Villager Type } companion object { fun create(loc: Location): BEntityVillager { val entity = BEntityVillager(loc) PacketEntityManager.register(entity.entityID, entity) entity.handleInteract { debug("Interacting with entity: ${entity.entityID}") debug("type: ${it.type}") it.vector?.let { vec -> debug("vector: $vec") } } return entity } } }