diff options
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/command/ParcelCommandReceivers.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/command/ParcelCommandReceivers.kt | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/command/ParcelCommandReceivers.kt b/src/main/kotlin/io/dico/parcels2/command/ParcelCommandReceivers.kt index 5dd8270..eab02c4 100644 --- a/src/main/kotlin/io/dico/parcels2/command/ParcelCommandReceivers.kt +++ b/src/main/kotlin/io/dico/parcels2/command/ParcelCommandReceivers.kt @@ -5,8 +5,8 @@ import io.dico.dicore.command.ExecutionContext import io.dico.dicore.command.ICommandReceiver import io.dico.dicore.command.Validate import io.dico.parcels2.Parcel +import io.dico.parcels2.ParcelProvider import io.dico.parcels2.ParcelWorld -import io.dico.parcels2.Worlds import io.dico.parcels2.util.hasAdminManage import io.dico.parcels2.util.uuid import org.bukkit.entity.Player @@ -30,7 +30,7 @@ open class ParcelScope(val parcel: Parcel) : WorldScope(parcel.world) { "You must own this parcel to $action") } -fun getParcelCommandReceiver(worlds: Worlds, context: ExecutionContext, method: Method, cmdName: String): ICommandReceiver { +fun getParcelCommandReceiver(parcelProvider: ParcelProvider, context: ExecutionContext, method: Method, cmdName: String): ICommandReceiver { val player = context.sender as Player val function = method.kotlinFunction!! val receiverType = function.extensionReceiverParameter!!.type @@ -39,20 +39,20 @@ fun getParcelCommandReceiver(worlds: Worlds, context: ExecutionContext, method: val owner = require?.owner == true return when (receiverType.jvmErasure) { - ParcelScope::class -> ParcelScope(worlds.getParcelRequired(player, admin, owner)) - WorldScope::class -> WorldScope(worlds.getWorldRequired(player, admin)) + ParcelScope::class -> ParcelScope(parcelProvider.getParcelRequired(player, admin, owner)) + WorldScope::class -> WorldScope(parcelProvider.getWorldRequired(player, admin)) else -> throw InternalError("Invalid command receiver type") } } -fun Worlds.getWorldRequired(player: Player, admin: Boolean = false): ParcelWorld { +fun ParcelProvider.getWorldRequired(player: Player, admin: Boolean = false): ParcelWorld { if (admin) Validate.isTrue(player.hasAdminManage, "You must have admin rights to use that command") return getWorld(player.world) ?: throw CommandException("You must be in a parcel world to use that command") } -fun Worlds.getParcelRequired(player: Player, admin: Boolean = false, own: Boolean = false): Parcel { - val parcel = getWorldRequired(player, admin = admin).parcelAt(player) +fun ParcelProvider.getParcelRequired(player: Player, admin: Boolean = false, own: Boolean = false): Parcel { + val parcel = getWorldRequired(player, admin = admin).getParcelAt(player) ?: throw CommandException("You must be in a parcel to use that command") if (own) Validate.isTrue(parcel.isOwner(player.uuid) || player.hasAdminManage, "You must own this parcel to use that command") |