51 lines
1.8 KiB
Kotlin
51 lines
1.8 KiB
Kotlin
package io.dico.parcels2.command
|
|
|
|
import io.dico.dicore.command.CommandException
|
|
import io.dico.dicore.command.EMessageType
|
|
import io.dico.dicore.command.ExecutionContext
|
|
import io.dico.dicore.command.annotation.Cmd
|
|
import io.dico.parcels2.ParcelsPlugin
|
|
import io.dico.parcels2.blockvisitor.RegionTraversal
|
|
import org.bukkit.Bukkit
|
|
import org.bukkit.Material
|
|
import org.bukkit.entity.Player
|
|
import java.util.Random
|
|
|
|
class CommandsDebug(plugin: ParcelsPlugin) : AbstractParcelCommands(plugin) {
|
|
|
|
@Cmd("reloadoptions")
|
|
fun reloadOptions() {
|
|
plugin.loadOptions()
|
|
}
|
|
|
|
@Cmd("tpworld")
|
|
fun tpWorld(sender: Player, worldName: String): String {
|
|
if (worldName == "list") {
|
|
return Bukkit.getWorlds().joinToString("\n- ", "- ", "")
|
|
}
|
|
val world = Bukkit.getWorld(worldName) ?: throw CommandException("World $worldName is not loaded")
|
|
sender.teleport(world.spawnLocation)
|
|
return "Teleported you to $worldName spawn"
|
|
}
|
|
|
|
@Cmd("make_mess")
|
|
@ParcelRequire(owner = true)
|
|
fun ParcelScope.cmdMakeMess(context: ExecutionContext) {
|
|
val server = plugin.server
|
|
val blockDatas = arrayOf(
|
|
server.createBlockData(Material.STICKY_PISTON),
|
|
server.createBlockData(Material.GLASS),
|
|
server.createBlockData(Material.STONE_SLAB),
|
|
server.createBlockData(Material.QUARTZ_BLOCK)
|
|
)
|
|
val random = Random()
|
|
|
|
world.doBlockOperation(parcel.id, direction = RegionTraversal.UPWARD) { block ->
|
|
block.blockData = blockDatas[random.nextInt(4)]
|
|
}.onProgressUpdate(1000, 1000) { progress, elapsedTime ->
|
|
context.sendMessage(EMessageType.INFORMATIVE, "Mess progress: %.02f%%, %.2fs elapsed"
|
|
.format(progress * 100, elapsedTime / 1000.0))
|
|
}
|
|
}
|
|
|
|
} |