mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-05 00:38:14 +00:00
Add packages to plugins
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
import com.google.common.primitives.Ints
|
||||
import org.apollo.game.message.impl.PlayerActionMessage
|
||||
import org.apollo.game.model.entity.setting.PrivilegeLevel
|
||||
import org.apollo.game.plugin.entity.player_action.PlayerActionType
|
||||
import org.apollo.plugin.entity.following.FollowAction
|
||||
|
||||
on_player_event { PlayerActionEvent::class }
|
||||
.where { action == PlayerActionType.FOLLOW }
|
||||
.then {
|
||||
FollowAction.start(it, target)
|
||||
terminate()
|
||||
}
|
||||
on_player_event { org.apollo.game.plugin.entity.player_action.PlayerActionEvent::class }
|
||||
.where { action == PlayerActionType.FOLLOW }
|
||||
.then {
|
||||
FollowAction.start(it, target)
|
||||
terminate()
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package org.apollo.game.plugin.entity.player_action
|
||||
|
||||
import org.apollo.game.message.impl.SetPlayerActionMessage
|
||||
import org.apollo.game.model.entity.Player
|
||||
import org.apollo.game.model.event.PlayerEvent
|
||||
import java.util.*
|
||||
import java.util.EnumSet
|
||||
|
||||
enum class PlayerActionType(val displayName: String, val slot: Int, val primary: Boolean = true) {
|
||||
ATTACK("Attack", 2),
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
import org.apollo.game.message.impl.PlayerActionMessage
|
||||
import org.apollo.game.model.event.impl.LoginEvent
|
||||
import org.apollo.game.plugin.entity.player_action.PlayerActionEvent
|
||||
import org.apollo.game.plugin.entity.player_action.PlayerActionType
|
||||
import org.apollo.game.plugin.entity.player_action.actionAt
|
||||
import org.apollo.game.plugin.entity.player_action.enableAction
|
||||
|
||||
on { PlayerActionMessage::class }
|
||||
.then {
|
||||
val action = it.actionAt(option)
|
||||
if (action != null) {
|
||||
it.world.submit(PlayerActionEvent(it, it.world.playerRepository[index], action))
|
||||
}
|
||||
|
||||
terminate()
|
||||
.then {
|
||||
val action = it.actionAt(option)
|
||||
if (action != null) {
|
||||
it.world.submit(PlayerActionEvent(it, it.world.playerRepository[index], action))
|
||||
}
|
||||
|
||||
terminate()
|
||||
}
|
||||
|
||||
on_player_event { LoginEvent::class }
|
||||
.then {
|
||||
it.enableAction(PlayerActionType.FOLLOW)
|
||||
it.enableAction(PlayerActionType.TRADE)
|
||||
}
|
||||
.then {
|
||||
it.enableAction(PlayerActionType.FOLLOW)
|
||||
it.enableAction(PlayerActionType.TRADE)
|
||||
}
|
||||
@@ -1,8 +1,12 @@
|
||||
import org.apollo.game.model.*
|
||||
package org.apollo.game.plugin.entity.spawn
|
||||
|
||||
import org.apollo.game.model.Animation
|
||||
import org.apollo.game.model.Direction
|
||||
import org.apollo.game.model.Graphic
|
||||
import org.apollo.game.model.Position
|
||||
|
||||
data class Spawn(val id: Int?, val name: String, val position: Position, val facing: Direction,
|
||||
val spawnAnimation: Animation? = null,
|
||||
val spawnGraphic: Graphic? = null)
|
||||
val spawnAnimation: Animation? = null, val spawnGraphic: Graphic? = null)
|
||||
|
||||
object Spawns {
|
||||
val list = mutableListOf<Spawn>()
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
import org.apollo.cache.def.NpcDefinition
|
||||
import org.apollo.game.model.entity.Npc
|
||||
import org.apollo.game.plugin.entity.spawn.Spawns
|
||||
import org.apollo.game.plugin.util.lookup.lookup_npc
|
||||
|
||||
start { world ->
|
||||
Spawns.list.forEach {
|
||||
val definition = if (it.id != null) NpcDefinition.lookup(it.id!!) else lookup_npc(it.name)
|
||||
if (definition == null) {
|
||||
val definition = it.id?.let { NpcDefinition.lookup(it) } ?: lookup_npc(it.name) ?:
|
||||
throw IllegalArgumentException("Invalid NPC name or ID ${it.name}, ${it.id}")
|
||||
}
|
||||
|
||||
val npc = Npc(world, definition.id, it.position)
|
||||
npc.turnTo(it.position.step(1, it.facing))
|
||||
|
||||
if (it.spawnAnimation != null) {
|
||||
npc.playAnimation(it.spawnAnimation)
|
||||
}
|
||||
|
||||
if (it.spawnGraphic != null) {
|
||||
npc.playGraphic(it.spawnGraphic)
|
||||
}
|
||||
it.spawnAnimation?.let(npc::playAnimation)
|
||||
it.spawnGraphic?.let(npc::playGraphic)
|
||||
|
||||
world.register(npc)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user