Sha256: 00d221df0dbcbc790afe3247673df1441dc76d43c22e74a2705499b860a473a8

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

module Bukkit
  class Server
    public
    # Create a new server.
    def create(options = {}) # Options: { :build => :rb/:beta/:dev, :force => false/true }
      @force = options[:force]

      # If the dir already exists, fail gracefully.
      check_for_dir(@name)

      # Let the dark side of the force flow through you...
      if @force == true
        puts "Overwriting: ".light_red + "#{@name}/"
        FileUtils.rm_rf(@name)
      end

      # Create the server directory and cd into it.
      Dir.mkdir(@name)
      puts "     Create: ".green + "#{@name}/"
      Dir.chdir(@name)

      # Fail gracefully on control + C (SIGINT)
      trap("SIGINT") {
        FileUtils.rm_rf(@name)
        puts "#{@name} not created.".red
      }

      # Download build.
      Bukkit::Server.download("http://dl.bukkit.org/latest-#{options[:build].to_s}/craftbukkit.jar")

      # Give some friendly output.
      puts "New server build at: ".blue + "#{Dir.pwd}/".light_blue
    end

    private
    def check_for_dir(dirname)
      if Dir.exists?(dirname) && @force == false
        puts "'#{dirname}' already exists.".red

        names = %w{ minecraftyness mine-opolis mineville minetown bukkits-o-fun }
        abort "Try ".yellow + "`bukkit new #{names.sample}` ".light_yellow + "or".yellow + " `bukkit new #{dirname} --force`".light_blue
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bukkit-2.5.3 lib/bukkit/create.rb