Reflection commands, fix genref
This commit is contained in:
1 parent
cc6f64c3b7
commit
51ae06d7cd
270 files changed
+3319
-134
No files matched your search
+1
-1
@@ -1,7 +1,7 @@
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
plugins {
|
||||
kotlin("jvm") version "1.8.21"
|
||||
kotlin("jvm") version "1.9.0"
|
||||
id("io.codearte.nexus-staging") version "0.30.0"
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands
|
||||
|
||||
open class CommandBase{}
|
||||
@@ -0,0 +1,11 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands
|
||||
|
||||
data class CommandParams(
|
||||
val name: String,
|
||||
val desc: String,
|
||||
val usage: String,
|
||||
val perm: String?,
|
||||
val aliases: List<String>,
|
||||
val completeTags: Array<String>,
|
||||
val isLastOptional: Boolean,
|
||||
)
|
||||
@@ -0,0 +1,125 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands
|
||||
|
||||
import org.bukkit.command.CommandSender
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.*
|
||||
import tech.carcadex.kotlinbukkitkit.commands.exceptions.TypeParseException
|
||||
import tech.carcadex.kotlinbukkitkit.commands.exceptions.UnsupportedTypeException
|
||||
import tech.carcadex.kotlinbukkitkit.commands.service.MessagesService
|
||||
import tech.carcadex.kotlinbukkitkit.commands.service.TypeService
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KFunction
|
||||
import kotlin.reflect.KParameter
|
||||
import kotlin.reflect.full.createType
|
||||
import kotlin.reflect.full.findAnnotations
|
||||
import kotlin.reflect.full.hasAnnotation
|
||||
import kotlin.reflect.full.isSubtypeOf
|
||||
import kotlin.reflect.jvm.javaType
|
||||
|
||||
object Parser {
|
||||
fun paramsFromAnnotations(clazz: KClass<*>): CommandParams {
|
||||
val name = clazz.findAnnotations<Command>().first().name
|
||||
val desc = clazz.findAnnotations<Description>().getOrNull(0)?.desc ?: ""
|
||||
val usage = clazz.findAnnotations<Usage>().getOrNull(0)?.usage ?: ""
|
||||
val perm = clazz.findAnnotations<Permission>().getOrNull(0)?.perm
|
||||
val cmdAliases: Array<String> = clazz.findAnnotations<Aliases>().getOrNull(0)?.aliases ?: emptyArray()
|
||||
val completeTags: Array<String>? = null
|
||||
val isLastOptional = false
|
||||
var argsSize = 1
|
||||
val aliases = arrayListOf(name)
|
||||
aliases.addAll(cmdAliases)
|
||||
return CommandParams(name, desc, usage, perm, aliases, completeTags ?: emptyArray(), isLastOptional)
|
||||
}
|
||||
fun paramsFromAnnotations(func: KFunction<*>): CommandParams {
|
||||
|
||||
val name = if(func.hasAnnotation<Command>())func.findAnnotations<Command>().first().name else
|
||||
if(func.hasAnnotation<SubCommand>()) func.findAnnotations<SubCommand>().first().name else "default"
|
||||
val desc = func.findAnnotations<Description>().getOrNull(0)?.desc ?: ""
|
||||
val usage = func.findAnnotations<Usage>().getOrNull(0)?.usage ?: ""
|
||||
val perm = func.findAnnotations<Permission>().getOrNull(0)?.perm
|
||||
val cmdAliases: Array<String> = func.findAnnotations<Aliases>().getOrNull(0)?.aliases ?: emptyArray()
|
||||
val completeTags: Array<String>? = func.findAnnotations<TabComplete>().getOrNull(0)?.complete
|
||||
val isLastOptional = func.parameters[func.parameters.size - 1].hasAnnotation<Optional>()
|
||||
var argsSize = func.parameters.size
|
||||
if (func.parameters.isNotEmpty() && func.parameters[0].type.javaType.typeName == CommandSender::class.qualifiedName!!) {
|
||||
--argsSize
|
||||
}
|
||||
val aliases = arrayListOf(name)
|
||||
aliases.addAll(cmdAliases)
|
||||
return CommandParams(name, desc, usage, perm, aliases, completeTags ?: emptyArray(), isLastOptional)
|
||||
}
|
||||
|
||||
fun parseParam(params: List<KParameter>): List<(String, CommandSender) -> Any?> {
|
||||
val argsParsers = mutableListOf<(String, CommandSender) -> Any?>()
|
||||
val enums = mutableMapOf<Int, (String, CommandSender) -> Enum<*>>()
|
||||
for ((argIndex, argType) in params.withIndex()) {
|
||||
val clazz = Class.forName(replacePrimitives(argType.type.javaType.typeName))
|
||||
if (TypeService.registered(argType.type)) {
|
||||
argsParsers.add { s, sender ->
|
||||
val context = TypeService.TypeContext(s, sender)
|
||||
try {
|
||||
TypeService.byType(argType.type)(context)
|
||||
} catch (e: Throwable) {
|
||||
if (context.errorMessage != null) MessagesService.byTag(context.errorMessage!!)(sender)
|
||||
throw TypeParseException()
|
||||
}
|
||||
}
|
||||
} else if (!clazz.isEnum) throw UnsupportedTypeException("Type ${argType.type.javaType.typeName} is not supported")
|
||||
else {
|
||||
enums[argIndex] = { it, sender ->
|
||||
var res: Enum<*>? = null;
|
||||
for (e in clazz.enumConstants) {
|
||||
if ((e as Enum<*>).name.equals(it, ignoreCase = true)) res = e;
|
||||
}
|
||||
if (res == null) MessagesService.byTag("#no-such-enum")(sender)
|
||||
res ?: throw TypeParseException()
|
||||
}
|
||||
argsParsers.add { _, _ -> {} }
|
||||
}
|
||||
}
|
||||
enums.forEach {
|
||||
argsParsers[it.key] = it.value
|
||||
}
|
||||
return argsParsers;
|
||||
}
|
||||
|
||||
fun replacePrimitives(s: String): String = when(s) {
|
||||
"int" -> "java.lang.Integer"
|
||||
"short" -> "java.lang.Short"
|
||||
"long" -> "java.lang.Long"
|
||||
"double" -> "java.lang.Double"
|
||||
"byte" -> "java.lang.Byte"
|
||||
"boolean" -> "java.lang.Boolean"
|
||||
else -> s
|
||||
}
|
||||
|
||||
fun paramMap(
|
||||
cmd: CommandParams,
|
||||
argsFromExecutor: Array<String>,
|
||||
argsSize: Int,
|
||||
sender: CommandSender,
|
||||
argsParsers: List<(String, CommandSender) -> Any?>,
|
||||
func: KFunction<*>,
|
||||
instanceAtStart: Boolean = false,
|
||||
instance: Any = Any()
|
||||
): MutableMap<KParameter, Any?> {
|
||||
val tempArgs = if (cmd.isLastOptional && argsFromExecutor.size < argsSize) argsFromExecutor.copyOf(argsSize)
|
||||
else argsFromExecutor
|
||||
|
||||
val finalArgs = mutableListOf<Any?>()
|
||||
if(instanceAtStart) finalArgs.add(instance)
|
||||
if(func.parameters.isNotEmpty() && (
|
||||
func.parameters[0 + if(instanceAtStart) 1 else 0].type == (CommandSender::class.createType()) ||
|
||||
func.parameters[0 + if(instanceAtStart) 1 else 0].type.isSubtypeOf(CommandSender::class.createType())
|
||||
)
|
||||
)
|
||||
finalArgs.add(sender)
|
||||
finalArgs.addAll(tempArgs.mapIndexed { i, it ->
|
||||
if (it == null) return@mapIndexed null
|
||||
argsParsers[i + 1](it, sender)
|
||||
})
|
||||
|
||||
val map = mutableMapOf<KParameter, Any?>()
|
||||
for ((i, arg) in finalArgs.withIndex()) map[func.parameters[i]] = arg
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands
|
||||
|
||||
import org.bukkit.command.CommandSender
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.Command
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.Permission
|
||||
import tech.carcadex.kotlinbukkitkit.commands.manager.CommandManager
|
||||
|
||||
typealias Sender = CommandSender
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.exceptions
|
||||
|
||||
class TypeParseException() : RuntimeException() {
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.exceptions
|
||||
|
||||
class UnknownCompleteException(val msg: String) : RuntimeException(msg) {
|
||||
}
|
||||
-99
@@ -1,99 +0,0 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.manager
|
||||
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.World
|
||||
import org.bukkit.command.CommandExecutor
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.plugin.Plugin
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.Command
|
||||
import tech.carcadex.kotlinbukkitkit.commands.exceptions.UnsupportedTypeException
|
||||
import tech.carcadex.kotlinbukkitkit.extensions.offlinePlayerOrNull
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KFunction
|
||||
import kotlin.reflect.KParameter
|
||||
import kotlin.reflect.KType
|
||||
import kotlin.reflect.full.callSuspendBy
|
||||
import kotlin.reflect.full.findAnnotations
|
||||
import kotlin.reflect.full.hasAnnotation
|
||||
import kotlin.reflect.full.isSubtypeOf
|
||||
import kotlin.reflect.jvm.javaType
|
||||
|
||||
class CommandManager(val plugin: Plugin) {
|
||||
private val types = mutableMapOf<String, (String) -> Any?>()
|
||||
|
||||
init {
|
||||
types[CommandSender::class.qualifiedName!!] = { it }
|
||||
types[String::class.qualifiedName!!] = { it }
|
||||
types["java.lang.String"] = { it }
|
||||
types[Int::class.qualifiedName!!] = { it.toInt() }
|
||||
types["java.lang.Integer"] = { it.toInt() }
|
||||
types[UInt::class.qualifiedName!!] = { it.toUInt() }
|
||||
types[Long::class.qualifiedName!!] = { it.toLong() }
|
||||
types["java.lang.Long"] = { it.toInt() }
|
||||
types[ULong::class.qualifiedName!!] = { it.toULong() }
|
||||
types[Short::class.qualifiedName!!] = { it.toShort() }
|
||||
types["java.lang.Short"] = { it.toInt() }
|
||||
types[UShort::class.qualifiedName!!] = { it.toUShort() }
|
||||
types[Float::class.qualifiedName!!] = { it.toFloat() }
|
||||
types["java.lang.Float"] = { it.toInt() }
|
||||
types[Double::class.qualifiedName!!] = { it.toDouble() }
|
||||
types["java.lang.Double"] = { it.toInt() }
|
||||
types[Byte::class.qualifiedName!!] = { it.toByte() }
|
||||
types["java.lang.Byte"] = { it.toInt() }
|
||||
types[UByte::class.qualifiedName!!] = { it.toUByte() }
|
||||
types[Boolean::class.qualifiedName!!] = { it.toBoolean() }
|
||||
types["java.lang.Boolean"] = { it.toInt() }
|
||||
|
||||
types[Player::class.qualifiedName!!] = { Bukkit.getPlayer(it) }
|
||||
types[OfflinePlayer::class.qualifiedName!!] = { offlinePlayerOrNull(it) }
|
||||
types[World::class.qualifiedName!!] = { Bukkit.getWorld(it) }
|
||||
types[Material::class.qualifiedName!!] = { Material.matchMaterial(it) }
|
||||
}
|
||||
|
||||
private fun register(commandExecutor: CommandExecutor, aliases: Array<String>,
|
||||
desc: String = "", usage: String = "") {
|
||||
CommandRegister.reg(plugin, commandExecutor, aliases, desc, usage);
|
||||
}
|
||||
fun register(f: KFunction<Unit>) {
|
||||
if(f.hasAnnotation<Command>()) {
|
||||
val cmdName = f.findAnnotations<Command>().first().name
|
||||
val argsParsers = mutableListOf<(String) -> Any?>({
|
||||
return@mutableListOf types[CommandSender::class.qualifiedName!!]!!(it)
|
||||
})
|
||||
|
||||
for (argType in f.parameters) {
|
||||
val clazz = Class.forName(argType.type.javaType.typeName)
|
||||
if(argType.type.javaType.typeName in this.types) {
|
||||
argsParsers.add(this.types[argType.type.javaType.typeName]!!)
|
||||
} else if(!clazz.isEnum) throw UnsupportedTypeException("Type ${argType.type.javaType.typeName} is not supported") else {
|
||||
argsParsers.add {
|
||||
for(e in clazz.enumConstants) {
|
||||
if((e as Enum<*>).name.equals(it, ignoreCase = true)) return@add e;
|
||||
}
|
||||
throw NoSuchElementException("No such value in enum")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
register(CommandExecutor { sender, command, label, args ->
|
||||
val finalArgs = mutableListOf<Any?>(sender)
|
||||
finalArgs.addAll(args.mapIndexed { i, it -> argsParsers[i](it) })
|
||||
val map = mutableMapOf<KParameter, Any?>()
|
||||
var i = 0;
|
||||
for(arg in finalArgs) {
|
||||
map[f.parameters[i]] = arg
|
||||
++i
|
||||
}
|
||||
f.callBy(map)
|
||||
return@CommandExecutor true;
|
||||
}, arrayOf(cmdName))
|
||||
} else throw IllegalArgumentException("It must be a command!")
|
||||
}
|
||||
|
||||
fun type(clazz: KClass<*>, converter: (String) -> Any) {
|
||||
types[clazz.qualifiedName!!] = converter
|
||||
}
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.manager
|
||||
|
||||
import org.bukkit.command.CommandExecutor
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.command.TabCompleter
|
||||
import org.bukkit.plugin.Plugin
|
||||
import tech.carcadex.kotlinbukkitkit.commands.CommandParams
|
||||
import tech.carcadex.kotlinbukkitkit.commands.Parser
|
||||
import tech.carcadex.kotlinbukkitkit.commands.Parser.paramsFromAnnotations
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.Command
|
||||
import tech.carcadex.kotlinbukkitkit.commands.exceptions.TypeParseException
|
||||
import tech.carcadex.kotlinbukkitkit.commands.register.CommandRegister
|
||||
import tech.carcadex.kotlinbukkitkit.commands.service.MessagesService
|
||||
import tech.carcadex.kotlinbukkitkit.commands.service.SubCommandsService
|
||||
import tech.carcadex.kotlinbukkitkit.commands.service.TabCompleteService
|
||||
import kotlin.reflect.KFunction
|
||||
import kotlin.reflect.full.createType
|
||||
import kotlin.reflect.full.hasAnnotation
|
||||
import kotlin.reflect.full.isSubtypeOf
|
||||
import kotlin.reflect.jvm.javaType
|
||||
|
||||
class ReflectionCommandManager(private val plugin: Plugin) {
|
||||
|
||||
private fun register(
|
||||
commandExecutor: CommandExecutor, commandParams: CommandParams, tabCompleter: TabCompleter =
|
||||
TabCompleter { _, _, _, _ -> mutableListOf() }
|
||||
) {
|
||||
CommandRegister.register(
|
||||
plugin,
|
||||
commandExecutor,
|
||||
commandParams.aliases.toTypedArray(),
|
||||
commandParams.desc,
|
||||
commandParams.usage,
|
||||
tabCompleter
|
||||
);
|
||||
}
|
||||
|
||||
fun register(commandClass: Any) {
|
||||
val (name, subs) = SubCommandsService.registerRootCommand(commandClass)
|
||||
val subsNames = mutableListOf<String>()
|
||||
subs.forEach {
|
||||
subsNames.addAll(it.context.aliases)
|
||||
}
|
||||
val context = paramsFromAnnotations(commandClass::class)
|
||||
register(CommandExecutor { sender, _, _, args ->
|
||||
if (context.perm != null && !sender.hasPermission(context.perm)) {
|
||||
MessagesService.byTag("#no-perm")(sender)
|
||||
return@CommandExecutor true
|
||||
}
|
||||
SubCommandsService.handleCommand(name, sender, args);
|
||||
true
|
||||
},
|
||||
context,
|
||||
TabCompleter { sender, cmd, alias, args ->
|
||||
if (args.size == 1) {
|
||||
return@TabCompleter subsNames
|
||||
} else if (args.size > 1) {
|
||||
val sub = args[0];
|
||||
if (subs.any { it.name.equals(sub, ignoreCase = true) }) {
|
||||
val argsForSub = args.copyOfRange(1, args.size)
|
||||
return@TabCompleter subs.filter { it.name.equals(sub, ignoreCase = true) }.first().tabCompleter
|
||||
.onTabComplete(sender, cmd, alias, argsForSub)
|
||||
} else return@TabCompleter emptyList()
|
||||
} else return@TabCompleter emptyList()
|
||||
})
|
||||
}
|
||||
|
||||
fun register(func: KFunction<Unit>) {
|
||||
if (func.hasAnnotation<Command>()) {
|
||||
val cmd = paramsFromAnnotations(func)
|
||||
var argsSize = func.parameters.size
|
||||
if (func.parameters.isNotEmpty() && (
|
||||
func.parameters[0].type == (CommandSender::class.createType()) ||
|
||||
func.parameters[0].type.isSubtypeOf(CommandSender::class.createType())
|
||||
)
|
||||
) {
|
||||
--argsSize
|
||||
}
|
||||
val argsParsers = Parser.parseParam(func.parameters)
|
||||
|
||||
|
||||
register(CommandExecutor { sender, _, _, argsFromExecutor ->
|
||||
if (cmd.perm != null && !sender.hasPermission(cmd.perm)) {
|
||||
MessagesService.byTag("#no-perm")(sender)
|
||||
return@CommandExecutor true
|
||||
}
|
||||
try {
|
||||
func.callBy(
|
||||
|
||||
Parser.paramMap(cmd, argsFromExecutor, argsSize, sender, argsParsers, func)
|
||||
|
||||
)
|
||||
} catch (ignored: TypeParseException) {
|
||||
} catch (e: IllegalArgumentException) {
|
||||
MessagesService.byTag("#wrong-usage")(sender)
|
||||
}
|
||||
|
||||
return@CommandExecutor true
|
||||
|
||||
},
|
||||
cmd,
|
||||
cmd.completeTags.let {
|
||||
TabCompleteService.completerReflection(it.toMutableList(),
|
||||
func.parameters.map { it.type.javaType as Class<*> })
|
||||
}
|
||||
?: TabCompleter { _, _, _, _ -> mutableListOf() }
|
||||
)
|
||||
} else throw IllegalArgumentException("It must be a command!")
|
||||
}
|
||||
|
||||
fun tabComplete(tag: String, func: (CommandSender) -> List<String>) {
|
||||
TabCompleteService.register(tag, func)
|
||||
}
|
||||
|
||||
|
||||
fun message(tag: String, func: (CommandSender) -> Unit) {
|
||||
MessagesService.register(tag, func)
|
||||
}
|
||||
}
|
||||
+12
-9
@@ -1,26 +1,25 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.manager
|
||||
package tech.carcadex.kotlinbukkitkit.commands.register
|
||||
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.command.*
|
||||
import org.bukkit.plugin.Plugin
|
||||
import java.util.*
|
||||
|
||||
|
||||
class CommandRegister(
|
||||
aliases: Array<String>,
|
||||
desc: String?,
|
||||
usage: String?,
|
||||
protected val owner: CommandExecutor,
|
||||
protected val registeredWith: Any,
|
||||
val pl: Plugin
|
||||
) : Command(aliases[0], desc!!, usage!!, Arrays.asList(*aliases)), PluginIdentifiableCommand {
|
||||
private val executor: CommandExecutor,
|
||||
private val tabCompleter: TabCompleter,
|
||||
private val pl: Plugin
|
||||
) : Command(aliases[0], desc!!, usage!!, listOf(*aliases)), PluginIdentifiableCommand {
|
||||
|
||||
|
||||
override fun execute(sender: CommandSender, label: String, args: Array<String>): Boolean {
|
||||
if (!testPermission(sender)) {
|
||||
return true
|
||||
}
|
||||
return if (owner.onCommand(sender, this, label, args)) {
|
||||
return if (executor.onCommand(sender, this, label, args)) {
|
||||
true
|
||||
} else {
|
||||
sender.sendMessage(usageMessage)
|
||||
@@ -29,10 +28,10 @@ class CommandRegister(
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun reg(plugin: Plugin, executor: CommandExecutor, aliases: Array<String>, desc: String?, usage: String?) {
|
||||
fun register(plugin: Plugin, executor: CommandExecutor, aliases: Array<String>, desc: String?, usage: String?, tabCompleter: TabCompleter) {
|
||||
if(aliases.size < 1) throw IllegalArgumentException("Could not found name")
|
||||
try {
|
||||
val reg = CommandRegister(aliases, desc, usage, executor, Any(), plugin)
|
||||
val reg = CommandRegister(aliases, desc, usage, executor, tabCompleter, plugin)
|
||||
val field = Bukkit.getServer().javaClass.getDeclaredField("commandMap")
|
||||
field.isAccessible = true
|
||||
val map = field[Bukkit.getServer()] as CommandMap
|
||||
@@ -44,4 +43,8 @@ class CommandRegister(
|
||||
}
|
||||
|
||||
override fun getPlugin(): Plugin = pl
|
||||
|
||||
override fun tabComplete(sender: CommandSender, alias: String, args: Array<out String>): MutableList<String> {
|
||||
return tabCompleter.onTabComplete(sender, this, alias, args)!!
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.service
|
||||
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.command.CommandSender
|
||||
|
||||
object MessagesService {
|
||||
private val messages = mutableMapOf<String, (CommandSender) -> Unit>()
|
||||
|
||||
init {
|
||||
//REGISTER DEFAULT MESSAGES
|
||||
messages["#no-such-player"] = { it.sendMessage("${ChatColor.RED}No such player was found") }
|
||||
messages["#no-such-world"] = { it.sendMessage("${ChatColor.RED}No such world was found") }
|
||||
messages["#no-such-material"] = { it.sendMessage("${ChatColor.RED}No such material was found") }
|
||||
messages["#no-such-enum"] = { it.sendMessage("${ChatColor.RED}No such value for this enum was found") }
|
||||
messages["#not-a-number"] = { it.sendMessage("${ChatColor.RED}It is not a number") }
|
||||
messages["#wrong-usage"] = { it.sendMessage("${ChatColor.RED}Wrong usage of command") }
|
||||
messages["#no-perm"] = { it.sendMessage("${ChatColor.RED}You have not permissions for this command!") }
|
||||
}
|
||||
|
||||
fun register(tag: String, func: (CommandSender) -> Unit) {
|
||||
messages[tag] = func
|
||||
}
|
||||
|
||||
fun byTag(tag: String): (CommandSender) -> Unit = messages[tag] ?: throw NoSuchElementException("Could not found message $tag")
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.service
|
||||
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.command.TabCompleter
|
||||
import tech.carcadex.kotlinbukkitkit.commands.CommandParams
|
||||
import tech.carcadex.kotlinbukkitkit.commands.Parser
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.Command
|
||||
import tech.carcadex.kotlinbukkitkit.commands.annotations.Default
|
||||
import tech.carcadex.kotlinbukkitkit.commands.exceptions.TypeParseException
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KFunction
|
||||
import kotlin.reflect.KParameter
|
||||
import kotlin.reflect.full.*
|
||||
import kotlin.reflect.jvm.javaType
|
||||
|
||||
object SubCommandsService {
|
||||
data class SubCommand(val name: String, val context: CommandParams,
|
||||
val executor: (sender: CommandSender, args: Array<String>) -> Boolean, val tabCompleter: TabCompleter)
|
||||
|
||||
|
||||
private val subs = mutableMapOf<String, List<SubCommand>>()
|
||||
private val defaults = mutableMapOf<String, SubCommand>()
|
||||
|
||||
fun registerRootCommand(command: Any): Pair<String, List<SubCommand>> {
|
||||
val clazz = command::class
|
||||
if(!clazz.hasAnnotation<Command>()) throw IllegalArgumentException("$command has not Command annotation")
|
||||
val name = clazz.findAnnotation<Command>()!!.name.lowercase()
|
||||
|
||||
val res = mutableListOf<SubCommand>()
|
||||
for(func in clazz.functions) {
|
||||
if(func.hasAnnotation<tech.carcadex.kotlinbukkitkit.commands.annotations.SubCommand>()) {
|
||||
res.add(parseSubCommand(func, command))
|
||||
} else if(func.hasAnnotation<Default>()) {
|
||||
defaults[name] = parseSubCommand(func, command)
|
||||
}
|
||||
}
|
||||
subs[name] = res
|
||||
return Pair(name, res)
|
||||
}
|
||||
|
||||
fun handleCommand(rootCommand: String, sender: CommandSender, args: Array<String>) {
|
||||
if(rootCommand.lowercase() in subs) {
|
||||
if(args.isNotEmpty()) for(sub in subs[rootCommand.lowercase()]!!) {
|
||||
if(sub.name == args[0]) {
|
||||
sub.executor(sender, args.copyOfRange(1, args.size))
|
||||
return
|
||||
}
|
||||
}
|
||||
defaults[rootCommand]?.executor?.let { it(sender, args) }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun parseSubCommand(func: KFunction<*>, rootCommand: Any): SubCommand {
|
||||
|
||||
val name = if(func.hasAnnotation<Default>()) "default" else func.findAnnotations(tech.carcadex.kotlinbukkitkit.commands.annotations.SubCommand::class).first().name
|
||||
val context = Parser.paramsFromAnnotations(func)
|
||||
val argsParsers = Parser.parseParam(func.parameters.toTypedArray().copyOfRange(1, func.parameters.size).toList())
|
||||
var argsSize = func.parameters.size
|
||||
if (func.parameters.isNotEmpty() && (
|
||||
func.parameters[0].type == (CommandSender::class.createType()) ||
|
||||
func.parameters[0].type.isSubtypeOf(CommandSender::class.createType())
|
||||
)) {
|
||||
--argsSize
|
||||
}
|
||||
val executor: (sender: CommandSender, args: Array<String>) -> Boolean = { sender, argsFromExecutor ->
|
||||
if (context.perm != null && !sender.hasPermission(context.perm)) {
|
||||
MessagesService.byTag("#no-perm")(sender)
|
||||
true
|
||||
} else {
|
||||
try {
|
||||
func.callBy(Parser.paramMap(context, argsFromExecutor, argsSize, sender, argsParsers, func, true, rootCommand))
|
||||
true
|
||||
} catch (ignored: TypeParseException) {
|
||||
false
|
||||
} catch (e: IllegalArgumentException) {
|
||||
MessagesService.byTag("#wrong-usage")(sender)
|
||||
false
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return SubCommand(name, context, executor, context.completeTags.let {
|
||||
TabCompleteService.completerReflection(it.toMutableList(),
|
||||
func.parameters.map { it.type.javaType as Class<*> })
|
||||
}
|
||||
?: TabCompleter { _, _, _, _ -> mutableListOf() })
|
||||
}
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.service
|
||||
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.command.TabCompleter
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
object TabCompleteService {
|
||||
private val completes = mutableMapOf<String, (CommandSender) -> List<String>>()
|
||||
init {
|
||||
//REGISTER DEFAULT COMPLETES
|
||||
completes["#players"] = { Bukkit.getOnlinePlayers().map { it.name } }
|
||||
completes["#offlinePlayers"] = { Bukkit.getOfflinePlayers().map { it.name ?: "" } }
|
||||
completes["#worlds"] = { Bukkit.getWorlds().map { it.name } }
|
||||
completes["#empty"] = { emptyList() }
|
||||
}
|
||||
|
||||
fun register(tag: String, func: (CommandSender) -> List<String>) {
|
||||
completes[tag] = func
|
||||
}
|
||||
|
||||
fun completerReflection(list: MutableList<String>, params: List<Class<*>>): TabCompleter {
|
||||
val complete: MutableList<(CommandSender) -> List<String>> = ArrayList(params.size)
|
||||
for(i in params.indices) complete.add { mutableListOf() }
|
||||
for((i, tag) in list.withIndex()) {
|
||||
complete[i] = reflectionCompleteParser(tag, params[i+if(params[0] == CommandSender::class.java) 1 else 0])
|
||||
}
|
||||
return createTabCompleter(complete)
|
||||
}
|
||||
|
||||
private fun createTabCompleter(completes: List<(CommandSender) -> List<String>>): TabCompleter =
|
||||
TabCompleter { sender, _, _, args ->
|
||||
if(args.size <= completes.size)
|
||||
completes[args.size-1](sender)
|
||||
else mutableListOf()
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun reflectionCompleteParser(tagLine: String, paramClass: Class<*>): (CommandSender) -> List<String> =
|
||||
when(tagLine.split(":")[0]) {
|
||||
"#enum" -> { _ -> enumReflectionParse(paramClass) }
|
||||
else -> defaultCompleteParse(tagLine)
|
||||
}
|
||||
|
||||
|
||||
private fun defaultCompleteParse(tagLine: String): (CommandSender) -> List<String> =
|
||||
if(tagLine in completes) completes[tagLine]!! else
|
||||
when(tagLine.split(":")[0]) {
|
||||
"#range" -> { _ -> rangeCompleteParse(tagLine) }
|
||||
else -> { _ -> emptyList() }
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun rangeCompleteParse(tagLine: String): List<String> {
|
||||
val diapason = tagLine.replace("#range:", "").split("-");
|
||||
return (diapason[0].toInt()..diapason[1].toInt()).map { it.toString() }
|
||||
}
|
||||
|
||||
private fun enumReflectionParse(enumClass: Class<*>): List<String> {
|
||||
if(enumClass.isEnum) { return enumClass.enumConstants.map { (it as Enum<*>).name }
|
||||
} else throw IllegalArgumentException("#enum complete but param ${enumClass.canonicalName} is not enum")
|
||||
}
|
||||
}
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
package tech.carcadex.kotlinbukkitkit.commands.service
|
||||
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.World
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
import tech.carcadex.kotlinbukkitkit.commands.exceptions.UnsupportedTypeException
|
||||
import tech.carcadex.kotlinbukkitkit.extensions.offlinePlayerOrNull
|
||||
import java.lang.reflect.Type
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KType
|
||||
import kotlin.reflect.javaType
|
||||
|
||||
object TypeService {
|
||||
data class TypeContext(val arg: String, val sender: CommandSender, var errorMessage: String? = null)
|
||||
|
||||
private val types = mutableMapOf<KClass<*>, (TypeContext) -> Any?>()
|
||||
|
||||
//REGISTER DEFAULT TYPES
|
||||
init {
|
||||
types[CommandSender::class] = { it.arg }
|
||||
types[String::class] = { it.arg }
|
||||
types[java.lang.String::class] = { it.arg }
|
||||
types[Int::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
types[java.lang.Integer::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
types[UInt::class] = { it.errorMessage = "#not-a-number"; it.arg.toUInt() }
|
||||
types[Long::class] = { it.errorMessage = "#not-a-number"; it.arg.toLong() }
|
||||
types[java.lang.Long::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
types[ULong::class] = { it.errorMessage = "#not-a-number"; it.arg.toULong() }
|
||||
types[Short::class] = { it.errorMessage = "#not-a-number"; it.arg.toShort() }
|
||||
types[java.lang.Short::class] = { it.arg.toInt() }
|
||||
types[UShort::class] = { it.errorMessage = "#not-a-number"; it.arg.toUShort() }
|
||||
types[Float::class] = { it.errorMessage = "#not-a-number"; it.arg.toFloat() }
|
||||
types[java.lang.Float::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
types[Double::class] = { it.errorMessage = "#not-a-number"; it.arg.toDouble() }
|
||||
types[java.lang.Double::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
types[Byte::class] = { it.errorMessage = "#not-a-number"; it.arg.toByte() }
|
||||
types[java.lang.Byte::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
types[UByte::class] = { it.errorMessage = "#not-a-number"; it.arg.toUByte() }
|
||||
types[Boolean::class] = { it.errorMessage = "#not-a-number"; it.arg.toBoolean() }
|
||||
types[java.lang.Boolean::class] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
|
||||
types[Player::class] = {
|
||||
Bukkit.getPlayer(it.arg).also { o -> if(o == null) it.errorMessage = "#no-such-player" }
|
||||
}
|
||||
types[OfflinePlayer::class] = {
|
||||
offlinePlayerOrNull(it.arg).also { o -> if(o == null) it.errorMessage = "#no-such-player" }
|
||||
}
|
||||
types[World::class] = { Bukkit.getWorld(it.arg).also { o -> if(o == null) it.errorMessage = "#no-such-world" } }
|
||||
|
||||
types[Material::class] = { Material.matchMaterial(it.arg).also { o ->
|
||||
if(o == null) it.errorMessage = "#no-such-material" } }
|
||||
// types[CommandSender::class.qualifiedName!!] = { it }
|
||||
// types[String::class.qualifiedName!!] = { it }
|
||||
// types["java.lang.String"] = { it }
|
||||
// types[Int::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
// types["java.lang.Integer"] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
// types[UInt::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toUInt() }
|
||||
// types[Long::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toLong() }
|
||||
// types["java.lang.Long"] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
// types[ULong::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toULong() }
|
||||
// types[Short::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toShort() }
|
||||
// types["java.lang.Short"] = { it.arg.toInt() }
|
||||
// types[UShort::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toUShort() }
|
||||
// types[Float::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toFloat() }
|
||||
// types["java.lang.Float"] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
// types[Double::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toDouble() }
|
||||
// types["java.lang.Double"] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
// types[Byte::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toByte() }
|
||||
// types["java.lang.Byte"] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
// types[UByte::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toUByte() }
|
||||
// types[Boolean::class.qualifiedName!!] = { it.errorMessage = "#not-a-number"; it.arg.toBoolean() }
|
||||
// types["java.lang.Boolean"] = { it.errorMessage = "#not-a-number"; it.arg.toInt() }
|
||||
//
|
||||
// types[Player::class.qualifiedName!!] = {
|
||||
// Bukkit.getPlayer(it.arg).also { o -> if(o == null) it.errorMessage = "#no-such-player" }
|
||||
// }
|
||||
// types[OfflinePlayer::class.qualifiedName!!] = {
|
||||
// offlinePlayerOrNull(it.arg).also { o -> if(o == null) it.errorMessage = "#no-such-player" }
|
||||
// }
|
||||
// types[World::class.qualifiedName!!] = { Bukkit.getWorld(it.arg).also { o -> if(o == null) it.errorMessage = "#no-such-world" } }
|
||||
//
|
||||
// types[Material::class.qualifiedName!!] = { Material.matchMaterial(it.arg).also { o ->
|
||||
// if(o == null) it.errorMessage = "#no-such-material" } }
|
||||
}
|
||||
|
||||
fun registered(clazz: KClass<*>): Boolean = clazz in types
|
||||
fun registered(clazz: Class<*>): Boolean = registered(clazz.kotlin)
|
||||
fun registered(name: String): Boolean = registered(Class.forName(name))
|
||||
fun registered(type: Type): Boolean = registered(type as Class<*>)
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
fun registered(type: KType): Boolean = registered(type.javaType)
|
||||
|
||||
fun register(clazz: KClass<*>, func: (TypeContext) -> Any) {
|
||||
types[clazz] = func
|
||||
}
|
||||
|
||||
fun byClass(clazz: KClass<*>): (TypeContext) -> Any? = types[clazz] ?: throw UnsupportedTypeException(
|
||||
"Type ${clazz.qualifiedName} is not supported!")
|
||||
fun byClass(clazz: Class<*>): (TypeContext) -> Any? = types[clazz.kotlin] ?: throw UnsupportedTypeException(
|
||||
"Type ${clazz.canonicalName} is not supported!")
|
||||
fun byClassName(name: String) = byClass(Class.forName(name))
|
||||
fun byType(type: Type): (TypeContext) -> Any? = byClass(type as Class<*>)
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
fun byType(type: KType): (TypeContext) -> Any? = byType(type.javaType)
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
.gradle
|
||||
build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
||||
@@ -0,0 +1,89 @@
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
plugins {
|
||||
kotlin("jvm") version "1.9.0"
|
||||
id("com.google.devtools.ksp") version "1.9.0-1.0.11"
|
||||
id("java")
|
||||
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
|
||||
id("org.jetbrains.kotlin.plugin.serialization") version "1.8.21"
|
||||
id("com.github.johnrengelman.shadow") version "7.1.2"
|
||||
id("xyz.jpenilla.run-paper") version "2.1.0"
|
||||
}
|
||||
|
||||
group = "me.redtea"
|
||||
version = "1.0.0-SNAPSHOT"
|
||||
|
||||
val carcadeXVersion = project.findProperty("carcadexversion").toString()
|
||||
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = "spigotmc-repo"
|
||||
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
||||
}
|
||||
maven {
|
||||
name = "sonatype"
|
||||
url = uri("https://oss.sonatype.org/content/groups/public/")
|
||||
}
|
||||
maven {
|
||||
name = "kotlinminecraft"
|
||||
url = uri("https://raw.githubusercontent.com/KotlinMinecraft/KotlinBukkitAPI-Repository/main")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
//Spigot 1.16.5 API
|
||||
compileOnly("org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT")
|
||||
|
||||
|
||||
implementation(parent!!)
|
||||
|
||||
//Kotlin modubles
|
||||
library("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
||||
library("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.2")
|
||||
library("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
|
||||
library("org.jetbrains.kotlin:kotlin-reflect:1.9.0")
|
||||
library("org.jetbrains:annotations:24.0.0")
|
||||
|
||||
//XSeries
|
||||
library("com.github.cryptomorin:XSeries:9.2.0")
|
||||
|
||||
//CarcadeX modules
|
||||
implementation(project(":architecture"))
|
||||
compileOnly(project(":genref"))
|
||||
ksp(project(":genref"))
|
||||
//implementation files('libs/MiniMessages-0.1.0.jar')
|
||||
}
|
||||
|
||||
|
||||
bukkit {
|
||||
main = "me.redtea.test.TestPlugin"
|
||||
author = "itzRedTea"
|
||||
apiVersion = "1.13"
|
||||
}
|
||||
|
||||
tasks {
|
||||
runServer {
|
||||
minecraftVersion("1.16.5")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tasks {
|
||||
shadowJar {
|
||||
dependencies {
|
||||
exclude {
|
||||
it.moduleGroup.startsWith("org.jetbrains")
|
||||
}
|
||||
exclude(dependency("io.github.iredtea:carcadex:*"))
|
||||
exclude(dependency("com.github.cryptomorin:XSeries:9.2.0"))
|
||||
exclude(dependency("net.kyori:adventure-api:4.14.0"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tasks.withType<KotlinCompile> {
|
||||
kotlinOptions.jvmTarget = "1.8"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -0,0 +1,41 @@
|
||||
# This is the main configuration file for Bukkit.
|
||||
# As you can see, there's actually not that much to configure without any plugins.
|
||||
# For a reference for any variable inside this file, check out the Bukkit Wiki at
|
||||
# https://www.spigotmc.org/go/bukkit-yml
|
||||
#
|
||||
# If you need help on this file, feel free to join us on irc or leave a message
|
||||
# on the forums asking for advice.
|
||||
#
|
||||
# IRC: #spigot @ irc.spi.gt
|
||||
# (If this means nothing to you, just go to https://www.spigotmc.org/go/irc )
|
||||
# Forums: https://www.spigotmc.org/
|
||||
# Bug tracker: https://www.spigotmc.org/go/bugs
|
||||
|
||||
|
||||
settings:
|
||||
allow-end: true
|
||||
warn-on-overload: true
|
||||
permissions-file: permissions.yml
|
||||
update-folder: update
|
||||
plugin-profiling: false
|
||||
connection-throttle: 4000
|
||||
query-plugins: true
|
||||
deprecated-verbose: default
|
||||
shutdown-message: Server closed
|
||||
minimum-api: none
|
||||
spawn-limits:
|
||||
monsters: 70
|
||||
animals: 10
|
||||
water-animals: 5
|
||||
water-ambient: 20
|
||||
ambient: 15
|
||||
chunk-gc:
|
||||
period-in-ticks: 600
|
||||
ticks-per:
|
||||
animal-spawns: 400
|
||||
monster-spawns: 1
|
||||
water-spawns: 1
|
||||
water-ambient-spawns: 1
|
||||
ambient-spawns: 1
|
||||
autosave: 6000
|
||||
aliases: now-in-commands.yml
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
# This is the commands configuration file for Bukkit.
|
||||
# For documentation on how to make use of this file, check out the Bukkit Wiki at
|
||||
# https://www.spigotmc.org/go/commands-yml
|
||||
#
|
||||
# If you need help on this file, feel free to join us on irc or leave a message
|
||||
# on the forums asking for advice.
|
||||
#
|
||||
# IRC: #spigot @ irc.spi.gt
|
||||
# (If this means nothing to you, just go to https://www.spigotmc.org/go/irc )
|
||||
# Forums: https://www.spigotmc.org/
|
||||
# Bug tracker: https://www.spigotmc.org/go/bugs
|
||||
|
||||
command-block-overrides: []
|
||||
ignore-vanilla-permissions: false
|
||||
aliases:
|
||||
icanhasbukkit:
|
||||
- version $1-
|
||||
@@ -0,0 +1,4 @@
|
||||
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
|
||||
#You also agree that tacos are tasty, and the best food in the world.
|
||||
#Tue Aug 22 13:05:52 MSK 2023
|
||||
eula=true
|
||||
@@ -0,0 +1,56 @@
|
||||
# This is the help configuration file for Bukkit.
|
||||
#
|
||||
# By default you do not need to modify this file. Help topics for all plugin commands are automatically provided by
|
||||
# or extracted from your installed plugins. You only need to modify this file if you wish to add new help pages to
|
||||
# your server or override the help pages of existing plugin commands.
|
||||
#
|
||||
# This file is divided up into the following parts:
|
||||
# -- general-topics: lists admin defined help topics
|
||||
# -- index-topics: lists admin defined index topics
|
||||
# -- amend-topics: lists topic amendments to apply to existing help topics
|
||||
# -- ignore-plugins: lists any plugins that should be excluded from help
|
||||
#
|
||||
# Examples are given below. When amending command topic, the string <text> will be replaced with the existing value
|
||||
# in the help topic. Color codes can be used in topic text. The color code character is & followed by 0-F.
|
||||
# ================================================================
|
||||
#
|
||||
# Set this to true to list the individual command help topics in the master help.
|
||||
# command-topics-in-master-index: true
|
||||
#
|
||||
# Each general topic will show up as a separate topic in the help index along with all the plugin command topics.
|
||||
# general-topics:
|
||||
# Rules:
|
||||
# shortText: Rules of the server
|
||||
# fullText: |
|
||||
# &61. Be kind to your fellow players.
|
||||
# &B2. No griefing.
|
||||
# &D3. No swearing.
|
||||
# permission: topics.rules
|
||||
#
|
||||
# Each index topic will show up as a separate sub-index in the help index along with all the plugin command topics.
|
||||
# To override the default help index (displayed when the user executes /help), name the index topic "Default".
|
||||
# index-topics:
|
||||
# Ban Commands:
|
||||
# shortText: Player banning commands
|
||||
# preamble: Moderator - do not abuse these commands
|
||||
# permission: op
|
||||
# commands:
|
||||
# - /ban
|
||||
# - /ban-ip
|
||||
# - /banlist
|
||||
#
|
||||
# Topic amendments are used to change the content of automatically generated plugin command topics.
|
||||
# amended-topics:
|
||||
# /stop:
|
||||
# shortText: Stops the server cold....in its tracks!
|
||||
# fullText: <text> - This kills the server.
|
||||
# permission: you.dont.have
|
||||
#
|
||||
# Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by
|
||||
# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index. Ignore "All"
|
||||
# to completely disable automatic help topic generation.
|
||||
# ignore-plugins:
|
||||
# - PluginNameOne
|
||||
# - PluginNameTwo
|
||||
# - PluginNameThree
|
||||
|
||||
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
aa3d386edc9fd5d223103ad1170c941a9b794fa3
|
||||
@@ -0,0 +1,272 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.github.cryptomorin</groupId>
|
||||
<artifactId>XSeries</artifactId>
|
||||
<version>9.2.0</version>
|
||||
|
||||
<name>XSeries</name>
|
||||
<description>A set of utilities for Minecraft plugins</description>
|
||||
<url>https://www.spigotmc.org/threads/378136/</url>
|
||||
|
||||
<issueManagement>
|
||||
<system>GitHub Issues</system>
|
||||
<url>https://github.com/CryptoMorin/XSeries/issues</url>
|
||||
</issueManagement>
|
||||
|
||||
<inceptionYear>2019</inceptionYear>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<id>CryptoMorin</id>
|
||||
<name>Crypto Morin</name>
|
||||
<roles>
|
||||
<role>Owner</role>
|
||||
</roles>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>MIT License</name>
|
||||
<url>https://opensource.org/licenses/MIT</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
|
||||
<parent>
|
||||
<groupId>org.sonatype.oss</groupId>
|
||||
<artifactId>oss-parent</artifactId>
|
||||
<version>9</version>
|
||||
</parent>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>ossrh</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>ossrh</id>
|
||||
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>nms-repo</id>
|
||||
<url>https://repo.codemc.org/repository/nms/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<properties>
|
||||
<!-- Latest version -->
|
||||
<spigotVersion>1.19.3-R0.1-SNAPSHOT</spigotVersion>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot</artifactId>
|
||||
<version>${spigotVersion}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<version>5.8.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<configuration>
|
||||
<!--all,-missing-->
|
||||
<doclint>none</doclint>
|
||||
<release>8</release>
|
||||
<excludePackageNames>com.cryptomorin.xseries.unused:com.cryptomorin.xseries.particles</excludePackageNames>
|
||||
<!-- Apparently this is needed because it's a bug with maven JavaDoc plugin not being able to find the exe by itself. -->
|
||||
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-javadocs</id>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<version>1.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>sign-artifacts</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>sign</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.sonatype.plugins</groupId>
|
||||
<artifactId>nexus-staging-maven-plugin</artifactId>
|
||||
<version>1.6.8</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<serverId>ossrh</serverId>
|
||||
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
|
||||
<autoReleaseAfterClose>true</autoReleaseAfterClose>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<proc>none</proc>
|
||||
<source>8</source>
|
||||
<target>8</target>
|
||||
<compilerArgs>
|
||||
<!-- Fails to build the JAR if one of the excluded classes are being used inside an included class. -->
|
||||
<arg>-sourcepath</arg>
|
||||
<arg>doesnotexist</arg>
|
||||
</compilerArgs>
|
||||
<excludes>
|
||||
<exclude>com/cryptomorin/xseries/unused/</exclude>
|
||||
<exclude>com/cryptomorin/xseries/SkullCacheListener.java</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-testCompile</id>
|
||||
<phase>test-compile</phase>
|
||||
<goals>
|
||||
<goal>testCompile</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.0.0-M5</version>
|
||||
<configuration>
|
||||
<!--<failIfNoTests>true</failIfNoTests>-->
|
||||
<trimStackTrace>false</trimStackTrace>
|
||||
<workingDirectory>${basedir}/target/tests</workingDirectory>
|
||||
<!-- <dependenciesToScan>-->
|
||||
<!-- <dependency>*:spigot:*:*:1.16.5-R0.1-SNAPSHOT</dependency>-->
|
||||
<!-- </dependenciesToScan>-->
|
||||
<includes>
|
||||
<include>**/DummySpigot.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
<testSourceDirectory>src/test</testSourceDirectory>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</testResource>
|
||||
</testResources>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>tester</id>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot</artifactId>
|
||||
<version>${spigotVersion}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>17</source>
|
||||
<target>17</target>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-testCompile</id>
|
||||
<phase>test-compile</phase>
|
||||
<goals>
|
||||
<goal>testCompile</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<skip>false</skip>
|
||||
<testIncludes>
|
||||
<include>*/**DummySpigot.java</include>
|
||||
</testIncludes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>latest</id>
|
||||
<properties>
|
||||
<nms>19_R0</nms>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>18</id>
|
||||
<properties>
|
||||
<nms>18_R1</nms>
|
||||
<spigotVersion>1.18.1-R0.1-SNAPSHOT</spigotVersion>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>17</id>
|
||||
<properties>
|
||||
<nms>17_R1</nms>
|
||||
<spigotVersion>1.17.1-R0.1-SNAPSHOT</spigotVersion>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<!-- Doens't seem to work. I can't find a way to compile with one dependency and test with another -->
|
||||
<id>16</id>
|
||||
<properties>
|
||||
<nms>16_R3</nms>
|
||||
<spigotVersion>1.16.5-R0.1-SNAPSHOT</spigotVersion>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
b3a48024a3315906810a4f5c81cc26da5d1abc07
|
||||
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
XSeries-9.2.0.jar>central=
|
||||
XSeries-9.2.0.pom>central=
|
||||
@@ -0,0 +1,3 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:50 MSK 2023
|
||||
annotations-13.0.pom>central=
|
||||
@@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>13.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>IntelliJ IDEA Annotations</name>
|
||||
<description>A set of annotations used for code inspection support and code documentation.</description>
|
||||
<url>http://www.jetbrains.org</url>
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache Software License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
<distribution>repo</distribution>
|
||||
<comments>A business-friendly OSS license</comments>
|
||||
</license>
|
||||
</licenses>
|
||||
|
||||
<scm>
|
||||
<url>https://github.com/JetBrains/intellij-community</url>
|
||||
<connection>scm:git:https://github.com/JetBrains/intellij-community.git</connection>
|
||||
</scm>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<id>JetBrains</id>
|
||||
<name>JetBrains Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>http://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>generate-sources</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<delete dir="${basedir}/src/main/java" />
|
||||
<mkdir dir="${basedir}/src/main/java" />
|
||||
<copy todir="${basedir}/src/main/java">
|
||||
<fileset dir="${basedir}/../../../community/platform/annotations/src" />
|
||||
</copy>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>2.1.2</version>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
<configuration>
|
||||
<source>1.5</source>
|
||||
<target>1.5</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>2.9.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-javadocs</id>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<version>1.4</version>
|
||||
<configuration>
|
||||
<keyname>66770193</keyname>
|
||||
<homedir>${basedir}/.gnupg</homedir>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>sign-artifacts</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>sign</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>sonatype-nexus-staging</id>
|
||||
<url>http://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>sonatype-nexus-snapshots</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
||||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1 @@
|
||||
fa7d3d07cc80547e2d15bf4839d3267c637c642f
|
||||
@@ -0,0 +1,3 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:50 MSK 2023
|
||||
annotations-23.0.0.pom>central=
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>23.0.0</version>
|
||||
<name>JetBrains Java Annotations</name>
|
||||
<description>A set of annotations used for code inspection support and code documentation.</description>
|
||||
<url>https://github.com/JetBrains/java-annotations</url>
|
||||
<scm>
|
||||
<url>https://github.com/JetBrains/java-annotations</url>
|
||||
<connection>scm:git:git://github.com/JetBrains/java-annotations.git</connection>
|
||||
<developerConnection>scm:git:ssh://github.com:JetBrains/java-annotations.git</developerConnection>
|
||||
</scm>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache Software License, Version 2.0</name>
|
||||
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<id>JetBrains</id>
|
||||
<name>JetBrains Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
deb853be3c9e05ed99fbbf83e49d349d08a6d10e
|
||||
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
annotations-24.0.0.jar>central=
|
||||
annotations-24.0.0.pom>central=
|
||||
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
69b8b443c437fdeefa8d20c18d257b94836a92b9
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>24.0.0</version>
|
||||
<name>JetBrains Java Annotations</name>
|
||||
<description>A set of annotations used for code inspection support and code documentation.</description>
|
||||
<url>https://github.com/JetBrains/java-annotations</url>
|
||||
<scm>
|
||||
<url>https://github.com/JetBrains/java-annotations</url>
|
||||
<connection>scm:git:git://github.com/JetBrains/java-annotations.git</connection>
|
||||
<developerConnection>scm:git:ssh://github.com:JetBrains/java-annotations.git</developerConnection>
|
||||
</scm>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache Software License, Version 2.0</name>
|
||||
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<id>JetBrains</id>
|
||||
<name>JetBrains Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
bfce1521c40f705e9fe25e1b86301035fb72d129
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
kotlin-reflect-1.8.21.pom>central=
|
||||
kotlin-reflect-1.8.21.jar>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
662838019bc1141f8a311180d93b9e13765c7f55
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-reflect</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<name>Kotlin Reflect</name>
|
||||
<description>Kotlin Full Reflection Library</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
988a6739315c721d0fa76a517ee314e4b6e29cfb
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 23:22:39 MSK 2023
|
||||
kotlin-reflect-1.9.0.pom>central=
|
||||
kotlin-reflect-1.9.0.jar>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
2891f552979d4bf4d4ec516acb9df769fb62dbe9
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-reflect</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<name>Kotlin Reflect</name>
|
||||
<description>Kotlin Full Reflection Library</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
eb198069ed7e9e8458d900c47325475ec581507a
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:51 MSK 2023
|
||||
kotlin-stdlib-common-1.8.20.pom>central=
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-common</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<name>Kotlin Stdlib Common</name>
|
||||
<description>Kotlin Common Standard Library</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
c8bc98db3b7220e49408922137dbd44fc458708c
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
kotlin-stdlib-common-1.8.21.jar>central=
|
||||
kotlin-stdlib-common-1.8.21.pom>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
d749cd5ae25da36d06e5028785038e24f9d37976
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-common</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<name>Kotlin Stdlib Common</name>
|
||||
<description>Kotlin Common Standard Library</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
8f1a58d8fd44b0f34359325b9b47c95df2c7ea9e
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 23:22:39 MSK 2023
|
||||
kotlin-stdlib-common-1.9.0.pom>central=
|
||||
kotlin-stdlib-common-1.9.0.jar>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
cd65c21cfd1eec4d44ef09f9f52b6d9f8a720636
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-common</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<name>Kotlin Stdlib Common</name>
|
||||
<description>Kotlin Common Standard Library</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
0a865a0c5a64618fd1dcca13d05dea4cba44c832
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:51 MSK 2023
|
||||
kotlin-stdlib-jdk7-1.8.20.pom>central=
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<name>Kotlin Stdlib Jdk7</name>
|
||||
<description>Kotlin Standard Library JDK 7 extension</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
e613a7635e90125d25b100b636a85639b4487ac4
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
kotlin-stdlib-jdk7-1.8.21.jar>central=
|
||||
kotlin-stdlib-jdk7-1.8.21.pom>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
7473b8cd3c0ef9932345baf569bc398e8a717046
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<name>Kotlin Stdlib Jdk7</name>
|
||||
<description>Kotlin Standard Library JDK 7 extension</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
d23a31049e8289c21e78078e888f3968c82ad0ac
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 23:22:39 MSK 2023
|
||||
kotlin-stdlib-jdk7-1.9.0.jar>central=
|
||||
kotlin-stdlib-jdk7-1.9.0.pom>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
f320478990d05e0cfaadd74f9619fd6027adbf37
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<name>Kotlin Stdlib Jdk7</name>
|
||||
<description>Kotlin Standard Library JDK 7 extension</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
5ce6c5278ef6e342507a96372ee534ed0b830e54
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:51 MSK 2023
|
||||
kotlin-stdlib-jdk8-1.8.20.pom>central=
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk8</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<name>Kotlin Stdlib Jdk8</name>
|
||||
<description>Kotlin Standard Library JDK 8 extension</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
f9dac9f21106bd224ea78c78b56f4e401d7df56f
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
kotlin-stdlib-jdk8-1.8.21.jar>central=
|
||||
kotlin-stdlib-jdk8-1.8.21.pom>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
67f57e154437cd9e6e9cf368394b95814836ff88
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk8</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<name>Kotlin Stdlib Jdk8</name>
|
||||
<description>Kotlin Standard Library JDK 8 extension</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
3e5d957c0d7c874093cdf22483d4fc024476479a
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 23:22:39 MSK 2023
|
||||
kotlin-stdlib-jdk8-1.9.0.jar>central=
|
||||
kotlin-stdlib-jdk8-1.9.0.pom>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
e000bd084353d84c9e888f6fb341dc1f5b79d948
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk8</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<name>Kotlin Stdlib Jdk8</name>
|
||||
<description>Kotlin Standard Library JDK 8 extension</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
4f04e57e4a12d4a59f620c63520681c4ff1d03e6
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:51 MSK 2023
|
||||
kotlin-stdlib-1.8.20.pom>central=
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<name>Kotlin Stdlib</name>
|
||||
<description>Kotlin Standard Library for JVM</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-common</artifactId>
|
||||
<version>1.8.20</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>13.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
d96c138bc67fc0c278623b3350b7f926a1db9f2f
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 13:06:54 MSK 2023
|
||||
kotlin-stdlib-1.8.21.jar>central=
|
||||
kotlin-stdlib-1.8.21.pom>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
43d50ab85bc7587adfe3dda3dbe579e5f8d51265
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<name>Kotlin Stdlib</name>
|
||||
<description>Kotlin Standard Library for JVM</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-common</artifactId>
|
||||
<version>1.8.21</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>13.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+1
@@ -0,0 +1 @@
|
||||
69d1a37560299321348842a9e921d26ff53c80d7
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Tue Aug 22 23:22:39 MSK 2023
|
||||
kotlin-stdlib-1.9.0.pom>central=
|
||||
kotlin-stdlib-1.9.0.jar>central=
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
8ee15ef0c67dc83d874f412d84378d7f0eb50b63
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<name>Kotlin Stdlib</name>
|
||||
<description>Kotlin Standard Library for JVM</description>
|
||||
<url>https://kotlinlang.org/</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Kotlin Team</name>
|
||||
<organization>JetBrains</organization>
|
||||
<organizationUrl>https://www.jetbrains.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
|
||||
<url>https://github.com/JetBrains/kotlin</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-common</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>13.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
Loaded 100 of 270 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user