Add Defibrillator sounds
This commit is contained in:
parent
cc787cd5f5
commit
e6b22c9e62
10 changed files with 60 additions and 33 deletions
|
@ -48,6 +48,20 @@ object ResourcePack {
|
|||
object Item {
|
||||
private const val PREFIX = NAMESPACE + "item."
|
||||
|
||||
object CloakingDevice {
|
||||
private const val PREFIX = Item.PREFIX + "cloaking_device."
|
||||
|
||||
const val on = "${PREFIX}on"
|
||||
const val off = "${PREFIX}off"
|
||||
}
|
||||
|
||||
object Defibrillator {
|
||||
private const val PREFIX = Item.PREFIX + "defibrillator."
|
||||
|
||||
const val use = "${PREFIX}use"
|
||||
const val failed = "${PREFIX}failed"
|
||||
}
|
||||
|
||||
object Weapon {
|
||||
private const val PREFIX = Item.PREFIX + "weapon."
|
||||
|
||||
|
@ -104,13 +118,6 @@ object ResourcePack {
|
|||
const val hit = "${PREFIX}hit"
|
||||
}
|
||||
}
|
||||
|
||||
object CloakingDevice {
|
||||
private const val PREFIX = Item.PREFIX + "cloaking_device."
|
||||
|
||||
const val on = "${PREFIX}on"
|
||||
const val off = "${PREFIX}off"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import de.moritzruth.spigot_ttt.TTTPlugin
|
|||
import de.moritzruth.spigot_ttt.game.players.DeathReason
|
||||
import de.moritzruth.spigot_ttt.game.players.PlayerManager
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.entity.Player
|
||||
|
@ -71,9 +72,7 @@ object GeneralGameEventsListener : Listener {
|
|||
|
||||
val player = event.entity
|
||||
if (player is Player) {
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
player.noDamageTicks = 0
|
||||
})
|
||||
nextTick { player.noDamageTicks = 0 }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import de.moritzruth.spigot_ttt.game.GameManager
|
|||
import de.moritzruth.spigot_ttt.game.GameMessenger
|
||||
import de.moritzruth.spigot_ttt.game.GamePhase
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import de.moritzruth.spigot_ttt.utils.noop
|
||||
import de.moritzruth.spigot_ttt.utils.teleportPlayerToWorldSpawn
|
||||
import org.bukkit.ChatColor
|
||||
|
@ -29,9 +30,7 @@ object PlayerManager {
|
|||
playersJoinedDuringRound.forEach {
|
||||
teleportPlayerToWorldSpawn(it)
|
||||
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
it.gameMode = GameMode.SURVIVAL
|
||||
})
|
||||
nextTick { it.gameMode = GameMode.SURVIVAL }
|
||||
}
|
||||
|
||||
tttPlayers.forEach(TTTPlayer::resetAfterGameEnd)
|
||||
|
|
|
@ -11,6 +11,7 @@ import de.moritzruth.spigot_ttt.items.TTTItem
|
|||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.shop.Shop
|
||||
import de.moritzruth.spigot_ttt.utils.hotbarContents
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import de.moritzruth.spigot_ttt.utils.secondsToTicks
|
||||
import de.moritzruth.spigot_ttt.utils.teleportPlayerToWorldSpawn
|
||||
import org.bukkit.*
|
||||
|
@ -135,9 +136,7 @@ class TTTPlayer(player: Player, role: Role) {
|
|||
plugin.server.pluginManager.callEvent(TTTPlayerReviveEvent(this))
|
||||
player.sendMessage(TTTPlugin.prefix + "${ChatColor.GREEN}${ChatColor.BOLD}Du wurdest wiederbelebt")
|
||||
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
player.gameMode = GameMode.SURVIVAL
|
||||
})
|
||||
nextTick { player.gameMode = GameMode.SURVIVAL }
|
||||
}
|
||||
|
||||
class AlreadyLivingException: Exception("The player already lives")
|
||||
|
@ -188,9 +187,7 @@ class TTTPlayer(player: Player, role: Role) {
|
|||
}
|
||||
|
||||
// Required to be delayed because of a Minecraft bug which sometimes turns players invisible
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
reset()
|
||||
})
|
||||
nextTick { reset() }
|
||||
}
|
||||
|
||||
fun reset() {
|
||||
|
|
|
@ -10,6 +10,7 @@ import de.moritzruth.spigot_ttt.items.weapons.guns.impl.*
|
|||
import de.moritzruth.spigot_ttt.items.weapons.impl.BaseballBat
|
||||
import de.moritzruth.spigot_ttt.items.weapons.impl.Knife
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.entity.Item
|
||||
|
@ -107,9 +108,7 @@ object ItemManager {
|
|||
|
||||
if (tttItem != null) {
|
||||
if (runCatching { tttPlayer.checkAddItemPreconditions(tttItem) }.isSuccess) {
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
tttPlayer.updateItemInHand()
|
||||
})
|
||||
nextTick { tttPlayer.updateItemInHand() }
|
||||
|
||||
if (tttItem is DropHandler) {
|
||||
tttItem.onPickup(tttPlayer, event.item)
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.connorlinfoot.actionbarapi.ActionBarAPI
|
|||
import de.moritzruth.spigot_ttt.ResourcePack
|
||||
import de.moritzruth.spigot_ttt.TTTItemListener
|
||||
import de.moritzruth.spigot_ttt.game.GameEndEvent
|
||||
import de.moritzruth.spigot_ttt.game.GameManager
|
||||
import de.moritzruth.spigot_ttt.game.corpses.CorpseManager
|
||||
import de.moritzruth.spigot_ttt.game.players.*
|
||||
import de.moritzruth.spigot_ttt.items.Buyable
|
||||
|
@ -11,6 +12,7 @@ import de.moritzruth.spigot_ttt.items.TTTItem
|
|||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.*
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.SoundCategory
|
||||
import org.bukkit.boss.BarColor
|
||||
import org.bukkit.boss.BarStyle
|
||||
import org.bukkit.event.EventHandler
|
||||
|
@ -38,6 +40,10 @@ object Defibrillator: TTTItem, Buyable {
|
|||
|
||||
private val isc = InversedStateContainer(State::class)
|
||||
|
||||
fun stopSound() = plugin.server.onlinePlayers.forEach {
|
||||
it.stopSound(ResourcePack.Sounds.Item.Defibrillator.use, SoundCategory.PLAYERS)
|
||||
}
|
||||
|
||||
override val listener = object : TTTItemListener(this, true) {
|
||||
@EventHandler
|
||||
fun onCorpseClick(event: CorpseClickEvent) {
|
||||
|
@ -103,6 +109,14 @@ object Defibrillator: TTTItem, Buyable {
|
|||
}
|
||||
|
||||
init {
|
||||
GameManager.world.playSound(
|
||||
tttPlayer.player.location,
|
||||
ResourcePack.Sounds.Item.Defibrillator.use,
|
||||
SoundCategory.PLAYERS,
|
||||
1F,
|
||||
1F
|
||||
)
|
||||
|
||||
state.bossBar.color = BarColor.GREEN
|
||||
state.bossBar.addPlayer(tttPlayer.player)
|
||||
}
|
||||
|
@ -115,6 +129,15 @@ object Defibrillator: TTTItem, Buyable {
|
|||
private lateinit var task: BukkitTask
|
||||
|
||||
init {
|
||||
stopSound()
|
||||
GameManager.world.playSound(
|
||||
tttPlayer.player.location,
|
||||
ResourcePack.Sounds.Item.Defibrillator.failed,
|
||||
SoundCategory.PLAYERS,
|
||||
1F,
|
||||
1F
|
||||
)
|
||||
|
||||
task = plugin.server.scheduler.runTaskTimer(plugin, fun() {
|
||||
val state = isc.get(tttPlayer) ?: return@runTaskTimer
|
||||
|
||||
|
@ -149,6 +172,7 @@ object Defibrillator: TTTItem, Buyable {
|
|||
fun reset(tttPlayer: TTTPlayer) {
|
||||
bossBar.removePlayer(tttPlayer.player)
|
||||
action?.reset()
|
||||
stopSound()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import de.moritzruth.spigot_ttt.items.TTTItem
|
|||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import de.moritzruth.spigot_ttt.utils.hideInfo
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import de.moritzruth.spigot_ttt.utils.setAllToItem
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.Location
|
||||
|
@ -89,9 +90,7 @@ object SecondChance: TTTItem, Buyable {
|
|||
fun onInventoryClose(event: InventoryCloseEvent) = handle(event) { tttPlayer ->
|
||||
if (event.inventory == chooseSpawnInventory) {
|
||||
if (isc.get(tttPlayer)?.timeoutAction != null) {
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
if (isc.get(tttPlayer) != null) tttPlayer.player.openInventory(chooseSpawnInventory)
|
||||
})
|
||||
nextTick { if (isc.get(tttPlayer) != null) tttPlayer.player.openInventory(chooseSpawnInventory) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import de.moritzruth.spigot_ttt.items.TTTItem
|
|||
import de.moritzruth.spigot_ttt.items.weapons.LoreHelper
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import de.moritzruth.spigot_ttt.utils.startItemDamageProgress
|
||||
import org.bukkit.*
|
||||
import org.bukkit.entity.Item
|
||||
|
@ -181,13 +182,11 @@ abstract class Gun(
|
|||
tttPlayer.stateContainer.put(stateClass, state)
|
||||
val currentAction = state.currentAction ?: return
|
||||
|
||||
plugin.server.scheduler.runTask(plugin, fun() {
|
||||
currentAction.itemStack = tttPlayer.player.inventory.find { it.type == itemEntity.itemStack.type }!!
|
||||
nextTick { currentAction.itemStack = tttPlayer.player.inventory.find { it.type == itemEntity.itemStack.type }!!
|
||||
|
||||
if (currentAction is Action.Cooldown) {
|
||||
currentAction.resume()
|
||||
}
|
||||
})
|
||||
} }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package de.moritzruth.spigot_ttt.utils
|
||||
|
||||
import de.moritzruth.spigot_ttt.items.TTTItem
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import org.bukkit.inventory.Inventory
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.inventory.PlayerInventory
|
||||
|
@ -11,9 +10,7 @@ fun Inventory.setAllToItem(indexes: Iterable<Int>, itemStack: ItemStack) {
|
|||
}
|
||||
|
||||
fun Inventory.removeTTTItem(tttItem: TTTItem) = clear(indexOfFirst { it?.type == tttItem.itemStack.type })
|
||||
fun Inventory.removeTTTItemNextTick(tttItem: TTTItem) = plugin.server.scheduler.runTask(plugin, fun() {
|
||||
removeTTTItem(tttItem)
|
||||
})
|
||||
fun Inventory.removeTTTItemNextTick(tttItem: TTTItem) = nextTick { removeTTTItem(tttItem) }
|
||||
|
||||
fun PlayerInventory.clearHeldItemSlot() = clear(heldItemSlot)
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
package de.moritzruth.spigot_ttt.utils
|
||||
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
|
||||
fun nextTick(fn: () -> Unit) {
|
||||
plugin.server.scheduler.runTask(plugin, fn)
|
||||
}
|
Reference in a new issue