Class: Bukkit::Plugin
- Inherits:
-
Object
- Object
- Bukkit::Plugin
- Defined in:
- lib/bukkit.rb,
lib/bukkit/install.rb,
lib/bukkit/website.rb
Instance Method Summary collapse
-
#initialize(name) ⇒ Plugin
constructor
A new instance of Plugin.
-
#install ⇒ Object
Install a new plugin.
-
#view_website ⇒ Object
Open website in default browser.
-
#website ⇒ Object
Return the plugin’s website URL.
Constructor Details
#initialize(name) ⇒ Plugin
Returns a new instance of Plugin.
23 24 25 26 |
# File 'lib/bukkit.rb', line 23 def initialize(name) @name = name.downcase @plugin_api = JSON.parse(open("http://api.bukget.org/3/plugins/bukkit/#{@name}").read) end |
Instance Method Details
#install ⇒ Object
Install a new plugin.
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 44 45 46 47 |
# File 'lib/bukkit/install.rb', line 8 def install # Get server's download link. @download_url = @plugin_api["versions"][0]["download"] @filename = @plugin_api["versions"][0]["filename"] # Fail... gracefully, if craftbukkit.jar does not exist. abort "You're not in a server's root directory!".red unless File.exists? "craftbukkit.jar" # Go into plugins and download the plugin. Dir.chdir("plugins") Bukkit::Server.download(@download_url, :filename => @filename) file_ext = File.extname(@filename) # Unzip if it's a zip case file_ext when ".zip" # Extract Zip Archive Archive::Zip.extract(@filename, @name) Dir.chdir(@name) jarfiles = Dir.glob("*.jar") # Move each jar file outside the folder. jarfiles.each do |jar| FileUtils.mv(jar, "../") end puts " Unarchived: ".yellow + @filename Dir.chdir("../") # Delete the extracted folder. FileUtils.rm_rf("#{@name}/") # Delete the archive. FileUtils.rm_rf(@filename) when ".jar" nil else abort "Something weird happened...\nThe file extension is #{file_ext}, not '.zip' or '.jar'." end puts " Installed: ".light_green + @name puts @name.light_green + " successfully installed!".green end |
#view_website ⇒ Object
Open website in default browser.
12 13 14 15 16 17 18 |
# File 'lib/bukkit/website.rb', line 12 def view_website Launchy.open(website) puts "Opening #{@name}'s Website...".light_green puts " Website: ".yellow + website sleep 1.5 return website end |
#website ⇒ Object
Return the plugin’s website URL.
6 7 8 |
# File 'lib/bukkit/website.rb', line 6 def website @website = @plugin_api["website"] end |