From 71f0b4672864fd595a466d4ed833ea859897f561 Mon Sep 17 00:00:00 2001 From: Kenneth Endfinger Date: Wed, 12 Jan 2022 23:00:03 -0500 Subject: [PATCH] Core: Add Enderman Griefing Disabler --- .../foundation/core/FoundationCorePlugin.kt | 2 ++ .../foundation/core/abstraction/Feature.kt | 2 +- .../core/features/backup/BackupFeature.kt | 1 - .../core/features/dev/DevFeature.kt | 5 +---- .../features/endergrief/EndergriefFeature.kt | 21 +++++++++++++++++++ 5 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/endergrief/EndergriefFeature.kt diff --git a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/FoundationCorePlugin.kt b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/FoundationCorePlugin.kt index 6c8e341..7d43255 100644 --- a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/FoundationCorePlugin.kt +++ b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/FoundationCorePlugin.kt @@ -3,6 +3,7 @@ package cloud.kubelet.foundation.core import cloud.kubelet.foundation.core.abstraction.FoundationPlugin import cloud.kubelet.foundation.core.features.backup.BackupFeature import cloud.kubelet.foundation.core.features.dev.DevFeature +import cloud.kubelet.foundation.core.features.endergrief.EndergriefFeature import cloud.kubelet.foundation.core.features.player.PlayerFeature import cloud.kubelet.foundation.core.features.stats.StatsFeature import cloud.kubelet.foundation.core.features.update.UpdateFeature @@ -47,6 +48,7 @@ class FoundationCorePlugin : FoundationPlugin() { StatsFeature(), UpdateFeature(), WorldFeature(), + EndergriefFeature(), ) override fun createModule() = module { diff --git a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/abstraction/Feature.kt b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/abstraction/Feature.kt index 1969ce2..6a7d82e 100644 --- a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/abstraction/Feature.kt +++ b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/abstraction/Feature.kt @@ -10,7 +10,7 @@ import org.koin.dsl.module import org.quartz.Scheduler abstract class Feature : CoreFeature, KoinComponent, Listener { - private val plugin by inject() + protected val plugin by inject() protected val scheduler by inject() override fun enable() {} diff --git a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/backup/BackupFeature.kt b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/backup/BackupFeature.kt index 35e56db..ac1fa69 100644 --- a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/backup/BackupFeature.kt +++ b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/backup/BackupFeature.kt @@ -16,7 +16,6 @@ import java.net.URI import kotlin.io.path.inputStream class BackupFeature : Feature() { - private val plugin by inject() private val s3Client by inject() private val config by inject() private lateinit var scheduleId: String diff --git a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/dev/DevFeature.kt b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/dev/DevFeature.kt index c137a83..5b0ddc1 100644 --- a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/dev/DevFeature.kt +++ b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/dev/DevFeature.kt @@ -1,15 +1,12 @@ package cloud.kubelet.foundation.core.features.dev -import cloud.kubelet.foundation.core.FoundationCorePlugin import cloud.kubelet.foundation.core.abstraction.Feature -import org.koin.core.component.inject class DevFeature : Feature() { - private val plugin = inject() private lateinit var devUpdateServer: DevUpdateServer override fun enable() { - devUpdateServer = DevUpdateServer(plugin.value) + devUpdateServer = DevUpdateServer(plugin) devUpdateServer.enable() } diff --git a/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/endergrief/EndergriefFeature.kt b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/endergrief/EndergriefFeature.kt new file mode 100644 index 0000000..434970b --- /dev/null +++ b/foundation-core/src/main/kotlin/cloud/kubelet/foundation/core/features/endergrief/EndergriefFeature.kt @@ -0,0 +1,21 @@ +package cloud.kubelet.foundation.core.features.endergrief + +import cloud.kubelet.foundation.core.abstraction.Feature +import org.bukkit.entity.EntityType +import org.bukkit.event.EventHandler +import org.bukkit.event.EventPriority +import org.bukkit.event.entity.EntityChangeBlockEvent + +class EndergriefFeature : Feature() { + override fun enable() { + } + + override fun disable() {} + + @EventHandler(priority = EventPriority.HIGHEST) + fun onEntityChangeBlock(event: EntityChangeBlockEvent) { + if (event.entity.type == EntityType.ENDERMAN) { + event.isCancelled = true + } + } +}