mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 16:49:11 +00:00
59 lines
1.9 KiB
Kotlin
59 lines
1.9 KiB
Kotlin
import org.apollo.game.model.entity.Player
|
|
import org.apollo.game.model.entity.setting.PrivilegeLevel
|
|
|
|
/**
|
|
* Adds a command to mute a player. Admins cannot be muted.
|
|
*/
|
|
on_command("mute", PrivilegeLevel.MODERATOR)
|
|
.then { player ->
|
|
val name = arguments.joinToString(" ")
|
|
val targetPlayer = player.world.getPlayer(name)
|
|
|
|
if (validate(player, targetPlayer)) {
|
|
targetPlayer.isMuted = true
|
|
player.sendMessage("You have just unmuted ${targetPlayer.username}.")
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Adds a command to unmute a player.
|
|
*/
|
|
on_command("unmute", PrivilegeLevel.MODERATOR)
|
|
.then { player ->
|
|
val name = arguments.joinToString(" ")
|
|
val targetPlayer = player.world.getPlayer(name)
|
|
|
|
if (validate(player, targetPlayer)) {
|
|
targetPlayer.isMuted = false
|
|
player.sendMessage("You have just unmuted ${targetPlayer.username}.")
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Adds a command to ban a player. Admins cannot be banned.
|
|
*/
|
|
on_command("ban", PrivilegeLevel.ADMINISTRATOR)
|
|
.then { player ->
|
|
val name = arguments.joinToString(" ")
|
|
val targetPlayer = player.world.getPlayer(name)
|
|
|
|
if (validate(player, targetPlayer)) {
|
|
targetPlayer.ban()
|
|
targetPlayer.logout() // TODO force logout
|
|
player.sendMessage("You have just banned ${targetPlayer.username}.")
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Ensures the player isn't null, and that they aren't an Administrator.
|
|
*/
|
|
fun validate(player: Player, targetPlayer: Player?): Boolean {
|
|
if (targetPlayer == null) {
|
|
player.sendMessage("That player does not exist.")
|
|
return false
|
|
} else if (targetPlayer.privilegeLevel == PrivilegeLevel.ADMINISTRATOR) {
|
|
player.sendMessage("You cannot perform this action on Administrators.")
|
|
return false
|
|
}
|
|
return true
|
|
} |