Initial commit

This commit is contained in:
2025-07-03 17:45:15 -07:00
commit 0a232a4a4a
20 changed files with 1347 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
package xyz.lncvrt.chaosmccreative
import net.kyori.adventure.text.minimessage.MiniMessage
import org.bukkit.plugin.java.JavaPlugin
import xyz.lncvrt.chaosmccreative.events.*
class ChaosMCCreative : JavaPlugin() {
internal val miniMessage = MiniMessage.miniMessage()
override fun onEnable() {
server.pluginManager.registerEvents(EntityMoveListener(), this)
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,15 @@
package xyz.lncvrt.chaosmccreative.events
import io.papermc.paper.event.entity.EntityMoveEvent
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
class EntityMoveListener : Listener {
@EventHandler
fun onEntityMoveEvent(event: EntityMoveEvent) {
val chunk = event.entity.location.chunk
val entities = chunk.entities.filter { it !is Player }
if (entities.size > 9) entities.forEach { it.remove() }
}
}

View File

@@ -0,0 +1,21 @@
package xyz.lncvrt.chaosmccreative.events
import org.bukkit.entity.Player
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 entities = chunk.entities.filter { it !is Player }
if (entities.size > 9) entities.forEach { it.remove() }
}
}
}
}

View File

@@ -0,0 +1,18 @@
package xyz.lncvrt.chaosmccreative.events
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerJoinEvent
import xyz.lncvrt.chaosmcapi.utils.MessageFormat
import xyz.lncvrt.chaosmccreative.ChaosMCCreative
class PlayerJoinListener(private val plugin: ChaosMCCreative) : Listener {
@EventHandler
fun onPlayerJoinEvent(event: PlayerJoinEvent) {
val player = event.getPlayer()
if (!event.getPlayer().hasPlayedBefore()) {
player.performCommand("p auto")
player.sendMessage(plugin.miniMessage.deserialize(MessageFormat.setPrefix("<light_purple>Welcome to Galaxy Network: Creative Server!\nYou have been teleported <rainbow>to your own plot!</rainbow>\nHere, you can build almost anything you want\nIf you need help, run the /discord command and we will help you!\nIf you need to, you can go to your plot again by doing the command <u><click:suggest_command:'/p home'>/p home</click></u> to return back\nYou can also do <u><click:suggest_command:'/p claim'>/p claim</click></u> in an empty plot to claim it as your own if you needed more space.</light_purple>")))
}
}
}

View File

@@ -0,0 +1,13 @@
package xyz.lncvrt.chaosmccreative.events
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.entity.ProjectileLaunchEvent
class ProjectileLaunchListener : Listener {
@EventHandler
fun onProjectileLaunchEvent(event: ProjectileLaunchEvent) {
// if (event.entityType == EntityType.ARROW) return
event.isCancelled = true
}
}

View File

@@ -0,0 +1,15 @@
package xyz.lncvrt.chaosmccreative.events
import org.bukkit.entity.Player
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 entities = chunk.entities.filter { it !is Player }
if (entities.size > 9) entities.forEach { it.remove() }
}
}

View File

@@ -0,0 +1,15 @@
package xyz.lncvrt.chaosmccreative.events
import org.bukkit.entity.Player
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 entities = chunk.entities.filter { it !is Player }
if (entities.size > 9) entities.forEach { it.remove() }
}
}