Prevent kids from crashing my server

This commit is contained in:
2025-06-20 10:46:11 -07:00
parent 249af51062
commit fbfa0865fc
4 changed files with 55 additions and 2 deletions

View File

@@ -2,14 +2,16 @@ package xyz.lncvrt.galaxycreations
import net.kyori.adventure.text.minimessage.MiniMessage
import org.bukkit.plugin.java.JavaPlugin
import xyz.lncvrt.galaxycreations.events.PlayerJoinListener
import xyz.lncvrt.galaxycreations.events.ProjectileLaunchListener
import xyz.lncvrt.galaxycreations.events.*
class GalaxyCreations : JavaPlugin() {
internal val miniMessage = MiniMessage.miniMessage()
override fun onEnable() {
server.pluginManager.registerEvents(PlayerInteractListener(), this)
server.pluginManager.registerEvents(PlayerJoinListener(this), this)
server.pluginManager.registerEvents(ProjectileLaunchListener(), this)
server.pluginManager.registerEvents(VehicleCreateListener(), this)
server.pluginManager.registerEvents(VehicleMoveListener(), this)
}
}

View File

@@ -0,0 +1,21 @@
package xyz.lncvrt.galaxycreations.events
import org.bukkit.entity.Vehicle
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.block.Action
import org.bukkit.event.player.PlayerInteractEvent
class PlayerInteractListener : Listener {
@EventHandler
fun onPlayerInteractEvent(event: PlayerInteractEvent) {
if (event.action == Action.RIGHT_CLICK_BLOCK) {
val item = event.item ?: return
if (item.type.name.contains("MINECART")) {
val chunk = event.clickedBlock?.location?.chunk ?: return
val vehicles = chunk.entities.filterIsInstance<Vehicle>()
if (vehicles.size > 9) vehicles.forEach { it.remove() }
}
}
}
}

View File

@@ -0,0 +1,15 @@
package xyz.lncvrt.galaxycreations.events
import org.bukkit.entity.Vehicle
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.vehicle.VehicleCreateEvent
class VehicleCreateListener : Listener {
@EventHandler
fun onVehicleCreateEvent(event: VehicleCreateEvent) {
val chunk = event.vehicle.location.chunk
val vehicles = chunk.entities.filterIsInstance<Vehicle>()
if (vehicles.size > 9) vehicles.forEach { it.remove() }
}
}

View File

@@ -0,0 +1,15 @@
package xyz.lncvrt.galaxycreations.events
import org.bukkit.entity.Vehicle
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.vehicle.VehicleMoveEvent
class VehicleMoveListener : Listener {
@EventHandler
fun onVehicleMoveEvent(event: VehicleMoveEvent) {
val chunk = event.vehicle.location.chunk
val vehicles = chunk.entities.filterIsInstance<Vehicle>()
if (vehicles.size > 9) vehicles.forEach { it.remove() }
}
}