# # file:: cmd_bug.rb # This source code copyright (C) 2009 Craig Smith # All rights reserved. # # Released under the terms of the TeensyMUD Public License # See LICENSE file for additional information. # module Cmd bindtextdomain("cmd") # The bug command def cmd_bug(args) case args when nil, "" sendto _("==== [ BUGS ] ====") if not File.exists? options["bugfile"] sendto _(" * No bugs reported *") return end cnt = 1 msg = "" File.open(options["bugfile"], "r").each do |l| line = l.chomp msg << "#{cnt}) #{line}\n" cnt += 1 end msg << _(" * No bugs reported *") if cnt == 1 msg = Msg.new(msg) msg.no_parse = true sendto(msg) when /^del\s+all/, /^clear$/ if not world.can_build? id sendto _("You can not delete bugs.") return end if not File.exists? options["bugfile"] sendto _("No bugs to delete.") return end File.unlink(options["bugfile"]) sendto _("Bug list cleared.") when /^del\s+(\d+)/ if not world.can_build? id sendto _("You can not delete bugs.") return end if not File.exists? options["bugfile"] sendto _("No bugs to delete.") return end num = $1.to_i lines = [] File.open(options["bugfile"], "r").each { |l| lines << l } cnt = 1 if num > lines.size or num <= 0 sendto _("Invalid line number.") else File.open(options["bugfile"], "w") do |f| lines.each do |l| f.write l if not cnt == num cnt += 1 end end sendto _("Bug deleted.") end when /(.+)/ todo = File.open(options["bugfile"], "a+") todo.puts "#{name} (#{location}) #{$1}" todo.close sendto _("Ok") end end end