Skip to content

Commit a2a6ae4

Browse files
committed
add some creative checks so some events
1 parent 6a06788 commit a2a6ae4

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

plugin/src/main/kotlin/dev/betrix/superSmashMobsBrawl/extensions/player.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package dev.betrix.superSmashMobsBrawl.extensions
33
import dev.betrix.superSmashMobsBrawl.services.DebugService
44
import dev.betrix.superSmashMobsBrawl.services.KitService
55
import dev.betrix.superSmashMobsBrawl.services.LangService
6+
import org.bukkit.GameMode
67
import org.bukkit.Location
78
import org.bukkit.Sound
89
import org.bukkit.entity.Player
@@ -68,3 +69,7 @@ fun Player.getLocationInFrontOfEyes(distance: Double): Location {
6869
fun Player.playSound(sound: Sound, pitch: Float = 1f, volume: Float = 1f) {
6970
playSound(eyeLocation, sound, pitch, volume)
7071
}
72+
73+
fun Player.isCreativeMode(): Boolean {
74+
return gameMode == GameMode.CREATIVE
75+
}

plugin/src/main/kotlin/dev/betrix/superSmashMobsBrawl/minigames/managers/EnvironmentProtectionManager.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import dev.betrix.superSmashMobsBrawl.IManageable
44
import dev.betrix.superSmashMobsBrawl.Manageable
55
import dev.betrix.superSmashMobsBrawl.SuperSmashMobsBrawl
66
import dev.betrix.superSmashMobsBrawl.extensions.isBrawlInventory
7+
import dev.betrix.superSmashMobsBrawl.extensions.isCreativeMode
78
import dev.betrix.superSmashMobsBrawl.minigames.BrawlMinigame
89
import gg.flyte.twilight.event.event
910
import org.bukkit.entity.Player
@@ -39,7 +40,7 @@ class DefaultEnvironmentProtectionManager(private val minigame: BrawlMinigame) :
3940
// Prevent block breaking
4041
listeners.add(
4142
event<BlockBreakEvent> {
42-
if (isPlayerInMinigame(player)) {
43+
if (isPlayerInMinigame(player) && !player.isCreativeMode()) {
4344
isCancelled = true
4445
}
4546
}
@@ -48,7 +49,7 @@ class DefaultEnvironmentProtectionManager(private val minigame: BrawlMinigame) :
4849
// Prevent block placing
4950
listeners.add(
5051
event<BlockPlaceEvent> {
51-
if (isPlayerInMinigame(player)) {
52+
if (isPlayerInMinigame(player) && !player.isCreativeMode()) {
5253
isCancelled = true
5354
}
5455
}
@@ -102,7 +103,7 @@ class DefaultEnvironmentProtectionManager(private val minigame: BrawlMinigame) :
102103
// Prevent interaction with blocks that have GUIs or functionality
103104
listeners.add(
104105
event<PlayerInteractEvent> {
105-
if (!isPlayerInMinigame(player)) return@event
106+
if (!isPlayerInMinigame(player) || !player.isCreativeMode()) return@event
106107

107108
// Allow interaction with air (for abilities/combat)
108109
if (clickedBlock == null) return@event

plugin/src/main/kotlin/dev/betrix/superSmashMobsBrawl/minigames/managers/HazardManager.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import dev.betrix.superSmashMobsBrawl.Manageable
55
import dev.betrix.superSmashMobsBrawl.events.BrawlDeathEvent
66
import dev.betrix.superSmashMobsBrawl.events.DeathReason
77
import dev.betrix.superSmashMobsBrawl.events.HazardType
8+
import dev.betrix.superSmashMobsBrawl.extensions.isCreativeMode
89
import dev.betrix.superSmashMobsBrawl.minigames.BrawlMinigame
910
import gg.flyte.twilight.scheduler.delay
1011
import gg.flyte.twilight.scheduler.repeatingTask
@@ -43,6 +44,10 @@ class DefaultHazardManager(private val minigame: BrawlMinigame) : Manageable(),
4344
repeatingTask(2) {
4445
minigame.allPlayers().forEach { player ->
4546
if (player.isOnline && player.location?.block?.isLiquid == true) {
47+
if (player is Player && player.isCreativeMode()) {
48+
return@forEach
49+
}
50+
4651
handleHazardDeath(player as Player, HazardType.LIQUID)
4752
}
4853
}

0 commit comments

Comments
 (0)