diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt b/Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt index b1c271c0a..d70f6ecb8 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt @@ -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, "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 diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt b/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt index a84ecdaa0..f4c3b7580 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt @@ -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.")