1package org.jire.runehiveps.event.player
3import com.runehive.content.activity.Activity
4import com.runehive.content.activity.impl.duelarena.DuelArenaActivity
5import com.runehive.content.activity.impl.duelarena.DuelRule
6import com.runehive.game.Animation
7import com.runehive.game.world.entity.mob.data.LockType
8import com.runehive.game.world.entity.mob.data.PacketType
9import com.runehive.game.world.entity.mob.player.Player
10import com.runehive.game.world.entity.mob.player.PlayerRight
11import com.runehive.game.world.position.Position
12import com.runehive.net.packet.out.SendMessage
13import org.jire.runehiveps.event.Event
25 override fun handle(player: Player) {
26 if (player.isGambleLocked) return
28 if (player.locking.locked(PacketType.WALKING)) {
29 if (player.locking.locked(LockType.STUN)) {
30 player.send(SendMessage("You are currently stunned."))
33 if (player.locking.locked(LockType.FREEZE)) {
34 player.send(SendMessage("A magical force stops you from moving!", true))
40 if (Activity.search(player, DuelArenaActivity::class.java).isPresent) {
41 val activity = Activity.search(
43 DuelArenaActivity::class.java
45 if (activity.rules.contains(DuelRule.NO_MOVEMENT)) {
46 player.send(SendMessage("You cannot move in the duel arena."))
52 player.skills.resetSkilling()
55 player.animate(Animation.RESET, true)
56 player.resting = false
61 if (player.dialogue.isPresent) {
62 player.dialogue = Optional.empty()
73 if (!player.dialogueFactory.chain.isEmpty()) {
74 player.dialogueFactory.clear()
79 if (player.optionDialogue.isPresent) {
80 player.optionDialogue = Optional.empty()
83 if (!player.interfaceManager.isMainClear) {
84 player.interfaceManager.close()
87 if (!player.interfaceManager.isDialogueClear) {
88 player.dialogueFactory.clear()
97 player.action.clearNonWalkableActions()
98 player.resetWaypoint()
104 val destination = Position.create(targetX, targetY, player.height)
109 if (player.position.getDistance(destination) > 32) {
113 if (runQueue && PlayerRight.isDeveloper(player)) {
114 player.move(destination)
117 player.movement.isRunningQueue = runQueue
118 player.movement.dijkstraPath(destination)