Fix Defibrillator and Fake Corpse
This commit is contained in:
parent
4f7058d892
commit
291e870884
6 changed files with 12 additions and 10 deletions
|
@ -5,7 +5,7 @@ import org.bukkit.entity.Zombie
|
|||
import org.bukkit.inventory.Inventory
|
||||
|
||||
object CorpseManager {
|
||||
private val corpses = mutableListOf<TTTCorpse>()
|
||||
val corpses = mutableListOf<TTTCorpse>()
|
||||
|
||||
fun getTTTCorpse(entity: Entity): TTTCorpse? =
|
||||
if (entity is Zombie) corpses.find { it.entity === entity } else null
|
||||
|
@ -17,7 +17,6 @@ object CorpseManager {
|
|||
fun isCorpseInventory(inventory: Inventory) = corpses.find { it.inventory == inventory } != null
|
||||
|
||||
fun destroyAll() {
|
||||
corpses.forEach(TTTCorpse::destroy)
|
||||
corpses.clear()
|
||||
corpses.toSet().forEach(TTTCorpse::destroy)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -138,6 +138,7 @@ class TTTCorpse private constructor(
|
|||
entity.remove()
|
||||
updateTimeTask.cancel()
|
||||
inventory.viewers.toSet().forEach { it.closeInventory() }
|
||||
CorpseManager.corpses.remove(this)
|
||||
}
|
||||
|
||||
private fun ensureNotDestroyed() {
|
||||
|
|
|
@ -45,7 +45,7 @@ object Defibrillator: TTTItem<Defibrillator.Instance>(
|
|||
"${ChatColor.BOLD}Defibrillator",
|
||||
BarColor.GREEN,
|
||||
BarStyle.SOLID
|
||||
)
|
||||
).also { it.isVisible = false }
|
||||
|
||||
override fun onCarrierSet(carrier: TTTPlayer, isFirst: Boolean) {
|
||||
bossBar.addPlayer(carrier.player)
|
||||
|
@ -87,7 +87,7 @@ object Defibrillator: TTTItem<Defibrillator.Instance>(
|
|||
)
|
||||
|
||||
action.cancelTask.cancel()
|
||||
event.tttPlayer.player.inventory.removeTTTItemNextTick(Defibrillator)
|
||||
event.tttPlayer.removeItem(Defibrillator)
|
||||
} catch(e: TTTPlayer.AlreadyLivingException) {
|
||||
action.cancel()
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ object FakeCorpse: TTTItem<FakeCorpse.Instance>(
|
|||
price = 2
|
||||
),
|
||||
templateItemStack = ItemStack(Resourcepack.Items.fakeCorpse).applyMeta {
|
||||
setDisplayName(FakeCorpse.DISPLAY_NAME)
|
||||
setDisplayName("${ChatColor.YELLOW}${ChatColor.BOLD}Fake-Leiche")
|
||||
lore = listOf(
|
||||
"",
|
||||
"${ChatColor.GOLD}Spawnt eine Fake-Leiche",
|
||||
|
@ -42,7 +42,7 @@ object FakeCorpse: TTTItem<FakeCorpse.Instance>(
|
|||
hideInfo()
|
||||
}
|
||||
) {
|
||||
private val DISPLAY_NAME = "${ChatColor.YELLOW}${ChatColor.BOLD}Fake-Leiche"
|
||||
private val INVENTORY_TITLE = "${ChatColor.RED}${ChatColor.BOLD}Fake-Leiche"
|
||||
|
||||
class Instance: TTTItem.Instance(FakeCorpse) {
|
||||
var chosenRole: Role? = null
|
||||
|
@ -56,7 +56,7 @@ object FakeCorpse: TTTItem<FakeCorpse.Instance>(
|
|||
private val chooseRoleInventory = plugin.server.createInventory(
|
||||
null,
|
||||
InventoryType.HOPPER,
|
||||
"${DISPLAY_NAME}${ChatColor.RESET} - Rolle"
|
||||
"${INVENTORY_TITLE}${ChatColor.RESET} - Rolle"
|
||||
).apply {
|
||||
addItem(*Role.values()
|
||||
.map {
|
||||
|
@ -71,7 +71,7 @@ object FakeCorpse: TTTItem<FakeCorpse.Instance>(
|
|||
private fun createChoosePlayerInventory() = plugin.server.createInventory(
|
||||
null,
|
||||
InventoryType.CHEST,
|
||||
"${DISPLAY_NAME}${ChatColor.RESET} - Spieler"
|
||||
"${INVENTORY_TITLE}${ChatColor.RESET} - Spieler"
|
||||
).apply {
|
||||
addItem(*PlayerManager.tttPlayers
|
||||
.map {
|
||||
|
|
|
@ -56,7 +56,7 @@ object SecondChance: TTTItem<SecondChance.Instance>(
|
|||
lateinit var tttPlayer: TTTPlayer
|
||||
|
||||
fun possiblyTrigger() {
|
||||
if (true || Random.nextBoolean()) trigger()
|
||||
if (Random.nextBoolean()) trigger()
|
||||
}
|
||||
|
||||
private fun trigger() {
|
||||
|
|
|
@ -196,6 +196,8 @@ class TTTPlayer(player: Player, role: Role, val tttClass: TTTClassCompanion = TT
|
|||
}
|
||||
|
||||
private fun clearInventory(becauseOfDeath: Boolean) {
|
||||
player.closeInventory()
|
||||
Shop.clear(this)
|
||||
val owningTTTItemInstances = getOwningTTTItemInstances()
|
||||
|
||||
owningTTTItemInstances.forEach {
|
||||
|
|
Reference in a new issue