Skip to content

Commit e978334

Browse files
committed
added support for FancyNPCs
Added support for FancyNPCs. "left_click_npc" Trigger "right_click_npc" Trigger "npc" Filter
1 parent 404decb commit e978334

File tree

9 files changed

+110
-5
lines changed

9 files changed

+110
-5
lines changed

core/common/src/main/kotlin/com/willfp/libreforge/LibreforgeSpigotPlugin.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ import com.willfp.libreforge.integrations.auraskills.AuraSkillsIntegration
1919
import com.willfp.libreforge.integrations.aureliumskills.AureliumSkillsIntegration
2020
import com.willfp.libreforge.integrations.axenvoy.AxEnvoyIntegration
2121
import com.willfp.libreforge.integrations.citizens.CitizensIntegration
22-
import com.willfp.libreforge.integrations.votifier.VotifierIntegration
2322
import com.willfp.libreforge.integrations.custombiomes.impl.CustomBiomesTerra
2423
import com.willfp.libreforge.integrations.custombiomes.impl.CustomBiomesTerraformGenerator
24+
import com.willfp.libreforge.integrations.fancynpcs.FancyNPCsIntegration
2525
import com.willfp.libreforge.integrations.jobs.JobsIntegration
2626
import com.willfp.libreforge.integrations.levelledmobs.LevelledMobsIntegration
2727
import com.willfp.libreforge.integrations.mcmmo.McMMOIntegration
@@ -31,6 +31,7 @@ import com.willfp.libreforge.integrations.scyther.ScytherIntegration
3131
import com.willfp.libreforge.integrations.tab.TabIntegration
3232
import com.willfp.libreforge.integrations.tmmobcoins.TMMobcoinsIntegration
3333
import com.willfp.libreforge.integrations.vault.VaultIntegration
34+
import com.willfp.libreforge.integrations.votifier.VotifierIntegration
3435
import com.willfp.libreforge.integrations.worldguard.WorldGuardIntegration
3536
import com.willfp.libreforge.levels.LevelTypes
3637
import com.willfp.libreforge.levels.placeholder.*
@@ -195,8 +196,9 @@ class LibreforgeSpigotPlugin : EcoPlugin() {
195196
IntegrationLoader("Terra") { CustomBiomesTerra.load(this) },
196197
IntegrationLoader("TerraformGenerator") { CustomBiomesTerraformGenerator.load(this) },
197198
IntegrationLoader("AxEnvoy") { AxEnvoyIntegration.load(this) },
198-
IntegrationLoader("Votifier") { VotifierIntegration.load(this)},
199-
IntegrationLoader("ModelEngine") { ModelEngineIntegration.load(this) }
199+
IntegrationLoader("Votifier") { VotifierIntegration.load(this) },
200+
IntegrationLoader("ModelEngine") { ModelEngineIntegration.load(this) },
201+
IntegrationLoader("FancyNpcs") { FancyNPCsIntegration.load(this) }
200202
)
201203
}
202204

core/common/src/main/kotlin/com/willfp/libreforge/integrations/axenvoy/impl/FilterEnvoyType.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ object FilterEnvoyType : Filter<NoCompileData, Collection<String>>("envoy_type")
1313

1414
override fun isMet(data: TriggerData, value: Collection<String>, compileData: NoCompileData): Boolean {
1515
val event = data.event as? EnvoyCrateCollectEvent ?: return true
16-
1716
val crateType = event.crate?.handle?.name ?: return true
17+
1818
return value.contains(crateType)
1919
}
2020
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.willfp.libreforge.integrations.fancynpcs
2+
3+
import com.willfp.eco.core.EcoPlugin
4+
import com.willfp.libreforge.filters.Filters
5+
import com.willfp.libreforge.integrations.LoadableIntegration
6+
import com.willfp.libreforge.integrations.fancynpcs.impl.FilterNPC
7+
import com.willfp.libreforge.integrations.fancynpcs.impl.TriggerLeftClickNPC
8+
import com.willfp.libreforge.integrations.fancynpcs.impl.TriggerRightClickNPC
9+
import com.willfp.libreforge.triggers.Triggers
10+
11+
object FancyNPCsIntegration : LoadableIntegration {
12+
override fun load(plugin: EcoPlugin) {
13+
Triggers.register(TriggerLeftClickNPC)
14+
Triggers.register(TriggerRightClickNPC)
15+
Filters.register(FilterNPC)
16+
}
17+
18+
override fun getPluginName(): String {
19+
return "FancyNpcs"
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.willfp.libreforge.integrations.fancynpcs.impl
2+
3+
import com.willfp.eco.core.config.interfaces.Config
4+
import com.willfp.libreforge.NoCompileData
5+
import com.willfp.libreforge.filters.Filter
6+
import com.willfp.libreforge.triggers.TriggerData
7+
import de.oliver.fancynpcs.api.events.NpcInteractEvent
8+
9+
object FilterNPC : Filter<NoCompileData, Collection<String>>("npc") {
10+
override fun getValue(config: Config, data: TriggerData?, key: String): Collection<String> {
11+
return config.getStrings(key)
12+
}
13+
14+
override fun isMet(data: TriggerData, value: Collection<String>, compileData: NoCompileData): Boolean {
15+
val event = data.event as? NpcInteractEvent ?: return true
16+
17+
return value.contains(event.npc.data.id)
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.willfp.libreforge.integrations.fancynpcs.impl
2+
3+
import com.willfp.libreforge.toDispatcher
4+
import com.willfp.libreforge.triggers.Trigger
5+
import com.willfp.libreforge.triggers.TriggerData
6+
import com.willfp.libreforge.triggers.TriggerParameter
7+
import de.oliver.fancynpcs.api.actions.ActionTrigger
8+
import de.oliver.fancynpcs.api.events.NpcInteractEvent
9+
import org.bukkit.event.EventHandler
10+
11+
object TriggerLeftClickNPC : Trigger("left_click_npc") {
12+
override val parameters = setOf(
13+
TriggerParameter.PLAYER,
14+
TriggerParameter.EVENT
15+
)
16+
17+
@EventHandler(ignoreCancelled = true)
18+
fun handle(event: NpcInteractEvent) {
19+
if (event.interactionType == ActionTrigger.LEFT_CLICK) {
20+
val player = event.player ?: return
21+
22+
this.dispatch(
23+
player.toDispatcher(),
24+
TriggerData(
25+
player = player,
26+
event = event
27+
)
28+
)
29+
}
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.willfp.libreforge.integrations.fancynpcs.impl
2+
3+
import com.willfp.libreforge.toDispatcher
4+
import com.willfp.libreforge.triggers.Trigger
5+
import com.willfp.libreforge.triggers.TriggerData
6+
import com.willfp.libreforge.triggers.TriggerParameter
7+
import de.oliver.fancynpcs.api.actions.ActionTrigger
8+
import de.oliver.fancynpcs.api.events.NpcInteractEvent
9+
import org.bukkit.event.EventHandler
10+
11+
object TriggerRightClickNPC : Trigger("right_click_npc") {
12+
override val parameters = setOf(
13+
TriggerParameter.PLAYER,
14+
TriggerParameter.EVENT
15+
)
16+
17+
@EventHandler(ignoreCancelled = true)
18+
fun handle(event: NpcInteractEvent) {
19+
if (event.interactionType == ActionTrigger.RIGHT_CLICK) {
20+
val player = event.player ?: return
21+
22+
this.dispatch(
23+
player.toDispatcher(),
24+
TriggerData(
25+
player = player,
26+
event = event
27+
)
28+
)
29+
}
30+
}
31+
}

core/common/src/main/kotlin/com/willfp/libreforge/integrations/votifier/impl/FilterVoteService.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ object FilterVoteService : Filter<NoCompileData, Collection<String>>("vote_servi
1313

1414
override fun isMet(data: TriggerData, value: Collection<String>, compileData: NoCompileData): Boolean {
1515
val event = data.event as? VotifierEvent ?: return true
16-
1716
val service = event.vote.serviceName ?: return true
17+
1818
return value.contains(service)
1919
}
2020
}

core/common/src/main/resources/plugin.yml

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ softdepend:
2828
- ModelEngine
2929
- AxEnvoy
3030
- Votifier
31+
- FancyNpcs
3132

3233
commands:
3334
lrcdb:

lib/FancyNpcs-2.4.1.jar

2.18 MB
Binary file not shown.

0 commit comments

Comments
 (0)