Kamp FCNPC Wrapper

Kotlin API for native SA-MP plugin FCNPC

License

License

GroupId

GroupId

ch.leadrian.samp.kamp
ArtifactId

ArtifactId

kamp-fcnpc-wrapper
Last Version

Last Version

1.0.0-rc1
Release Date

Release Date

Type

Type

jar
Description

Description

Kamp FCNPC Wrapper
Kotlin API for native SA-MP plugin FCNPC
Project URL

Project URL

https://github.com/Double-O-Seven/kamp-fcnpc-wrapper
Source Code Management

Source Code Management

https://github.com/Double-O-Seven/kamp-fcnpc-wrapper

Download kamp-fcnpc-wrapper

How to add to project

<!-- https://jarcasting.com/artifacts/ch.leadrian.samp.kamp/kamp-fcnpc-wrapper/ -->
<dependency>
    <groupId>ch.leadrian.samp.kamp</groupId>
    <artifactId>kamp-fcnpc-wrapper</artifactId>
    <version>1.0.0-rc1</version>
</dependency>
// https://jarcasting.com/artifacts/ch.leadrian.samp.kamp/kamp-fcnpc-wrapper/
implementation 'ch.leadrian.samp.kamp:kamp-fcnpc-wrapper:1.0.0-rc1'
// https://jarcasting.com/artifacts/ch.leadrian.samp.kamp/kamp-fcnpc-wrapper/
implementation ("ch.leadrian.samp.kamp:kamp-fcnpc-wrapper:1.0.0-rc1")
'ch.leadrian.samp.kamp:kamp-fcnpc-wrapper:jar:1.0.0-rc1'
<dependency org="ch.leadrian.samp.kamp" name="kamp-fcnpc-wrapper" rev="1.0.0-rc1">
  <artifact name="kamp-fcnpc-wrapper" type="jar" />
</dependency>
@Grapes(
@Grab(group='ch.leadrian.samp.kamp', module='kamp-fcnpc-wrapper', version='1.0.0-rc1')
)
libraryDependencies += "ch.leadrian.samp.kamp" % "kamp-fcnpc-wrapper" % "1.0.0-rc1"
[ch.leadrian.samp.kamp/kamp-fcnpc-wrapper "1.0.0-rc1"]

Dependencies

compile (8)

Group / Artifact Type Version
ch.leadrian.samp.kamp : kamp-core jar 1.0.0-rc8
ch.leadrian.samp.kamp : kamp-annotations jar 1.0.0-rc8
org.jetbrains.kotlin : kotlin-gradle-plugin jar 1.3.11
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.11
com.google.guava : guava jar 27.0.1-jre
com.google.inject : guice jar 4.2.2
com.netflix.governator : governator jar 1.17.5
javax.inject : javax.inject jar 1

Project Modules

There are no modules declared in this project.

Build Status Release Version

Kamp FCNPC Wrapper

A wrapper for the native FCNPC plugin.

To create NPCs, simple inject ch.leadrian.samp.kamp.fcnpcwrapper.service.FCNPCService in your class:

class MyAmazingService
@Inject
constructor(private val npcService: FCNPCService) {

    fun doSomething() {
        npcService.create("Hans_Wurst")
    }

}

A lot of functionality is wrapped in ch.leadrian.samp.kamp.fcnpcwrapper.entity.FullyControllableNPC. However, some additional functionality can be found in:

  • ch.leadrian.samp.kamp.fcnpcwrapper.entity.MovePath
  • ch.leadrian.samp.kamp.fcnpcwrapper.entity.Node
  • ch.leadrian.samp.kamp.fcnpcwrapper.entity.PlaybackRecord All the entities mentioned above can be created and accessed using FCNPCService.

In order to listen to NPC related callbacks, register your class as a callback listener just like with any other callback provided by Kamp:

@Singleton
class MyAmazingCallbackListener
@Inject
constructor(
        private val callbackListenerManager: CallbackListenerManager
) : OnNPCDeathListener, OnNPCUpdateListener {
    
    @PostConstruct
    fun initialize() {
        callbackListenerManager.register(this) 
    }
    
    override fun onNPCDeath(npc: FullyControllableNPC, killer: Player?, reason: WeaponModel) {
        println("Oopsie!")
    }
    
    override fun onNPCUpdate(npc: FullyControllableNPC): Result {
        println("Updated NPC ${npc.id}")
        return OnNPCUpdateListener.Result.Sync    
    }
}

All available callbacks can be found in the package ch.leadrian.samp.kamp.fcnpcwrapper.callback.

Versions

Version
1.0.0-rc1