Files
2009scape/Server/src/main/kotlin/rs09/game/interaction/object/BankDepositBoxHandler.kt
T

60 lines
1.7 KiB
Kotlin

package rs09.game.interaction.`object`
import core.game.component.CloseEvent
import core.game.component.Component
import core.game.container.access.InterfaceContainer
import core.game.node.Node
import core.game.node.entity.player.Player
import core.game.node.entity.player.link.IronmanMode
import org.rs09.consts.Components
import org.rs09.consts.Scenery
import rs09.game.interaction.InteractionListener
private val BANK_DEPOSIT_BOXES = intArrayOf(
Scenery.BANK_DEPOSIT_BOX_9398,
Scenery.BANK_DEPOSIT_BOX_20228,
Scenery.BANK_DEPOSIT_BOX_25937,
Scenery.BANK_DEPOSIT_BOX_26969,
Scenery.BANK_DEPOSIT_BOX_34755,
Scenery.BANK_DEPOSIT_BOX_36788,
Scenery.BANK_DEPOSIT_BOX_39830
)
/**
* Allows the user to interact with bank deposit boxes.
*
* @author vddCore
*/
class BankDepositBoxHandler : InteractionListener {
private fun openDepositBox(player: Player, node: Node) : Boolean {
if (player.ironmanManager.checkRestriction(IronmanMode.ULTIMATE)) {
return true
}
player.interfaceManager.open(Component(Components.BANK_DEPOSIT_BOX_11)).closeEvent = CloseEvent { p, _ ->
p.interfaceManager.openDefaultTabs()
return@CloseEvent true
}
player.interfaceManager.removeTabs(0, 1, 2, 3, 4, 5, 6)
InterfaceContainer.generateItems(
player,
player.inventory.toArray(),
arrayOf(
"Examine",
"Deposit-X",
"Deposit-All",
"Deposit-10",
"Deposit-5",
"Deposit-1"
), 11, 15, 5, 7
)
return true
}
override fun defineListeners() {
on(BANK_DEPOSIT_BOXES, SCENERY, "deposit", handler = ::openDepositBox)
}
}