require "Command.rb" require "Commands.rb" require "Player.rb" module RubyMud class SetFlag < Command def words return ["set","flag"] end def initialize() super() end # Set a flag def execute(clientConnection,string) tokens = string.split(' ') if (tokens.length > 2) clientConnection.send(tokens[0]+" flagname\r\n") return end player = clientConnection.player # Print all the visible flags a player can switch if (tokens.length == 1) clientConnection.send("<bright white>Visible flags:\r\n") flags = Flags.getFlags() print "Num Flags:#{flags.length}\r\n" # Loop through all the flags in the system for flag in flags # If the flag is visible next if (!flag.visible?) print "!\r\n" # Does the player have this flag set ? if (player.getFlagByClass(flag)) s = "*"+flag.to_s()+"\r\n" else s = " "+flag.to_s()+"\r\n" end # Print it if flag.changeable? clientConnection.send("<bright green>"+s) else clientConnection.send("<bright red>"+s) end end return end # The player wants to change a flag on himself # Find the flag flags = Flags.getFlags() # Loop through all the flags in the system for flag in flags if (flag.to_s() == tokens[1]) # If it isnt changeable return if (!flag.changeable?) clientConnection.send("<bright red>You cannot set that") return end # If its set, remove it f = player.getFlagByClass(flag) if (f != nil) player.removeFlagByClassName(f.class.name) clientConnection.send("<bright red>"+f.class.name+" off\r\n") else # Add it #player.addFlag(flag.new(player)) flag.new(player) clientConnection.send("<bright green>"+flag.to_s()+" on\r\n") end end end end end # Create the instance, it adds itself to the commands list SetFlag.new() end #module