Skip to content

Commit

Permalink
Merge pull request #144 from Y2Kwastaken/module/extinguish
Browse files Browse the repository at this point in the history
Add Extinguish Module
  • Loading branch information
mfnalex authored Feb 17, 2024
2 parents ef0822f + e86d69e commit 60aeba0
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.github.spigotbasics.modules.basicsextinguish

import com.github.spigotbasics.core.command.parsed.CommandContextExecutor
import com.github.spigotbasics.core.command.parsed.context.MapContext
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player

class BasicsExtinguishExecutor(private val module: BasicsExtinguishModule) : CommandContextExecutor<MapContext> {
override fun execute(
sender: CommandSender,
context: MapContext,
) {
val player = context["player"] as Player? ?: sender as Player?

val msg =
if (sender == player) {
module.messageExtinguished
} else {
module.messageExtinguishedOther
}

player?.fireTicks = 0
msg.concerns(player).sendToSender(sender)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.github.spigotbasics.modules.basicsextinguish

import com.github.spigotbasics.core.command.common.BasicsCommandExecutor
import com.github.spigotbasics.core.command.common.CommandResult
import com.github.spigotbasics.core.command.parsed.arguments.SelectorSinglePlayerArg
import com.github.spigotbasics.core.command.raw.RawCommandContext
import com.github.spigotbasics.core.module.AbstractBasicsModule
import com.github.spigotbasics.core.module.loader.ModuleInstantiationContext
Expand All @@ -21,12 +22,23 @@ class BasicsExtinguishModule(context: ModuleInstantiationContext) : AbstractBasi
val messageExtinguishedOther = messages.getMessage("extinguished-others")

override fun onEnable() {
commandFactory.rawCommandBuilder("extinguish", permExtinguish)
.description("Extinguishes Players")
.usage("[player]")
.aliases(listOf("ext"))
.executor(ExtinguishExecutor(this))
.register()
val playerArg = SelectorSinglePlayerArg("Player")
commandFactory.parsedCommandBuilder("extinguish", permExtinguish)
.mapContext {
usage = "[player]"
description("Extinguished Players")

path {
playerOnly()
}

path {
permissions(permExtinguishOthers)
arguments {
named("player", playerArg)
}
}
}.executor(BasicsExtinguishExecutor(this)).register()
}

private inner class ExtinguishExecutor(private val module: BasicsExtinguishModule) : BasicsCommandExecutor(module) {
Expand Down

0 comments on commit 60aeba0

Please sign in to comment.