diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.html
index 7049c9116..34e1b7e41 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.html
@@ -2,9 +2,9 @@
-
+
GEOMiner
-
+
@@ -241,7 +241,7 @@ implements SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/OilPump.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/OilPump.html
index 59176d026..d407f9876 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/OilPump.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/OilPump.html
@@ -2,9 +2,9 @@
-
+
OilPump
-
+
@@ -219,7 +219,7 @@ implements
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOMiner.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOMiner.html
index db5d3e519..67f116aa9 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOMiner.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOMiner.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.geo.GEOMiner
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOScanner.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOScanner.html
index f4e74da31..6d57e245f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOScanner.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/GEOScanner.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.geo.GEOScanner
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/OilPump.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/OilPump.html
index 60d5a1a9f..d3884d69a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/OilPump.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/OilPump.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.geo.OilPump
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/PortableGEOScanner.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/PortableGEOScanner.html
index d2e532e9f..6a81e57d6 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/PortableGEOScanner.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/class-use/PortableGEOScanner.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.geo.PortableGEOScanner
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-frame.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-frame.html
index f7cefdc3d..510746ab7 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-frame.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-frame.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.geo
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-summary.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-summary.html
index 3c8daea07..9446988f5 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-summary.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-summary.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.geo
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-tree.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-tree.html
index 3627f495a..5c1832b6e 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-tree.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-tree.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.geo Class Hierarchy
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-use.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-use.html
index c761c22bc..44d77f868 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-use.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/geo/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package io.github.thebusybiscuit.slimefun4.implementation.items.geo
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/ElevatorPlate.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/ElevatorPlate.html
index 67bca8246..d8f439954 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/ElevatorPlate.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/ElevatorPlate.html
@@ -2,9 +2,9 @@
-
+
ElevatorPlate
-
+
@@ -170,7 +170,9 @@ extends
BlockUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
java.util.Set<java.util.UUID>
@@ -199,7 +201,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSControlPanel.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSControlPanel.html
index 57f432d44..9f8d01cc5 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSControlPanel.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSControlPanel.html
@@ -2,9 +2,9 @@
-
+
GPSControlPanel
-
+
@@ -165,7 +165,9 @@ extends
BlockUseHandler
-getItemHandler ()
+getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSMarkerTool.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSMarkerTool.html
index 57780d88e..fd9a71d07 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSMarkerTool.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSMarkerTool.html
@@ -2,9 +2,9 @@
-
+
GPSMarkerTool
-
+
@@ -166,7 +166,9 @@ implements
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.html
index fe9a31161..ca0ec1ddc 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.html
@@ -2,9 +2,9 @@
-
+
GPSTransmitter
-
+
@@ -176,7 +176,9 @@ implements
BlockTicker
-
getItemHandler ()
+
getItemHandler ()
+
+
abstract int
@@ -195,7 +197,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/PersonalActivationPlate.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/PersonalActivationPlate.html
index 244d0927a..0d9af2924 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/PersonalActivationPlate.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/PersonalActivationPlate.html
@@ -2,9 +2,9 @@
-
+
PersonalActivationPlate
-
+
@@ -151,7 +151,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/Teleporter.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/Teleporter.html
index b2f664c88..d66242f40 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/Teleporter.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/gps/Teleporter.html
@@ -2,9 +2,9 @@
-
+
Teleporter
-
+
@@ -160,7 +160,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
@@ -181,7 +183,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/InfernalBonemeal.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/InfernalBonemeal.html
index 6a8739b6c..19fe0b43f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/InfernalBonemeal.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/InfernalBonemeal.html
@@ -2,9 +2,9 @@
-
+
InfernalBonemeal
-
+
@@ -166,7 +166,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeFlask.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeFlask.html
index ffd2e14e8..2ea21b854 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeFlask.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeFlask.html
@@ -2,9 +2,9 @@
-
+
KnowledgeFlask
-
+
@@ -166,7 +166,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeTome.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeTome.html
index c914d93e4..246915c2a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeTome.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/KnowledgeTome.html
@@ -2,9 +2,9 @@
-
+
KnowledgeTome
-
+
@@ -165,7 +165,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/MagicEyeOfEnder.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/MagicEyeOfEnder.html
index 7bb4f54fc..3110b5a2f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/MagicEyeOfEnder.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/MagicEyeOfEnder.html
@@ -2,9 +2,9 @@
-
+
MagicEyeOfEnder
-
+
@@ -165,7 +165,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundBackpack.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundBackpack.html
index 3450d98a5..8de4aa4b7 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundBackpack.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundBackpack.html
@@ -2,9 +2,9 @@
-
+
SoulboundBackpack
-
+
@@ -176,7 +176,7 @@ implements
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundItem.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundItem.html
index 08414640d..9d8bfe294 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundItem.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundItem.html
@@ -2,9 +2,9 @@
-
+
SoulboundItem
-
+
@@ -157,7 +157,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/StormStaff.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/StormStaff.html
index fc53f333a..0ac2d50b0 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/StormStaff.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/StormStaff.html
@@ -2,9 +2,9 @@
-
+
StormStaff
-
+
@@ -190,7 +190,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -205,7 +207,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/Talisman.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/Talisman.html
index 537a1e419..ef8106e85 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/Talisman.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/Talisman.html
@@ -2,9 +2,9 @@
-
+
Talisman
-
+
@@ -226,7 +226,7 @@ extends
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WaterStaff.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WaterStaff.html
index 7b2551302..af7857019 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WaterStaff.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WaterStaff.html
@@ -2,9 +2,9 @@
-
+
WaterStaff
-
+
@@ -165,7 +165,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WindStaff.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WindStaff.html
index b07b5cc63..55c856e46 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WindStaff.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/WindStaff.html
@@ -2,9 +2,9 @@
-
+
WindStaff
-
+
@@ -165,7 +165,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/EnderBackpack.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/EnderBackpack.html
index 606b486c0..eaeeec179 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/EnderBackpack.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/EnderBackpack.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.EnderBackpack
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/InfernalBonemeal.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/InfernalBonemeal.html
index 0574dc6f7..99c698e4e 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/InfernalBonemeal.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/InfernalBonemeal.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.InfernalBonemeal
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeFlask.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeFlask.html
index 8f8e6b3a2..38ca0c10d 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeFlask.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeFlask.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.KnowledgeFlask
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeTome.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeTome.html
index de09767b1..43cd1da48 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeTome.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/KnowledgeTome.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.KnowledgeTome
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/MagicEyeOfEnder.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/MagicEyeOfEnder.html
index 19e5c7f3a..afd271132 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/MagicEyeOfEnder.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/MagicEyeOfEnder.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.MagicEyeOfEnder
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundBackpack.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundBackpack.html
index b595fbeb8..338bea6ad 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundBackpack.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundBackpack.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundBackpack
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundItem.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundItem.html
index 61d6c9791..9cbac9f67 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundItem.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundItem.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundItem
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundRune.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundRune.html
index 899c3ab7a..b755457e3 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundRune.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/SoulboundRune.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundRune
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/StormStaff.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/StormStaff.html
index b64c075d3..27c5f1a4c 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/StormStaff.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/StormStaff.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.StormStaff
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/Talisman.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/Talisman.html
index dd60dc06e..72977ec25 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/Talisman.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/Talisman.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.Talisman
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/TelepositionScroll.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/TelepositionScroll.html
index 791b1cf97..60c6819a5 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/TelepositionScroll.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/TelepositionScroll.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.TelepositionScroll
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WaterStaff.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WaterStaff.html
index 925c146e5..03d16eb68 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WaterStaff.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WaterStaff.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.WaterStaff
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WindStaff.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WindStaff.html
index bbb1c8487..993cc73b7 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WindStaff.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/class-use/WindStaff.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.magical.WindStaff
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-frame.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-frame.html
index 2dd351896..926b7dbad 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-frame.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-frame.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.magical
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-summary.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-summary.html
index dfc64450b..8873f44db 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-summary.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-summary.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.magical
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-tree.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-tree.html
index 4a36ea013..5fc547071 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-tree.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-tree.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.magical Class Hierarchy
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-use.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-use.html
index e66842ae0..7f2d03851 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-use.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/magical/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package io.github.thebusybiscuit.slimefun4.implementation.items.magical
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Bandage.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Bandage.html
index 942a4d68f..9eb1a29a9 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Bandage.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Bandage.html
@@ -2,9 +2,9 @@
-
+
Bandage
-
+
@@ -166,7 +166,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.html
index 9bdb5ea90..c0be75bb6 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.html
@@ -2,9 +2,9 @@
-
+
Medicine
-
+
@@ -165,7 +165,9 @@ extends
ItemConsumptionHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Rag.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Rag.html
index ef33ea4fc..55a88715a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Rag.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Rag.html
@@ -2,9 +2,9 @@
-
+
Rag
-
+
@@ -165,7 +165,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Splint.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Splint.html
index f19b3e113..8512c9227 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Splint.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Splint.html
@@ -2,9 +2,9 @@
-
+
Splint
-
+
@@ -166,7 +166,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.html
index 5032d1188..f216a7f53 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.html
@@ -2,9 +2,9 @@
-
+
Vitamins
-
+
@@ -165,7 +165,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Bandage.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Bandage.html
index a8a8a7db9..93927fc50 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Bandage.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Bandage.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.medical.Bandage
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Medicine.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Medicine.html
index 7212cc86d..c023e2ecd 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Medicine.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Medicine.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.medical.Medicine
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Rag.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Rag.html
index 6a2ff155f..973ef312a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Rag.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Rag.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.medical.Rag
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Splint.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Splint.html
index 630c07d8c..651183bf9 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Splint.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Splint.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.medical.Splint
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Vitamins.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Vitamins.html
index 1b4a5e926..77e9e86cb 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Vitamins.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/class-use/Vitamins.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.medical.Vitamins
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-frame.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-frame.html
index e14a3baec..97559199d 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-frame.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-frame.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.medical
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-summary.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-summary.html
index f3231ad4a..31f87916c 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-summary.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-summary.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.medical
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-tree.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-tree.html
index f081cb9c2..64ee446bf 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-tree.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-tree.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.medical Class Hierarchy
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-use.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-use.html
index 620e959a5..8cfc6756f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-use.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/medical/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package io.github.thebusybiscuit.slimefun4.implementation.items.medical
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.html
index 2e949cf3a..8c5987db2 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.html
@@ -2,9 +2,9 @@
-
+
ArmorForge
-
+
@@ -190,7 +190,7 @@ extends
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.html
index f503679a7..6ce18adde 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.html
@@ -2,9 +2,9 @@
-
+
AutomatedPanningMachine
-
+
@@ -196,7 +196,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.html
index 02c9b55ad..6114f1564 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.html
@@ -2,9 +2,9 @@
-
+
Compressor
-
+
@@ -196,7 +196,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.html
index 540d8253c..32b37045d 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.html
@@ -2,9 +2,9 @@
-
+
EnhancedCraftingTable
-
+
@@ -190,7 +190,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.html
index 57757a8ff..30884430e 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.html
@@ -2,9 +2,9 @@
-
+
GrindStone
-
+
@@ -196,7 +196,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.html
index 40a226103..9749ac2f1 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.html
@@ -2,9 +2,9 @@
-
+
Juicer
-
+
@@ -196,7 +196,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.html
index 0e4c99a7d..60fc9168a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.html
@@ -2,9 +2,9 @@
-
+
MagicWorkbench
-
+
@@ -190,7 +190,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.html
index 5f1f6bd57..23f16d5bc 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.html
@@ -2,9 +2,9 @@
-
+
OreCrusher
-
+
@@ -196,7 +196,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.html
index fe201d4e5..d79633191 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.html
@@ -2,9 +2,9 @@
-
+
OreWasher
-
+
@@ -200,7 +200,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.html
index e19d15b74..d19d13a4a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.html
@@ -2,9 +2,9 @@
-
+
PressureChamber
-
+
@@ -200,7 +200,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.html
index 0af7ea18a..a8c3070d1 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.html
@@ -2,9 +2,9 @@
-
+
Smeltery
-
+
@@ -202,7 +202,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.html
index ef07fef27..f74c5ec79 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.html
@@ -2,9 +2,9 @@
-
+
TableSaw
-
+
@@ -206,7 +206,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/LumberAxe.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/LumberAxe.html
index 61809a6c1..608edbc6f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/LumberAxe.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/LumberAxe.html
@@ -2,9 +2,9 @@
-
+
LumberAxe
-
+
@@ -166,7 +166,9 @@ implements
BlockBreakHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/MultiTool.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/MultiTool.html
index f6a0a9001..41ec90816 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/MultiTool.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/MultiTool.html
@@ -2,9 +2,9 @@
-
+
MultiTool
-
+
@@ -185,7 +185,7 @@ extends
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfTheSeeker.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfTheSeeker.html
index f748ab750..4e9d673f8 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfTheSeeker.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfTheSeeker.html
@@ -2,9 +2,9 @@
-
+
PickaxeOfTheSeeker
-
+
@@ -166,7 +166,9 @@ implements
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
boolean
@@ -185,7 +187,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfVeinMining.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfVeinMining.html
index 35be44b6e..0f833e021 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfVeinMining.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PickaxeOfVeinMining.html
@@ -2,9 +2,9 @@
-
+
PickaxeOfVeinMining
-
+
@@ -165,7 +165,9 @@ extends
BlockBreakHandler
-getItemHandler ()
+getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableCrafter.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableCrafter.html
index 95b45e208..054b90a99 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableCrafter.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableCrafter.html
@@ -2,9 +2,9 @@
-
+
PortableCrafter
-
+
@@ -166,7 +166,9 @@ implements
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableDustbin.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableDustbin.html
index f876868a6..b6db1f21f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableDustbin.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/PortableDustbin.html
@@ -2,9 +2,9 @@
-
+
PortableDustbin
-
+
@@ -166,7 +166,9 @@ implements
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
@@ -181,7 +183,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SlimefunBackpack.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SlimefunBackpack.html
index 1cc0be1b4..730af8412 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SlimefunBackpack.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SlimefunBackpack.html
@@ -2,9 +2,9 @@
-
+
SlimefunBackpack
-
+
@@ -179,7 +179,9 @@ extends
ItemUseHandler
-
getItemHandler ()
+
getItemHandler ()
+
+
int
@@ -198,7 +200,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SmeltersPickaxe.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SmeltersPickaxe.html
index dc1362115..16c458537 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SmeltersPickaxe.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/SmeltersPickaxe.html
@@ -2,9 +2,9 @@
-
+
SmeltersPickaxe
-
+
@@ -165,7 +165,9 @@ extends
BlockBreakHandler
-getItemHandler ()
+getItemHandler ()
+
+
@@ -180,7 +182,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosivePickaxe.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosivePickaxe.html
index 294c670d5..77e6da53a 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosivePickaxe.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosivePickaxe.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.ExplosivePickaxe
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosiveShovel.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosiveShovel.html
index 8c8ff643f..8065f2bb3 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosiveShovel.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/ExplosiveShovel.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.ExplosiveShovel
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GoldPan.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GoldPan.html
index 322f6521e..ea81f6919 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GoldPan.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GoldPan.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.GoldPan
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GrapplingHook.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GrapplingHook.html
index b4ed30a15..55e33b6b6 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GrapplingHook.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/GrapplingHook.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.GrapplingHook
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/HerculesPickaxe.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/HerculesPickaxe.html
index d6ac16e5c..cde840f3c 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/HerculesPickaxe.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/HerculesPickaxe.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.HerculesPickaxe
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/LumberAxe.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/LumberAxe.html
index 8d827c128..a7179e84c 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/LumberAxe.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/LumberAxe.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.LumberAxe
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/MultiTool.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/MultiTool.html
index 7fdc7dd29..c001ecf09 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/MultiTool.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/MultiTool.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.MultiTool
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/NetherGoldPan.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/NetherGoldPan.html
index 3ff1ca741..490ba876b 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/NetherGoldPan.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/NetherGoldPan.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.NetherGoldPan
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfContainment.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfContainment.html
index fd7a817b4..907ea6408 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfContainment.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfContainment.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.PickaxeOfContainment
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfTheSeeker.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfTheSeeker.html
index 591db0e10..e64493ea5 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfTheSeeker.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfTheSeeker.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.PickaxeOfTheSeeker
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfVeinMining.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfVeinMining.html
index da996720d..5226ad76f 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfVeinMining.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PickaxeOfVeinMining.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.PickaxeOfVeinMining
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableCrafter.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableCrafter.html
index 975f61396..37cfda1f8 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableCrafter.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableCrafter.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.PortableCrafter
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableDustbin.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableDustbin.html
index 65addaf3d..358bb1786 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableDustbin.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/PortableDustbin.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.PortableDustbin
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SlimefunBackpack.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SlimefunBackpack.html
index da945648d..784c360aa 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SlimefunBackpack.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SlimefunBackpack.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.SlimefunBackpack
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SmeltersPickaxe.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SmeltersPickaxe.html
index 3d5ea08ee..4c6d0a17b 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SmeltersPickaxe.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/class-use/SmeltersPickaxe.html
@@ -2,9 +2,9 @@
-
+
Uses of Class io.github.thebusybiscuit.slimefun4.implementation.items.tools.SmeltersPickaxe
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-frame.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-frame.html
index aee8ce5c5..e1e8d9420 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-frame.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-frame.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.tools
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-summary.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-summary.html
index 81c9eb4a8..6c64bfa65 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-summary.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-summary.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.tools
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-tree.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-tree.html
index 736f3210b..f46b1c05d 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-tree.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-tree.html
@@ -2,9 +2,9 @@
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.tools Class Hierarchy
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-use.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-use.html
index f8b05cbbc..472ccd8e4 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-use.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/tools/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package io.github.thebusybiscuit.slimefun4.implementation.items.tools
-
+
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/ExplosiveBow.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/ExplosiveBow.html
index b58cbb13f..a2b5fbd70 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/ExplosiveBow.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/ExplosiveBow.html
@@ -2,9 +2,9 @@
-
+
ExplosiveBow
-
+
@@ -178,7 +178,7 @@ extends
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/IcyBow.html b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/IcyBow.html
index 7ad5984c3..a1733a88d 100644
--- a/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/IcyBow.html
+++ b/docs/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/IcyBow.html
@@ -2,9 +2,9 @@
-
+
IcyBow
-
+
@@ -178,7 +178,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/Research.html b/docs/me/mrCookieSlime/Slimefun/Objects/Research.html
index fb0bc153b..22ad9a44c 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/Research.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/Research.html
@@ -2,9 +2,9 @@
-
+
Research
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SeasonalCategory.html b/docs/me/mrCookieSlime/Slimefun/Objects/SeasonalCategory.html
index 5f88547e2..e474fe82d 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SeasonalCategory.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SeasonalCategory.html
@@ -2,9 +2,9 @@
-
+
SeasonalCategory
-
+
@@ -189,7 +189,7 @@ extends
Methods inherited from class me.mrCookieSlime.Slimefun.Objects.Category
-add , getItem , getItems , getKey , getTier , register , toString
+add , getItem , getItems , getKey , getTier , isHidden , register , toString
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunBlockHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunBlockHandler.html
index 586840370..2935a28ed 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunBlockHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunBlockHandler.html
@@ -2,9 +2,9 @@
-
+
SlimefunBlockHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.html
index 72be47c90..47a957045 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Alloy.html
@@ -2,9 +2,9 @@
-
+
Alloy
-
+
@@ -167,7 +167,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargableItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargableItem.html
index f8b93fcc9..1cece3999 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargableItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ChargableItem.html
@@ -2,9 +2,9 @@
-
+
ChargableItem
-
+
@@ -163,7 +163,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.html
index 95e82f0b7..17db3172b 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/HandledBlock.html
@@ -2,9 +2,9 @@
-
+
HandledBlock
-
+
@@ -157,7 +157,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.html
index 8d088e220..85edea11d 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.html
@@ -2,9 +2,9 @@
-
+
ItemState
-
+
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
Frames
@@ -327,7 +327,7 @@ not permitted.)
Frames
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.html
index c2cf2ed3a..3b137d7fb 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.html
@@ -2,9 +2,9 @@
-
+
SimpleSlimefunItem
-
+
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
@@ -196,7 +196,9 @@ extends
abstract T
-getItemHandler ()
+getItemHandler ()
+
+
void
@@ -210,7 +212,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
@@ -340,7 +347,7 @@ extends
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.html
index d05048a25..08d678fc2 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.html
@@ -2,9 +2,9 @@
-
+
SlimefunItem
-
+
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":10,"i18":10,"i19":10,"i20":9,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":42,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":42,"i43":10,"i44":9,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":10,"i18":10,"i19":10,"i20":9,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":42,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":9,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -365,83 +365,79 @@ implements
boolean
-isItem (ItemStack item)
+isItem (ItemStack item)
+
+
boolean
-isTicking ()
+isTicking ()
+This returns whether or not we are scheduling a ticking task for this block.
+
-static boolean
-isTicking (java.lang.String item)
-
-
boolean
isUseableInWorkbench ()
This method returns whether or not this
SlimefunItem
is allowed to
be used in a Crafting Table.
-
+
void
load ()
-
+
void
postRegister ()
-
+
void
preRegister ()
-
-void
-register ()
-
-
-
-
+
void
register (SlimefunAddon addon)
-
+
static void
registerBlockHandler (java.lang.String id,
SlimefunBlockHandler handler)
-
+
void
setCategory (Category category)
-
+
void
setRecipe (ItemStack [] recipe)
-
+
void
setRecipeOutput (ItemStack output)
-
+
void
setRecipeType (RecipeType type)
-
+
SlimefunItem
-setUseableInWorkbench (boolean useable)
+setUseableInWorkbench (boolean useable)
+This sets whether or not this
SlimefunItem
is allowed to be
+ used in a normal Crafting Table.
+
-
+
java.lang.String
toString ()
-
+
void
warn (java.lang.String message)
@@ -748,22 +744,6 @@ implements
-
-
-
@@ -851,24 +831,14 @@ public void register()
setUseableInWorkbench
public SlimefunItem setUseableInWorkbench(boolean useable)
-
-
-
-
-
-
-
-
-
-
@@ -878,6 +848,14 @@ public void register()
isItem
public boolean isItem(ItemStack item)
+
+
+Parameters:
+item
- The ItemStack
to compare
+Returns:
+Whether the given ItemStack
represents this SlimefunItem
+
@@ -909,24 +887,6 @@ public void install()
public void addItemHandler(ItemHandler ... handlers)
-
-
-
-
-
-
-
-
@@ -950,25 +910,6 @@ public void install()
the original registration of this
SlimefunItem
.
-
-
-
-
-
-
-
-
@@ -1073,6 +1014,11 @@ public void install()
isTicking
public boolean isTicking()
+This returns whether or not we are scheduling a ticking task for this block.
+
+Returns:
+Whether this SlimefunItem
is a ticking block
+
@@ -1135,7 +1081,7 @@ public void install()
-
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.html
index d0517836a..0db388446 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.html
@@ -2,9 +2,9 @@
-
+
SlimefunMachine
-
+
@@ -222,7 +222,7 @@ implements
SlimefunItem
-
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+
addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/UnregisterReason.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/UnregisterReason.html
index 36c9a571f..9e0d60eac 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/UnregisterReason.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/UnregisterReason.html
@@ -2,9 +2,9 @@
-
+
UnregisterReason
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.html
index fece24eab..449586af9 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.html
@@ -2,9 +2,9 @@
-
+
AContainer
-
+
@@ -280,7 +280,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.html
index 277104b52..ce1b8b2ab 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.html
@@ -2,9 +2,9 @@
-
+
AGenerator
-
+
@@ -271,7 +271,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.html
index 9dd62c6b6..f6cb14da3 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.html
@@ -2,9 +2,9 @@
-
+
AReactor
-
+
@@ -292,7 +292,7 @@ implements SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , postRegister , register , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , install , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , postRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.html
index 9961abc85..6dfdbb079 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.html
@@ -2,9 +2,9 @@
-
+
MachineFuel
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.html
index 937107c76..afc88f7a6 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.html
@@ -2,9 +2,9 @@
-
+
MachineRecipe
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AContainer.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AContainer.html
index 08d4d314a..0dbea7095 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AContainer.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AContainer.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AGenerator.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AGenerator.html
index 2ab559247..33f6033e9 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AGenerator.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AGenerator.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AGenerator
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AReactor.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AReactor.html
index ccd0028a2..12ad05234 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AReactor.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/AReactor.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineFuel.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineFuel.html
index 8fd8481fe..61cb90dc8 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineFuel.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineFuel.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineRecipe.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineRecipe.html
index 56f2899d4..492e75631 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineRecipe.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/class-use/MachineRecipe.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-frame.html
index 87804217d..3eeee408c 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-summary.html
index 374d8201b..abf513038 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-tree.html
index 3e386e3a0..ba511b627 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-use.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-use.html
index 24dd6a647..6ca3195ff 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/Alloy.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/Alloy.html
index e4261a860..9d2f7214a 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/Alloy.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/Alloy.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Alloy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ChargableItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ChargableItem.html
index 6d37afb28..e72c0fb7d 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ChargableItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ChargableItem.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ChargableItem
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/HandledBlock.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/HandledBlock.html
index d60c36caf..035bbe560 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/HandledBlock.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/HandledBlock.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.HandledBlock
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ItemState.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ItemState.html
index 6750804f1..0776dab72 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ItemState.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/ItemState.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ItemState
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SimpleSlimefunItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SimpleSlimefunItem.html
index d53655415..37628ffd6 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SimpleSlimefunItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SimpleSlimefunItem.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunItem.html
index 584cd3bef..209de6145 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunItem.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem
-
+
@@ -91,130 +91,134 @@
+io.github.thebusybiscuit.slimefun4.api.exceptions
+
+
+
io.github.thebusybiscuit.slimefun4.api.items
-
+
io.github.thebusybiscuit.slimefun4.core
-
+
io.github.thebusybiscuit.slimefun4.core.guide
-
+
io.github.thebusybiscuit.slimefun4.core.services
-
+
io.github.thebusybiscuit.slimefun4.implementation.guide
-
+
io.github.thebusybiscuit.slimefun4.implementation.items
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.altar
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.androids
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.armor
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.blocks
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.cargo
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.gadgets
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.generators
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.reactors
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.food
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.geo
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.gps
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.magical
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.medical
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.multiblocks
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.tools
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.weapons
-
+
me.mrCookieSlime.Slimefun.api
-
+
me.mrCookieSlime.Slimefun.Lists
-
+
me.mrCookieSlime.Slimefun.Objects
-
+
me.mrCookieSlime.Slimefun.Objects.handlers
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks
@@ -267,6 +271,25 @@
+
+
+
+
+
+
@@ -1549,7 +1572,10 @@
SlimefunItem
-SlimefunItem. setUseableInWorkbench (boolean useable)
+SlimefunItem. setUseableInWorkbench (boolean useable)
+This sets whether or not this
SlimefunItem
is allowed to be
+ used in a normal Crafting Table.
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunMachine.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunMachine.html
index 6ff24f87e..a577ca030 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunMachine.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/SlimefunMachine.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/UnregisterReason.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/UnregisterReason.html
index 661f143b0..d1469768a 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/UnregisterReason.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/class-use/UnregisterReason.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.html
index 414cd46e9..377ead388 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.html
@@ -2,9 +2,9 @@
-
+
DamageableItem
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/InventoryBlock.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/InventoryBlock.html
index b75749ab2..98636cdc0 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/InventoryBlock.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/InventoryBlock.html
@@ -2,9 +2,9 @@
-
+
InventoryBlock
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/NotPlaceable.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/NotPlaceable.html
index 18ff3d8ed..5bf79a2d8 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/NotPlaceable.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/NotPlaceable.html
@@ -2,9 +2,9 @@
-
+
NotPlaceable
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.html
index abdffddda..1d826eda1 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.html
@@ -2,9 +2,9 @@
-
+
RecipeDisplayItem
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/DamageableItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/DamageableItem.html
index 693a4d192..92db24d6f 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/DamageableItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/DamageableItem.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.DamageableItem
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/InventoryBlock.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/InventoryBlock.html
index c9c31a28c..94c039cb8 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/InventoryBlock.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/InventoryBlock.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/NotPlaceable.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/NotPlaceable.html
index e36234f0e..3d9defb2a 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/NotPlaceable.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/NotPlaceable.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/RecipeDisplayItem.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/RecipeDisplayItem.html
index 3254935ae..44dfe1c09 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/RecipeDisplayItem.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/class-use/RecipeDisplayItem.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-frame.html
index 5754c3cfe..8999b535d 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-summary.html
index 0074a6f7b..7e088c6b9 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-tree.html
index 37c181070..6d0884ab9 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-use.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-use.html
index 23d4d14e6..c20653bc4 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.html
index 35dd05c6f..70a00fed6 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.html
@@ -2,9 +2,9 @@
-
+
MultiBlockMachine
-
+
@@ -201,7 +201,7 @@ extends SlimefunItem
-addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isTicking , isUseableInWorkbench , load , preRegister , register , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
+addItemHandler , addOficialWikipage , bindToResearch , callItemHandler , error , getAddon , getBlockTicker , getByID , getByItem , getCategory , getDrops , getDrops , getEnergyTicker , getHandlers , getID , getItem , getItem , getItemName , getNoPermissionTooltip , getPermission , getPublicItemHandlers , getRecipe , getRecipeOutput , getRecipeType , getResearch , getState , getWikipage , hasWikipage , info , isAddonItem , isDisabled , isDisenchantable , isEnchantable , isHidden , isItem , isTicking , isUseableInWorkbench , load , preRegister , registerBlockHandler , setCategory , setRecipe , setRecipeOutput , setRecipeType , setUseableInWorkbench , toString , warn
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/class-use/MultiBlockMachine.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/class-use/MultiBlockMachine.html
index 8612fd611..7b14179ce 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/class-use/MultiBlockMachine.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/class-use/MultiBlockMachine.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.MultiBlockMachine
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-frame.html
index 65f9ea2e9..a4e542fa5 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-summary.html
index 28ed5d836..ef561e15b 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-tree.html
index e7e96a31d..1a041a004 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-use.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-use.html
index 2404b8d64..ef401a0fc 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-frame.html
index b81022edc..ad3b80403 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem
-
+
@@ -16,7 +16,6 @@
Alloy
ChargableItem
HandledBlock
-Juice
SimpleSlimefunItem
SlimefunItem
SlimefunMachine
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-summary.html
index 155b3010c..228d3ce19 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem
-
+
@@ -99,22 +99,16 @@
-Juice
-Deprecated
-
-
-
-
SimpleSlimefunItem <T extends ItemHandler >
This is basically a quickstart class for your very first
SlimefunItem
.
-
+
SlimefunItem
-
+
SlimefunMachine
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-tree.html
index ccc9cf9f0..79a3cec99 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem Class Hierarchy
-
+
@@ -90,11 +90,6 @@
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ChargableItem
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.HandledBlock
-io.github.thebusybiscuit.slimefun4.implementation.items.food.Juice
-
-me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice
-
-
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem <T>
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine (implements io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem )
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-use.html b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-use.html
index 8c515eef6..8de1f4271 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Objects.SlimefunItem
-
+
@@ -91,130 +91,134 @@
+io.github.thebusybiscuit.slimefun4.api.exceptions
+
+
+
io.github.thebusybiscuit.slimefun4.api.items
-
+
io.github.thebusybiscuit.slimefun4.core
-
+
io.github.thebusybiscuit.slimefun4.core.guide
-
+
io.github.thebusybiscuit.slimefun4.core.services
-
+
io.github.thebusybiscuit.slimefun4.implementation.guide
-
+
io.github.thebusybiscuit.slimefun4.implementation.items
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.altar
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.androids
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.armor
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.blocks
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.cargo
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.gadgets
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.generators
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.reactors
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.food
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.geo
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.gps
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.magical
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.medical
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.multiblocks
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.tools
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.weapons
-
+
me.mrCookieSlime.Slimefun.Lists
-
+
me.mrCookieSlime.Slimefun.Objects
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks
-
+
me.mrCookieSlime.Slimefun.Objects.handlers
-
+
me.mrCookieSlime.Slimefun.api
@@ -251,6 +255,21 @@
+
+
+
+
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Category.html b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Category.html
index cff04991b..b85e328af 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Category.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Category.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.Category
-
+
@@ -1452,27 +1452,19 @@
-Juice (Category category,
- SlimefunItemStack item,
- RecipeType recipeType,
- ItemStack [] recipe)
-Deprecated.
-
-
-
SimpleSlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe)
-
+
SimpleSlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe,
ItemStack recipeOutput)
-
+
SimpleSlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
@@ -1480,20 +1472,20 @@
java.lang.String[] keys,
java.lang.Object[] values)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe,
ItemStack recipeOutput)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
@@ -1502,7 +1494,7 @@
java.lang.String[] keys,
java.lang.Object[] values)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
@@ -1510,7 +1502,7 @@
java.lang.String[] keys,
java.lang.Object[] values)
-
+
SlimefunMachine (Category category,
ItemStack item,
java.lang.String id,
@@ -1520,14 +1512,14 @@
Deprecated.
-
+
SlimefunMachine (Category category,
SlimefunItemStack item,
ItemStack [] recipe,
ItemStack [] machineRecipes,
BlockFace trigger)
-
+
SlimefunMachine (Category category,
SlimefunItemStack item,
ItemStack [] recipe,
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/LockedCategory.html b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/LockedCategory.html
index 6bf5cb03a..ff7567e66 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/LockedCategory.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/LockedCategory.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.LockedCategory
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Research.html b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Research.html
index adb65ba27..36ba75cf0 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Research.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/Research.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.Research
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SeasonalCategory.html b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SeasonalCategory.html
index 35b410f59..3a1591aa7 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SeasonalCategory.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SeasonalCategory.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.SeasonalCategory
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SlimefunBlockHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SlimefunBlockHandler.html
index fa6637c5f..151e336ba 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SlimefunBlockHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/class-use/SlimefunBlockHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockBreakHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockBreakHandler.html
index c92a6fe88..5bc5c6f55 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockBreakHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockBreakHandler.html
@@ -2,9 +2,9 @@
-
+
BlockBreakHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockDispenseHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockDispenseHandler.html
index 52f54b7a5..487f445ad 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockDispenseHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockDispenseHandler.html
@@ -2,9 +2,9 @@
-
+
BlockDispenseHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockPlaceHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockPlaceHandler.html
index da7f56b96..dfbffee76 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockPlaceHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockPlaceHandler.html
@@ -2,9 +2,9 @@
-
+
BlockPlaceHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockTicker.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockTicker.html
index 43994affd..494111b4b 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockTicker.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockTicker.html
@@ -2,9 +2,9 @@
-
+
BlockTicker
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockUseHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockUseHandler.html
index 285db824d..1d669c79d 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockUseHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BlockUseHandler.html
@@ -2,9 +2,9 @@
-
+
BlockUseHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BowShootHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BowShootHandler.html
index c5c37b313..8149f3fdf 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BowShootHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/BowShootHandler.html
@@ -2,9 +2,9 @@
-
+
BowShootHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/EntityKillHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/EntityKillHandler.html
index 171993fd7..2c67caa8e 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/EntityKillHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/EntityKillHandler.html
@@ -2,9 +2,9 @@
-
+
EntityKillHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/GeneratorTicker.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/GeneratorTicker.html
index 2c767f879..58765a40b 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/GeneratorTicker.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/GeneratorTicker.html
@@ -2,9 +2,9 @@
-
+
GeneratorTicker
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemConsumptionHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemConsumptionHandler.html
index 0c1853a21..3bd623b08 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemConsumptionHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemConsumptionHandler.html
@@ -2,9 +2,9 @@
-
+
ItemConsumptionHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemDropHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemDropHandler.html
index 73ee11ee2..02a5bacdf 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemDropHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemDropHandler.html
@@ -2,9 +2,9 @@
-
+
ItemDropHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemHandler.html
index 1b484c81a..57b6640d2 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemHandler.html
@@ -2,9 +2,9 @@
-
+
ItemHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemUseHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemUseHandler.html
index fa189bb91..007bbeac4 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemUseHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/ItemUseHandler.html
@@ -2,9 +2,9 @@
-
+
ItemUseHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/MultiBlockInteractionHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/MultiBlockInteractionHandler.html
index 6f83aac78..b749bb81b 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/MultiBlockInteractionHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/MultiBlockInteractionHandler.html
@@ -2,9 +2,9 @@
-
+
MultiBlockInteractionHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/RainbowTicker.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/RainbowTicker.html
index 45fa1504a..59ab82246 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/RainbowTicker.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/RainbowTicker.html
@@ -2,9 +2,9 @@
-
+
RainbowTicker
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockBreakHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockBreakHandler.html
index c5558a2fa..3cd68e94e 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockBreakHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockBreakHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.BlockBreakHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockDispenseHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockDispenseHandler.html
index d83f1bdaa..9219200bd 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockDispenseHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockDispenseHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.BlockDispenseHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockPlaceHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockPlaceHandler.html
index e05e1f834..37b3fdcb5 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockPlaceHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockPlaceHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.BlockPlaceHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockTicker.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockTicker.html
index 1eda4c092..789932101 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockTicker.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockTicker.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockUseHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockUseHandler.html
index 62991f5c2..a870c677e 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockUseHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BlockUseHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.BlockUseHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BowShootHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BowShootHandler.html
index 8be58d568..60666facf 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BowShootHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/BowShootHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/EntityKillHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/EntityKillHandler.html
index 62832900e..996f6ab1e 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/EntityKillHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/EntityKillHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.EntityKillHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/GeneratorTicker.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/GeneratorTicker.html
index 439728cfe..63f88b054 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/GeneratorTicker.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/GeneratorTicker.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.handlers.GeneratorTicker
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemConsumptionHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemConsumptionHandler.html
index e71cd47b0..42eebca44 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemConsumptionHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemConsumptionHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemDropHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemDropHandler.html
index 55e7dffb5..de554fc42 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemDropHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemDropHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.ItemDropHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemHandler.html
index 3e9252e7a..291e3e627 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.ItemHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemUseHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemUseHandler.html
index 689e8bd28..72400c948 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemUseHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/ItemUseHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/MultiBlockInteractionHandler.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/MultiBlockInteractionHandler.html
index 04877755e..8f09a27da 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/MultiBlockInteractionHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/MultiBlockInteractionHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.Objects.handlers.MultiBlockInteractionHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/RainbowTicker.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/RainbowTicker.html
index 23c745dfd..2cd7aa82e 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/RainbowTicker.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/class-use/RainbowTicker.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Objects.handlers.RainbowTicker
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-frame.html
index 5ac8463d3..4a5c5ab7a 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.handlers
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-summary.html
index 2639688c4..89f3cc6ef 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.handlers
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-tree.html
index 665afb76a..906997c8d 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects.handlers Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-use.html b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-use.html
index 7d2b536b2..cca23184f 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/handlers/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Objects.handlers
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Objects/package-frame.html
index d9f119c72..587bb3682 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Objects/package-summary.html
index e2985eb74..84ee60f61 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Objects/package-tree.html
index 168dc48aa..385c8c3c3 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Objects Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Objects/package-use.html b/docs/me/mrCookieSlime/Slimefun/Objects/package-use.html
index 8d21daf1b..91ec789fd 100644
--- a/docs/me/mrCookieSlime/Slimefun/Objects/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Objects/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Objects
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.html b/docs/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.html
index e3f253b3e..9bd8883f8 100644
--- a/docs/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.html
+++ b/docs/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.html
@@ -2,9 +2,9 @@
-
+
SlimefunManager
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Setup/class-use/SlimefunManager.html b/docs/me/mrCookieSlime/Slimefun/Setup/class-use/SlimefunManager.html
index 7f79fcbd6..2467e4461 100644
--- a/docs/me/mrCookieSlime/Slimefun/Setup/class-use/SlimefunManager.html
+++ b/docs/me/mrCookieSlime/Slimefun/Setup/class-use/SlimefunManager.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.Setup.SlimefunManager
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Setup/package-frame.html b/docs/me/mrCookieSlime/Slimefun/Setup/package-frame.html
index 6a2d91329..a4d9a4bca 100644
--- a/docs/me/mrCookieSlime/Slimefun/Setup/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/Setup/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Setup
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Setup/package-summary.html b/docs/me/mrCookieSlime/Slimefun/Setup/package-summary.html
index 335f40616..ddaa30120 100644
--- a/docs/me/mrCookieSlime/Slimefun/Setup/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/Setup/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Setup
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Setup/package-tree.html b/docs/me/mrCookieSlime/Slimefun/Setup/package-tree.html
index 434ef4d0c..9836ff9bd 100644
--- a/docs/me/mrCookieSlime/Slimefun/Setup/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/Setup/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.Setup Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/Setup/package-use.html b/docs/me/mrCookieSlime/Slimefun/Setup/package-use.html
index 62e045eb1..cf3fadb32 100644
--- a/docs/me/mrCookieSlime/Slimefun/Setup/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/Setup/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.Setup
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/SlimefunPlugin.html b/docs/me/mrCookieSlime/Slimefun/SlimefunPlugin.html
index cf33a15a1..807da69a9 100644
--- a/docs/me/mrCookieSlime/Slimefun/SlimefunPlugin.html
+++ b/docs/me/mrCookieSlime/Slimefun/SlimefunPlugin.html
@@ -2,9 +2,9 @@
-
+
SlimefunPlugin
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.html b/docs/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.html
index fc44b3a97..cf5e1dc30 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.html
@@ -2,9 +2,9 @@
-
+
BlockInfoConfig
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/BlockStorage.html b/docs/me/mrCookieSlime/Slimefun/api/BlockStorage.html
index 069d0d1c5..ef2578b58 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/BlockStorage.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/BlockStorage.html
@@ -2,9 +2,9 @@
-
+
BlockStorage
-
+
@@ -539,7 +539,8 @@ extends java.lang.Object
retrieve
public static ItemStack retrieve(Block block)
Retrieves the SlimefunItem's ItemStack from the specified Block.
- If the specified Block is registered in BlockStorage, its data will be erased from it, regardless of the returned value.
+ If the specified Block is registered in BlockStorage, its data will be erased from it, regardless of the returned
+ value.
Parameters:
block
- the block to retrieve the ItemStack from
diff --git a/docs/me/mrCookieSlime/Slimefun/api/GuideHandler.html b/docs/me/mrCookieSlime/Slimefun/api/GuideHandler.html
index eafe3cc05..31730de80 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/GuideHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/GuideHandler.html
@@ -2,9 +2,9 @@
-
+
GuideHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/PlayerProfile.html b/docs/me/mrCookieSlime/Slimefun/api/PlayerProfile.html
index a47d83ebc..fb6f48b07 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/PlayerProfile.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/PlayerProfile.html
@@ -2,9 +2,9 @@
-
+
PlayerProfile
-
+
@@ -111,10 +111,14 @@ var activeTableTab = "activeTableTab";
public final class PlayerProfile
extends java.lang.Object
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
+ It also holds the backpacks of a
Player
.
Author:
TheBusyBiscuit
+See Also:
+Research
,
+PlayerBackpack
diff --git a/docs/me/mrCookieSlime/Slimefun/api/Slimefun.html b/docs/me/mrCookieSlime/Slimefun/api/Slimefun.html
index ab5654b21..c1a5a7156 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/Slimefun.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/Slimefun.html
@@ -2,9 +2,9 @@
-
+
Slimefun
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/SlimefunItemStack.html b/docs/me/mrCookieSlime/Slimefun/api/SlimefunItemStack.html
index 462584860..81c20110d 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/SlimefunItemStack.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/SlimefunItemStack.html
@@ -2,9 +2,9 @@
-
+
SlimefunItemStack
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockInfoConfig.html b/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockInfoConfig.html
index 2504b2a89..effa6b8b7 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockInfoConfig.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockInfoConfig.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.BlockInfoConfig
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockStorage.html b/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockStorage.html
index 3d2a1124a..d9a392cab 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockStorage.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/class-use/BlockStorage.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.BlockStorage
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/class-use/GuideHandler.html b/docs/me/mrCookieSlime/Slimefun/api/class-use/GuideHandler.html
index abfaaa33c..364453d05 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/class-use/GuideHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/class-use/GuideHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.api.GuideHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/class-use/PlayerProfile.html b/docs/me/mrCookieSlime/Slimefun/api/class-use/PlayerProfile.html
index 711aeaa9f..eaad067fa 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/class-use/PlayerProfile.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/class-use/PlayerProfile.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.PlayerProfile
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/class-use/Slimefun.html b/docs/me/mrCookieSlime/Slimefun/api/class-use/Slimefun.html
index abe95321e..e35fda2b8 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/class-use/Slimefun.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/class-use/Slimefun.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.Slimefun
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/class-use/SlimefunItemStack.html b/docs/me/mrCookieSlime/Slimefun/api/class-use/SlimefunItemStack.html
index aae2a682d..5083a890a 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/class-use/SlimefunItemStack.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/class-use/SlimefunItemStack.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.SlimefunItemStack
-
+
@@ -1307,27 +1307,19 @@
-Juice (Category category,
- SlimefunItemStack item,
- RecipeType recipeType,
- ItemStack [] recipe)
-Deprecated.
-
-
-
SimpleSlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe)
-
+
SimpleSlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe,
ItemStack recipeOutput)
-
+
SimpleSlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
@@ -1335,20 +1327,20 @@
java.lang.String[] keys,
java.lang.Object[] values)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
ItemStack [] recipe,
ItemStack recipeOutput)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
@@ -1357,7 +1349,7 @@
java.lang.String[] keys,
java.lang.Object[] values)
-
+
SlimefunItem (Category category,
SlimefunItemStack item,
RecipeType recipeType,
@@ -1365,14 +1357,14 @@
java.lang.String[] keys,
java.lang.Object[] values)
-
+
SlimefunMachine (Category category,
SlimefunItemStack item,
ItemStack [] recipe,
ItemStack [] machineRecipes,
BlockFace trigger)
-
+
SlimefunMachine (Category category,
SlimefunItemStack item,
ItemStack [] recipe,
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/ChargableBlock.html b/docs/me/mrCookieSlime/Slimefun/api/energy/ChargableBlock.html
index 8731840ae..564494308 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/ChargableBlock.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/ChargableBlock.html
@@ -2,9 +2,9 @@
-
+
ChargableBlock
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.html b/docs/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.html
index 695126834..17a0a00f0 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/ItemEnergy.html
@@ -2,9 +2,9 @@
-
+
ItemEnergy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ChargableBlock.html b/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ChargableBlock.html
index 0daf605f9..ebbbf68aa 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ChargableBlock.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ChargableBlock.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.energy.ChargableBlock
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ItemEnergy.html b/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ItemEnergy.html
index 91f5b3e7e..0980bdad9 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ItemEnergy.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/class-use/ItemEnergy.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.energy.ItemEnergy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/package-frame.html b/docs/me/mrCookieSlime/Slimefun/api/energy/package-frame.html
index 0961ac246..b0c9f21ee 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.energy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/package-summary.html b/docs/me/mrCookieSlime/Slimefun/api/energy/package-summary.html
index 63202d988..af5185245 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.energy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/package-tree.html b/docs/me/mrCookieSlime/Slimefun/api/energy/package-tree.html
index d34292594..02930b681 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.energy Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/energy/package-use.html b/docs/me/mrCookieSlime/Slimefun/api/energy/package-use.html
index b3247a539..886745d91 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/energy/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/energy/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.api.energy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.html
index bfec63f3d..d67124efa 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.html
@@ -2,9 +2,9 @@
-
+
BlockMenu
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.html
index efc9f5f4f..c0c394bd4 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.html
@@ -2,9 +2,9 @@
-
+
BlockMenuPreset
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.SaveHandler.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.SaveHandler.html
index 6b87cab60..f98f70dc5 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.SaveHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.SaveHandler.html
@@ -2,9 +2,9 @@
-
+
DirtyChestMenu.SaveHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.html
index daf1c879e..2cabb8c21 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.html
@@ -2,9 +2,9 @@
-
+
DirtyChestMenu
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.html
index 888719147..270770020 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.html
@@ -2,9 +2,9 @@
-
+
ItemManipulationEvent
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.html
index 8c55c89d1..1d23b5636 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.html
@@ -2,9 +2,9 @@
-
+
UniversalBlockMenu
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenu.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenu.html
index 31113ea7d..8db7c1627 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenu.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenu.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.inventory.BlockMenu
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenuPreset.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenuPreset.html
index 7fdad0e10..06988e53b 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenuPreset.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/BlockMenuPreset.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.SaveHandler.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.SaveHandler.html
index 36824b9c7..198a80270 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.SaveHandler.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.SaveHandler.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.inventory.DirtyChestMenu.SaveHandler
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.html
index 55fd40fb7..d81e9f1ac 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/DirtyChestMenu.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.inventory.DirtyChestMenu
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/ItemManipulationEvent.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/ItemManipulationEvent.html
index 5580fb1de..12dddaccb 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/ItemManipulationEvent.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/ItemManipulationEvent.html
@@ -2,9 +2,9 @@
-
+
Uses of Interface me.mrCookieSlime.Slimefun.api.inventory.ItemManipulationEvent
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/UniversalBlockMenu.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/UniversalBlockMenu.html
index e1b3f4dd2..2d363350d 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/UniversalBlockMenu.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/class-use/UniversalBlockMenu.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-frame.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-frame.html
index 26d8fd0e1..4d596a41a 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.inventory
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-summary.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-summary.html
index 553db8dda..9117a4f1e 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.inventory
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-tree.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-tree.html
index afc3ebfa0..7320c3f5b 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.inventory Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-use.html b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-use.html
index 22197e7cb..aab247e7e 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/inventory/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/inventory/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.api.inventory
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.html
index 1294ddcb7..807dac552 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.html
@@ -2,9 +2,9 @@
-
+
CargoNet
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemRequest.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemRequest.html
index 862fd7932..66ba72995 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemRequest.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemRequest.html
@@ -2,9 +2,9 @@
-
+
ItemRequest
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemTransportFlow.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemTransportFlow.html
index deb2d478c..4ef694331 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemTransportFlow.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/ItemTransportFlow.html
@@ -2,9 +2,9 @@
-
+
ItemTransportFlow
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/CargoNet.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/CargoNet.html
index 5ace18102..208a28c92 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/CargoNet.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/CargoNet.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.item_transport.CargoNet
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemRequest.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemRequest.html
index 3490be53f..7143e064d 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemRequest.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemRequest.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.item_transport.ItemRequest
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemTransportFlow.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemTransportFlow.html
index 83db4bc7b..6b67fbf1e 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemTransportFlow.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/class-use/ItemTransportFlow.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-frame.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-frame.html
index 5e584036c..d3d19dfbd 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.item_transport
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-summary.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-summary.html
index 37d648bd7..5c66900ce 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.item_transport
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-tree.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-tree.html
index 8b1a69d2f..7ec1aa96b 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api.item_transport Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-use.html b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-use.html
index 51ffd57c2..f20589b1c 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/item_transport/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.api.item_transport
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/package-frame.html b/docs/me/mrCookieSlime/Slimefun/api/package-frame.html
index 45e4a5ad2..7dcecdf8a 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/package-summary.html b/docs/me/mrCookieSlime/Slimefun/api/package-summary.html
index f62751278..6eae9d659 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api
-
+
@@ -111,7 +111,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
diff --git a/docs/me/mrCookieSlime/Slimefun/api/package-tree.html b/docs/me/mrCookieSlime/Slimefun/api/package-tree.html
index 9671c3095..c27b0829c 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.api Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/api/package-use.html b/docs/me/mrCookieSlime/Slimefun/api/package-use.html
index 0eb89942f..6f47ef16c 100644
--- a/docs/me/mrCookieSlime/Slimefun/api/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/api/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.api
-
+
@@ -212,7 +212,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
@@ -229,7 +229,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
@@ -260,7 +260,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
@@ -277,7 +277,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
@@ -294,7 +294,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
@@ -596,7 +596,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
@@ -666,7 +666,7 @@
PlayerProfile
-A class that can store a Player's Research Profile for caching
+A class that can store a Player's
Research
progress for caching purposes.
diff --git a/docs/me/mrCookieSlime/Slimefun/class-use/SlimefunPlugin.html b/docs/me/mrCookieSlime/Slimefun/class-use/SlimefunPlugin.html
index 8ce452d3e..a3feee2dd 100644
--- a/docs/me/mrCookieSlime/Slimefun/class-use/SlimefunPlugin.html
+++ b/docs/me/mrCookieSlime/Slimefun/class-use/SlimefunPlugin.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.SlimefunPlugin
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/package-frame.html b/docs/me/mrCookieSlime/Slimefun/package-frame.html
index 7aa333113..38349131d 100644
--- a/docs/me/mrCookieSlime/Slimefun/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/package-summary.html b/docs/me/mrCookieSlime/Slimefun/package-summary.html
index 817664204..0d172c641 100644
--- a/docs/me/mrCookieSlime/Slimefun/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/package-tree.html b/docs/me/mrCookieSlime/Slimefun/package-tree.html
index ad0521644..81545fe14 100644
--- a/docs/me/mrCookieSlime/Slimefun/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/package-use.html b/docs/me/mrCookieSlime/Slimefun/package-use.html
index 079dd5d89..60fc67bf4 100644
--- a/docs/me/mrCookieSlime/Slimefun/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/utils/ConfigCache.html b/docs/me/mrCookieSlime/Slimefun/utils/ConfigCache.html
index 82467a9ee..0e0ccce51 100644
--- a/docs/me/mrCookieSlime/Slimefun/utils/ConfigCache.html
+++ b/docs/me/mrCookieSlime/Slimefun/utils/ConfigCache.html
@@ -2,9 +2,9 @@
-
+
ConfigCache
-
+
@@ -124,44 +124,20 @@ extends java.lang.Object
Field and Description
-int
-emeraldEnchantsLimit
-
-
-boolean
-legacyDustWasher
-
-
-boolean
-legacyOreGrinder
-
-
-boolean
-legacyOreWasher
-
-
-boolean
-printOutLoading
-
-
boolean
researchesEnabled
-
+
boolean
researchesFreeInCreative
-
+
java.util.List<java.lang.String>
researchesTitles
-
-boolean
-researchFireworksEnabled
-
boolean
-translationsEnabled
+researchFireworksEnabled
@@ -210,15 +186,6 @@ extends java.lang.Object
Field Detail
-
-
-
-
@@ -249,57 +216,12 @@ extends java.lang.Object
-
diff --git a/docs/me/mrCookieSlime/Slimefun/utils/class-use/ConfigCache.html b/docs/me/mrCookieSlime/Slimefun/utils/class-use/ConfigCache.html
index 2b8c25764..381956f04 100644
--- a/docs/me/mrCookieSlime/Slimefun/utils/class-use/ConfigCache.html
+++ b/docs/me/mrCookieSlime/Slimefun/utils/class-use/ConfigCache.html
@@ -2,9 +2,9 @@
-
+
Uses of Class me.mrCookieSlime.Slimefun.utils.ConfigCache
-
+
@@ -83,10 +83,6 @@
-io.github.thebusybiscuit.slimefun4.implementation.setup
-
-
-
me.mrCookieSlime.Slimefun
@@ -95,24 +91,6 @@
-
-
-
-
-
-
diff --git a/docs/me/mrCookieSlime/Slimefun/utils/package-frame.html b/docs/me/mrCookieSlime/Slimefun/utils/package-frame.html
index f9965c4fd..ad212dc87 100644
--- a/docs/me/mrCookieSlime/Slimefun/utils/package-frame.html
+++ b/docs/me/mrCookieSlime/Slimefun/utils/package-frame.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.utils
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/utils/package-summary.html b/docs/me/mrCookieSlime/Slimefun/utils/package-summary.html
index 1d9c284cb..3ce83c08c 100644
--- a/docs/me/mrCookieSlime/Slimefun/utils/package-summary.html
+++ b/docs/me/mrCookieSlime/Slimefun/utils/package-summary.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.utils
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/utils/package-tree.html b/docs/me/mrCookieSlime/Slimefun/utils/package-tree.html
index 4ef2e197a..fe1436dbd 100644
--- a/docs/me/mrCookieSlime/Slimefun/utils/package-tree.html
+++ b/docs/me/mrCookieSlime/Slimefun/utils/package-tree.html
@@ -2,9 +2,9 @@
-
+
me.mrCookieSlime.Slimefun.utils Class Hierarchy
-
+
diff --git a/docs/me/mrCookieSlime/Slimefun/utils/package-use.html b/docs/me/mrCookieSlime/Slimefun/utils/package-use.html
index d726eb9a6..b125ba4f4 100644
--- a/docs/me/mrCookieSlime/Slimefun/utils/package-use.html
+++ b/docs/me/mrCookieSlime/Slimefun/utils/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package me.mrCookieSlime.Slimefun.utils
-
+
@@ -83,31 +83,12 @@
-io.github.thebusybiscuit.slimefun4.implementation.setup
-
-
-
me.mrCookieSlime.Slimefun
-
-
-
-
-
diff --git a/docs/overview-frame.html b/docs/overview-frame.html
index 54a9bbed7..6209a7d40 100644
--- a/docs/overview-frame.html
+++ b/docs/overview-frame.html
@@ -2,9 +2,9 @@
-
+
Overview List
-
+
@@ -17,6 +17,7 @@
io.github.thebusybiscuit.slimefun4.api.blocks
io.github.thebusybiscuit.slimefun4.api.chunks
io.github.thebusybiscuit.slimefun4.api.events
+io.github.thebusybiscuit.slimefun4.api.exceptions
io.github.thebusybiscuit.slimefun4.api.geo
io.github.thebusybiscuit.slimefun4.api.gps
io.github.thebusybiscuit.slimefun4.api.items
diff --git a/docs/overview-summary.html b/docs/overview-summary.html
index 16bc6d9f5..407172d5a 100644
--- a/docs/overview-summary.html
+++ b/docs/overview-summary.html
@@ -2,9 +2,9 @@
-
+
Overview
-
+
@@ -97,234 +97,238 @@
+io.github.thebusybiscuit.slimefun4.api.exceptions
+
+
+
io.github.thebusybiscuit.slimefun4.api.geo
-
+
io.github.thebusybiscuit.slimefun4.api.gps
-
+
io.github.thebusybiscuit.slimefun4.api.items
-
+
io.github.thebusybiscuit.slimefun4.api.network
-
+
io.github.thebusybiscuit.slimefun4.api.player
-
+
io.github.thebusybiscuit.slimefun4.api.recipes
-
+
io.github.thebusybiscuit.slimefun4.core
-
+
io.github.thebusybiscuit.slimefun4.core.attributes
-
+
io.github.thebusybiscuit.slimefun4.core.commands
-
+
io.github.thebusybiscuit.slimefun4.core.commands.subcommands
-
+
io.github.thebusybiscuit.slimefun4.core.guide
-
+
io.github.thebusybiscuit.slimefun4.core.hooks
-
+
io.github.thebusybiscuit.slimefun4.core.networks.energy
-
+
io.github.thebusybiscuit.slimefun4.core.services
-
+
io.github.thebusybiscuit.slimefun4.core.services.github
-
+
io.github.thebusybiscuit.slimefun4.core.services.localization
-
+
io.github.thebusybiscuit.slimefun4.core.services.metrics
-
+
io.github.thebusybiscuit.slimefun4.implementation.guide
-
+
io.github.thebusybiscuit.slimefun4.implementation.items
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.altar
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.androids
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.armor
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.blocks
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.cargo
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.gadgets
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.generators
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.electric.reactors
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.food
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.geo
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.gps
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.magical
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.medical
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.multiblocks
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.tools
-
+
io.github.thebusybiscuit.slimefun4.implementation.items.weapons
-
+
io.github.thebusybiscuit.slimefun4.implementation.listeners
-
+
io.github.thebusybiscuit.slimefun4.implementation.resources
-
+
io.github.thebusybiscuit.slimefun4.implementation.setup
-
+
io.github.thebusybiscuit.slimefun4.implementation.tasks
-
+
io.github.thebusybiscuit.slimefun4.utils
-
+
io.github.thebusybiscuit.slimefun4.utils.holograms
-
+
io.github.thebusybiscuit.slimefun4.utils.itemstack
-
+
me.mrCookieSlime.Slimefun
-
+
me.mrCookieSlime.Slimefun.api
-
+
me.mrCookieSlime.Slimefun.api.energy
-
+
me.mrCookieSlime.Slimefun.api.inventory
-
+
me.mrCookieSlime.Slimefun.api.item_transport
-
+
me.mrCookieSlime.Slimefun.Lists
-
+
me.mrCookieSlime.Slimefun.Objects
-
+
me.mrCookieSlime.Slimefun.Objects.handlers
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces
-
+
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks
-
+
me.mrCookieSlime.Slimefun.Setup
-
+
me.mrCookieSlime.Slimefun.utils
diff --git a/docs/overview-tree.html b/docs/overview-tree.html
index ad8e1c963..d54609251 100644
--- a/docs/overview-tree.html
+++ b/docs/overview-tree.html
@@ -2,9 +2,9 @@
-
+
Class Hierarchy
-
+
@@ -77,6 +77,7 @@
io.github.thebusybiscuit.slimefun4.api.blocks ,
io.github.thebusybiscuit.slimefun4.api.chunks ,
io.github.thebusybiscuit.slimefun4.api.events ,
+io.github.thebusybiscuit.slimefun4.api.exceptions ,
io.github.thebusybiscuit.slimefun4.api.geo ,
io.github.thebusybiscuit.slimefun4.api.gps ,
io.github.thebusybiscuit.slimefun4.api.items ,
@@ -362,11 +363,7 @@
io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.CropGrowthAccelerator (implements io.github.thebusybiscuit.slimefun4.core.attributes.EnergyNetComponent , me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock )
io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.EnergyRegulator
me.mrCookieSlime.Slimefun.Objects.SlimefunItem.HandledBlock
-io.github.thebusybiscuit.slimefun4.implementation.items.food.Juice
-
-me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice
-
-
+io.github.thebusybiscuit.slimefun4.implementation.items.food.Juice
io.github.thebusybiscuit.slimefun4.implementation.items.armor.Parachute
io.github.thebusybiscuit.slimefun4.implementation.items.gps.PersonalActivationPlate
io.github.thebusybiscuit.slimefun4.implementation.items.androids.ProgrammableAndroid (implements me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock , io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem )
@@ -497,6 +494,19 @@
io.github.thebusybiscuit.slimefun4.implementation.listeners.TalismanListener (implements org.bukkit.event.Listener )
io.github.thebusybiscuit.slimefun4.api.gps.TeleportationManager
io.github.thebusybiscuit.slimefun4.implementation.listeners.TeleporterListener (implements org.bukkit.event.Listener )
+java.lang.Throwable (implements java.io.Serializable)
+
+java.lang.Exception
+
+java.lang.RuntimeException
+
+
+
+
+
+
io.github.thebusybiscuit.slimefun4.implementation.tasks.TickerTask (implements java.lang.Runnable)
io.github.thebusybiscuit.slimefun4.core.services.localization.Translators
io.github.thebusybiscuit.slimefun4.core.services.UpdaterService
diff --git a/docs/package-list b/docs/package-list
index d42b4ecb2..70acf41ce 100644
--- a/docs/package-list
+++ b/docs/package-list
@@ -2,6 +2,7 @@ io.github.thebusybiscuit.slimefun4.api
io.github.thebusybiscuit.slimefun4.api.blocks
io.github.thebusybiscuit.slimefun4.api.chunks
io.github.thebusybiscuit.slimefun4.api.events
+io.github.thebusybiscuit.slimefun4.api.exceptions
io.github.thebusybiscuit.slimefun4.api.geo
io.github.thebusybiscuit.slimefun4.api.gps
io.github.thebusybiscuit.slimefun4.api.items
diff --git a/docs/serialized-form.html b/docs/serialized-form.html
new file mode 100644
index 000000000..5f91db76e
--- /dev/null
+++ b/docs/serialized-form.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+Serialized Form
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/exceptions/IDConflictException.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/exceptions/IDConflictException.java
new file mode 100644
index 000000000..9ffc94706
--- /dev/null
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/exceptions/IDConflictException.java
@@ -0,0 +1,28 @@
+package io.github.thebusybiscuit.slimefun4.api.exceptions;
+
+import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
+
+/**
+ * An {@link IDConflictException} is thrown whenever two Addons try to add
+ * a {@link SlimefunItem} with the same id.
+ *
+ * @author TheBusyBiscuit
+ *
+ */
+public class IDConflictException extends RuntimeException {
+
+ private static final long serialVersionUID = -733012666374895255L;
+
+ /**
+ * Constructs a new {@link IDConflictException} with the given items.
+ *
+ * @param item1
+ * The first {@link SlimefunItem} with this id
+ * @param item2
+ * The second {@link SlimefunItem} with this id
+ */
+ public IDConflictException(SlimefunItem item1, SlimefunItem item2) {
+ super("Two items have conflicting ids: " + item1.toString() + " and " + item2.toString());
+ }
+
+}
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/TeleportationManager.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/TeleportationManager.java
index d7f967e92..dd8dd5db2 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/TeleportationManager.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/TeleportationManager.java
@@ -64,8 +64,8 @@ public final class TeleportationManager {
Location l = entry.getValue();
ItemStack globe = network.getIcon(entry);
- menu.addItem(slot, new CustomItem(globe, entry.getKey(), "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "&8\u21E8 &7Estimated Teleportation Time: &r" + DoubleHandler.fixDouble(0.5 * getTeleportationTime(network.getNetworkComplexity(uuid), source, l)) + "s", "", "&8\u21E8 &cClick to select"));
- menu.addMenuClickHandler(slot, (pl, slotn, item, action) -> {
+ menu.addItem(slot, new CustomItem(globe, entry.getKey(), "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "&8\u21E8 &7Estimated Teleportation Time: &r" + DoubleHandler.fixDouble(0.5 * getTeleportationTime(complexity, source, l)) + "s", "", "&8\u21E8 &cClick to select"));
+ menu.addMenuClickHandler(slot, (pl, s, item, action) -> {
pl.closeInventory();
start(pl.getUniqueId(), complexity, source, l, false);
return false;
@@ -81,14 +81,14 @@ public final class TeleportationManager {
teleporterUsers.add(uuid);
int time = getTeleportationTime(complexity, source, destination);
- updateProgress(uuid, 100 / time, 1, source, destination, resistance);
+ updateProgress(uuid, 100 / time, 0, source, destination, resistance);
}
public int getTeleportationTime(int complexity, Location source, Location destination) {
if (complexity < 100) return 100;
- int speed = 75_000 + complexity * complexity;
- return 1 + Math.min(2 * distanceSquared(source, destination) / speed, 40);
+ int speed = 50_000 + complexity * complexity;
+ return 1 + Math.min(4 * distanceSquared(source, destination) / speed, 40);
}
private int distanceSquared(Location source, Location destination) {
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java
index 47172d2be..070d78065 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java
@@ -87,15 +87,17 @@ class ResearchCommand extends SubCommand {
}
private void reset(PlayerProfile profile, Player p) {
- for (Research res : SlimefunPlugin.getRegistry().getResearches()) {
- profile.setResearched(res, false);
+ for (Research research : SlimefunPlugin.getRegistry().getResearches()) {
+ profile.setResearched(research, false);
}
SlimefunPlugin.getLocal().sendMessage(p, "commands.research.reset", true, msg -> msg.replace(PLACEHOLDER_PLAYER, p.getName()));
}
private Optional getResearchFromString(String input) {
- if (!input.contains(":")) return Optional.empty();
+ if (!input.contains(":")) {
+ return Optional.empty();
+ }
for (Research research : SlimefunPlugin.getRegistry().getResearches()) {
if (research.getKey().toString().equalsIgnoreCase(input)) {
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/SlimefunGuideSettings.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/SlimefunGuideSettings.java
index 196225eff..d839a0c6f 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/SlimefunGuideSettings.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/SlimefunGuideSettings.java
@@ -6,7 +6,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import io.github.thebusybiscuit.slimefun4.utils.PatternUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@@ -26,6 +25,7 @@ import io.github.thebusybiscuit.slimefun4.core.services.localization.Language;
import io.github.thebusybiscuit.slimefun4.utils.ChatUtils;
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
import io.github.thebusybiscuit.slimefun4.utils.NumberUtils;
+import io.github.thebusybiscuit.slimefun4.utils.PatternUtils;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
@@ -180,7 +180,7 @@ public final class SlimefunGuideSettings {
i++;
}
- if (SlimefunPlugin.getSettings().translationsEnabled) {
+ if (SlimefunPlugin.getLocal().isEnabled()) {
Language language = SlimefunPlugin.getLocal().getLanguage(p);
String languageName = language.isDefault() ? (SlimefunPlugin.getLocal().getMessage(p, "languages.default") + ChatColor.DARK_GRAY + " (" + language.getName(p) + ")") : SlimefunPlugin.getLocal().getMessage(p, "languages." + language.getID());
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java
index 46c25ba58..f5f058da4 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java
@@ -38,6 +38,7 @@ public class LocalizationService extends SlimefunLocalization {
// All supported languages are stored in this LinkedHashMap, it is Linked so we keep the order
private final Map languages = new LinkedHashMap<>();
+ private final boolean translationsEnabled;
private final SlimefunPlugin plugin;
private final NamespacedKey languageKey;
private final Language defaultLanguage;
@@ -46,6 +47,7 @@ public class LocalizationService extends SlimefunLocalization {
super(plugin);
this.plugin = plugin;
+ translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations");
languageKey = new NamespacedKey(plugin, LANGUAGE_PATH);
defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b");
@@ -209,4 +211,8 @@ public class LocalizationService extends SlimefunLocalization {
return null;
}
}
+
+ public boolean isEnabled() {
+ return translationsEnabled;
+ }
}
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/ChestSlimefunGuide.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/ChestSlimefunGuide.java
index a422c1fb2..da5917df8 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/ChestSlimefunGuide.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/ChestSlimefunGuide.java
@@ -97,60 +97,9 @@ public class ChestSlimefunGuide implements SlimefunGuideImplementation {
}
else {
Category category = categories.get(target);
- boolean locked = true;
- for (SlimefunItem item : category.getItems()) {
- if (Slimefun.isEnabled(p, item, false)) {
- locked = false;
- break;
- }
- }
-
- if (!locked) {
- if (!(category instanceof LockedCategory)) {
- if (!(category instanceof SeasonalCategory)) {
- menu.addItem(index, category.getItem(p));
- menu.addMenuClickHandler(index, (pl, slot, item, action) -> {
- openCategory(profile, category, survival, 1);
- return false;
- });
- index++;
- }
- else {
- if (((SeasonalCategory) category).isUnlocked()) {
- menu.addItem(index, category.getItem(p));
- menu.addMenuClickHandler(index, (pl, slot, item, action) -> {
- openCategory(profile, category, survival, 1);
- return false;
- });
- index++;
- }
- }
- }
- else if (!survival || ((LockedCategory) category).hasUnlocked(p, profile)) {
- menu.addItem(index, category.getItem(p));
- menu.addMenuClickHandler(index, (pl, slot, item, action) -> {
- openCategory(profile, category, survival, 1);
- return false;
- });
-
- index++;
- }
- else {
- List parents = new ArrayList<>();
- parents.add("");
- parents.add(ChatColor.translateAlternateColorCodes('&', "&rYou need to unlock all Items"));
- parents.add(ChatColor.translateAlternateColorCodes('&', "&rfrom the following Categories first:"));
- parents.add("");
-
- for (Category parent : ((LockedCategory) category).getParents()) {
- parents.add(parent.getItem(p).getItemMeta().getDisplayName());
- }
-
- menu.addItem(index, new CustomItem(Material.BARRIER, "&4LOCKED &7- &r" + category.getItem(p).getItemMeta().getDisplayName(), parents.toArray(new String[0])));
- menu.addMenuClickHandler(index, ChestMenuUtils.getEmptyClickHandler());
- index++;
- }
+ if (!category.isHidden(p) && displayCategory(menu, p, profile, survival, category, index)) {
+ index++;
}
}
}
@@ -172,6 +121,46 @@ public class ChestSlimefunGuide implements SlimefunGuideImplementation {
menu.open(p);
}
+ private boolean displayCategory(ChestMenu menu, Player p, PlayerProfile profile, boolean survival, Category category, int index) {
+ if (!(category instanceof LockedCategory)) {
+ if (!(category instanceof SeasonalCategory) || ((SeasonalCategory) category).isUnlocked()) {
+ menu.addItem(index, category.getItem(p));
+ menu.addMenuClickHandler(index, (pl, slot, item, action) -> {
+ openCategory(profile, category, survival, 1);
+ return false;
+ });
+
+ return true;
+ }
+
+ return false;
+ }
+ else if (!survival || ((LockedCategory) category).hasUnlocked(p, profile)) {
+ menu.addItem(index, category.getItem(p));
+ menu.addMenuClickHandler(index, (pl, slot, item, action) -> {
+ openCategory(profile, category, survival, 1);
+ return false;
+ });
+
+ return true;
+ }
+ else {
+ List parents = new ArrayList<>();
+ parents.add("");
+ parents.add(ChatColor.translateAlternateColorCodes('&', "&rYou need to unlock all Items"));
+ parents.add(ChatColor.translateAlternateColorCodes('&', "&rfrom the following Categories first:"));
+ parents.add("");
+
+ for (Category parent : ((LockedCategory) category).getParents()) {
+ parents.add(parent.getItem(p).getItemMeta().getDisplayName());
+ }
+
+ menu.addItem(index, new CustomItem(Material.BARRIER, "&4LOCKED &7- &r" + category.getItem(p).getItemMeta().getDisplayName(), parents.toArray(new String[0])));
+ menu.addMenuClickHandler(index, ChestMenuUtils.getEmptyClickHandler());
+ return true;
+ }
+ }
+
@Override
public void openCategory(PlayerProfile profile, Category category, boolean survival, int page) {
Player p = profile.getPlayer();
@@ -600,27 +589,34 @@ public class ChestSlimefunGuide implements SlimefunGuideImplementation {
for (int i = 0; i < 18; i++) {
int slot = i % 2 == 0 ? inputs++ : outputs++;
-
- if ((i + (page * 18)) < recipes.size()) {
- if (page == 0) {
- menu.replaceExistingItem(slot, recipes.get(i + (page * 18)).clone());
- menu.addMenuClickHandler(slot, (pl, s, itemstack, action) -> {
- displayItem(profile, itemstack, true);
- return false;
- });
- }
- else {
- menu.replaceExistingItem(slot, recipes.get(i + (page * 18)).clone());
- }
- }
- else {
- menu.replaceExistingItem(slot, null);
- menu.addMenuClickHandler(slot, ChestMenuUtils.getEmptyClickHandler());
- }
+ addDisplayRecipe(menu, profile, recipes, slot, i, page);
}
}
}
+ private void addDisplayRecipe(ChestMenu menu, PlayerProfile profile, List recipes, int slot, int i, int page) {
+ if ((i + (page * 18)) < recipes.size()) {
+ ItemStack item = recipes.get(i + (page * 18));
+
+ // We want to clone this item to avoid corrupting the original
+ // but we wanna make sure no stupid addon creator sneaked some nulls in here
+ if (item != null) item = item.clone();
+
+ menu.replaceExistingItem(slot, item);
+
+ if (page == 0) {
+ menu.addMenuClickHandler(slot, (pl, s, itemstack, action) -> {
+ displayItem(profile, itemstack, true);
+ return false;
+ });
+ }
+ }
+ else {
+ menu.replaceExistingItem(slot, null);
+ menu.addMenuClickHandler(slot, ChestMenuUtils.getEmptyClickHandler());
+ }
+ }
+
private static ChestMenu create(Player p) {
ChestMenu menu = new ChestMenu(SlimefunPlugin.getLocal().getMessage(p, "guide.title.main"));
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoEnchanter.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoEnchanter.java
index 89008a0df..9436c82c1 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoEnchanter.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoEnchanter.java
@@ -28,8 +28,12 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
public class AutoEnchanter extends AContainer {
+ private final int emeraldEnchantsLimit;
+
public AutoEnchanter(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, recipeType, recipe);
+
+ emeraldEnchantsLimit = SlimefunPlugin.getCfg().getInt("options.emerald-enchantment-limit");
}
@Override
@@ -113,7 +117,7 @@ public class AutoEnchanter extends AContainer {
specialAmount += EmeraldEnchants.getInstance().getRegistry().getEnchantments(target).size();
}
- if (amount > 0 && specialAmount <= SlimefunPlugin.getSettings().emeraldEnchantsLimit) {
+ if (amount > 0 && specialAmount <= emeraldEnchantsLimit) {
ItemStack newItem = target.clone();
newItem.setAmount(1);
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/ElectricDustWasher.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/ElectricDustWasher.java
index bc7889180..026b5d5c0 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/ElectricDustWasher.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/ElectricDustWasher.java
@@ -23,9 +23,12 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
public abstract class ElectricDustWasher extends AContainer {
private OreWasher oreWasher;
+ private final boolean legacyMode;
public ElectricDustWasher(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, recipeType, recipe);
+
+ legacyMode = SlimefunPlugin.getCfg().getBoolean("options.legacy-dust-washer");
}
@Override
@@ -78,7 +81,7 @@ public abstract class ElectricDustWasher extends AContainer {
else {
for (int slot : getInputSlots()) {
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.SIFTED_ORE, true)) {
- if (!SlimefunPlugin.getSettings().legacyDustWasher) {
+ if (!legacyMode) {
boolean emptySlot = false;
for (int outputSlot : getOutputSlots()) {
@@ -92,7 +95,7 @@ public abstract class ElectricDustWasher extends AContainer {
ItemStack adding = oreWasher.getRandomDust();
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] { adding });
- if (SlimefunPlugin.getSettings().legacyDustWasher && !menu.fits(r.getOutput()[0], getOutputSlots())) return;
+ if (legacyMode && !menu.fits(r.getOutput()[0], getOutputSlots())) return;
menu.consumeItem(slot);
processing.put(b, r);
progress.put(b, r.getTicks());
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java
index fe04f383a..250794353 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java
@@ -23,6 +23,8 @@ import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
public class OreWasher extends MultiBlockMachine {
+
+ private final boolean legacyMode;
public OreWasher() {
super(
@@ -42,6 +44,8 @@ public class OreWasher extends MultiBlockMachine {
},
BlockFace.SELF
);
+
+ legacyMode = SlimefunPlugin.getCfg().getBoolean("options.legacy-ore-washer");
}
@Override
@@ -61,7 +65,7 @@ public class OreWasher extends MultiBlockMachine {
ItemStack adding = getRandomDust();
Inventory outputInv = null;
- if (!SlimefunPlugin.getSettings().legacyOreWasher) {
+ if (!legacyMode) {
// This is a fancy way of checking if there is empty space in the inv; by checking if an unobtainable item could fit in it.
// However, due to the way the method findValidOutputInv() functions, the dummyAdding will never actually be added to the real inventory,
// so it really doesn't matter what item the ItemStack is made by. SlimefunItems.DEBUG_FISH however, signals that it's
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BlockListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BlockListener.java
index 023685b92..409b44210 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BlockListener.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BlockListener.java
@@ -221,7 +221,9 @@ public class BlockListener implements Listener {
}
if (item.getType() != Material.AIR) {
for (ItemHandler handler : SlimefunItem.getPublicItemHandlers(BlockBreakHandler.class)) {
- if (((BlockBreakHandler) handler).onBlockBreak(e, item, fortune, drops)) break;
+ if (((BlockBreakHandler) handler).onBlockBreak(e, item, fortune, drops)) {
+ break;
+ }
}
}
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java
index b971b7586..adc48a4f2 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/MiscSetup.java
@@ -26,224 +26,219 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer;
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
import me.mrCookieSlime.Slimefun.api.Slimefun;
-import me.mrCookieSlime.Slimefun.utils.ConfigCache;
public final class MiscSetup {
-
- private MiscSetup() {}
-
- public static void setupMisc() {
- SlimefunItem talisman = SlimefunItem.getByID("COMMON_TALISMAN");
-
- if (talisman != null && (boolean) Slimefun.getItemValue(talisman.getID(), "recipe-requires-nether-stars")) {
- talisman.setRecipe(new ItemStack[] {
- SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2,
- null, new ItemStack(Material.NETHER_STAR), null,
- SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2
- });
- }
+
+ private MiscSetup() {}
+
+ public static void setupMisc() {
+ SlimefunItem talisman = SlimefunItem.getByID("COMMON_TALISMAN");
+
+ if (talisman != null && (boolean) Slimefun.getItemValue(talisman.getID(), "recipe-requires-nether-stars")) {
+ talisman.setRecipe(new ItemStack[] { SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2, null, new ItemStack(Material.NETHER_STAR), null, SlimefunItems.MAGIC_LUMP_2, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_2 });
+ }
Slimefun.getLogger().log(Level.INFO, "Loading Wiki pages...");
WikiSetup.addWikiPages(SlimefunPlugin.instance);
- }
-
- public static void loadItems(ConfigCache settings) {
- Iterator iterator = SlimefunPlugin.getRegistry().getEnabledSlimefunItems().iterator();
-
- while (iterator.hasNext()) {
- SlimefunItem item = iterator.next();
-
- if (item == null) {
- Slimefun.getLogger().log(Level.WARNING, "Removed bugged Item ('NULL?')");
- iterator.remove();
- }
- else if (item.getItem() == null) {
- Slimefun.getLogger().log(Level.WARNING, "Removed bugged Item ('" + item.getID() + "')");
- iterator.remove();
- }
- }
-
- List pre = new ArrayList<>();
- List init = new ArrayList<>();
- List post = new ArrayList<>();
-
- for (SlimefunItem item : SlimefunPlugin.getRegistry().getEnabledSlimefunItems()) {
- if (item instanceof Alloy) pre.add(item);
- else if (item instanceof SlimefunMachine) init.add(item);
- else post.add(item);
- }
-
- for (SlimefunItem item : pre) {
- item.load();
- }
-
- for (SlimefunItem item : init) {
- item.load();
- }
-
- for (SlimefunItem item : post) {
- item.load();
- }
+ }
- AutomatedCraftingChamber crafter = (AutomatedCraftingChamber) SlimefunItem.getByID("AUTOMATED_CRAFTING_CHAMBER");
-
- if (crafter != null) {
- SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ENHANCED_CRAFTING_TABLE");
-
- for (ItemStack[] inputs : RecipeType.getRecipeInputList(machine)) {
- StringBuilder builder = new StringBuilder();
- int i = 0;
-
- for (ItemStack item : inputs) {
- if (i > 0) {
- builder.append(" ");
- }
-
- builder.append(CustomItemSerializer.serialize(item, ItemFlag.MATERIAL, ItemFlag.ITEMMETA_DISPLAY_NAME, ItemFlag.ITEMMETA_LORE));
-
- i++;
- }
-
- SlimefunPlugin.getRegistry().getAutomatedCraftingChamberRecipes().put(builder.toString(), RecipeType.getRecipeOutputList(machine, inputs));
- }
-
- }
-
- List grinderRecipes = new ArrayList<>();
-
- SlimefunItem grinder = SlimefunItem.getByID("GRIND_STONE");
- if (grinder != null) {
- ItemStack[] input = null;
-
- for (ItemStack[] recipe : ((SlimefunMachine) grinder).getRecipes()) {
- if (input == null) {
- input = recipe;
- }
- else {
- if (input[0] != null && recipe[0] != null) {
- grinderRecipes.add(new ItemStack[] {input[0], recipe[0]});
- }
-
- input = null;
- }
- }
- }
+ public static void loadItems() {
+ Iterator iterator = SlimefunPlugin.getRegistry().getEnabledSlimefunItems().iterator();
- SlimefunItem crusher = SlimefunItem.getByID("ORE_CRUSHER");
- if (crusher != null) {
- ItemStack[] input = null;
-
- for (ItemStack[] recipe : ((SlimefunMachine) crusher).getRecipes()) {
- if (input == null) {
- input = recipe;
- }
- else {
- if (input[0] != null && recipe[0] != null) {
- grinderRecipes.add(new ItemStack[] {input[0], recipe[0]});
- }
- input = null;
- }
- }
- }
-
- // Favour 8 Cobblestone -> 1 Sand Recipe over 1 Cobblestone -> 1 Gravel Recipe
- Stream stream = grinderRecipes.stream();
-
- if (!settings.legacyOreGrinder) {
- stream = stream.sorted((a, b) -> Integer.compare(b[0].getAmount(), a[0].getAmount()));
- }
-
- stream.forEach(recipe -> registerMachineRecipe("ELECTRIC_ORE_GRINDER", 4, new ItemStack[] {recipe[0]}, new ItemStack[] {recipe[1]}));
-
- SlimefunItem smeltery = SlimefunItem.getByID("SMELTERY");
- if (smeltery != null) {
- ItemStack[] input = null;
-
- for (ItemStack[] recipe : ((SlimefunMachine) smeltery).getRecipes()) {
- if (input == null) {
- input = recipe;
- }
- else {
- if (input[0] != null && recipe[0] != null) {
- List inputs = new ArrayList<>();
- boolean dust = false;
-
- for (ItemStack item : input) {
- if (item != null) {
- inputs.add(item);
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.ALUMINUM_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.COPPER_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.GOLD_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.IRON_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.LEAD_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.MAGNESIUM_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.SILVER_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.TIN_DUST, true)) dust = true;
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.ZINC_DUST, true)) dust = true;
- }
- }
+ while (iterator.hasNext()) {
+ SlimefunItem item = iterator.next();
- // We want to exclude Dust to Ingot Recipes
- if (!(dust && inputs.size() == 1)) {
- registerMachineRecipe("ELECTRIC_SMELTERY", 12, inputs.toArray(new ItemStack[0]), new ItemStack[] {recipe[0]});
- }
- }
-
- input = null;
- }
- }
- }
-
- CommandSender sender = Bukkit.getConsoleSender();
+ if (item == null) {
+ Slimefun.getLogger().log(Level.WARNING, "Removed bugged Item ('NULL?')");
+ iterator.remove();
+ }
+ else if (item.getItem() == null) {
+ Slimefun.getLogger().log(Level.WARNING, "Removed bugged Item ('" + item.getID() + "')");
+ iterator.remove();
+ }
+ }
- int total = SlimefunPlugin.getRegistry().getEnabledSlimefunItems().size();
- int vanilla = SlimefunPlugin.getRegistry().countVanillaItems();
-
- sender.sendMessage("");
- sender.sendMessage(ChatColor.GREEN + "######################### - Slimefun v" + SlimefunPlugin.getVersion() + " - #########################");
- sender.sendMessage("");
- sender.sendMessage(ChatColor.GREEN + "Successfully loaded " + total + " Items (" + SlimefunPlugin.getRegistry().getResearches().size() + " Researches)");
- sender.sendMessage(ChatColor.GREEN + "( " + vanilla + " Items from Slimefun, " + (total - vanilla) + " Items from " + SlimefunPlugin.getInstalledAddons().size() + " Addons )");
- sender.sendMessage("");
- sender.sendMessage(ChatColor.GREEN + "Slimefun is an Open-Source project that is maintained by community developers!");
-
- if (SlimefunPlugin.getUpdater().getBranch().isOfficial()) {
- sender.sendMessage("");
- sender.sendMessage(ChatColor.GREEN + " -- Source Code: https://github.com/TheBusyBiscuit/Slimefun4");
- sender.sendMessage(ChatColor.GREEN + " -- Wiki: https://github.com/TheBusyBiscuit/Slimefun4/wiki");
- sender.sendMessage(ChatColor.GREEN + " -- Bug Reports: https://github.com/TheBusyBiscuit/Slimefun4/issues");
- sender.sendMessage(ChatColor.GREEN + " -- Discord: https://discord.gg/fsD4Bkh");
- }
- else {
- sender.sendMessage(ChatColor.GREEN + " -- UNOFFICIALLY MODIFIED BUILD - NO OFFICIAL SUPPORT GIVEN");
- }
-
- sender.sendMessage("");
-
- SlimefunPlugin.getItemCfg().save();
- SlimefunPlugin.getResearchCfg().save();
- SlimefunPlugin.getWhitelist().save();
- }
-
- private static void registerMachineRecipe(String machine, int seconds, ItemStack[] input, ItemStack[] output) {
- for (SlimefunItem item : SlimefunPlugin.getRegistry().getEnabledSlimefunItems()) {
- if (item instanceof AContainer && ((AContainer) item).getMachineIdentifier().equals(machine)) {
- ((AContainer) item).registerRecipe(seconds, input, output);
- }
- }
- }
+ List pre = new ArrayList<>();
+ List init = new ArrayList<>();
+ List post = new ArrayList<>();
- public static void setupItemSettings() {
- for (World world : Bukkit.getWorlds()) {
- SlimefunPlugin.getWhitelist().setDefaultValue(world.getName() + ".enabled-items.SLIMEFUN_GUIDE", true);
- }
-
- Slimefun.setItemVariable("ORE_CRUSHER", "double-ores", true);
-
- for (Enchantment enchantment : Enchantment.values()) {
- for (int i = 1; i <= enchantment.getMaxLevel(); i++) {
- Slimefun.setItemVariable("MAGICIAN_TALISMAN", "allow-enchantments." + enchantment.getKey().getKey() + ".level." + i, true);
- }
- }
- }
+ for (SlimefunItem item : SlimefunPlugin.getRegistry().getEnabledSlimefunItems()) {
+ if (item instanceof Alloy) pre.add(item);
+ else if (item instanceof SlimefunMachine) init.add(item);
+ else post.add(item);
+ }
+
+ for (SlimefunItem item : pre) {
+ item.load();
+ }
+
+ for (SlimefunItem item : init) {
+ item.load();
+ }
+
+ for (SlimefunItem item : post) {
+ item.load();
+ }
+
+ AutomatedCraftingChamber crafter = (AutomatedCraftingChamber) SlimefunItem.getByID("AUTOMATED_CRAFTING_CHAMBER");
+
+ if (crafter != null) {
+ SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ENHANCED_CRAFTING_TABLE");
+
+ for (ItemStack[] inputs : RecipeType.getRecipeInputList(machine)) {
+ StringBuilder builder = new StringBuilder();
+ int i = 0;
+
+ for (ItemStack item : inputs) {
+ if (i > 0) {
+ builder.append(" ");
+ }
+
+ builder.append(CustomItemSerializer.serialize(item, ItemFlag.MATERIAL, ItemFlag.ITEMMETA_DISPLAY_NAME, ItemFlag.ITEMMETA_LORE));
+
+ i++;
+ }
+
+ SlimefunPlugin.getRegistry().getAutomatedCraftingChamberRecipes().put(builder.toString(), RecipeType.getRecipeOutputList(machine, inputs));
+ }
+
+ }
+
+ List grinderRecipes = new ArrayList<>();
+
+ SlimefunItem grinder = SlimefunItem.getByID("GRIND_STONE");
+ if (grinder != null) {
+ ItemStack[] input = null;
+
+ for (ItemStack[] recipe : ((SlimefunMachine) grinder).getRecipes()) {
+ if (input == null) {
+ input = recipe;
+ }
+ else {
+ if (input[0] != null && recipe[0] != null) {
+ grinderRecipes.add(new ItemStack[] { input[0], recipe[0] });
+ }
+
+ input = null;
+ }
+ }
+ }
+
+ SlimefunItem crusher = SlimefunItem.getByID("ORE_CRUSHER");
+ if (crusher != null) {
+ ItemStack[] input = null;
+
+ for (ItemStack[] recipe : ((SlimefunMachine) crusher).getRecipes()) {
+ if (input == null) {
+ input = recipe;
+ }
+ else {
+ if (input[0] != null && recipe[0] != null) {
+ grinderRecipes.add(new ItemStack[] { input[0], recipe[0] });
+ }
+ input = null;
+ }
+ }
+ }
+
+ // Favour 8 Cobblestone -> 1 Sand Recipe over 1 Cobblestone -> 1 Gravel Recipe
+ Stream stream = grinderRecipes.stream();
+
+ if (!SlimefunPlugin.getCfg().getBoolean("options.legacy-ore-grinder")) {
+ stream = stream.sorted((a, b) -> Integer.compare(b[0].getAmount(), a[0].getAmount()));
+ }
+
+ stream.forEach(recipe -> registerMachineRecipe("ELECTRIC_ORE_GRINDER", 4, new ItemStack[] { recipe[0] }, new ItemStack[] { recipe[1] }));
+
+ SlimefunItem smeltery = SlimefunItem.getByID("SMELTERY");
+ if (smeltery != null) {
+ ItemStack[] input = null;
+
+ for (ItemStack[] recipe : ((SlimefunMachine) smeltery).getRecipes()) {
+ if (input == null) {
+ input = recipe;
+ }
+ else {
+ if (input[0] != null && recipe[0] != null) {
+ List inputs = new ArrayList<>();
+ boolean dust = false;
+
+ for (ItemStack item : input) {
+ if (item != null) {
+ inputs.add(item);
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.ALUMINUM_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.COPPER_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.GOLD_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.IRON_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.LEAD_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.MAGNESIUM_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.SILVER_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.TIN_DUST, true)) dust = true;
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.ZINC_DUST, true)) dust = true;
+ }
+ }
+
+ // We want to exclude Dust to Ingot Recipes
+ if (!(dust && inputs.size() == 1)) {
+ registerMachineRecipe("ELECTRIC_SMELTERY", 12, inputs.toArray(new ItemStack[0]), new ItemStack[] { recipe[0] });
+ }
+ }
+
+ input = null;
+ }
+ }
+ }
+
+ CommandSender sender = Bukkit.getConsoleSender();
+
+ int total = SlimefunPlugin.getRegistry().getEnabledSlimefunItems().size();
+ int vanilla = SlimefunPlugin.getRegistry().countVanillaItems();
+
+ sender.sendMessage("");
+ sender.sendMessage(ChatColor.GREEN + "######################### - Slimefun v" + SlimefunPlugin.getVersion() + " - #########################");
+ sender.sendMessage("");
+ sender.sendMessage(ChatColor.GREEN + "Successfully loaded " + total + " Items (" + SlimefunPlugin.getRegistry().getResearches().size() + " Researches)");
+ sender.sendMessage(ChatColor.GREEN + "( " + vanilla + " Items from Slimefun, " + (total - vanilla) + " Items from " + SlimefunPlugin.getInstalledAddons().size() + " Addons )");
+ sender.sendMessage("");
+ sender.sendMessage(ChatColor.GREEN + "Slimefun is an Open-Source project that is maintained by community developers!");
+
+ if (SlimefunPlugin.getUpdater().getBranch().isOfficial()) {
+ sender.sendMessage("");
+ sender.sendMessage(ChatColor.GREEN + " -- Source Code: https://github.com/TheBusyBiscuit/Slimefun4");
+ sender.sendMessage(ChatColor.GREEN + " -- Wiki: https://github.com/TheBusyBiscuit/Slimefun4/wiki");
+ sender.sendMessage(ChatColor.GREEN + " -- Bug Reports: https://github.com/TheBusyBiscuit/Slimefun4/issues");
+ sender.sendMessage(ChatColor.GREEN + " -- Discord: https://discord.gg/fsD4Bkh");
+ }
+ else {
+ sender.sendMessage(ChatColor.GREEN + " -- UNOFFICIALLY MODIFIED BUILD - NO OFFICIAL SUPPORT GIVEN");
+ }
+
+ sender.sendMessage("");
+
+ SlimefunPlugin.getItemCfg().save();
+ SlimefunPlugin.getResearchCfg().save();
+ SlimefunPlugin.getWhitelist().save();
+ }
+
+ private static void registerMachineRecipe(String machine, int seconds, ItemStack[] input, ItemStack[] output) {
+ for (SlimefunItem item : SlimefunPlugin.getRegistry().getEnabledSlimefunItems()) {
+ if (item instanceof AContainer && ((AContainer) item).getMachineIdentifier().equals(machine)) {
+ ((AContainer) item).registerRecipe(seconds, input, output);
+ }
+ }
+ }
+
+ public static void setupItemSettings() {
+ for (World world : Bukkit.getWorlds()) {
+ SlimefunPlugin.getWhitelist().setDefaultValue(world.getName() + ".enabled-items.SLIMEFUN_GUIDE", true);
+ }
+
+ Slimefun.setItemVariable("ORE_CRUSHER", "double-ores", true);
+
+ for (Enchantment enchantment : Enchantment.values()) {
+ for (int i = 1; i <= enchantment.getMaxLevel(); i++) {
+ Slimefun.setItemVariable("MAGICIAN_TALISMAN", "allow-enchantments." + enchantment.getKey().getKey() + ".level." + i, true);
+ }
+ }
+ }
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java
index 4c7c9facd..1d7821cd8 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java
@@ -19,6 +19,7 @@ import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuide;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Lists.Categories;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
+import me.mrCookieSlime.Slimefun.api.Slimefun;
/**
* Statically handles categories.
@@ -159,4 +160,24 @@ public class Category implements Keyed {
return "Slimefun Category {" + key + ",tier=" + tier + "}";
}
+ /**
+ * This method checks whether this {@link Category} will be hidden for the specified
+ * {@link Player}.
+ *
+ * Categories are hidden if all of their items have been disabled.
+ *
+ * @param p
+ * The {@link Player} to check for
+ * @return Whether this {@link Category} will be hidden to the given {@link Player}
+ */
+ public boolean isHidden(Player p) {
+ for (SlimefunItem slimefunItem : getItems()) {
+ if (Slimefun.isEnabled(p, slimefunItem, false)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java
index 8dc034924..81996becb 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java
@@ -3,7 +3,6 @@ package me.mrCookieSlime.Slimefun.Objects;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -251,10 +250,6 @@ public class Research implements Keyed {
SlimefunPlugin.getRegistry().getResearches().add(this);
SlimefunPlugin.getRegistry().getResearchIds().add(this);
-
- if (SlimefunPlugin.getSettings().printOutLoading) {
- Slimefun.getLogger().log(Level.INFO, "Loaded Research \"{0}\"", name);
- }
}
// Temporary migration method from ids to Namespaced Keys.
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java
deleted file mode 100644
index 520e0bc13..000000000
--- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Juice.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package me.mrCookieSlime.Slimefun.Objects.SlimefunItem;
-
-import org.bukkit.inventory.ItemStack;
-
-import me.mrCookieSlime.Slimefun.Lists.RecipeType;
-import me.mrCookieSlime.Slimefun.Objects.Category;
-import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
-
-/**
- *
- * @deprecated Moved to {@code io.github.thebusybiscuit.slimefun4.implementation.items.food.Juice}
- *
- */
-@Deprecated
-public class Juice extends io.github.thebusybiscuit.slimefun4.implementation.items.food.Juice {
-
- public Juice(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
- super(category, item, recipeType, recipe);
- }
-
-}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java
index 69c92faae..595cfe3d5 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SimpleSlimefunItem.java
@@ -43,6 +43,11 @@ public abstract class SimpleSlimefunItem extends Slimefun
addItemHandler(getItemHandler());
}
+ /**
+ * This returns the {@link ItemHandler} that will be added to this {@link SlimefunItem}.
+ *
+ * @return The {@link ItemHandler} that should be added to this {@link SlimefunItem}
+ */
public abstract T getItemHandler();
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java
index beef71292..78aa5c5cf 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java
@@ -9,7 +9,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.logging.Level;
-import java.util.logging.Logger;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
@@ -23,6 +22,7 @@ import org.bukkit.inventory.ItemStack;
import io.github.thebusybiscuit.cscorelib2.collections.OptionalMap;
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon;
+import io.github.thebusybiscuit.slimefun4.api.exceptions.IDConflictException;
import io.github.thebusybiscuit.slimefun4.api.items.Placeable;
import io.github.thebusybiscuit.slimefun4.core.attributes.EnergyNetComponent;
import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactive;
@@ -217,6 +217,7 @@ public class SlimefunItem implements Placeable {
return blockTicker;
}
+ // We should maybe refactor this and move it to a subclass
public GeneratorTicker getEnergyTicker() {
return energyTicker;
}
@@ -230,17 +231,6 @@ public class SlimefunItem implements Placeable {
return state != ItemState.ENABLED;
}
- /**
- * This method is deprecated.
- *
- * @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
- * @param slimefun
- */
- @Deprecated
- public void register() {
- register((SlimefunAddon) null);
- }
-
/**
* This method registers this {@link SlimefunItem}.
* Always call this method after your {@link SlimefunItem} has been initialized.
@@ -255,12 +245,14 @@ public class SlimefunItem implements Placeable {
try {
preRegister();
- if (SlimefunPlugin.getRegistry().getSlimefunItemIds().containsKey(this.id)) {
- throw new IllegalArgumentException("ID \"" + this.id + "\" already exists");
+ SlimefunItem conflicting = getByID(id);
+
+ if (conflicting != null) {
+ throw new IDConflictException(this, conflicting);
}
- if (this.recipe.length < 9) {
- this.recipe = new ItemStack[] { null, null, null, null, null, null, null, null, null };
+ if (recipe == null || recipe.length < 9) {
+ recipe = new ItemStack[] { null, null, null, null, null, null, null, null, null };
}
SlimefunPlugin.getRegistry().getAllSlimefunItems().add(this);
@@ -316,15 +308,11 @@ public class SlimefunItem implements Placeable {
SlimefunPlugin.getRegistry().getSlimefunItemIds().put(this.id, this);
for (ItemHandler handler : itemhandlers.values()) {
- if (!handler.isPrivate() || !areItemHandlersPrivate()) {
+ if (!handler.isPrivate()) {
Set handlerset = getPublicItemHandlers(handler.getIdentifier());
handlerset.add(handler);
}
}
-
- if (SlimefunPlugin.getSettings().printOutLoading) {
- info("Loaded Item \"" + id + "\"");
- }
}
else {
if (this instanceof VanillaItem) {
@@ -338,7 +326,7 @@ public class SlimefunItem implements Placeable {
postRegister();
}
catch (Exception x) {
- error("Registering the Item '" + id + "' has failed", x);
+ error("Registering " + toString() + " has failed", x);
}
}
@@ -402,45 +390,29 @@ public class SlimefunItem implements Placeable {
return useableInWorkbench;
}
+ /**
+ * This sets whether or not this {@link SlimefunItem} is allowed to be
+ * used in a normal Crafting Table.
+ *
+ * @param useable
+ * Whether this {@link SlimefunItem} should be useable in a workbench
+ *
+ * @return This instance of {@link SlimefunItem}
+ */
public SlimefunItem setUseableInWorkbench(boolean useable) {
this.useableInWorkbench = useable;
return this;
}
- public static SlimefunItem getByID(String id) {
- return SlimefunPlugin.getRegistry().getSlimefunItemIds().get(id);
- }
-
- public static SlimefunItem getByItem(ItemStack item) {
- if (item == null) return null;
-
- if (item instanceof SlimefunItemStack) {
- return getByID(((SlimefunItemStack) item).getItemID());
- }
-
- if (item.hasItemMeta()) {
- Optional itemID = SlimefunPlugin.getItemDataService().getItemData(item);
-
- if (itemID.isPresent()) {
- return getByID(itemID.get());
- }
- }
-
- for (SlimefunItem sfi : SlimefunPlugin.getRegistry().getAllSlimefunItems()) {
- if (sfi.isItem(item)) {
- // If we have to loop all items for the given item, then at least
- // set the id via PersistenDataAPI for future performance boosts
- SlimefunPlugin.getItemDataService().setItemData(item, sfi.getID());
-
- return sfi;
- }
- }
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.BROKEN_SPAWNER, false)) return getByID("BROKEN_SPAWNER");
- if (SlimefunManager.isItemSimilar(item, SlimefunItems.REPAIRED_SPAWNER, false)) return getByID("REINFORCED_SPAWNER");
-
- return null;
- }
-
+ /**
+ * This method checks whether the provided {@link ItemStack} represents
+ * this {@link SlimefunItem}.
+ *
+ * @param item
+ * The {@link ItemStack} to compare
+ *
+ * @return Whether the given {@link ItemStack} represents this {@link SlimefunItem}
+ */
public boolean isItem(ItemStack item) {
if (item == null) return false;
@@ -519,15 +491,6 @@ public class SlimefunItem implements Placeable {
}
}
- public static Set getPublicItemHandlers(Class extends ItemHandler> identifier) {
- return SlimefunPlugin.getRegistry().getPublicItemHandlers().computeIfAbsent(identifier, c -> new HashSet<>());
- }
-
- public static ItemStack getItem(String id) {
- SlimefunItem item = getByID(id);
- return item != null ? item.getItem() : null;
- }
-
/**
* This method is called before {@link #register(SlimefunAddon)}.
* Override this method to add any additional setup, adding an {@link ItemHandler} for example.
@@ -551,14 +514,6 @@ public class SlimefunItem implements Placeable {
this.item = stack;
}
- public static boolean isTicking(String item) {
- return SlimefunPlugin.getRegistry().getTickerBlocks().contains(item);
- }
-
- public static void registerBlockHandler(String id, SlimefunBlockHandler handler) {
- SlimefunPlugin.getRegistry().getBlockHandlers().put(id, handler);
- }
-
/**
* This method will assign the given wiki page to this Item.
* Note that you only need to provide the page name itself,
@@ -613,21 +568,6 @@ public class SlimefunItem implements Placeable {
return itemhandlers.values();
}
- /**
- * Override this method if you don't want to add your Item Handler to the global list.
- * Only use this method if you absolutely know what you are doing and can make sure that the
- * Item handler is handled somewhere else.
- *
- * @deprecated This method was just a temporary way to add backwards compatibility, it will soon not be needed
- * anymore
- *
- * @return Whether this Item handler is handled directly by the Item itself
- */
- @Deprecated
- protected boolean areItemHandlersPrivate() {
- return false;
- }
-
/**
* This method calls every {@link ItemHandler} of the given {@link Class}
* and performs the action as specified via the {@link Consumer}.
@@ -646,7 +586,7 @@ public class SlimefunItem implements Placeable {
callable.accept(c.cast(handler.get()));
}
catch (Throwable x) {
- error("Could not pass \"" + c.getSimpleName() + "\" for the following Item: \"" + getID() + "\"", x);
+ error("Could not pass \"" + c.getSimpleName() + "\" for " + toString(), x);
}
return true;
@@ -655,13 +595,18 @@ public class SlimefunItem implements Placeable {
return false;
}
+ /**
+ * This returns whether or not we are scheduling a ticking task for this block.
+ *
+ * @return Whether this {@link SlimefunItem} is a ticking block
+ */
public boolean isTicking() {
return ticking;
}
@Override
public String toString() {
- return "SlimefunItem: " + id + " (" + state + ", addon=" + (addon == null ? "Unknown" : addon.getName()) + ")";
+ return getClass().getSimpleName() + " - '" + id + "' (" + addon.getName() + ')';
}
@Override
@@ -674,22 +619,12 @@ public class SlimefunItem implements Placeable {
return getDrops();
}
- protected Logger getLogger() {
- if (addon != null) {
- return addon.getLogger();
- }
- else {
- // This can be removed once SlimefunAddon is required for registration.
- return Bukkit.getLogger();
- }
- }
-
public void info(String message) {
- getLogger().log(Level.INFO, message);
+ addon.getLogger().log(Level.INFO, message);
}
public void warn(String message) {
- getLogger().log(Level.WARNING, message);
+ addon.getLogger().log(Level.WARNING, message);
}
/**
@@ -702,15 +637,59 @@ public class SlimefunItem implements Placeable {
* The {@link Throwable} to throw as a stacktrace.
*/
public void error(String message, Throwable throwable) {
- if (addon != null && addon.getBugTrackerURL() != null) {
- getLogger().log(Level.SEVERE, "Item \"{0}\" from {1} v{2} has caused an Error!", new Object[] { id, addon.getName(), addon.getPluginVersion() });
- getLogger().log(Level.SEVERE, "Report this here: {0}", addon.getBugTrackerURL());
- }
- else {
- getLogger().log(Level.SEVERE, "DO NOT REPORT THIS TO SLIMEFUN");
- getLogger().log(Level.SEVERE, "This is caused by an Addon that added \"{0}\"", id);
+ addon.getLogger().log(Level.SEVERE, "Item \"{0}\" from {1} v{2} has caused an Error!", new Object[] { id, addon.getName(), addon.getPluginVersion() });
+
+ if (addon.getBugTrackerURL() != null) {
+ addon.getLogger().log(Level.SEVERE, "You can report it here: {0}", addon.getBugTrackerURL());
}
- getLogger().log(Level.SEVERE, message, throwable);
+ addon.getLogger().log(Level.SEVERE, message, throwable);
+ }
+
+ public static SlimefunItem getByID(String id) {
+ return SlimefunPlugin.getRegistry().getSlimefunItemIds().get(id);
+ }
+
+ public static SlimefunItem getByItem(ItemStack item) {
+ if (item == null) return null;
+
+ if (item instanceof SlimefunItemStack) {
+ return getByID(((SlimefunItemStack) item).getItemID());
+ }
+
+ if (item.hasItemMeta()) {
+ Optional itemID = SlimefunPlugin.getItemDataService().getItemData(item);
+
+ if (itemID.isPresent()) {
+ return getByID(itemID.get());
+ }
+ }
+
+ for (SlimefunItem sfi : SlimefunPlugin.getRegistry().getAllSlimefunItems()) {
+ if (sfi.isItem(item)) {
+ // If we have to loop all items for the given item, then at least
+ // set the id via PersistenDataAPI for future performance boosts
+ SlimefunPlugin.getItemDataService().setItemData(item, sfi.getID());
+
+ return sfi;
+ }
+ }
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.BROKEN_SPAWNER, false)) return getByID("BROKEN_SPAWNER");
+ if (SlimefunManager.isItemSimilar(item, SlimefunItems.REPAIRED_SPAWNER, false)) return getByID("REINFORCED_SPAWNER");
+
+ return null;
+ }
+
+ public static ItemStack getItem(String id) {
+ SlimefunItem item = getByID(id);
+ return item != null ? item.getItem() : null;
+ }
+
+ public static Set getPublicItemHandlers(Class extends ItemHandler> identifier) {
+ return SlimefunPlugin.getRegistry().getPublicItemHandlers().computeIfAbsent(identifier, c -> new HashSet<>());
+ }
+
+ public static void registerBlockHandler(String id, SlimefunBlockHandler handler) {
+ SlimefunPlugin.getRegistry().getBlockHandlers().put(id, handler);
}
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java
index 11b2c560c..75a658aaf 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java
@@ -15,6 +15,7 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
import me.mrCookieSlime.Slimefun.Objects.Category;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
+// This class will be deprecated at some point too, we now got MultiBlockMachine.java
public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem {
protected final List recipes;
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java
index 5fc6bc097..afd9caba6 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java
@@ -21,7 +21,6 @@ import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Lists.Categories;
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
-import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
import me.mrCookieSlime.Slimefun.Objects.Category;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
@@ -190,29 +189,33 @@ public final class SlimefunManager {
if (item == null || item.getType() == Material.AIR) {
return false;
}
- else if (isItemSimilar(item, SlimefunItems.BOUND_BACKPACK, false)) {
- return !SlimefunItem.getByID("BOUND_BACKPACK").isDisabled();
- }
else {
- ItemStack strippedItem = item.clone();
+ SlimefunItem backpack = SlimefunItem.getByID("BOUND_BACKPACK");
- if (SlimefunPlugin.getHooks().isEmeraldEnchantsInstalled()) {
- for (ItemEnchantment enchantment : EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) {
- EmeraldEnchants.getInstance().getRegistry().applyEnchantment(strippedItem, enchantment.getEnchantment(), 0);
+ if (backpack != null && backpack.isItem(item)) {
+ return !backpack.isDisabled();
+ }
+ else {
+ ItemStack strippedItem = item.clone();
+
+ if (SlimefunPlugin.getHooks().isEmeraldEnchantsInstalled()) {
+ for (ItemEnchantment enchantment : EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) {
+ EmeraldEnchants.getInstance().getRegistry().applyEnchantment(strippedItem, enchantment.getEnchantment(), 0);
+ }
}
- }
- SlimefunItem sfItem = SlimefunItem.getByItem(strippedItem);
+ SlimefunItem sfItem = SlimefunItem.getByItem(strippedItem);
- if (sfItem instanceof Soulbound && !sfItem.isDisabled()) {
- return true;
- }
- else if (item.hasItemMeta()) {
- ItemMeta im = item.getItemMeta();
- return (im.hasLore() && im.getLore().contains(SOULBOUND_LORE));
- }
+ if (sfItem instanceof Soulbound && !sfItem.isDisabled()) {
+ return true;
+ }
+ else if (item.hasItemMeta()) {
+ ItemMeta im = item.getItemMeta();
+ return (im.hasLore() && im.getLore().contains(SOULBOUND_LORE));
+ }
- return false;
+ return false;
+ }
}
}
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/SlimefunPlugin.java b/src/main/java/me/mrCookieSlime/Slimefun/SlimefunPlugin.java
index c2b486238..91d625f83 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/SlimefunPlugin.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/SlimefunPlugin.java
@@ -201,7 +201,7 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
textureService.setup(registry.getAllSlimefunItems());
// Setting up GitHub Connectors...
- gitHubService.connect(config.getBoolean("options.print-out-github-data-retrieving"));
+ gitHubService.connect(false);
// All Slimefun Listeners
new SlimefunBootsListener(this);
@@ -247,7 +247,7 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
Slimefun.runSync(() -> {
recipeSnapshot = new RecipeSnapshot(this);
protections = new ProtectionManager(getServer());
- MiscSetup.loadItems(settings);
+ MiscSetup.loadItems();
for (World world : Bukkit.getWorlds()) {
new BlockStorage(world);
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java b/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java
index 110af8164..29fc6ce7c 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java
@@ -1,4 +1,4 @@
- package me.mrCookieSlime.Slimefun.api;
+package me.mrCookieSlime.Slimefun.api;
import java.io.File;
import java.io.IOException;
@@ -14,7 +14,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
-import io.github.thebusybiscuit.slimefun4.utils.PatternUtils;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.Location;
@@ -32,6 +31,7 @@ import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
+import io.github.thebusybiscuit.slimefun4.utils.PatternUtils;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
@@ -40,686 +40,692 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
public class BlockStorage {
-
- private static final String PATH_BLOCKS = "data-storage/Slimefun/stored-blocks/";
- private static final String PATH_CHUNKS = "data-storage/Slimefun/stored-chunks/";
-
- private World world;
- private Map storage = new ConcurrentHashMap<>();
- private Map inventories = new ConcurrentHashMap<>();
- private Map blocksCache = new ConcurrentHashMap<>();
-
- public static BlockStorage getStorage(World world) {
- return SlimefunPlugin.getRegistry().getWorlds().get(world.getName());
- }
-
- public static BlockStorage getForcedStorage(World world) {
- return isWorldRegistered(world.getName()) ? SlimefunPlugin.getRegistry().getWorlds().get(world.getName()): new BlockStorage(world);
- }
-
- private static String serializeLocation(Location l) {
- return l.getWorld().getName() + ';' + l.getBlockX() + ';' + l.getBlockY() + ';' + l.getBlockZ();
- }
-//
-// private static String serializeChunk(Chunk chunk) {
-// return chunk.getWorld().getName() + ";Chunk;" + chunk.getX() + ';' + chunk.getZ();
-// }
-//
- private static String locationToChunkString(Location l) {
- return l.getWorld().getName() + ";Chunk;" + (l.getBlockX() >> 4) + ';' + (l.getBlockZ() >> 4);
- }
-
- private static String serializeChunk(World world, int x, int z) {
- return world.getName() + ";Chunk;" + x + ';' + z;
- }
-
- private static Location deserializeLocation(String l) {
- try {
- String[] components = PatternUtils.SEMICOLON.split(l);
- if (components.length != 4) return null;
-
- World w = Bukkit.getWorld(components[0]);
- if (w != null) return new Location(w, Integer.parseInt(components[1]), Integer.parseInt(components[2]), Integer.parseInt(components[3]));
- } catch (NumberFormatException x) {
- Slimefun.getLogger().log(Level.WARNING, "Could not parse Number", x);
- }
- return null;
- }
-
- public BlockStorage(World w) {
- if (SlimefunPlugin.getRegistry().getWorlds().containsKey(w.getName())) return;
- this.world = w;
-
- Slimefun.getLogger().log(Level.INFO, "Loading Blocks for World \"" + w.getName() + "\"");
- Slimefun.getLogger().log(Level.INFO, "This may take a long time...");
-
- File f = new File(PATH_BLOCKS + w.getName());
- if (f.exists()) {
- long total = f.listFiles().length;
- long start = System.currentTimeMillis();
- long done = 0;
- long timestamp = System.currentTimeMillis();
- long totalBlocks = 0;
- int delay = SlimefunPlugin.getCfg().getInt("URID.info-delay");
-
- try {
- for (File file : f.listFiles()) {
- if (file.getName().equals("null.sfb")) {
- Slimefun.getLogger().log(Level.WARNING, "Corrupted file detected!");
- Slimefun.getLogger().log(Level.WARNING, "Slimefun will simply skip this File, but you");
- Slimefun.getLogger().log(Level.WARNING, "should maybe look into it!");
- Slimefun.getLogger().log(Level.WARNING, file.getPath());
- }
- else if (file.getName().endsWith(".sfb")) {
- if (timestamp + delay < System.currentTimeMillis()) {
- Slimefun.getLogger().log(Level.INFO, "Loading Blocks... " + Math.round((((done * 100.0F) / total) * 100.0F) / 100.0F) + "% done (\"" + w.getName() + "\")");
- timestamp = System.currentTimeMillis();
- }
- FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
- for (String key : cfg.getKeys(false)) {
- Location l = deserializeLocation(key);
- String chunkString = locationToChunkString(l);
- try {
- totalBlocks++;
- String json = cfg.getString(key);
- Config blockInfo = parseBlockInfo(l, json);
- if (blockInfo == null || !blockInfo.contains("id")) continue;
- if (storage.containsKey(l)) {
- // It should not be possible to have two blocks on the same location. Ignore the
- // new entry if a block is already present and print an error to the console.
+ private static final String PATH_BLOCKS = "data-storage/Slimefun/stored-blocks/";
+ private static final String PATH_CHUNKS = "data-storage/Slimefun/stored-chunks/";
- Slimefun.getLogger().log(Level.INFO, "Ignoring duplicate block @ " + l.getBlockX() + ", " + l.getBlockY() + ", " + l.getBlockZ());
- Slimefun.getLogger().log(Level.INFO, "Old block data: " + serializeBlockInfo(storage.get(l)));
- Slimefun.getLogger().log(Level.INFO, "New block data (" + key + "): " + json);
- continue;
- }
- storage.put(l, blockInfo);
+ private World world;
+ private Map storage = new ConcurrentHashMap<>();
+ private Map inventories = new ConcurrentHashMap<>();
+ private Map blocksCache = new ConcurrentHashMap<>();
- if (SlimefunItem.isTicking(file.getName().replace(".sfb", ""))) {
- Set locations = SlimefunPlugin.getRegistry().getActiveTickers().getOrDefault(chunkString, new HashSet<>());
- locations.add(l);
- SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
-
- if (!SlimefunPlugin.getRegistry().getActiveChunks().contains(chunkString)) {
- SlimefunPlugin.getRegistry().getActiveChunks().add(chunkString);
- }
- }
- } catch (Exception x) {
- Slimefun.getLogger().log(Level.WARNING, "Failed to load " + file.getName() + '(' + key + ") for Slimefun " + SlimefunPlugin.getVersion(), x);
- }
- }
- done++;
- }
- }
- } finally {
- long time = (System.currentTimeMillis() - start);
- Slimefun.getLogger().log(Level.INFO, "Loading Blocks... 100% (FINISHED - {0}ms)", time);
- Slimefun.getLogger().log(Level.INFO, "Loaded a total of " + totalBlocks + " Blocks for World \"" + world.getName() + "\"");
-
- if (totalBlocks > 0) {
- Slimefun.getLogger().log(Level.INFO, "Avg: {0}ms/Block", DoubleHandler.fixDouble((double) time / (double) totalBlocks, 3));
- }
- }
- }
- else f.mkdirs();
-
- File chunks = new File(PATH_CHUNKS + "chunks.sfc");
-
- if (chunks.exists()) {
- FileConfiguration cfg = YamlConfiguration.loadConfiguration(chunks);
-
- for (String key : cfg.getKeys(false)) {
- try {
- if (world.getName().equals(PatternUtils.SEMICOLON.split(key)[0])) {
- SlimefunPlugin.getRegistry().getChunks().put(key, new BlockInfoConfig(parseJSON(cfg.getString(key))));
- }
- } catch (Exception x) {
- Slimefun.getLogger().log(Level.WARNING, "Failed to load " + chunks.getName() + " in World " + world.getName() + '(' + key + ") for Slimefun " + SlimefunPlugin.getVersion(), x);
- }
- }
- }
-
- SlimefunPlugin.getRegistry().getWorlds().put(world.getName(), this);
-
- for (File file : new File("data-storage/Slimefun/stored-inventories").listFiles()) {
- if (file.getName().startsWith(w.getName()) && file.getName().endsWith(".sfi")) {
- Location l = deserializeLocation(file.getName().replace(".sfi", ""));
- io.github.thebusybiscuit.cscorelib2.config.Config cfg = new io.github.thebusybiscuit.cscorelib2.config.Config(file);
-
- try {
- BlockMenuPreset preset = BlockMenuPreset.getPreset(cfg.getString("preset"));
-
- if (preset == null) {
- preset = BlockMenuPreset.getPreset(checkID(l));
- }
-
- if (preset != null) {
- inventories.put(l, new BlockMenu(preset, l, cfg));
- }
- }
- catch (Exception x) {
- Slimefun.getLogger().log(Level.SEVERE, "An Error occured while loading this Inventory: " + file.getName(), x);
- }
- }
- }
-
- for (File file : new File("data-storage/Slimefun/universal-inventories").listFiles()) {
- if (file.getName().endsWith(".sfi")) {
- io.github.thebusybiscuit.cscorelib2.config.Config cfg = new io.github.thebusybiscuit.cscorelib2.config.Config(file);
- BlockMenuPreset preset = BlockMenuPreset.getPreset(cfg.getString("preset"));
-
- if (preset != null) {
- SlimefunPlugin.getRegistry().getUniversalInventories().put(preset.getID(), new UniversalBlockMenu(preset, cfg));
- }
- }
- }
- }
+ public static BlockStorage getStorage(World world) {
+ return SlimefunPlugin.getRegistry().getWorlds().get(world.getName());
+ }
- private static int chunkChanges = 0;
- private int changes = 0;
-
- public void computeChanges() {
- changes = blocksCache.size() + chunkChanges;
-
- Map inventories2 = new HashMap<>(inventories);
- for (Map.Entry entry : inventories2.entrySet()) {
- changes += entry.getValue().getUnsavedChanges();
- }
-
- Map universalInventories2 = new HashMap<>(SlimefunPlugin.getRegistry().getUniversalInventories());
- for (Map.Entry entry : universalInventories2.entrySet()) {
- changes += entry.getValue().getUnsavedChanges();
- }
- }
-
- public int getChanges() {
- return changes;
- }
-
- public void save(boolean remove) {
- this.save(true, remove);
- }
-
- public void save(boolean computeChanges, boolean remove) {
- if (computeChanges) computeChanges();
- if (changes == 0) return;
-
- Slimefun.getLogger().log(Level.INFO, "Saving Blocks for World \"" + world.getName() + "\" (" + changes + " Change(s) queued)");
-
- Map cache = new HashMap<>(blocksCache);
-
- for (Map.Entry entry : cache.entrySet()) {
- blocksCache.remove(entry.getKey());
- Config cfg = entry.getValue();
-
- if (cfg.getKeys().isEmpty()) {
- File file = cfg.getFile();
- if (file.exists() && !file.delete()) {
- Slimefun.getLogger().log(Level.WARNING, "Could not delete File: " + file.getName());
- }
- }
- else {
- File tmpFile = new File(cfg.getFile().getParentFile(), cfg.getFile().getName() + ".tmp");
- cfg.save(tmpFile);
-
- try {
- Files.move(tmpFile.toPath(), cfg.getFile().toPath(), StandardCopyOption.ATOMIC_MOVE);
- } catch (IOException x) {
- Slimefun.getLogger().log(Level.SEVERE, "An Error occured while copying a temporary File for Slimefun " + SlimefunPlugin.getVersion(), x);
- }
- }
- }
-
- Map inventories2 = new HashMap<>(inventories);
-
- for (Map.Entry entry : inventories2.entrySet()) {
- entry.getValue().save(entry.getKey());
- }
-
- Map universalInventories2 = new HashMap<>(SlimefunPlugin.getRegistry().getUniversalInventories());
-
- for (Map.Entry entry : universalInventories2.entrySet()) {
- entry.getValue().save();
- }
-
- if (chunkChanges > 0) {
- File chunks = new File(PATH_CHUNKS + "chunks.sfc");
- Config cfg = new Config(PATH_CHUNKS + "chunks.temp");
-
- for (Map.Entry entry : SlimefunPlugin.getRegistry().getChunks().entrySet()) {
- cfg.setValue(entry.getKey(), entry.getValue().toJSON());
- }
-
- cfg.save(chunks);
-
- if (remove) {
- SlimefunPlugin.getRegistry().getWorlds().remove(world.getName());
- }
- }
-
- changes = 0;
- chunkChanges = 0;
- }
-
- public static void store(Block block, ItemStack item) {
- SlimefunItem sfitem = SlimefunItem.getByItem(item);
- if (sfitem != null) addBlockInfo(block, "id", sfitem.getID(), true);
- }
-
- public static void store(Block block, String item) {
- addBlockInfo(block, "id", item, true);
- }
-
- /**
+ public static BlockStorage getForcedStorage(World world) {
+ return isWorldRegistered(world.getName()) ? SlimefunPlugin.getRegistry().getWorlds().get(world.getName()) : new BlockStorage(world);
+ }
+
+ private static String serializeLocation(Location l) {
+ return l.getWorld().getName() + ';' + l.getBlockX() + ';' + l.getBlockY() + ';' + l.getBlockZ();
+ }
+
+ private static String locationToChunkString(Location l) {
+ return l.getWorld().getName() + ";Chunk;" + (l.getBlockX() >> 4) + ';' + (l.getBlockZ() >> 4);
+ }
+
+ private static String serializeChunk(World world, int x, int z) {
+ return world.getName() + ";Chunk;" + x + ';' + z;
+ }
+
+ private static Location deserializeLocation(String l) {
+ try {
+ String[] components = PatternUtils.SEMICOLON.split(l);
+ if (components.length != 4) return null;
+
+ World w = Bukkit.getWorld(components[0]);
+ if (w != null) return new Location(w, Integer.parseInt(components[1]), Integer.parseInt(components[2]), Integer.parseInt(components[3]));
+ }
+ catch (NumberFormatException x) {
+ Slimefun.getLogger().log(Level.WARNING, "Could not parse Number", x);
+ }
+ return null;
+ }
+
+ public BlockStorage(World w) {
+ if (SlimefunPlugin.getRegistry().getWorlds().containsKey(w.getName())) return;
+ this.world = w;
+
+ Slimefun.getLogger().log(Level.INFO, "Loading Blocks for World \"" + w.getName() + "\"");
+ Slimefun.getLogger().log(Level.INFO, "This may take a long time...");
+
+ File f = new File(PATH_BLOCKS + w.getName());
+ if (f.exists()) {
+ long total = f.listFiles().length;
+ long start = System.currentTimeMillis();
+ long done = 0;
+ long timestamp = System.currentTimeMillis();
+ long totalBlocks = 0;
+ int delay = SlimefunPlugin.getCfg().getInt("URID.info-delay");
+
+ try {
+ for (File file : f.listFiles()) {
+ if (file.getName().equals("null.sfb")) {
+ Slimefun.getLogger().log(Level.WARNING, "Corrupted file detected!");
+ Slimefun.getLogger().log(Level.WARNING, "Slimefun will simply skip this File, but you");
+ Slimefun.getLogger().log(Level.WARNING, "should maybe look into it!");
+ Slimefun.getLogger().log(Level.WARNING, file.getPath());
+ }
+ else if (file.getName().endsWith(".sfb")) {
+ if (timestamp + delay < System.currentTimeMillis()) {
+ Slimefun.getLogger().log(Level.INFO, "Loading Blocks... " + Math.round((((done * 100.0F) / total) * 100.0F) / 100.0F) + "% done (\"" + w.getName() + "\")");
+ timestamp = System.currentTimeMillis();
+ }
+
+ FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
+ for (String key : cfg.getKeys(false)) {
+ Location l = deserializeLocation(key);
+ String chunkString = locationToChunkString(l);
+ try {
+ totalBlocks++;
+ String json = cfg.getString(key);
+ Config blockInfo = parseBlockInfo(l, json);
+ if (blockInfo == null || !blockInfo.contains("id")) continue;
+ if (storage.containsKey(l)) {
+ // It should not be possible to have two blocks on the same location. Ignore the
+ // new entry if a block is already present and print an error to the console.
+
+ Slimefun.getLogger().log(Level.INFO, "Ignoring duplicate block @ " + l.getBlockX() + ", " + l.getBlockY() + ", " + l.getBlockZ());
+ Slimefun.getLogger().log(Level.INFO, "Old block data: {0}", serializeBlockInfo(storage.get(l)));
+ Slimefun.getLogger().log(Level.INFO, "New block data ({0}): {1}", new Object[] { key, json });
+ continue;
+ }
+ storage.put(l, blockInfo);
+
+ if (SlimefunPlugin.getRegistry().getTickerBlocks().contains(file.getName().replace(".sfb", ""))) {
+ Set locations = SlimefunPlugin.getRegistry().getActiveTickers().getOrDefault(chunkString, new HashSet<>());
+ locations.add(l);
+ SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
+
+ if (!SlimefunPlugin.getRegistry().getActiveChunks().contains(chunkString)) {
+ SlimefunPlugin.getRegistry().getActiveChunks().add(chunkString);
+ }
+ }
+ }
+ catch (Exception x) {
+ Slimefun.getLogger().log(Level.WARNING, "Failed to load " + file.getName() + '(' + key + ") for Slimefun " + SlimefunPlugin.getVersion(), x);
+ }
+ }
+ done++;
+ }
+ }
+ }
+ finally {
+ long time = (System.currentTimeMillis() - start);
+ Slimefun.getLogger().log(Level.INFO, "Loading Blocks... 100% (FINISHED - {0}ms)", time);
+ Slimefun.getLogger().log(Level.INFO, "Loaded a total of " + totalBlocks + " Blocks for World \"" + world.getName() + "\"");
+
+ if (totalBlocks > 0) {
+ Slimefun.getLogger().log(Level.INFO, "Avg: {0}ms/Block", DoubleHandler.fixDouble((double) time / (double) totalBlocks, 3));
+ }
+ }
+ }
+ else f.mkdirs();
+
+ File chunks = new File(PATH_CHUNKS + "chunks.sfc");
+
+ if (chunks.exists()) {
+ FileConfiguration cfg = YamlConfiguration.loadConfiguration(chunks);
+
+ for (String key : cfg.getKeys(false)) {
+ try {
+ if (world.getName().equals(PatternUtils.SEMICOLON.split(key)[0])) {
+ SlimefunPlugin.getRegistry().getChunks().put(key, new BlockInfoConfig(parseJSON(cfg.getString(key))));
+ }
+ }
+ catch (Exception x) {
+ Slimefun.getLogger().log(Level.WARNING, "Failed to load " + chunks.getName() + " in World " + world.getName() + '(' + key + ") for Slimefun " + SlimefunPlugin.getVersion(), x);
+ }
+ }
+ }
+
+ SlimefunPlugin.getRegistry().getWorlds().put(world.getName(), this);
+
+ for (File file : new File("data-storage/Slimefun/stored-inventories").listFiles()) {
+ if (file.getName().startsWith(w.getName()) && file.getName().endsWith(".sfi")) {
+ Location l = deserializeLocation(file.getName().replace(".sfi", ""));
+ io.github.thebusybiscuit.cscorelib2.config.Config cfg = new io.github.thebusybiscuit.cscorelib2.config.Config(file);
+
+ try {
+ BlockMenuPreset preset = BlockMenuPreset.getPreset(cfg.getString("preset"));
+
+ if (preset == null) {
+ preset = BlockMenuPreset.getPreset(checkID(l));
+ }
+
+ if (preset != null) {
+ inventories.put(l, new BlockMenu(preset, l, cfg));
+ }
+ }
+ catch (Exception x) {
+ Slimefun.getLogger().log(Level.SEVERE, "An Error occured while loading this Inventory: " + file.getName(), x);
+ }
+ }
+ }
+
+ for (File file : new File("data-storage/Slimefun/universal-inventories").listFiles()) {
+ if (file.getName().endsWith(".sfi")) {
+ io.github.thebusybiscuit.cscorelib2.config.Config cfg = new io.github.thebusybiscuit.cscorelib2.config.Config(file);
+ BlockMenuPreset preset = BlockMenuPreset.getPreset(cfg.getString("preset"));
+
+ if (preset != null) {
+ SlimefunPlugin.getRegistry().getUniversalInventories().put(preset.getID(), new UniversalBlockMenu(preset, cfg));
+ }
+ }
+ }
+ }
+
+ private static int chunkChanges = 0;
+ private int changes = 0;
+
+ public void computeChanges() {
+ changes = blocksCache.size() + chunkChanges;
+
+ Map inventories2 = new HashMap<>(inventories);
+ for (Map.Entry entry : inventories2.entrySet()) {
+ changes += entry.getValue().getUnsavedChanges();
+ }
+
+ Map universalInventories2 = new HashMap<>(SlimefunPlugin.getRegistry().getUniversalInventories());
+ for (Map.Entry entry : universalInventories2.entrySet()) {
+ changes += entry.getValue().getUnsavedChanges();
+ }
+ }
+
+ public int getChanges() {
+ return changes;
+ }
+
+ public void save(boolean remove) {
+ this.save(true, remove);
+ }
+
+ public void save(boolean computeChanges, boolean remove) {
+ if (computeChanges) computeChanges();
+ if (changes == 0) return;
+
+ Slimefun.getLogger().log(Level.INFO, "Saving Blocks for World \"" + world.getName() + "\" (" + changes + " Change(s) queued)");
+
+ Map cache = new HashMap<>(blocksCache);
+
+ for (Map.Entry entry : cache.entrySet()) {
+ blocksCache.remove(entry.getKey());
+ Config cfg = entry.getValue();
+
+ if (cfg.getKeys().isEmpty()) {
+ File file = cfg.getFile();
+ if (file.exists() && !file.delete()) {
+ Slimefun.getLogger().log(Level.WARNING, "Could not delete File: " + file.getName());
+ }
+ }
+ else {
+ File tmpFile = new File(cfg.getFile().getParentFile(), cfg.getFile().getName() + ".tmp");
+ cfg.save(tmpFile);
+
+ try {
+ Files.move(tmpFile.toPath(), cfg.getFile().toPath(), StandardCopyOption.ATOMIC_MOVE);
+ }
+ catch (IOException x) {
+ Slimefun.getLogger().log(Level.SEVERE, "An Error occured while copying a temporary File for Slimefun " + SlimefunPlugin.getVersion(), x);
+ }
+ }
+ }
+
+ Map inventories2 = new HashMap<>(inventories);
+
+ for (Map.Entry entry : inventories2.entrySet()) {
+ entry.getValue().save(entry.getKey());
+ }
+
+ Map universalInventories2 = new HashMap<>(SlimefunPlugin.getRegistry().getUniversalInventories());
+
+ for (Map.Entry entry : universalInventories2.entrySet()) {
+ entry.getValue().save();
+ }
+
+ if (chunkChanges > 0) {
+ File chunks = new File(PATH_CHUNKS + "chunks.sfc");
+ Config cfg = new Config(PATH_CHUNKS + "chunks.temp");
+
+ for (Map.Entry entry : SlimefunPlugin.getRegistry().getChunks().entrySet()) {
+ cfg.setValue(entry.getKey(), entry.getValue().toJSON());
+ }
+
+ cfg.save(chunks);
+
+ if (remove) {
+ SlimefunPlugin.getRegistry().getWorlds().remove(world.getName());
+ }
+ }
+
+ changes = 0;
+ chunkChanges = 0;
+ }
+
+ public static void store(Block block, ItemStack item) {
+ SlimefunItem sfitem = SlimefunItem.getByItem(item);
+ if (sfitem != null) addBlockInfo(block, "id", sfitem.getID(), true);
+ }
+
+ public static void store(Block block, String item) {
+ addBlockInfo(block, "id", item, true);
+ }
+
+ /**
* Retrieves the SlimefunItem's ItemStack from the specified Block.
- * If the specified Block is registered in BlockStorage, its data will be erased from it, regardless of the returned value.
+ * If the specified Block is registered in BlockStorage, its data will be erased from it, regardless of the returned
+ * value.
*
- * @param block the block to retrieve the ItemStack from
+ * @param block
+ * the block to retrieve the ItemStack from
* @return the SlimefunItem's ItemStack corresponding to the block if it has one, otherwise null
*
* @since 4.0
*/
- public static ItemStack retrieve(Block block) {
- if (!hasBlockInfo(block)) return null;
- else {
- final SlimefunItem item = SlimefunItem.getByID(getLocationInfo(block.getLocation(), "id"));
- clearBlockInfo(block);
- if (item == null) return null;
- else return item.getItem();
- }
- }
+ public static ItemStack retrieve(Block block) {
+ if (!hasBlockInfo(block)) return null;
+ else {
+ final SlimefunItem item = SlimefunItem.getByID(getLocationInfo(block.getLocation(), "id"));
+ clearBlockInfo(block);
+ if (item == null) return null;
+ else return item.getItem();
+ }
+ }
- public static Config getLocationInfo(Location l) {
- BlockStorage storage = getStorage(l.getWorld());
- Config cfg = storage.storage.get(l);
- return cfg == null ? new BlockInfoConfig() : cfg;
- }
-
- private static Map parseJSON(String json) {
- Map map = new HashMap<>();
-
- if (json != null && json.length() > 2) {
- JsonParser parser = new JsonParser();
- JsonObject obj = parser.parse(json).getAsJsonObject();
-
- for (Map.Entry entry : obj.entrySet()) {
- map.put(entry.getKey(), entry.getValue().getAsString());
- }
- }
- return map;
- }
+ public static Config getLocationInfo(Location l) {
+ BlockStorage storage = getStorage(l.getWorld());
+ Config cfg = storage.storage.get(l);
+ return cfg == null ? new BlockInfoConfig() : cfg;
+ }
- private static BlockInfoConfig parseBlockInfo(Location l, String json){
- try {
- return new BlockInfoConfig(parseJSON(json));
- } catch(Exception x) {
- Logger logger = Slimefun.getLogger();
- logger.log(Level.WARNING, x.getClass().getName());
- logger.log(Level.WARNING, "Failed to parse BlockInfo for Block @ " + l.getBlockX() + ", " + l.getBlockY() + ", " + l.getBlockZ());
- logger.log(Level.WARNING, json);
- logger.log(Level.WARNING, "");
- logger.log(Level.WARNING, "IGNORE THIS ERROR UNLESS IT IS SPAMMING");
- logger.log(Level.WARNING, "");
- logger.log(Level.SEVERE, "An Error occured while parsing Block Info for Slimefun " + SlimefunPlugin.getVersion(), x);
- return null;
- }
- }
+ private static Map parseJSON(String json) {
+ Map map = new HashMap<>();
- private static String serializeBlockInfo(Config cfg) {
- JsonObject json = new JsonObject();
-
- for (String key : cfg.getKeys()) {
- json.add(key, new JsonPrimitive(cfg.getString(key)));
- }
-
- return json.toString();
- }
+ if (json != null && json.length() > 2) {
+ JsonParser parser = new JsonParser();
+ JsonObject obj = parser.parse(json).getAsJsonObject();
- public static String getLocationInfo(Location l, String key) {
- return getLocationInfo(l).getString(key);
- }
-
- public static void addBlockInfo(Location l, String key, String value) {
- addBlockInfo(l, key, value, false);
- }
-
- public static void addBlockInfo(Block block, String key, String value) {
- addBlockInfo(block.getLocation(), key, value);
- }
-
- public static void addBlockInfo(Block block, String key, String value, boolean updateTicker) {
- addBlockInfo(block.getLocation(), key, value, updateTicker);
- }
-
- public static void addBlockInfo(Location l, String key, String value, boolean updateTicker) {
- Config cfg = hasBlockInfo(l) ? getLocationInfo(l) : new BlockInfoConfig();
- cfg.setValue(key, value);
- setBlockInfo(l, cfg, updateTicker);
- }
-
- public static boolean hasBlockInfo(Block block) {
- return hasBlockInfo(block.getLocation());
- }
-
- public static boolean hasBlockInfo(Location l) {
- BlockStorage storage = getStorage(l.getWorld());
- return storage != null && storage.storage.containsKey(l) && getLocationInfo(l, "id") != null;
- }
+ for (Map.Entry entry : obj.entrySet()) {
+ map.put(entry.getKey(), entry.getValue().getAsString());
+ }
+ }
+ return map;
+ }
- public static void setBlockInfo(Block block, Config cfg, boolean updateTicker) {
- setBlockInfo(block.getLocation(), cfg, updateTicker);
- }
+ private static BlockInfoConfig parseBlockInfo(Location l, String json) {
+ try {
+ return new BlockInfoConfig(parseJSON(json));
+ }
+ catch (Exception x) {
+ Logger logger = Slimefun.getLogger();
+ logger.log(Level.WARNING, x.getClass().getName());
+ logger.log(Level.WARNING, "Failed to parse BlockInfo for Block @ " + l.getBlockX() + ", " + l.getBlockY() + ", " + l.getBlockZ());
+ logger.log(Level.WARNING, json);
+ logger.log(Level.WARNING, "");
+ logger.log(Level.WARNING, "IGNORE THIS ERROR UNLESS IT IS SPAMMING");
+ logger.log(Level.WARNING, "");
+ logger.log(Level.SEVERE, "An Error occured while parsing Block Info for Slimefun " + SlimefunPlugin.getVersion(), x);
+ return null;
+ }
+ }
- public static void setBlockInfo(Location l, Config cfg, boolean updateTicker) {
- BlockStorage storage = getStorage(l.getWorld());
- storage.storage.put(l, cfg);
-
- String id = cfg.getString("id");
-
- if (BlockMenuPreset.isInventory(id)) {
- if (BlockMenuPreset.isUniversalInventory(id)) {
- if (!SlimefunPlugin.getRegistry().getUniversalInventories().containsKey(id)) {
- storage.loadUniversalInventory(BlockMenuPreset.getPreset(id));
- }
- }
- else if (!storage.hasInventory(l)) {
- File file = new File("data-storage/Slimefun/stored-inventories/" + serializeLocation(l) + ".sfi");
-
- if (file.exists()) storage.inventories.put(l, new BlockMenu(BlockMenuPreset.getPreset(id), l, new io.github.thebusybiscuit.cscorelib2.config.Config(file)));
- else storage.loadInventory(l, BlockMenuPreset.getPreset(id));
- }
- }
-
- refreshCache(getStorage(l.getWorld()), l, id, serializeBlockInfo(cfg), updateTicker);
- }
-
- public static void setBlockInfo(Block b, String json, boolean updateTicker) {
- setBlockInfo(b.getLocation(), json, updateTicker);
- }
-
- public static void setBlockInfo(Location l, String json, boolean updateTicker) {
- Config blockInfo = json == null ? new BlockInfoConfig() : parseBlockInfo(l, json);
- if (blockInfo == null) return;
- setBlockInfo(l, blockInfo, updateTicker);
- }
+ private static String serializeBlockInfo(Config cfg) {
+ JsonObject json = new JsonObject();
- public static void clearBlockInfo(Block block) {
- clearBlockInfo(block.getLocation());
- }
+ for (String key : cfg.getKeys()) {
+ json.add(key, new JsonPrimitive(cfg.getString(key)));
+ }
- public static void clearBlockInfo(Location l) {
- clearBlockInfo(l, true);
- }
+ return json.toString();
+ }
- public static void clearBlockInfo(Block b, boolean destroy) {
- clearBlockInfo(b.getLocation(), destroy);
- }
+ public static String getLocationInfo(Location l, String key) {
+ return getLocationInfo(l).getString(key);
+ }
- public static void clearBlockInfo(Location l, boolean destroy) {
- SlimefunPlugin.getTicker().queueDelete(l, destroy);
- }
+ public static void addBlockInfo(Location l, String key, String value) {
+ addBlockInfo(l, key, value, false);
+ }
- public static void _integrated_removeBlockInfo(Location l, boolean destroy) {
- BlockStorage storage = getStorage(l.getWorld());
-
- if (hasBlockInfo(l)) {
- refreshCache(storage, l, getLocationInfo(l).getString("id"), null, destroy);
- storage.storage.remove(l);
- }
-
- if (destroy) {
- if (storage.hasInventory(l)) storage.clearInventory(l);
+ public static void addBlockInfo(Block block, String key, String value) {
+ addBlockInfo(block.getLocation(), key, value);
+ }
- UniversalBlockMenu universalInventory = getUniversalInventory(l);
- if (universalInventory != null) {
- universalInventory.close();
- universalInventory.save();
- }
-
- String chunkString = locationToChunkString(l);
- if (SlimefunPlugin.getRegistry().getActiveTickers().containsKey(chunkString)) {
- Set locations = SlimefunPlugin.getRegistry().getActiveTickers().get(chunkString);
- locations.remove(l);
-
- if (locations.isEmpty()) {
- SlimefunPlugin.getRegistry().getActiveTickers().remove(chunkString);
- SlimefunPlugin.getRegistry().getActiveChunks().remove(chunkString);
- }
- else SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
- }
- }
- }
+ public static void addBlockInfo(Block block, String key, String value, boolean updateTicker) {
+ addBlockInfo(block.getLocation(), key, value, updateTicker);
+ }
- public static void moveBlockInfo(Location from, Location to) {
- SlimefunPlugin.getTicker().queueMove(from, to);
- }
+ public static void addBlockInfo(Location l, String key, String value, boolean updateTicker) {
+ Config cfg = hasBlockInfo(l) ? getLocationInfo(l) : new BlockInfoConfig();
+ cfg.setValue(key, value);
+ setBlockInfo(l, cfg, updateTicker);
+ }
- public static void _integrated_moveLocationInfo(Location from, Location to) {
- if (!hasBlockInfo(from)) return;
- BlockStorage storage = getStorage(from.getWorld());
-
- setBlockInfo(to, getLocationInfo(from), true);
-
- if (storage.inventories.containsKey(from)) {
- BlockMenu menu = storage.inventories.get(from);
- storage.inventories.put(to, menu);
- storage.clearInventory(from);
- menu.move(to);
- }
-
- refreshCache(storage, from, getLocationInfo(from).getString("id"), null, true);
- storage.storage.remove(from);
+ public static boolean hasBlockInfo(Block block) {
+ return hasBlockInfo(block.getLocation());
+ }
- String chunkString = locationToChunkString(from);
-
- if (SlimefunPlugin.getRegistry().getActiveTickers().containsKey(chunkString)) {
- Set locations = SlimefunPlugin.getRegistry().getActiveTickers().get(chunkString);
- locations.remove(from);
-
- if (locations.isEmpty()) {
- SlimefunPlugin.getRegistry().getActiveTickers().remove(chunkString);
- SlimefunPlugin.getRegistry().getActiveChunks().remove(chunkString);
- }
- else SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
- }
- }
+ public static boolean hasBlockInfo(Location l) {
+ BlockStorage storage = getStorage(l.getWorld());
+ return storage != null && storage.storage.containsKey(l) && getLocationInfo(l, "id") != null;
+ }
- private static void refreshCache(BlockStorage storage, Location l, String key, String value, boolean updateTicker) {
- if (key == null) {
- // This Block is no longer valid...
- // Fixes #1577
- return;
- }
-
- Config cfg = storage.blocksCache.computeIfAbsent(key, k -> new Config(PATH_BLOCKS + l.getWorld().getName() + '/' + key + ".sfb"));
- cfg.setValue(serializeLocation(l), value);
-
- if (updateTicker) {
- SlimefunItem item = SlimefunItem.getByID(key);
-
- if (item != null && item.isTicking()) {
- String chunkString = locationToChunkString(l);
-
- if (value != null) {
- Set locations = SlimefunPlugin.getRegistry().getActiveTickers().get(chunkString);
- if (locations == null) locations = new HashSet<>();
-
- locations.add(l);
- SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
- SlimefunPlugin.getRegistry().getActiveChunks().add(chunkString);
- }
- }
- }
- }
+ public static void setBlockInfo(Block block, Config cfg, boolean updateTicker) {
+ setBlockInfo(block.getLocation(), cfg, updateTicker);
+ }
- public static SlimefunItem check(Block block) {
- return check(block.getLocation());
- }
+ public static void setBlockInfo(Location l, Config cfg, boolean updateTicker) {
+ BlockStorage storage = getStorage(l.getWorld());
+ storage.storage.put(l, cfg);
- public static SlimefunItem check(Location l) {
- if (!hasBlockInfo(l)) return null;
- return SlimefunItem.getByID(getLocationInfo(l, "id"));
- }
-
- public static String checkID(Block b) {
- if (b.getState() instanceof TileState) {
- Optional blockData = SlimefunPlugin.getBlockDataService().getBlockData((TileState) b.getState());
-
- if (blockData.isPresent()) return blockData.get();
- }
-
- return checkID(b.getLocation());
- }
+ String id = cfg.getString("id");
- public static boolean check(Block block, String slimefunItem) {
- String id = checkID(block);
- return id != null && id.equals(slimefunItem);
- }
-
- public static String checkID(Location l) {
- if (!hasBlockInfo(l)) return null;
- return getLocationInfo(l, "id");
- }
+ if (BlockMenuPreset.isInventory(id)) {
+ if (BlockMenuPreset.isUniversalInventory(id)) {
+ if (!SlimefunPlugin.getRegistry().getUniversalInventories().containsKey(id)) {
+ storage.loadUniversalInventory(BlockMenuPreset.getPreset(id));
+ }
+ }
+ else if (!storage.hasInventory(l)) {
+ File file = new File("data-storage/Slimefun/stored-inventories/" + serializeLocation(l) + ".sfi");
- public static boolean check(Location l, String slimefunItem) {
- if (!hasBlockInfo(l)) return false;
- try {
- String id = getLocationInfo(l, "id");
- return id != null && id.equalsIgnoreCase(slimefunItem);
- }
- catch (NullPointerException x) {
- return false;
- }
- }
+ if (file.exists()) storage.inventories.put(l, new BlockMenu(BlockMenuPreset.getPreset(id), l, new io.github.thebusybiscuit.cscorelib2.config.Config(file)));
+ else storage.loadInventory(l, BlockMenuPreset.getPreset(id));
+ }
+ }
- public static boolean isWorldRegistered(String name) {
- return SlimefunPlugin.getRegistry().getWorlds().containsKey(name);
- }
-
- public static Set getTickingChunks() {
- return new HashSet<>(SlimefunPlugin.getRegistry().getActiveChunks());
- }
-
- public static Set getTickingLocations(Chunk chunk) {
- return getTickingLocations(chunk.toString());
- }
+ refreshCache(getStorage(l.getWorld()), l, id, serializeBlockInfo(cfg), updateTicker);
+ }
- public static Set getTickingLocations(String chunk) {
- return new HashSet<>(SlimefunPlugin.getRegistry().getActiveTickers().get(chunk));
- }
-
- public BlockMenu loadInventory(Location l, BlockMenuPreset preset) {
- BlockMenu menu = new BlockMenu(preset, l);
- inventories.put(l, menu);
- return menu;
- }
-
- public void loadUniversalInventory(BlockMenuPreset preset) {
- SlimefunPlugin.getRegistry().getUniversalInventories().put(preset.getID(), new UniversalBlockMenu(preset));
- }
-
- public void clearInventory(Location l) {
- BlockMenu menu = getInventory(l);
-
- if (menu != null) {
- for (HumanEntity human : new ArrayList<>(menu.toInventory().getViewers())) {
- // Prevents "java.lang.IllegalStateException: Asynchronous entity add!" when closing inventory while holding an item
- Slimefun.runSync(human::closeInventory);
- }
+ public static void setBlockInfo(Block b, String json, boolean updateTicker) {
+ setBlockInfo(b.getLocation(), json, updateTicker);
+ }
- inventories.get(l).delete(l);
- inventories.remove(l);
- }
- }
-
- public boolean hasInventory(Location l) {
- return inventories.containsKey(l);
- }
-
- public static boolean hasUniversalInventory(String id) {
- return SlimefunPlugin.getRegistry().getUniversalInventories().containsKey(id);
- }
+ public static void setBlockInfo(Location l, String json, boolean updateTicker) {
+ Config blockInfo = json == null ? new BlockInfoConfig() : parseBlockInfo(l, json);
+ if (blockInfo == null) return;
+ setBlockInfo(l, blockInfo, updateTicker);
+ }
- public static UniversalBlockMenu getUniversalInventory(Block block) {
- return getUniversalInventory(block.getLocation());
- }
+ public static void clearBlockInfo(Block block) {
+ clearBlockInfo(block.getLocation());
+ }
- public static UniversalBlockMenu getUniversalInventory(Location l) {
- String id = checkID(l);
- return id == null ? null: getUniversalInventory(id);
- }
+ public static void clearBlockInfo(Location l) {
+ clearBlockInfo(l, true);
+ }
- public static UniversalBlockMenu getUniversalInventory(String id) {
- return SlimefunPlugin.getRegistry().getUniversalInventories().get(id);
- }
-
- public static BlockMenu getInventory(Block b) {
- return getInventory(b.getLocation());
- }
-
- public static boolean hasInventory(Block b) {
- BlockStorage storage = getStorage(b.getWorld());
- if (storage == null) return false;
- else return storage.hasInventory(b.getLocation());
- }
-
- public static BlockMenu getInventory(Location l) {
- BlockStorage storage = getStorage(l.getWorld());
- if (storage == null) return null;
-
- BlockMenu menu = storage.inventories.get(l);
- if (menu != null) return menu;
- else return storage.loadInventory(l, BlockMenuPreset.getPreset(checkID(l)));
- }
+ public static void clearBlockInfo(Block b, boolean destroy) {
+ clearBlockInfo(b.getLocation(), destroy);
+ }
- public static Config getChunkInfo(World world, int x, int z) {
- try {
- BlockInfoConfig cfg = SlimefunPlugin.getRegistry().getChunks().get(serializeChunk(world, x, z));
- return cfg == null ? new BlockInfoConfig() : cfg;
- } catch (Exception e) {
- Slimefun.getLogger().log(Level.SEVERE, "Failed to parse ChunkInfo for Slimefun " + SlimefunPlugin.getVersion(), x);
- return new BlockInfoConfig();
- }
- }
-
- public static void setChunkInfo(World world, int x, int z, String key, String value) {
- String serializedChunk = serializeChunk(world, x, z);
- BlockInfoConfig cfg = SlimefunPlugin.getRegistry().getChunks().get(serializedChunk);
-
- if (cfg == null) {
- cfg = new BlockInfoConfig();
- SlimefunPlugin.getRegistry().getChunks().put(serializedChunk, cfg);
- }
-
- cfg.setValue(key, value);
-
- chunkChanges++;
- }
-
- public static boolean hasChunkInfo(World world, int x, int z) {
- String serializedChunk = serializeChunk(world, x, z);
- return SlimefunPlugin.getRegistry().getChunks().containsKey(serializedChunk);
- }
+ public static void clearBlockInfo(Location l, boolean destroy) {
+ SlimefunPlugin.getTicker().queueDelete(l, destroy);
+ }
- public static String getChunkInfo(World world, int x, int z, String key) {
- return getChunkInfo(world, x, z).getString(key);
- }
+ public static void _integrated_removeBlockInfo(Location l, boolean destroy) {
+ BlockStorage storage = getStorage(l.getWorld());
- public static String getBlockInfoAsJson(Block block) {
- return getBlockInfoAsJson(block.getLocation());
- }
+ if (hasBlockInfo(l)) {
+ refreshCache(storage, l, getLocationInfo(l).getString("id"), null, destroy);
+ storage.storage.remove(l);
+ }
- public static String getBlockInfoAsJson(Location l) {
- return serializeBlockInfo(getLocationInfo(l));
- }
+ if (destroy) {
+ if (storage.hasInventory(l)) storage.clearInventory(l);
- public boolean hasUniversalInventory(Block block) {
- return hasUniversalInventory(block.getLocation());
- }
+ UniversalBlockMenu universalInventory = getUniversalInventory(l);
+ if (universalInventory != null) {
+ universalInventory.close();
+ universalInventory.save();
+ }
- public boolean hasUniversalInventory(Location l) {
- String id = checkID(l);
- return id != null && hasUniversalInventory(id);
- }
+ String chunkString = locationToChunkString(l);
+ if (SlimefunPlugin.getRegistry().getActiveTickers().containsKey(chunkString)) {
+ Set locations = SlimefunPlugin.getRegistry().getActiveTickers().get(chunkString);
+ locations.remove(l);
+
+ if (locations.isEmpty()) {
+ SlimefunPlugin.getRegistry().getActiveTickers().remove(chunkString);
+ SlimefunPlugin.getRegistry().getActiveChunks().remove(chunkString);
+ }
+ else SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
+ }
+ }
+ }
+
+ public static void moveBlockInfo(Location from, Location to) {
+ SlimefunPlugin.getTicker().queueMove(from, to);
+ }
+
+ public static void _integrated_moveLocationInfo(Location from, Location to) {
+ if (!hasBlockInfo(from)) return;
+ BlockStorage storage = getStorage(from.getWorld());
+
+ setBlockInfo(to, getLocationInfo(from), true);
+
+ if (storage.inventories.containsKey(from)) {
+ BlockMenu menu = storage.inventories.get(from);
+ storage.inventories.put(to, menu);
+ storage.clearInventory(from);
+ menu.move(to);
+ }
+
+ refreshCache(storage, from, getLocationInfo(from).getString("id"), null, true);
+ storage.storage.remove(from);
+
+ String chunkString = locationToChunkString(from);
+
+ if (SlimefunPlugin.getRegistry().getActiveTickers().containsKey(chunkString)) {
+ Set locations = SlimefunPlugin.getRegistry().getActiveTickers().get(chunkString);
+ locations.remove(from);
+
+ if (locations.isEmpty()) {
+ SlimefunPlugin.getRegistry().getActiveTickers().remove(chunkString);
+ SlimefunPlugin.getRegistry().getActiveChunks().remove(chunkString);
+ }
+ else SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
+ }
+ }
+
+ private static void refreshCache(BlockStorage storage, Location l, String key, String value, boolean updateTicker) {
+ if (key == null) {
+ // This Block is no longer valid...
+ // Fixes #1577
+ return;
+ }
+
+ Config cfg = storage.blocksCache.computeIfAbsent(key, k -> new Config(PATH_BLOCKS + l.getWorld().getName() + '/' + key + ".sfb"));
+ cfg.setValue(serializeLocation(l), value);
+
+ if (updateTicker) {
+ SlimefunItem item = SlimefunItem.getByID(key);
+
+ if (item != null && item.isTicking()) {
+ String chunkString = locationToChunkString(l);
+
+ if (value != null) {
+ Set locations = SlimefunPlugin.getRegistry().getActiveTickers().get(chunkString);
+ if (locations == null) locations = new HashSet<>();
+
+ locations.add(l);
+ SlimefunPlugin.getRegistry().getActiveTickers().put(chunkString, locations);
+ SlimefunPlugin.getRegistry().getActiveChunks().add(chunkString);
+ }
+ }
+ }
+ }
+
+ public static SlimefunItem check(Block block) {
+ return check(block.getLocation());
+ }
+
+ public static SlimefunItem check(Location l) {
+ if (!hasBlockInfo(l)) return null;
+ return SlimefunItem.getByID(getLocationInfo(l, "id"));
+ }
+
+ public static String checkID(Block b) {
+ if (b.getState() instanceof TileState) {
+ Optional blockData = SlimefunPlugin.getBlockDataService().getBlockData((TileState) b.getState());
+
+ if (blockData.isPresent()) return blockData.get();
+ }
+
+ return checkID(b.getLocation());
+ }
+
+ public static boolean check(Block block, String slimefunItem) {
+ String id = checkID(block);
+ return id != null && id.equals(slimefunItem);
+ }
+
+ public static String checkID(Location l) {
+ if (!hasBlockInfo(l)) return null;
+ return getLocationInfo(l, "id");
+ }
+
+ public static boolean check(Location l, String slimefunItem) {
+ if (!hasBlockInfo(l)) return false;
+ try {
+ String id = getLocationInfo(l, "id");
+ return id != null && id.equalsIgnoreCase(slimefunItem);
+ }
+ catch (NullPointerException x) {
+ return false;
+ }
+ }
+
+ public static boolean isWorldRegistered(String name) {
+ return SlimefunPlugin.getRegistry().getWorlds().containsKey(name);
+ }
+
+ public static Set getTickingChunks() {
+ return new HashSet<>(SlimefunPlugin.getRegistry().getActiveChunks());
+ }
+
+ public static Set getTickingLocations(Chunk chunk) {
+ return getTickingLocations(chunk.toString());
+ }
+
+ public static Set getTickingLocations(String chunk) {
+ return new HashSet<>(SlimefunPlugin.getRegistry().getActiveTickers().get(chunk));
+ }
+
+ public BlockMenu loadInventory(Location l, BlockMenuPreset preset) {
+ BlockMenu menu = new BlockMenu(preset, l);
+ inventories.put(l, menu);
+ return menu;
+ }
+
+ public void loadUniversalInventory(BlockMenuPreset preset) {
+ SlimefunPlugin.getRegistry().getUniversalInventories().put(preset.getID(), new UniversalBlockMenu(preset));
+ }
+
+ public void clearInventory(Location l) {
+ BlockMenu menu = getInventory(l);
+
+ if (menu != null) {
+ for (HumanEntity human : new ArrayList<>(menu.toInventory().getViewers())) {
+ // Prevents "java.lang.IllegalStateException: Asynchronous entity add!" when closing inventory while
+ // holding an item
+ Slimefun.runSync(human::closeInventory);
+ }
+
+ inventories.get(l).delete(l);
+ inventories.remove(l);
+ }
+ }
+
+ public boolean hasInventory(Location l) {
+ return inventories.containsKey(l);
+ }
+
+ public static boolean hasUniversalInventory(String id) {
+ return SlimefunPlugin.getRegistry().getUniversalInventories().containsKey(id);
+ }
+
+ public static UniversalBlockMenu getUniversalInventory(Block block) {
+ return getUniversalInventory(block.getLocation());
+ }
+
+ public static UniversalBlockMenu getUniversalInventory(Location l) {
+ String id = checkID(l);
+ return id == null ? null : getUniversalInventory(id);
+ }
+
+ public static UniversalBlockMenu getUniversalInventory(String id) {
+ return SlimefunPlugin.getRegistry().getUniversalInventories().get(id);
+ }
+
+ public static BlockMenu getInventory(Block b) {
+ return getInventory(b.getLocation());
+ }
+
+ public static boolean hasInventory(Block b) {
+ BlockStorage storage = getStorage(b.getWorld());
+ if (storage == null) return false;
+ else return storage.hasInventory(b.getLocation());
+ }
+
+ public static BlockMenu getInventory(Location l) {
+ BlockStorage storage = getStorage(l.getWorld());
+ if (storage == null) return null;
+
+ BlockMenu menu = storage.inventories.get(l);
+ if (menu != null) return menu;
+ else return storage.loadInventory(l, BlockMenuPreset.getPreset(checkID(l)));
+ }
+
+ public static Config getChunkInfo(World world, int x, int z) {
+ try {
+ BlockInfoConfig cfg = SlimefunPlugin.getRegistry().getChunks().get(serializeChunk(world, x, z));
+ return cfg == null ? new BlockInfoConfig() : cfg;
+ }
+ catch (Exception e) {
+ Slimefun.getLogger().log(Level.SEVERE, "Failed to parse ChunkInfo for Slimefun " + SlimefunPlugin.getVersion(), x);
+ return new BlockInfoConfig();
+ }
+ }
+
+ public static void setChunkInfo(World world, int x, int z, String key, String value) {
+ String serializedChunk = serializeChunk(world, x, z);
+ BlockInfoConfig cfg = SlimefunPlugin.getRegistry().getChunks().get(serializedChunk);
+
+ if (cfg == null) {
+ cfg = new BlockInfoConfig();
+ SlimefunPlugin.getRegistry().getChunks().put(serializedChunk, cfg);
+ }
+
+ cfg.setValue(key, value);
+
+ chunkChanges++;
+ }
+
+ public static boolean hasChunkInfo(World world, int x, int z) {
+ String serializedChunk = serializeChunk(world, x, z);
+ return SlimefunPlugin.getRegistry().getChunks().containsKey(serializedChunk);
+ }
+
+ public static String getChunkInfo(World world, int x, int z, String key) {
+ return getChunkInfo(world, x, z).getString(key);
+ }
+
+ public static String getBlockInfoAsJson(Block block) {
+ return getBlockInfoAsJson(block.getLocation());
+ }
+
+ public static String getBlockInfoAsJson(Location l) {
+ return serializeBlockInfo(getLocationInfo(l));
+ }
+
+ public boolean hasUniversalInventory(Block block) {
+ return hasUniversalInventory(block.getLocation());
+ }
+
+ public boolean hasUniversalInventory(Location l) {
+ String id = checkID(l);
+ return id != null && hasUniversalInventory(id);
+ }
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java b/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java
index 9e764f863..1527221b3 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java
@@ -28,9 +28,13 @@ import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Objects.Research;
/**
- * A class that can store a Player's Research Profile for caching
+ * A class that can store a Player's {@link Research} progress for caching purposes.
+ * It also holds the backpacks of a {@link Player}.
*
* @author TheBusyBiscuit
+ *
+ * @see Research
+ * @see PlayerBackpack
*
*/
public final class PlayerProfile {
@@ -60,7 +64,9 @@ public final class PlayerProfile {
cfg = new Config(new File("data-storage/Slimefun/Players/" + uuid.toString() + ".yml"));
for (Research research : SlimefunPlugin.getRegistry().getResearches()) {
- if (cfg.contains("researches." + research.getID())) researches.add(research);
+ if (cfg.contains("researches." + research.getID())) {
+ researches.add(research);
+ }
}
}
diff --git a/src/main/java/me/mrCookieSlime/Slimefun/utils/ConfigCache.java b/src/main/java/me/mrCookieSlime/Slimefun/utils/ConfigCache.java
index b6c39efd4..1f18a7ac6 100644
--- a/src/main/java/me/mrCookieSlime/Slimefun/utils/ConfigCache.java
+++ b/src/main/java/me/mrCookieSlime/Slimefun/utils/ConfigCache.java
@@ -4,36 +4,18 @@ import java.util.List;
import io.github.thebusybiscuit.cscorelib2.config.Config;
+// Soon this class can be discarded
public final class ConfigCache {
- public final boolean printOutLoading;
-
public boolean researchesEnabled;
public final boolean researchesFreeInCreative;
public final boolean researchFireworksEnabled;
public final List researchesTitles;
- public final boolean translationsEnabled;
-
- public final int emeraldEnchantsLimit;
-
- public final boolean legacyDustWasher;
- public final boolean legacyOreGrinder;
- public final boolean legacyOreWasher;
-
public ConfigCache(Config cfg) {
- printOutLoading = cfg.getBoolean("options.print-out-loading");
- translationsEnabled = cfg.getBoolean("options.enable-translations");
-
researchesFreeInCreative = cfg.getBoolean("options.allow-free-creative-research");
researchesTitles = cfg.getStringList("research-ranks");
researchFireworksEnabled = cfg.getBoolean("options.research-unlock-fireworks");
-
- emeraldEnchantsLimit = cfg.getInt("options.emerald-enchantment-limit");
-
- legacyDustWasher = cfg.getBoolean("options.legacy-dust-washer");
- legacyOreWasher = cfg.getBoolean("options.legacy-ore-washer");
- legacyOreGrinder = cfg.getBoolean("options.legacy-ore-grinder");
}
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 1d707857b..24d7b4862 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -7,8 +7,6 @@ options:
auto-update: true
armor-update-interval: 10
give-guide-on-first-join: true
- print-out-loading: false
- print-out-github-data-retrieving: false
enable-armor-effects: true
prefix: '&a&lSlimefun &7>'
auto-save-delay-in-minutes: 10
@@ -16,7 +14,6 @@ options:
allow-free-creative-research: true
emerald-enchantment-limit: 2
research-unlock-fireworks: true
- research-give-fireworks: true
legacy-ore-washer: false
legacy-dust-washer: false
legacy-ore-grinder: true