mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-28 05:45:10 -06:00
v1
This commit is contained in:
parent
be744e73b3
commit
710db177a8
1 changed files with 29 additions and 11 deletions
|
|
@ -66,22 +66,40 @@ class QuestCommandSet : CommandSet(Privilege.ADMIN){
|
|||
/**
|
||||
* Sets stage of quest
|
||||
*/
|
||||
define("setqueststage", usage = "::setqueststage <lt>quest-index<gt> <lt>stage<gt>", description = "Sets quest <lt>quest-index<gt> to stage <lt>stage<gt>; use ::quest to find indices."){player,args ->
|
||||
if (args.size < 3) {
|
||||
define("setqueststage", usage = "::setqueststage [-p <lt>username<gt>] <lt>quest-index<gt> <lt>stage<gt>", description = "Sets quest <lt>quest-index<gt> to stage <lt>stage<gt> for player <lt>player<gt> (self if omitted); use ::quest to find indices.") { player,args ->
|
||||
var target = player
|
||||
var otherArgs = args.drop(1)
|
||||
|
||||
if (args[1].equals("-p", ignoreCase = true)) {
|
||||
// need at least 5 arguments if -p is used: command, -p, username, quest-index, stage
|
||||
if (args.size < 5) {
|
||||
reject(player, "ERROR: Missing player name. Usage: ::setqueststage -p <username> <quest-index> <stage>")
|
||||
return@define
|
||||
}
|
||||
val playerLength = args.size - 4
|
||||
|
||||
val playerName = args.slice(2 until playerLength + 2).joinToString("_").lowercase()
|
||||
target = Repository.getPlayerByName(playerName) ?: run {
|
||||
reject(player, "ERROR: Username '$playerName' not found.")
|
||||
return@define
|
||||
}
|
||||
otherArgs = args.drop(args.size - 2)
|
||||
}
|
||||
|
||||
if (otherArgs.size < 2) {
|
||||
reject(player,"You must specify the index# of a quest, and a stage number")
|
||||
}
|
||||
val quest = args[1].toIntOrNull() ?: reject(player,"INVALID QUEST")
|
||||
val stage = args[2].toIntOrNull() ?: reject(player,"INVALID STAGE")
|
||||
val questObject = player.questRepository.forIndex(quest as Int)
|
||||
if (questObject == null){
|
||||
val quest = otherArgs[0].toIntOrNull() ?: reject(player,"INVALID QUEST")
|
||||
val stage = otherArgs[1].toIntOrNull() ?: reject(player,"INVALID STAGE")
|
||||
val questObject = target.questRepository.forIndex(quest as Int)
|
||||
if (questObject == null) {
|
||||
reject(player, "$quest did not match anything in the quest repository")
|
||||
}
|
||||
else{
|
||||
player.questRepository.setStageNonmonotonic(questObject, stage as Int)
|
||||
} else {
|
||||
target.questRepository.setStageNonmonotonic(questObject, stage as Int)
|
||||
if (stage == 0) {
|
||||
questObject.reset(player)
|
||||
questObject.reset(target)
|
||||
}
|
||||
questObject.updateVarps(player)
|
||||
questObject.updateVarps(target)
|
||||
notify(player, "<col=209dff>Setting " + questObject.quest + " to stage $stage</col>")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue