Convert punishment commands to Kotlin

This commit is contained in:
Cube
2017-06-04 19:56:51 +03:00
parent 6db98406d5
commit 72c0be8ac6
3 changed files with 78 additions and 0 deletions
@@ -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.AttributePersistence;
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.setting.MembershipStatus;
import org.apollo.game.model.entity.setting.PrivacyState;
@@ -943,6 +944,22 @@ public final class Player extends Mob {
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
public void shout(String message, boolean chatOnly) {
blockSet.add(SynchronizationBlock.createForceChatBlock(chatOnly ? message : '~' + message));
+1
View File
@@ -4,6 +4,7 @@ dependencies = [ "command_utilities" ]
authors = [
"Graham",
"Major",
"lare96",
"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
}