Initial commit
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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() }
|
||||
}
|
||||
}
|
||||
@@ -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() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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() }
|
||||
}
|
||||
}
|
||||
@@ -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() }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user