mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-07 08:39:17 +00:00
Convert punishment commands to Kotlin
This commit is contained in:
@@ -28,6 +28,7 @@ import org.apollo.game.model.entity.attr.AttributeDefinition;
|
|||||||
import org.apollo.game.model.entity.attr.AttributeMap;
|
import org.apollo.game.model.entity.attr.AttributeMap;
|
||||||
import org.apollo.game.model.entity.attr.AttributePersistence;
|
import org.apollo.game.model.entity.attr.AttributePersistence;
|
||||||
import org.apollo.game.model.entity.attr.NumericalAttribute;
|
import org.apollo.game.model.entity.attr.NumericalAttribute;
|
||||||
|
import org.apollo.game.model.entity.attr.BooleanAttribute;
|
||||||
import org.apollo.game.model.entity.obj.DynamicGameObject;
|
import org.apollo.game.model.entity.obj.DynamicGameObject;
|
||||||
import org.apollo.game.model.entity.setting.MembershipStatus;
|
import org.apollo.game.model.entity.setting.MembershipStatus;
|
||||||
import org.apollo.game.model.entity.setting.PrivacyState;
|
import org.apollo.game.model.entity.setting.PrivacyState;
|
||||||
@@ -943,6 +944,22 @@ public final class Player extends Mob {
|
|||||||
this.withdrawingNotes = withdrawingNotes;
|
this.withdrawingNotes = withdrawingNotes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ban the player.
|
||||||
|
*/
|
||||||
|
public void ban() {
|
||||||
|
attributes.set("banned", new BooleanAttribute(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the mute status of a player.
|
||||||
|
*
|
||||||
|
* @param muted Whether the player is muted.
|
||||||
|
*/
|
||||||
|
public void setMuted(boolean muted) {
|
||||||
|
attributes.set("muted", new BooleanAttribute(muted));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void shout(String message, boolean chatOnly) {
|
public void shout(String message, boolean chatOnly) {
|
||||||
blockSet.add(SynchronizationBlock.createForceChatBlock(chatOnly ? message : '~' + message));
|
blockSet.add(SynchronizationBlock.createForceChatBlock(chatOnly ? message : '~' + message));
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ dependencies = [ "command_utilities" ]
|
|||||||
authors = [
|
authors = [
|
||||||
"Graham",
|
"Graham",
|
||||||
"Major",
|
"Major",
|
||||||
|
"lare96",
|
||||||
"cubeee"
|
"cubeee"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user