Commit 1f7fe8a6 authored by Danny SMc's avatar Danny SMc

Added code

parent 3ca82348
ewogIENvbmZpZyA9IHsKICAgIEF1dG9VcGRhdGUgPSB0cnVlLAogICAgUGx1Z2luc0RpcmVjdG9yeSA9ICJEQV9QbHVnaW5zIiwKICAgIEVuYWJsZVBsdWdpbnMgPSB0cnVlLAogICAgVXNlQmV0YVVwZGF0ZVN0cmVhbSA9IGZhbHNlLAogICAgQ29uZmlnRmlsZVBhdGggPSAiLkRpc2NvdmVyQ29uZmlnIiwKICAgIEJsb2NrVGVybWluYXRlID0gZmFsc2UsCiAgICBFeGFtcGxlU2V0dGluZyA9IHRydWUsCiAgICBQbHVnaW5Db25maWdGaWxlID0gIi5EaXNjb3ZlckFwcFBsdWdpbnMiLAogIH0sCiAgQWNjb3VudCA9IHsKICAgIFBhc3N3b3JkID0gImFkNGZhYTI1NjM2N2NhM2U3OWRmYjQwMDBkMjFkN2UyODM0MDBiYmYyOGNmMzI4YTcwNTFkYmJmYTQ1OGI3ZDgiLAogICAgVXNlcm5hbWUgPSAiZGFubnlzbWM5NSIsCiAgfSwKfQ==
\ No newline at end of file
Finder
-> Fix group chat
Notes
-> Create main application
FileManager
-> Create main screen for this
Chat Rooms
-> Add the screens into this
\ No newline at end of file
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -15,7 +15,7 @@ function program.apps.all(appslist, filter)
base.draw.box(1, 51, 19, 1, " ", "grey", "grey")
base.draw.texta(tostring("Total Apps: "..#appslist), 2, 19, false, "lightBlue", "grey")
base.draw.textr("Scroll Enabled ", 19, false, "orange", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
local function fix(num)
if tostring(num):len() == 1 then
......@@ -49,6 +49,8 @@ function program.apps.all(appslist, filter)
program.apps.categories()
elseif (args[3] >= 26 and args[3] <= 51) and (args[4] == 3) then
program.apps.versions()
elseif (args[3] >= 47 and args[3] <= 50) and (args[4] == 19) then
program.apps.main();
elseif (args[3] >= 1 and args[3] <= 51) and (args[4] >= 5 and args[4] <= 17) then
local curid = args[4] - 4 + scroll
local tname = "View"..tostring(appslist[curid].id)
......
......@@ -18,7 +18,7 @@ function program.apps.categories()
local status, allapps = Discover.Apps:List('apps');
base.draw.texta("Total Categories: "..#ldata, 2, 19, false, "lightBlue", "grey")
base.draw.textr("SCroll Enabled", 19, false, "orange", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
base.draw.texta(" All | Versions ", 1, 3, false, "white", "lightGrey")
local function lrun(lscroll)
......@@ -58,6 +58,8 @@ function program.apps.categories()
program.apps.all()
elseif (args[3] >= 26 and args[3] <= 51) and (args[4] == 3) then
program.apps.versions()
elseif (args[3] >= 47 and args[3] <= 50) and (args[4] == 19) then
program.apps.main();
elseif (args[3] >= 1 and args[3] <= 20) and (args[4] >= 5 and args[4] <= 17) then
-- Choose
local cid = args[4] - 4 + lscroll
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -18,7 +18,7 @@ function program.apps.downloads(appslist, filter)
base.draw.box(1, 51, 19, 1, " ", "grey", "grey")
base.draw.texta(tostring("Total Apps: "..#appslist), 2, 19, false, "lightBlue", "grey")
base.draw.textr("Scroll Enabled ", 19, false, "orange", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
local function fix(num)
if tostring(num):len() == 1 then
......@@ -52,6 +52,8 @@ function program.apps.downloads(appslist, filter)
program.apps.categories()
elseif (args[3] >= 26 and args[3] <= 51) and (args[4] == 3) then
program.apps.versions()
elseif (args[3] >= 47 and args[3] <= 50) and (args[4] == 19) then
program.apps.main();
elseif (args[3] >= 1 and args[3] <= 51) and (args[4] >= 5 and args[4] <= 17) then
local curid = args[4] - 3 + scroll
local tname = "View"..tostring(appslist[curid].id)
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -21,6 +21,7 @@ function program.apps.owned()
program.draw.menubar("Apps: Owned")
base.draw.box(1, 51, 19, 1, " ", "grey", "grey")
base.draw.texta("Your Apps: "..tostring(#appslist), 2, 19, false, "orange", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
local scroll = 0
local function fix(num)
......@@ -52,6 +53,8 @@ function program.apps.owned()
elseif args[1] == "mouse_click" then
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Apps: Owned", args[3], args[4])
elseif (args[3] >= 47 and args[3] <= 50) and (args[4] == 19) then
program.apps.main();
elseif (args[3] >= 40 and args[3] <= 42) and (args[4] >= 4 and args[4] <= 17) then
-- Do update
local appid = appslist[args[4] - 3 + scroll].id
......
......@@ -19,7 +19,7 @@ function program.apps.packages(version)
local status, allapps = Discover.Apps:List("apps");
base.draw.texta("Total Packages: "..#ldata, 2, 19, false, "lightBlue", "grey")
base.draw.textr("Scroll Enabled", 19, false, "orange", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
base.draw.texta(" All | Packages ", 1, 3, false, "white", "lightGrey")
local function lrun(lscroll)
......@@ -59,6 +59,8 @@ function program.apps.packages(version)
program.apps.all()
elseif (args[3] >= 26 and args[3] <= 51) and (args[4] == 3) then
program.apps.categories()
elseif (args[3] >= 47 and args[3] <= 50) and (args[4] == 19) then
program.apps.main();
elseif (args[3] >= 1 and args[3] <= 20) and (args[4] >= 5 and args[4] <= 17) then
-- Choose
local cid = args[4] - 4 + lscroll
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -262,11 +262,7 @@ function program.apps.upload(step, data)
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Upload", args[3], args[4])
elseif (args[3] >= 2 and args[3] <= 7) and (args[4] == 19) then
base.thread.remove("Upload")
if not base.thread.find("Home") then
base.thread.create("Home", program.main.home)
end
base.thread.switch("Home")
program.apps.main();
elseif (args[3] >= 45 and args[3] <= 50) and (args[4] == 19) then
program.apps.upload("1", data)
end
......
......@@ -18,7 +18,7 @@ function program.apps.versions(version)
local status, allapps = Discover.Apps:List("apps");
base.draw.texta("Total Versions: "..#ldata, 2, 19, false, "lightBlue", "grey")
base.draw.textr("SCroll Enabled", 19, false, "orange", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
base.draw.texta(" All | Categories ", 1, 3, false, "white", "lightGrey")
local function lrun(lscroll)
......@@ -58,6 +58,8 @@ function program.apps.versions(version)
program.apps.all()
elseif (args[3] >= 26 and args[3] <= 51) and (args[4] == 3) then
program.apps.categories()
elseif (args[3] >= 47 and args[3] <= 50) and (args[4] == 19) then
program.apps.main();
elseif (args[3] >= 1 and args[3] <= 20) and (args[4] >= 5 and args[4] <= 17) then
-- Choose
local cid = args[4] - 4 + lscroll
......
File mode changed from 100644 to 100755
This source diff could not be displayed because it is too large. You can view the blob instead.
File mode changed from 100644 to 100755
......@@ -25,9 +25,6 @@ function program.chat.global()
local function render()
if anchor then
scroll = #renderdata - 13;
if scroll < 0 then
scroll = 0
end
end
for i=1, 13 do
base.draw.box(1, 51, i+3, 1, " ", "white", "white")
......@@ -73,11 +70,13 @@ function program.chat.global()
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Chat: Global", args[3], args[4])
elseif (args[3] >= 2 and args[3] <= 6) and args[4] == 19 then
local ok, err = Discover.Chat:Send("global", "*" .. tostring(Discover.User.Data.Username) .. " has left the conversation.")
program.chat.info("usage");
elseif (args[3] >= 21 and args[3] <= 30) and args[4] == 19 then
anchor = true;
render();
elseif (args[3] >= 47 and args[3] <= 50) and args[4] == 19 then
local ok, err = Discover.Chat:Send("global", "*" .. tostring(Discover.User.Data.Username) .. " has left the conversation.")
program.chat.main();
elseif (args[3] >= 1 and args[3] <= 51) and args[4] == 18 then
base.draw.box(1, 51, 18, 1, " ", "lightGrey", "lightGrey")
......@@ -89,11 +88,11 @@ function program.chat.global()
if not ok then
base.gui.alert("Error: " .. tostring(err))
sleep(1)
local ok, err = Discover.Chat:Send("global", "*" .. tostring(Discover.User.Data.Username) .. " has left the conversation.")
program.chat.main();
end
base.draw.box(1, 51, 18, 1, " ", "lightGrey", "lightGrey")
Discover.Chat:View("global", _, true);
program.draw.menubar("Chat: Global")
end
elseif args[1] == "http_failure" then
-- Error occurred
......
......@@ -28,10 +28,7 @@ function program.chat.group(gid)
local function render()
if anchor then
scroll = #renderdata - 13;
if scroll < 0 then
scroll = 0
end
end
end
for i=1, 13 do
base.draw.box(1, 51, i+3, 1, " ", "white", "white")
if #renderdata >= i+scroll then
......@@ -75,11 +72,13 @@ function program.chat.group(gid)
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Chat: Group", args[3], args[4])
elseif (args[3] >= 2 and args[3] <= 6) and args[4] == 19 then
local ok, err = Discover.Chat:Send("group", tostring(gid), "*" .. tostring(Discover.User.Data.Username) .. " has left the conversation.")
program.chat.info("usage");
elseif (args[3] >= 21 and args[3] <= 30) and args[4] == 19 then
anchor = true;
render();
elseif (args[3] >= 47 and args[3] <= 50) and args[4] == 19 then
local ok, err = Discover.Chat:Send("group", tostring(gid), "*" .. tostring(Discover.User.Data.Username) .. " has left the conversation.")
program.chat.main();
elseif (args[3] >= 1 and args[3] <= 51) and args[4] == 18 then
base.draw.box(1, 51, 18, 1, " ", "lightGrey", "lightGrey")
......@@ -91,6 +90,7 @@ function program.chat.group(gid)
if not ok then
base.gui.alert("Error: " .. tostring(err))
sleep(1)
local ok, err = Discover.Chat:Send("group", tostring(gid), "*" .. tostring(Discover.User.Data.Username) .. " has left the conversation.")
program.chat.main();
end
base.draw.box(1, 51, 18, 1, " ", "lightGrey", "lightGrey")
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -20,6 +20,7 @@ Discover = {
User = "http://api.dannysmc.com/user.php";
Projects = "http://api.dannysmc.com/projects.php";
Distribution = "http://api.dannysmc.com/distribution.php";
Pastebin = "https://api.dannysmc.com/pastebin.php";
};
Headers = {
["User-Agent"] = "DiscoverAPI";
......@@ -410,10 +411,7 @@ Discover = {
end;
View = function( self, ctype, cid, async )
if ctype == "global" then
if async then
local query = "cmd=chat-list&key=" .. textutils.urlEncode(tostring(Discover.User.Data.AuthKey)) .. "&ntype=global";
http.request(Discover.Data.Urls.Store, query, Discover.Data.Headers)
else
if not async then
local query = "cmd=chat-list&key=" .. textutils.urlEncode(tostring(Discover.User.Data.AuthKey)) .. "&ntype=global";
local req = http.post(Discover.Data.Urls.Store, query, Discover.Data.Headers)
local req = textutils.unserialize(req.readAll())
......@@ -422,20 +420,18 @@ Discover = {
else
return unpack({false, req.error})
end
else
local query = "cmd=chat-list&key=" .. textutils.urlEncode(tostring(Discover.User.Data.AuthKey)) .. "&ntype=global";
http.request(Discover.Data.Urls.Store, query, Discover.Data.Headers)
end
elseif ctype == "group" then
if async then
local query = "cmd=chat-list&key=" .. textutils.urlEncode(tostring(Discover.User.Data.AuthKey)) .. "&ntype=group&cid=" .. textutils.urlEncode(tostring(cid));
http.request(Discover.Data.Urls.Store, query, Discover.Data.Headers)
local query = "cmd=chat-list&key=" .. textutils.urlEncode(tostring(Discover.User.Data.AuthKey)) .. "&ntype=group&cid=" .. textutils.urlEncode(tostring(cid));
local req = http.post(Discover.Data.Urls.Store, query, Discover.Data.Headers)
local req = textutils.unserialize(req.readAll())
if req.status then
return unpack({true, req.data})
else
local query = "cmd=chat-list&key=" .. textutils.urlEncode(tostring(Discover.User.Data.AuthKey)) .. "&ntype=group&cid=" .. textutils.urlEncode(tostring(cid));
local req = http.post(Discover.Data.Urls.Store, query, Discover.Data.Headers)
local req = textutils.unserialize(req.readAll())
if req.status then
return unpack({true, req.data})
else
return unpack({false, req.error})
end
return unpack({false, req.error})
end
end
end;
......@@ -688,13 +684,13 @@ Discover = {
end;
Download = function( self, snipid, filename )
local query = "cmd=snippets_download&id="..textutils.urlEncode(tostring(snipid))
local req = http.post(Discover.Data.Urls.Store, query)
local req = http.post(Discover.Data.Urls.Store, query, Discover.Dat)
req = req.readAll()
if fs.exists(filename) then
return unpack({false, "Could not download snippet"})
else
local f = fs.open(filename, "w")
f.write(req.readAll())
f.write(req)
f.close()
return true
end
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
File mode changed from 100644 to 100755
--[[
Name: Discover App Installer
Author: DannySMc (dannysmc95)
]]
function clear()
term.clear()
term.setCursorPos(1,1)
end
function setColour(tc, bc)
term.setTextColor(colours[tc])
term.setBackgroundColour(colours[bc])
end
printo = print;
function print(text, skip, wait)
if text then
printo(text);
end
if skip then
local _, y = term.getCursorPos();
term.setCursorPos(1, y+1)
end
if wait then
sleep(wait)
end
end
clear();
setColour("cyan", "black")
print("DiscoverApp Installer", true);
setColour("orange", "black")
print("Please choose the path to install the file to:")
setColour("red", "black")
write("> ")
setColour("white", "black")
local path = tostring(read());
setColour("orange", "black")
print("Checking, please wait...", false, 0.5);
if fs.exists(path) then
error("File already exists in that path...")
end
print("Installing, please wait...", false, 0.5);
local url = "http://api.dannysmc.com/files/programs/DiscoverApp.lua";
local d = http.get(url)
local data = d.readAll()
local f = fs.open(path, "w")
f.write(data)
f.close();
print("Success!! Discover is installed as: " .. path, true, 0.5)
print("Auto-Running in 3 seconds, click any button to cancel")
local count = 4;
os.startTimer(1)
while true do
local args = { os.pullEvent() }
if args[1] == "timer" then
count = count - 1;
setColour("lightBlue", "black")
print("Running in " .. tostring(count) .. " second(s)", true, 1)
if count == 0 then
shell.run(path)
end
os.startTimer(1)
elseif args[1] == "char" then
print("Cancelled, leaving program...", false, 0.5)
break;
end
end
clear();
\ No newline at end of file
......@@ -291,6 +291,8 @@ function program.mail.main(page, arg, arg2)
base.draw.texta(" Create", 2, 7, false, "white", "orange")
base.draw.box(2, 10, 9, 1, " ", "orange", "orange")
base.draw.texta(" Sent", 2, 9, false, "white", "orange")
base.draw.box(2, 10, 11, 1, " ", "orange", "orange")
base.draw.texta(" Exit", 2, 11, false, "white", "orange")
local unread = 0; for k,v in ipairs(mail_inbox) do if v.status == 'unread' then unread = unread + 1 end end;
base.draw.textl(" Unread: " .. unread, 18, false, "white", "lightGrey")
base.draw.textl(" Page: " .. page_num .. "/" .. page_amount, 19, false, "white", "lightGrey")
......@@ -334,6 +336,9 @@ function program.mail.main(page, arg, arg2)
elseif args[1] == "mouse_click" then
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Mail", args[3], args[4])
elseif (args[3] >= 2 and args[3] <= 12) and (args[4] == 11) then
base.thread.remove("Mail")
base.thread.switch("Home")
elseif (args[3] >= 13 and args[3] <= 51) and (args[4] >= 3 and args[4] <= 19) then
if (args[4] >= 4 and args[4] <= 6) then
local nid = page_num * 4 - 4 + 1
......
File mode changed from 100644 to 100755
......@@ -12,7 +12,7 @@ function program.main.credits()
"=";
"- Well as a note from myself (Danny), I just want to say thank you for using the App Store, and of course the Discover App. This app will encorporate mostly everything I make now, as it is easier to keep up one app, then multiple apps. I also plan to encorporate full embedding functions into this, as well as CLI version.";
"=";
"- If you ever want to help work on the app with me or other, please please please! Just ask, the help is appreciated and I have multiple things I need to add to this while it is in Beta, before it even gets branded as a release.";
"- If you ever want to help work on the app with me or other, please please please! Just ask, the help is appreciated and I have multiple things I need to add to this while it is in Beta, before it even gets branded as a release. Also if you find any bugs please submit them here: http://git.dannysmc.com/dannysmc95/DiscoverApp/issues; again thank you.";
"=";
":";
"=";
......@@ -22,12 +22,16 @@ function program.main.credits()
"=";
":";
"=";
"+ Thanks to the Beta Testers";
"=";
"- Well I would like to say thank you to my beta testers who went through the program and got most of the bugs before release: Mumbai, thecrimulo, Checco2212, and CompuTech. So thank you for your hard work on finding the bugs for me.";
"=";
":";
"=";
"+ Other Developers / Ideas";
"=";
"- Well if you didn't know me and WaitDev_ partnered up to help work on the Discover App, he helped a fair amount before leaving the development team due to not enough time, but he did help work on the image editor for apps, the icons on the home menu, and as well as working on a nice to look at menu system.";
"=";
"- Also Kouksi44 for the idea on having an in-built forums into the program and the use of his Classic API which adds a brilliant way of using OOP in Lua.";
"=";
":";
};
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -105,7 +105,9 @@ function program.main.help(name)
program.draw.menubar("Help / FAQ")
base.draw.box(1, 51, 19, 1, " ", "grey", "grey")
base.draw.textc("Help Topics: "..tostring(#tData), 19, false, "lightBlue", "grey")
base.draw.textl("Help Topics: "..tostring(#tData), 19, false, "lightBlue", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
local function fix(num)
if tostring(num):len() == 1 then
......@@ -135,6 +137,9 @@ function program.main.help(name)
elseif args[1] == "mouse_click" then
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Help / FAQ", args[3], args[4])
elseif (args[3] >= 47 and args[3] <= 50) and args[4] == 19 then
base.thread.remove("Help")
base.thread.switch("Home")
elseif (args[3] >= 1 and args[3] <= 51) and (args[4] >= 4 and args[4] <= 19) then
-- Get current option
local curid = args[4] - 3 + scroll
......
File mode changed from 100644 to 100755
......@@ -44,7 +44,7 @@ function program.draw.menu.handler(screen, x, y)
end
elseif (x >= 3 and x <= 11) then
local id = 1 + menu_scroll
if (id <= #thread_list) then
if (id <= #thread_list and tasks_bar) then
if (thread_list[id]['name'] == currentThread['name']) then
if (x == 3) then
base.thread.remove(thread_list[id]['name'])
......@@ -61,7 +61,7 @@ function program.draw.menu.handler(screen, x, y)
end
elseif (x >= 13 and x <= 21) then
local id = 2 + menu_scroll
if (id <= #thread_list) then
if (id <= #thread_list and tasks_bar) then
if (thread_list[id]['name'] == currentThread['name']) then
if (x == 13) then
base.thread.remove(thread_list[id]['name'])
......@@ -78,7 +78,7 @@ function program.draw.menu.handler(screen, x, y)
end
elseif (x >= 23 and x <= 31) then
local id = 3 + menu_scroll
if (id <= #thread_list) then
if (id <= #thread_list and tasks_bar) then
if (thread_list[id]['name'] == currentThread['name']) then
if (x == 23) then
base.thread.remove(thread_list[id]['name'])
......@@ -95,7 +95,7 @@ function program.draw.menu.handler(screen, x, y)
end
elseif (x >= 33 and x <= 41) then
local id = 4 + menu_scroll
if (id <= #thread_list) then
if (id <= #thread_list and tasks_bar) then
if (thread_list[id]['name'] == currentThread['name']) then
if (x == 33) then
base.thread.remove(thread_list[id]['name'])
......
File mode changed from 100644 to 100755
......@@ -161,7 +161,8 @@ function program.main.updates(name)
program.draw.menubar("Updates Log")
base.draw.box(1, 51, 19, 1, " ", "grey", "grey")
base.draw.textc("Update Logs: "..tostring(#tData), 19, false, "lightBlue", "grey")
base.draw.textl("Update Logs: "..tostring(#tData), 19, false, "lightBlue", "grey")
base.draw.textr("Exit ", 19, false, "orange", "grey")
local function fix(num)
if tostring(num):len() == 1 then
......@@ -191,6 +192,9 @@ function program.main.updates(name)
elseif args[1] == "mouse_click" then
if args[4] >= 1 and args[4] <= 2 then
program.draw.menu.handler("Help / FAQ", args[3], args[4])
elseif (args[3] >= 47 and args[3] <= 50) and args[4] == 19 then
base.thread.remove("Updates")
base.thread.switch("Home")
elseif (args[3] >= 1 and args[3] <= 51) and (args[4] >= 4 and args[4] <= 19) then
-- Get current option
local curid = args[4] - 3 + scroll
......
Brewing is how potions and splash potions are made in Minecraft.
Recipes: Despite the complicated web of potions that can be brewed from other potions, to brew a specific potion from the water bottle most efficiently the options are quite simple. The following table gives the most efficient way to brew each potion without wasting extra ingredients. Cases where the order of ingredients is irrelevant or two different ingredients are interchangeable are included. The potion of weakness, the only one which can be brewed without starting with a nether wart, can still be brewed from an awkward potion if the player wishes to convert all water bottles to awkward potions in preparation for brewing.
Weakness > fermented spider eye
Weakness E > fermented spider eye and redstone (if brewed from an awkward potion the fermented spider eye must be added first)
Strength > nether wart > blaze powder
Strength E > nether wart > blaze powder > redstone
Strength II > nether wart > blaze powder > glowstone
Regeneration > nether wart > ghast tear
Regeneration E > nether wart > ghast tear > redstone
Regeneration II > nether wart > ghast tear > glowstone
Swiftness > nether wart > sugar
Swiftness E > nether wart > sugar > redstone
Swiftness II > nether wart > sugar > glowstone
Slowness > nether wart > sugar or magma cream > fermented spider eye
Slowness E > nether wart > sugar or magma cream > fermented spider eye > redstone
Health > nether wart > glistering melon
Health II > nether wart > glistering melon > glowstone
Harming > nether wart > glistering melon or spider eye > fermented spider eye
Harming II > nether wart > glistering melon or spider eye > fermented spider eye and glowstone
Poison > nether wart > spider eye
Poison E > nether wart > spider eye > redstone
Poison II > nether wart > spider eye > glowstone
Fire Resistance > nether wart > magma cream
Fire Resistance E > nether wart > magma cream > redstone
History: Initially, the Cauldron was where potions were brewed. Code in Beta 1.9 pre2 revealed that Potions were brewed by adding water to the Cauldron followed by certain reagents. Correctly combined reagents would confer purely beneficial potion effects, and incorrect combinations added negative effects. The system was complicated, lacked a GUI, and formed many duplicate potions (i.e. two potions that were exactly the same could be made in several different ways), so Notch and Jeb came up with a new brewing method using a Brewing Stand.[1] The Cauldron's role in brewing was relegated to being a slightly more efficient storage vessel for water. Brewing was greatly streamlined and simplified when a brewing GUI was added and most duplicate potions were removed (the total possible potions went down from 150 combinations to only 25 different potions in 31 combinations). However, this new system made some potion effects available in earlier 1.9 pre-releases inaccessible (e.g. Nausea, Blindness and Invisibility).
Throwable Splash Potions were introduced in Beta 1.9 Pre4 and brewed by placing gunpowder and any potion together in a brewing stand. This pre-release also introduced Glistering Melon as an alchemical reagent to replace the instant health effect conferred by the Ghast Tear, which then added the effect of regeneration instead. This version also converted certain reagents into base-secondary reagents (the Spider Eye, Glistering Melon and Blaze Powder made Mundane Potion when brewed into a water bottle in addition to their previous functions), bringing the potion total to 28 different potions in 35 combinations.
Trivia:Only 1 ingredient is needed to brew into up to 3 potions. These three potions do not necessarily have to be the same.
Upgrading effect of potion that has no time parameter (i.e. Instant Health, Harming) with glowstone dust has no downsides.
Upgrading a Fire Resistance Potion with redstone dust has no downsides.
Although Jeb said that in the 1.9 pre-release 3 there were 161 possible different potion combinations with 2,653 in the future, in the actual third pre-release only 22 different potions could be made without the use of external programs. Of those, 19 potions had one of 8 different effects.
The Mundane Potion made from redstone has a different metadata (64) than the mundane potion made from any other ingredient (8192). Unlike Mundane 64, Mundane 8192 can be made into a Splash Mundane Potion by adding gunpowder that is, like its base potion, without any effect.
There are many Potions that were left behind from 1.9 pre-releases that fill up different metadatas that otherwise cannot be brewed or obtained without a SMP server command or inventory editor. These potions include but are not limited to: Bungling Potion, Buttering Potion, Debonair Potion, Refined Potion.
Splash potions can be fired by Dispensers.
Cauldrons can be entirely circumvented from the brewing process with no ill effects, as bottles can be filled by right-clicking on a water source block. This is an improvement from cauldrons, as one does not have to replenish the source block every three bottles, or indeed at all. This, however can not be done in the Nether, where cauldrons become essential.
Some splash potions have the opposite effect on undead mobs such as zombies and skeletons.
\ No newline at end of file
According to Wikipedia, biomes are climatically and geographically defined as similar climatic conditions on the Earth, such as communities of plants, animals, and soil organisms, and are often referred to as ecosystems.
In Minecraft, from the Halloween Update onwards, this means that different areas with varying heights, temperatures, humidity ratings and foliage colors are created.
Before the Halloween Update, when a map was generated it had either a Snowy or Grassy theme. But after the update, a single world includes all themes in a logical fashion determined from the biomes graph.
Biome Types Biome types may be easily distinguished by the differentiating grass and leaf colors in conjunction with the kind of blocks present, like cacti in deserts and pine trees in pine forests. They are randomly created during the generation of the world and are affected by the starting seed.
There are nine biomes in Minecraft 1.0.
Biome Description Features Image
Forest (Oak/Birch Forest) A biome with many trees and a fair amount of tall grass. Birch trees can be found in this biome. Oak and Birch Trees, Grass, Flowers, Tall Grass.
Taiga (Pine Forest) A biome with many pine/spruce trees and dull grey-blue grass. Wolves are also found on this biome more commonly than others. As of 1.8, it is most likely to spawn in one of these biomes. Snow and Ice occur in this biome after Minecraft 11w48a. Pine Trees, Grass, Flowers, Wolves, Tall Grass.
Swampland A flat biome with swamp-like trees with vines and shallow pools of clay, sand and dirt. The water, grass, leaves, vines and trees are much darker. The water can have floating lily pads. Mushrooms are also moderately common in swamps. There is a green-ish color in the water. Trees can sometimes spawn in the water in this biome. Oak Trees, Grass, Vines, Lily Pads, Clay, Mushrooms.
Extreme Hills (Mountains) A highly mountainous biome with dull grey-blue grass and few trees, added in the 1.8 Adventure Update. Prior to this update, mountains were found in all types of biomes, but now are very rare outside this type of land. More underground cave systems are present here than any other biome. Oak Trees, Grass.
Desert A very flat biome consisting mostly of sand, dead shrubs and cacti. No rain occurs in this biome. Sugar Cane can be found sometimes next to pools of water. NPC Villages spawn mostly in this biome. Sand, Cacti, Dead Bushes, Sandstone, Sugar Cane.
Plains A relatively flat biome with rolling hills and a large amount of tall grass (more than in any other type of land). The occasional tree does exist, although very rarely. Gulleys are also quite common in this biome. Tall Grass, Grass, Oak Trees.
Ocean A very big, flat open biome made entirely of water, with underwater reliefs such as small mountains and plains and usually includes sand and clay at its bottom. Ocean biomes can go down to 30 blocks deep and the occasional island may exist, as a small version of other biome types. Entrances to underground ravines can be also found at the bottom of the ocean, as well as Abandoned Mine Shafts (whose upper parts are mostly flooded due to the proximity of the ocean). Oceans can be larger than ten thousand blocks wide and long. Water, Sand, Clay.
Tundra A relatively flat biome covered in snow. Lakes and rivers are mostly frozen over and trees (only regular types are spawned) are scarce. Sugar canes do spawn in this biome, but are destroyed and dropped when the chunks load because of the ice that spreads over open water sources. Snow, Snowfall, Oak Trees, Ice, Sugar Cane.
Mushroom This biome consists of flat landscapes and high hills, has Mycelium instead of grass as its common surface block, and tends to appear as islands far from the spawn of a map and any significant landmass. It is the only biome where Huge Mushrooms can spawn and grow naturally, where mushrooms grow in full sunlight, and where Mooshrooms spawn.
It's actually composed of two different "biomes" - the shoreline, which is flat, and the mainland, which is more undulating (hilly). Contrary to popular belief, trees can be grown in this biome, but not next to Mycelium which will take over the dirt square from the sapling and un-plant the sapling. A player can create a Mycelium-free zone with cobblestone and grow a tree in the middle of it on freshly placed dirt. A player is also able to place saplings on mycelium and use bonemeal on the sapling to grow it. Otherwise, it is advised to collect wood (and saplings) before settling here.
No mobs other than Mooshrooms (including hostile mobs at night) spawn in this biome. This includes caves, abandoned mines, etc... below Mushroom Biomes, meaning exploring underground is relatively safe. Dungeons with spawners will still spawn mobs, however, and caution should still be taken when exploring (as sometimes "fingers" of other biomes project into mushroom biomes).
As of 1.0.0 player made structures in this biome are exempt from the "no mob spawn" rule: Only mushroom terrain originally created with the map seems to prevent mob spawning.
History: Biomes were added in Alpha 1.2.0, also known as the Halloween Update. In Beta 1.8, biomes got an overhaul, removing some biomes and others replaced with nine fractal-based biomes - some old, some new.
Difficulty: It can be difficult to play and gather sufficient resources if one starts in the middle of a biome with no trees, such as the desert, savanna, tundra, and especially the ocean.
There have been multiple reports of players spawning on tiny islands in the middle of a vast ocean with no trees for several Minecraft days in any direction. It appears that these desert islands generate in the Ocean biome, where animals cannot spawn (on the water); sometimes the island spawns with no trees so players have to delete the world and start again, swim great distances to a landmass, or search for nearby underwater openings into abandoned mineshafts to acquire wood. This is not quite as bad a problem if one starts the map in Creative Mode since the player is able to fly, make a boat, or plant trees. It is still undetermined whether this feature is a bug or not (Notch didn't say it was a bug, but the community seems to think it is).
\ No newline at end of file
According to Wikipedia, biomes are climatically and geographically defined as similar climatic conditions on the Earth, such as communities of plants, animals, and soil organisms, and are often referred to as ecosystems.
In Minecraft, from the Halloween Update onwards, this means that different areas with varying heights, temperatures, humidity ratings and foliage colors are created.
Before the Halloween Update, when a map was generated it had either a Snowy or Grassy theme. But after the update, a single world includes all themes in a logical fashion determined from the biomes graph.
Biome Types Biome types may be easily distinguished by the differentiating grass and leaf colors in conjunction with the kind of blocks present, like cacti in deserts and pine trees in pine forests. They are randomly created during the generation of the world and are affected by the starting seed.
There are nine biomes in Minecraft 1.0.
Biome Description Features Image
Forest (Oak/Birch Forest) A biome with many trees and a fair amount of tall grass. Birch trees can be found in this biome. Oak and Birch Trees, Grass, Flowers, Tall Grass.
Taiga (Pine Forest) A biome with many pine/spruce trees and dull grey-blue grass. Wolves are also found on this biome more commonly than others. As of 1.8, it is most likely to spawn in one of these biomes. Snow and Ice occur in this biome after Minecraft 11w48a. Pine Trees, Grass, Flowers, Wolves, Tall Grass.
Swampland A flat biome with swamp-like trees with vines and shallow pools of clay, sand and dirt. The water, grass, leaves, vines and trees are much darker. The water can have floating lily pads. Mushrooms are also moderately common in swamps. There is a green-ish color in the water. Trees can sometimes spawn in the water in this biome. Oak Trees, Grass, Vines, Lily Pads, Clay, Mushrooms.
Extreme Hills (Mountains) A highly mountainous biome with dull grey-blue grass and few trees, added in the 1.8 Adventure Update. Prior to this update, mountains were found in all types of biomes, but now are very rare outside this type of land. More underground cave systems are present here than any other biome. Oak Trees, Grass.
Desert A very flat biome consisting mostly of sand, dead shrubs and cacti. No rain occurs in this biome. Sugar Cane can be found sometimes next to pools of water. NPC Villages spawn mostly in this biome. Sand, Cacti, Dead Bushes, Sandstone, Sugar Cane.
Plains A relatively flat biome with rolling hills and a large amount of tall grass (more than in any other type of land). The occasional tree does exist, although very rarely. Gulleys are also quite common in this biome. Tall Grass, Grass, Oak Trees.
Ocean A very big, flat open biome made entirely of water, with underwater reliefs such as small mountains and plains and usually includes sand and clay at its bottom. Ocean biomes can go down to 30 blocks deep and the occasional island may exist, as a small version of other biome types. Entrances to underground ravines can be also found at the bottom of the ocean, as well as Abandoned Mine Shafts (whose upper parts are mostly flooded due to the proximity of the ocean). Oceans can be larger than ten thousand blocks wide and long. Water, Sand, Clay.
Tundra A relatively flat biome covered in snow. Lakes and rivers are mostly frozen over and trees (only regular types are spawned) are scarce. Sugar canes do spawn in this biome, but are destroyed and dropped when the chunks load because of the ice that spreads over open water sources. Snow, Snowfall, Oak Trees, Ice, Sugar Cane.
Mushroom This biome consists of flat landscapes and high hills, has Mycelium instead of grass as its common surface block, and tends to appear as islands far from the spawn of a map and any significant landmass. It is the only biome where Huge Mushrooms can spawn and grow naturally, where mushrooms grow in full sunlight, and where Mooshrooms spawn.
It's actually composed of two different "biomes" - the shoreline, which is flat, and the mainland, which is more undulating (hilly). Contrary to popular belief, trees can be grown in this biome, but not next to Mycelium which will take over the dirt square from the sapling and un-plant the sapling. A player can create a Mycelium-free zone with cobblestone and grow a tree in the middle of it on freshly placed dirt. A player is also able to place saplings on mycelium and use bonemeal on the sapling to grow it. Otherwise, it is advised to collect wood (and saplings) before settling here.
No mobs other than Mooshrooms (including hostile mobs at night) spawn in this biome. This includes caves, abandoned mines, etc... below Mushroom Biomes, meaning exploring underground is relatively safe. Dungeons with spawners will still spawn mobs, however, and caution should still be taken when exploring (as sometimes "fingers" of other biomes project into mushroom biomes).
As of 1.0.0 player made structures in this biome are exempt from the "no mob spawn" rule: Only mushroom terrain originally created with the map seems to prevent mob spawning.
History: Biomes were added in Alpha 1.2.0, also known as the Halloween Update. In Beta 1.8, biomes got an overhaul, removing some biomes and others replaced with nine fractal-based biomes - some old, some new.
Difficulty: It can be difficult to play and gather sufficient resources if one starts in the middle of a biome with no trees, such as the desert, savanna, tundra, and especially the ocean.
There have been multiple reports of players spawning on tiny islands in the middle of a vast ocean with no trees for several Minecraft days in any direction. It appears that these desert islands generate in the Ocean biome, where animals cannot spawn (on the water); sometimes the island spawns with no trees so players have to delete the world and start again, swim great distances to a landmass, or search for nearby underwater openings into abandoned mineshafts to acquire wood. This is not quite as bad a problem if one starts the map in Creative Mode since the player is able to fly, make a boat, or plant trees. It is still undetermined whether this feature is a bug or not (Notch didn't say it was a bug, but the community seems to think it is).
\ No newline at end of file
Blaze is a type of mob found in The Nether. In their searching state they are confined to the ground and do not blow smoke. They will not start flying unless they spot the player. When pursuing, they catch fire briefly before shooting a three round burst of fireballs. A short cool down period occurs between attacks. Their bodies are made up of a head atop a central column of smoke, and three rotating sections, each rotating section contains four floating yellow rods. They drop Blaze Rods, and can only spawn in Nether Fortresses, from Mob Spawners. Their fireballs set players and mobs alike on fire. Despite being similar to a Ghast fireball, Blaze Fireballs are not explosive, and cannot be deflected.
Combat: Blazes are one of the most difficult mobs to fight, due to their ranged, unblockable attacks and rapid rate of fire. Their ability to fly usually leaves the player's sword useless, while a player's bow's charging time and move speed leaves the player highly vulnerable to attack. On the other hand, Blaze have a much shorter attack range, which makes it more feasible to snipe them from afar. Blaze can only spawn in light level 12 or lower (at the lower half of their body). Much like Ghasts, the Blaze's ability to fly can make it difficult to recover their loot after killing them. However, a viable tactic of combat is to fight them at close range by reeling them in with a fishing rod first. The use of a potion of fire resistance is extremely helpful when fighting Blazes.
Blaze spawners occur in Nether Fortresses, and will start spawning Blazes once the player gets within 16 blocks. The spawners have a chance of spawning 1-6 Blazes at once. 'Camping' at a Blaze spawner is an effective way to gather Blaze Rods, as they will always appear close enough to attack with a sword, and there is a delay in their attack after they spawn because they have to charge first. This is best done in combination with the fire resistance potion in effect, which makes the player immune to the Blaze's attacks and can be brewed by adding Magma Cream to awkward potions. You can also build a doorway, 2 blocks tall and 1 block wide, where you can camp and kill the blazes as they come down. This strategy is extremely effective if you cover up the roof of the spawner room and camp in the doorway with a diamond sword.
A Blaze suffers damage upon contact with water or from snowballs, making a small army of Snow Golems a great way to kill them or even make Golem-based Blaze grinders, provided the player has enough ingredients to replace the fallen golems, a safe place to hide while making new golems, as well as that the initial attack is made with enough snowmen to defeat the first wave of Blazes, before more Blazes can arrive and turn the Blaze grinder into a Snow Golem grinder. Be aware with Blaze spawners as these can quickly create new waves of Blaze, outnumbering the golems. In SMP, this tactic is one of the easiest ways (if not THE easiest way) to kill Blazes, as another player can be assigned the mission to gather snow from dead snow golems and turn this into blocks, letting the golem maker work without stopping to get more snow. Systems like this can in practical use take out several spawners with the only resource requirement being pumpkins for new golems, making the Blaze killing process almost self-sustaining. A pumpkin farm could produce unlimited pumpkins, making it fairly sustainable, although the snow would run out if the dead golems' snowballs weren't collected.
History: Blazes were introduced in Beta 1.9 Pre-release 1. Starting from Beta 1.9 Pre-release 4(verify version) they only drop items when they aren't on fire (about to attack).
Trivia: The light level of an area to disable a spawnable area has to be 12 or higher.
Blaze cannot shoot if trapped in a Cobweb.
Blaze do not have a body, unlike other mobs. They are simply floating heads over a cloud of smoke surrounded by spinning rods.
Unlike Ghasts, projectiles fired by a Blaze cannot be deflected, so hitting the projectiles would be pointless.
Blaze projectiles will set whatever they hit on fire, which includes solid blocks, mobs, and the player.
With a 'fire resistance potion' in effect, the blaze is the only mob whose attacks are capable of being neutralized, including their knockback effect. However, they are able to hit players when up close with a melee attack when they are on fire and ONLY when they are on fire.
The player and Snow Golems can kill a blaze with snowballs, although Snow Golems will be killed quickly by the Blazes' attacks.
Each snowball deals 3 () damage, so it takes 7 snowballs to kill one Blaze.
Blazes will take damage from rain and snowy weather if spawned into the over-world.
As of Beta 1.9 Pre-release 5, Blaze only drop a Blaze Rod when killed by the player.
As of Version RC2, Blaze now have their own sounds. They make "breath" sounds and make metallic clunks when hurt.
Blazes, despite their almost alien morphology, share a recolored face with The Player and other humanoid mobs.
When this mob is not in pursuit of the player, they are bound to the ground. One can observe this as they may jump to get onto higher blocks and drop when going off an edge.
One may also observe that when they make contact with a block below they make footstepping noises appropriate to the block, as any earth-bound mob with feet would make, despite being a floating mob.
Once fired, the Blaze's fireball has an infinite range. However, The Player still needs to be within 'attack range' of the Blaze to attack.
Blazes take damage from water.
\ No newline at end of file
This diff is collapsed.
The Cave Spider[1] is a small bug-like monster and also is a hostile mob re-textured from the Spider with a blue skin and is more dangerous than the regular spider, but in turn they are much more rare than regular Spiders. Cave Spiders do not spawn naturally, they only come from Spawners found in Abandoned Mine Shafts. Cave Spiders are also smaller than regular spiders,[1][2] presumably so that they can fit through the mine shafts that they spawn in, including 1 x 1 x 1 holes, and can pass through passages only half a block high. Their exact size is 0.7 x 0.7 x 0.5.
Venom: The most notable feature of the cave spider is its venomous bite. When bitten by a Cave Spider on any difficulty except Easy, the player's health bar turns yellow-green and gradually decreases.[3] The venom inflicts half of a heart of damage about every second and a half (or 1.5 seconds), and lasts for 5 seconds. Armor does not affect venom; neither the conditions under which you will receive venom, nor the damage received from it. Since 1.9 Pre-Release 4 Jeb gave milk the ability to cure the player of the venom. Regardless of the difficulty, venom cannot kill you, but it can drop your health to dangerously low levels.
History: The Cave Spider was first introduced in the Beta 1.8 Pre-release.
SMP servers upgraded from older versions running in peaceful mode may begin spawning cave spiders, though no other monster appears in the world. This is because in older versions setting the Server.properties key spawn-monsters to false would place the server in peaceful mode. As of 1.8, a separate key difficulty must be set to zero to select peaceful difficulty; setting spawn-monsters to false prevents monsters from spawning randomly in dark areas but does not disable spawners. Because the difficulty key defaults to 1 (easy), servers without the key configured at all changed from running in peaceful mode (prior to 1.8) to easy mode (as of 1.8).
Tr