Skip to content

Commit b889b95

Browse files
authored
Merge pull request #168 from Exanthiax/honeycomb
added `honey_level_full` filter
2 parents f613460 + 14a25cb commit b889b95

File tree

5 files changed

+50
-128
lines changed

5 files changed

+50
-128
lines changed

core/common/src/main/kotlin/com/willfp/libreforge/filters/Filters.kt

+3-36
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,7 @@ import com.willfp.eco.core.registry.Registry
77
import com.willfp.libreforge.ConfigWarning
88
import com.willfp.libreforge.ViolationContext
99
import com.willfp.libreforge.deprecationMessage
10-
import com.willfp.libreforge.filters.impl.FilterAboveHealthPercent
11-
import com.willfp.libreforge.filters.impl.FilterAdvancements
12-
import com.willfp.libreforge.filters.impl.FilterBlocks
13-
import com.willfp.libreforge.filters.impl.FilterDamageCause
14-
import com.willfp.libreforge.filters.impl.FilterEnchant
15-
import com.willfp.libreforge.filters.impl.FilterEntities
16-
import com.willfp.libreforge.filters.impl.FilterFromSpawner
17-
import com.willfp.libreforge.filters.impl.FilterFullyCharged
18-
import com.willfp.libreforge.filters.impl.FilterFullyGrown
19-
import com.willfp.libreforge.filters.impl.FilterIsBehindVictim
20-
import com.willfp.libreforge.filters.impl.FilterIsBoss
21-
import com.willfp.libreforge.filters.impl.FilterIsExpressionTrue
22-
import com.willfp.libreforge.filters.impl.FilterIsNPC
23-
import com.willfp.libreforge.filters.impl.FilterIsPassive
24-
import com.willfp.libreforge.filters.impl.FilterItemDurabilityAbove
25-
import com.willfp.libreforge.filters.impl.FilterItemDurabilityAbovePercent
26-
import com.willfp.libreforge.filters.impl.FilterItemDurabilityBelow
27-
import com.willfp.libreforge.filters.impl.FilterItemDurabilityBelowPercent
28-
import com.willfp.libreforge.filters.impl.FilterItems
29-
import com.willfp.libreforge.filters.impl.FilterOnMaxHealth
30-
import com.willfp.libreforge.filters.impl.FilterOnlyBosses
31-
import com.willfp.libreforge.filters.impl.FilterOnlyNonBosses
32-
import com.willfp.libreforge.filters.impl.FilterPlayerName
33-
import com.willfp.libreforge.filters.impl.FilterPlayerPlaced
34-
import com.willfp.libreforge.filters.impl.FilterPotionEffect
35-
import com.willfp.libreforge.filters.impl.FilterProjectiles
36-
import com.willfp.libreforge.filters.impl.FilterSpawnerEntity
37-
import com.willfp.libreforge.filters.impl.FilterSwept
38-
import com.willfp.libreforge.filters.impl.FilterText
39-
import com.willfp.libreforge.filters.impl.FilterTextContains
40-
import com.willfp.libreforge.filters.impl.FilterThisItem
41-
import com.willfp.libreforge.filters.impl.FilterValueAbove
42-
import com.willfp.libreforge.filters.impl.FilterValueBelow
43-
import com.willfp.libreforge.filters.impl.FilterValueEquals
44-
import com.willfp.libreforge.filters.impl.FilterVictimConditions
45-
import com.willfp.libreforge.filters.impl.FilterVictimName
10+
import com.willfp.libreforge.filters.impl.*
4611

4712
object Filters : Registry<Filter<*, *>>() {
4813
/**
@@ -130,5 +95,7 @@ object Filters : Registry<Filter<*, *>>() {
13095
register(FilterEnchant)
13196
register(FilterSpawnerEntity)
13297
register(FilterSwept)
98+
register(FilterHoneyLevelFull)
99+
register(FilterSheepColor)
133100
}
134101
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.willfp.libreforge.filters.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 org.bukkit.Material
8+
import org.bukkit.block.data.type.Beehive
9+
10+
object FilterHoneyLevelFull : Filter<NoCompileData, Boolean>("honey_level_full") {
11+
override fun getValue(config: Config, data: TriggerData?, key: String): Boolean {
12+
return true
13+
}
14+
15+
override fun isMet(data: TriggerData, value: Boolean, compileData: NoCompileData): Boolean {
16+
val block = data.block ?: return false
17+
18+
if (block.type == Material.BEEHIVE || block.type == Material.BEE_NEST) {
19+
val beehiveData = block.blockData as? Beehive ?: return false
20+
return beehiveData.honeyLevel == 5
21+
}
22+
23+
return false
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.willfp.libreforge.filters.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 org.bukkit.entity.Sheep
8+
9+
object FilterSheepColor : Filter<NoCompileData, Collection<String>>("sheep_color") {
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 entity = data.victim as? Sheep ?: return false
16+
val sheepColor = entity.color?.name
17+
18+
return value.any { it.equals(sheepColor, ignoreCase = true) }
19+
}
20+
}

core/common/src/main/kotlin/com/willfp/libreforge/triggers/Triggers.kt

+1-90
Original file line numberDiff line numberDiff line change
@@ -2,96 +2,7 @@ package com.willfp.libreforge.triggers
22

33
import com.willfp.eco.core.registry.Registry
44
import com.willfp.libreforge.mutators.MutatorList
5-
import com.willfp.libreforge.triggers.impl.TriggerAltClick
6-
import com.willfp.libreforge.triggers.impl.TriggerBite
7-
import com.willfp.libreforge.triggers.impl.TriggerBlockItemDrop
8-
import com.willfp.libreforge.triggers.impl.TriggerBowAttack
9-
import com.willfp.libreforge.triggers.impl.TriggerBreed
10-
import com.willfp.libreforge.triggers.impl.TriggerBrew
11-
import com.willfp.libreforge.triggers.impl.TriggerBrewIngredient
12-
import com.willfp.libreforge.triggers.impl.TriggerCastRod
13-
import com.willfp.libreforge.triggers.impl.TriggerCatchEntity
14-
import com.willfp.libreforge.triggers.impl.TriggerCatchFish
15-
import com.willfp.libreforge.triggers.impl.TriggerCatchFishFail
16-
import com.willfp.libreforge.triggers.impl.TriggerChangeArmor
17-
import com.willfp.libreforge.triggers.impl.TriggerChangeChunk
18-
import com.willfp.libreforge.triggers.impl.TriggerChangeWorld
19-
import com.willfp.libreforge.triggers.impl.TriggerClickBlock
20-
import com.willfp.libreforge.triggers.impl.TriggerClickEntity
21-
import com.willfp.libreforge.triggers.impl.TriggerCompleteAdvancement
22-
import com.willfp.libreforge.triggers.impl.TriggerConsume
23-
import com.willfp.libreforge.triggers.impl.TriggerCraft
24-
import com.willfp.libreforge.triggers.impl.TriggerDamageItem
25-
import com.willfp.libreforge.triggers.impl.TriggerDeath
26-
import com.willfp.libreforge.triggers.impl.TriggerDeployElytra
27-
import com.willfp.libreforge.triggers.impl.TriggerDisable
28-
import com.willfp.libreforge.triggers.impl.TriggerDrink
29-
import com.willfp.libreforge.triggers.impl.TriggerDropItem
30-
import com.willfp.libreforge.triggers.impl.TriggerEmptyBucket
31-
import com.willfp.libreforge.triggers.impl.TriggerEnable
32-
import com.willfp.libreforge.triggers.impl.TriggerEnchantItem
33-
import com.willfp.libreforge.triggers.impl.TriggerEnterBed
34-
import com.willfp.libreforge.triggers.impl.TriggerEntityBreakDoor
35-
import com.willfp.libreforge.triggers.impl.TriggerEntityCatchFireFromBlock
36-
import com.willfp.libreforge.triggers.impl.TriggerEntityCatchFireFromEntity
37-
import com.willfp.libreforge.triggers.impl.TriggerEntityDamage
38-
import com.willfp.libreforge.triggers.impl.TriggerEntityDamageByEntity
39-
import com.willfp.libreforge.triggers.impl.TriggerEntityDeath
40-
import com.willfp.libreforge.triggers.impl.TriggerEntityItemDrop
41-
import com.willfp.libreforge.triggers.impl.TriggerEntitySpawn
42-
import com.willfp.libreforge.triggers.impl.TriggerEntityTarget
43-
import com.willfp.libreforge.triggers.impl.TriggerEntityTeleport
44-
import com.willfp.libreforge.triggers.impl.TriggerFallDamage
45-
import com.willfp.libreforge.triggers.impl.TriggerFillBucket
46-
import com.willfp.libreforge.triggers.impl.TriggerGainHunger
47-
import com.willfp.libreforge.triggers.impl.TriggerGainXp
48-
import com.willfp.libreforge.triggers.impl.TriggerGroupCustom
49-
import com.willfp.libreforge.triggers.impl.TriggerGroupGlobalStatic
50-
import com.willfp.libreforge.triggers.impl.TriggerGroupStatic
51-
import com.willfp.libreforge.triggers.impl.TriggerHeadshot
52-
import com.willfp.libreforge.triggers.impl.TriggerHeal
53-
import com.willfp.libreforge.triggers.impl.TriggerHoldItem
54-
import com.willfp.libreforge.triggers.impl.TriggerHookInGround
55-
import com.willfp.libreforge.triggers.impl.TriggerItemBreak
56-
import com.willfp.libreforge.triggers.impl.TriggerJoin
57-
import com.willfp.libreforge.triggers.impl.TriggerJump
58-
import com.willfp.libreforge.triggers.impl.TriggerKill
59-
import com.willfp.libreforge.triggers.impl.TriggerLeashEntity
60-
import com.willfp.libreforge.triggers.impl.TriggerLeave
61-
import com.willfp.libreforge.triggers.impl.TriggerLeaveBed
62-
import com.willfp.libreforge.triggers.impl.TriggerLevelUpItem
63-
import com.willfp.libreforge.triggers.impl.TriggerLevelUpXp
64-
import com.willfp.libreforge.triggers.impl.TriggerLoseHunger
65-
import com.willfp.libreforge.triggers.impl.TriggerLosePotionEffect
66-
import com.willfp.libreforge.triggers.impl.TriggerMeleeAttack
67-
import com.willfp.libreforge.triggers.impl.TriggerMineBlock
68-
import com.willfp.libreforge.triggers.impl.TriggerMineBlockProgress
69-
import com.willfp.libreforge.triggers.impl.TriggerMove
70-
import com.willfp.libreforge.triggers.impl.TriggerPickUpItem
71-
import com.willfp.libreforge.triggers.impl.TriggerPlaceBlock
72-
import com.willfp.libreforge.triggers.impl.TriggerPotionEffect
73-
import com.willfp.libreforge.triggers.impl.TriggerProjectileHit
74-
import com.willfp.libreforge.triggers.impl.TriggerProjectileLaunch
75-
import com.willfp.libreforge.triggers.impl.TriggerReelIn
76-
import com.willfp.libreforge.triggers.impl.TriggerRespawn
77-
import com.willfp.libreforge.triggers.impl.TriggerRunCommand
78-
import com.willfp.libreforge.triggers.impl.TriggerSellItem
79-
import com.willfp.libreforge.triggers.impl.TriggerSendMessage
80-
import com.willfp.libreforge.triggers.impl.TriggerShearEntity
81-
import com.willfp.libreforge.triggers.impl.TriggerShieldBlock
82-
import com.willfp.libreforge.triggers.impl.TriggerShootBow
83-
import com.willfp.libreforge.triggers.impl.TriggerSmelt
84-
import com.willfp.libreforge.triggers.impl.TriggerSmithItem
85-
import com.willfp.libreforge.triggers.impl.TriggerSwapHands
86-
import com.willfp.libreforge.triggers.impl.TriggerTakeDamage
87-
import com.willfp.libreforge.triggers.impl.TriggerTakeEntityDamage
88-
import com.willfp.libreforge.triggers.impl.TriggerTameAnimal
89-
import com.willfp.libreforge.triggers.impl.TriggerTeleport
90-
import com.willfp.libreforge.triggers.impl.TriggerToggleFlight
91-
import com.willfp.libreforge.triggers.impl.TriggerToggleSneak
92-
import com.willfp.libreforge.triggers.impl.TriggerToggleSprint
93-
import com.willfp.libreforge.integrations.paper.impl.TriggerTridentAttack
94-
import com.willfp.libreforge.triggers.impl.TriggerWinRaid
5+
import com.willfp.libreforge.triggers.impl.*
956

967
object Triggers : Registry<Trigger>() {
978
private val groupRegistry = Registry<TriggerGroup>()

core/common/src/main/kotlin/com/willfp/libreforge/triggers/impl/TriggerShearEntity.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.willfp.libreforge.triggers.impl
22

3-
import com.willfp.eco.core.Prerequisite
43
import com.willfp.libreforge.proxy.renamedValues
54
import com.willfp.libreforge.toDispatcher
65
import com.willfp.libreforge.triggers.Trigger
@@ -23,7 +22,7 @@ object TriggerShearEntity : Trigger("shear_entity") {
2322
fun handle(event: PlayerShearEntityEvent) {
2423
val entity = event.entity as? LivingEntity ?: return
2524

26-
if (entity.type !in listOf(EntityType.SHEEP, renamedValues().entities.mooshroom)) {
25+
if (entity.type !in listOf(EntityType.SHEEP, EntityType.SNOWMAN, renamedValues().entities.mooshroom)) {
2726
return
2827
}
2928

0 commit comments

Comments
 (0)