Module: Bukkit

Defined in:
lib/bukkit/version.rb,
lib/bukkit.rb,
lib/bukkit/new.rb,
lib/bukkit/help.rb,
lib/bukkit/start.rb,
lib/bukkit/update.rb,
lib/bukkit/install.rb,
lib/bukkit/website.rb,
lib/bukkit/download.rb

Overview

TODO update command

Constant Summary collapse

VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.download(filename, uri) ⇒ Object



4
5
6
7
8
# File 'lib/bukkit/download.rb', line 4

def self.download(filename, uri)
	File.open("#{filename}", "wb") do |file|
		file.write open("#{uri}").read
	end
end

.helpObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/bukkit/help.rb', line 2

def self.help
	puts "  Commands:"
	puts "    Create new server:"
	puts "      bukkit new SERVER_NAME"
	puts "\n"
	puts "    Start the server:"
	puts "      bukkit start"
	puts "\n"
	puts "    Install a plugin:"
	puts "      bukkit install PLUGIN_NAME"
	puts "\n"
	puts "    Open a plugin's website:"
	puts "      bukkit website PLUGIN_NAME"
	puts "\n"
	puts "    Update your version of CraftBukkit:"
	puts "      bukkit update"
	puts "\n"
	# Put Last
	puts "    Show this page:"
	puts "      bukkit --help OR bukkit -h"
	puts "\n"
	puts "    Get version:"
	puts "      bukkit --version OR bukkit -v"
end

.installObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/bukkit/install.rb', line 7

def self.install
	$opt2 = ARGV[1].downcase
	abort("USAGE: bukkit install PLUGIN_NAME") if $opt2.nil?
	begin
		plugins_api = JSON.parse(open("http://api.bukget.org/3/plugins/bukkit/#{$opt2}").read)
		website = plugins_api["website"]
		download = plugins_api["versions"][0]["download"]
		filename = plugins_api["versions"][0]["filename"]
		Dir.chdir("plugins")
		puts "Downloading #{$opt2} from #{website}..."
		Bukkit::download(filename, download)
		if File.extname(filename) == ".zip"
			# Extract Zip Archive
			Archive::Zip.extract(filename, $opt2) 
			Dir.chdir($opt2)
			jarfiles = Dir.glob("*.jar")
			# Move each jar file outside the folder.
			jarfiles.each do |jar|
				%x(mv #{jar} ../)
			end
			Dir.chdir("../")
			# Delete the extracted folder.
			%x(rm -rf #{$opt2}/)
			# Delete the archive.
			%x(rm #{filename})
			puts "Plugin successfully installed!"
			ask_website
		else
			puts "Plugin successfully installed!"
			ask_website
		end
	rescue Errno::ENOENT
		puts "  You aren't in a server's root directory.\n  'plugins' directory not found."
	rescue
		puts "  Plugin not found."
	end
end

.newObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/bukkit/new.rb', line 2

def self.new
	create_folder
	puts "  Do want the recommended build, beta build, or dev build?"
	print "  rb, beta, dev? "
	q1 = $stdin.gets.chomp

	case q1
	when "rb", "recommended", "r"
		puts "Downloading CraftBukkit Recommended build... (this could take a minute)\n"
		Bukkit::download("craftbukkit.jar", "http://cbukk.it/craftbukkit.jar")
		puts "\nSuccessfully downloaded Recommended build."
		Bukkit::start
	when "beta", "b"
		puts "Downloading CraftBukkit Beta build... (this could take a minute)\n"
		Bukkit::download("craftbukkit.jar", "http://cbukk.it/craftbukkit-beta.jar")
		puts "\nSuccessfully downloaded Beta build."
		Bukkit::start
	when "dev", "development", "d"
		puts "Downloading CraftBukkit Development build... (this could take a minute)\n"
		Bukkit::download("craftbukkit.jar", "http://cbukk.it/craftbukkit-dev.jar")
		puts "\nSuccessfully downloaded Development build."
		Bukkit::start
	else
		if q1.length > 0
			abort("  \"#{q1}\" is not an option.")
		else
			abort("  You didn't enter an option.")
		end
	end
end

.startObject



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/bukkit/start.rb', line 2

def self.start
	if ARGV.include? "-s"
		abort
	elsif ARGV.include? "-s"
		abort
	else
		puts "Make sure that you're in your server's root directory."
		puts "If Java runtime is not present, run 'bukkit start' once Java is installed to complete the installation."
		system 'java -jar craftbukkit.jar'
	end
end

.updateObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/bukkit/update.rb', line 2

def self.update
	begin
		puts "  Do want the recommended build, beta build, or dev build?"
		print "  rb, beta, dev? "
		q1 = $stdin.gets.chomp

		case q1
		when "rb", "recommended", "r"
			puts "Downloading CraftBukkit Recommended build... (this could take a minute)\n"
			Bukkit::download("craftbukkit.jar", "http://cbukk.it/craftbukkit.jar")
			puts "\nSuccessfully updated."
		when "beta", "b"
			puts "Downloading CraftBukkit Beta build... (this could take a minute)\n"
			Bukkit::download("craftbukkit.jar", "http://cbukk.it/craftbukkit-beta.jar")
			puts "\nSuccessfully updated."
		when "dev", "development", "d"
			puts "Downloading CraftBukkit Development build... (this could take a minute)\n"
			Bukkit::download("craftbukkit.jar", "http://cbukk.it/craftbukkit-dev.jar")
			puts "\nSuccessfully updated."
		else
			if q1.length > 0
				abort("  \"#{q1}\" is not an option.")
			else
				abort("  You didn't enter an option.")
			end
		end
	rescue
		puts "Uh oh! Something failed. Please report what you were doing at the time of this bug, and any other info you have at: https://github.com/JesseHerrick/bukkit/issues/new"
	end
end

.website(plugin_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/bukkit/website.rb', line 6

def self.website(plugin_name)
	begin
		plugins_api = JSON.parse(open("http://api.bukget.org/3/plugins/bukkit/#{plugin_name}").read)
		website = plugins_api["website"]
		puts "Opening #{plugin_name}'s website in your default browser."
		Launchy.open(website)
	rescue OpenURI::HTTPError
		puts "  Plugin not found.\n  Make sure you have the name correct."
	end
end