Fixed exploit with command privileges

This commit is contained in:
Ceikry
2022-07-18 12:15:37 +00:00
committed by Ryan
parent 0f245670f8
commit 466d6207f7
2 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ interface Commands : ContentInterface {
* @param name the name of the command. Example: ::example would be just "example"
* @param privilege the rights level needed to execute the command. Options are [Privilege.STANDARD], [Privilege.MODERATOR], [Privilege.ADMIN]. Defaults to [Privilege.STANDARD]
*/
fun define(name: String, privilege: Privilege = Privilege.STANDARD, usage: String = "", description: String = "", handle: (Player, Array<String>) -> Unit){
fun define(name: String, privilege: Privilege = Privilege.ADMIN, usage: String = "", description: String = "", handle: (Player, Array<String>) -> Unit){
CommandMapping.register(Command(name, privilege, usage, description, handle))
}
@@ -15,6 +15,7 @@ import rs09.ServerConstants
import rs09.game.interaction.InteractionListener
import rs09.game.interaction.InterfaceListener
import rs09.game.system.SystemLogger
import rs09.game.system.command.Privilege
import rs09.tools.END_DIALOGUE
import java.io.FileReader
@@ -256,7 +257,7 @@ class Shops : StartupListener, TickListener, InteractionListener, InterfaceListe
}
override fun defineCommands() {
define("openshop") { player, args ->
define("openshop", Privilege.ADMIN) { player, args ->
if(args.size < 2) reject(player, "Usage: ::openshop shopId")
val shopId = args[1].toInt()
shopsById[shopId]?.openFor(player)