Added ::rules command so players can check the rules

This commit is contained in:
Dan Ginovker
2022-09-20 13:38:37 +00:00
committed by Ryan
parent 7cb5485b1b
commit 563d7094e6
2 changed files with 21 additions and 5 deletions
@@ -32,19 +32,28 @@ object RulesAndInfo {
{
if(getAttribute(player, "rules:confirmed", false) || !getAttribute(player, "tutorial:complete", false))
return
var ln = 1
val pin = getAttribute(player, "rules:pin", RandomFunction.random(1000,9999))
setAttribute(player, "/save:rules:pin", pin)
for(line in INFO) setInterfaceText(player, INFO[ln - 1], 384, ln++)
setInterfaceText(player, SEPARATOR, 384, ln++)
val newIndex = ln
for(line in RULES) setInterfaceText(player, RULES[ln - newIndex], 384, ln++)
var ln = setBaseRulesAndInfo(player);
setInterfaceText(player, "<col=ffffff>If you agree to the above, type ::confirmrules $pin", 384, ln++)
setInterfaceText(player, "", 384, ln)
player.packetDispatch.sendInterfaceConfig(384, 17, true)
openInterface(player, 384)
player.lock()
}
@JvmStatic
fun setBaseRulesAndInfo(player: Player): Int {
var ln = 1
for(line in INFO) setInterfaceText(player, INFO[ln - 1], 384, ln++)
setInterfaceText(player, SEPARATOR, 384, ln++)
val newIndex = ln
for(line in RULES) setInterfaceText(player, RULES[ln - newIndex], 384, ln++)
setInterfaceText(player, "", 384, ln)
return ln
}
}
class RulesListener : InterfaceListener
@@ -27,6 +27,7 @@ import rs09.game.content.ame.RandomEventManager
import rs09.game.content.ame.RandomEvents
import rs09.game.content.quest.members.anma.AnmaCutscene
import rs09.game.ge.GrandExchange
import rs09.game.interaction.inter.RulesAndInfo
import rs09.game.node.entity.state.newsys.states.FarmingState
import rs09.game.system.SystemLogger
import rs09.game.system.command.CommandMapping
@@ -638,6 +639,12 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){
}
}
define("rules", Privilege.STANDARD, "", "Shows the rules."){ player, _ ->
RulesAndInfo.setBaseRulesAndInfo(player);
player.packetDispatch.sendInterfaceConfig(384, 17, true)
openInterface(player, 384)
}
define("confirmrules", Privilege.STANDARD) { player, args ->
if(getAttribute(player,"rules:confirmed", false))
reject(player, "You have already confirmed the rules.")