mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Added Nether Gold Pan to the Electric Gold Pan
This commit is contained in:
parent
a29016a391
commit
f25bf75d67
@ -111,7 +111,6 @@ public class LockedCategory extends Category {
|
||||
*
|
||||
* @since 4.0
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean hasUnlocked(Player p) {
|
||||
return hasUnlocked(p, PlayerProfile.get(p));
|
||||
}
|
||||
|
@ -194,7 +194,10 @@ public abstract class AContainer extends SlimefunItem implements InventoryBlock
|
||||
}
|
||||
else {
|
||||
inv.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
|
||||
pushItems(b, processing.get(b).getOutput().clone());
|
||||
|
||||
for (ItemStack output: processing.get(b).getOutput()) {
|
||||
inv.pushItem(output.clone(), getOutputSlots());
|
||||
}
|
||||
|
||||
progress.remove(b);
|
||||
processing.remove(b);
|
||||
|
@ -66,7 +66,7 @@ public abstract class AutoAnvil extends AContainer {
|
||||
}
|
||||
else {
|
||||
menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
|
||||
pushItems(b, processing.get(b).getOutput());
|
||||
menu.pushItem(processing.get(b).getOutput()[0].clone(), getOutputSlots());
|
||||
|
||||
progress.remove(b);
|
||||
processing.remove(b);
|
||||
@ -94,7 +94,7 @@ public abstract class AutoAnvil extends AContainer {
|
||||
}
|
||||
|
||||
if (recipe != null) {
|
||||
if (!fits(b, recipe.getOutput())) return;
|
||||
if (!menu.fits(recipe.getOutput()[0], getOutputSlots())) return;
|
||||
|
||||
for (int slot: getInputSlots()) {
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
|
@ -107,16 +107,18 @@ public class AutoDisenchanter extends AContainer {
|
||||
if (item != null && target != null && target.getType() == Material.BOOK) {
|
||||
int amount = 0;
|
||||
|
||||
for (Map.Entry<Enchantment, Integer> e: item.getEnchantments().entrySet()) {
|
||||
for (Map.Entry<Enchantment, Integer> e : item.getEnchantments().entrySet()) {
|
||||
enchantments.put(e.getKey(), e.getValue());
|
||||
amount++;
|
||||
}
|
||||
|
||||
if (SlimefunPlugin.getHooks().isEmeraldEnchantsInstalled()) {
|
||||
for (ItemEnchantment enchantment: EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) {
|
||||
for (ItemEnchantment enchantment : EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) {
|
||||
amount++;
|
||||
enchantments2.add(enchantment);
|
||||
}
|
||||
}
|
||||
|
||||
if (amount > 0) {
|
||||
ItemStack newItem = item.clone();
|
||||
newItem.setAmount(1);
|
||||
@ -133,13 +135,14 @@ public class AutoDisenchanter extends AContainer {
|
||||
|
||||
EnchantmentStorageMeta meta = (EnchantmentStorageMeta) book.getItemMeta();
|
||||
|
||||
for (Map.Entry<Enchantment,Integer> e: enchantments.entrySet()) {
|
||||
for (Map.Entry<Enchantment,Integer> e : enchantments.entrySet()) {
|
||||
newItem.removeEnchantment(e.getKey());
|
||||
meta.addStoredEnchant(e.getKey(), e.getValue(), true);
|
||||
}
|
||||
|
||||
book.setItemMeta(meta);
|
||||
|
||||
for (ItemEnchantment e: enchantments2) {
|
||||
for (ItemEnchantment e : enchantments2) {
|
||||
EmeraldEnchants.getInstance().getRegistry().applyEnchantment(book, e.getEnchantment(), e.getLevel());
|
||||
EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, e.getEnchantment(), 0);
|
||||
}
|
||||
|
@ -212,8 +212,8 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem implements I
|
||||
if (SlimefunPlugin.getUtilities().automatedCraftingChamberRecipes.containsKey(input)) {
|
||||
ItemStack output = SlimefunPlugin.getUtilities().automatedCraftingChamberRecipes.get(input).clone();
|
||||
|
||||
if (fits(b, output)) {
|
||||
pushItems(b, output);
|
||||
if (menu.fits(output, getOutputSlots())) {
|
||||
menu.pushItem(output, getOutputSlots());
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
for (int j = 0; j < 9; j++) {
|
||||
if (menu.getItemInSlot(getInputSlots()[j]) != null) menu.replaceExistingItem(getInputSlots()[j], InvUtils.decreaseItem(menu.getItemInSlot(getInputSlots()[j]), 1));
|
||||
|
@ -59,7 +59,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
|
||||
menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
|
||||
pushItems(b, processing.get(b).getOutput());
|
||||
menu.pushItem(processing.get(b).getOutput()[0].clone(), getOutputSlots());
|
||||
|
||||
progress.remove(b);
|
||||
processing.remove(b);
|
||||
@ -84,7 +84,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
|
||||
ItemStack adding = items[new Random().nextInt(items.length)];
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {adding});
|
||||
if (SlimefunPlugin.getSettings().legacyDustWasher && !fits(b, r.getOutput())) return;
|
||||
if (SlimefunPlugin.getSettings().legacyDustWasher && !menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
@ -92,7 +92,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), SlimefunItems.PULVERIZED_ORE, true)) {
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER});
|
||||
if (!fits(b, r.getOutput())) return;
|
||||
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
|
@ -2,12 +2,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
@ -18,6 +18,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecip
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
@ -25,23 +26,56 @@ import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public abstract class ElectricGoldPan extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
private Random random = new Random();
|
||||
private final RandomizedSet<ItemStack> randomizer = new RandomizedSet<>();
|
||||
private final RandomizedSet<ItemStack> randomizerNether = new RandomizedSet<>();
|
||||
|
||||
private final List<ItemStack> displayRecipes = Arrays.asList(
|
||||
new ItemStack(Material.GRAVEL),
|
||||
SlimefunItems.SIFTED_ORE,
|
||||
new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT),
|
||||
new ItemStack(Material.GRAVEL), SlimefunItems.SIFTED_ORE,
|
||||
new ItemStack(Material.GRAVEL), new ItemStack(Material.CLAY_BALL),
|
||||
new ItemStack(Material.GRAVEL), new ItemStack(Material.IRON_NUGGET),
|
||||
|
||||
new ItemStack(Material.GRAVEL),
|
||||
new ItemStack(Material.FLINT),
|
||||
|
||||
new ItemStack(Material.GRAVEL),
|
||||
new ItemStack(Material.CLAY_BALL)
|
||||
new ItemStack(Material.SOUL_SAND), new ItemStack(Material.QUARTZ),
|
||||
new ItemStack(Material.SOUL_SAND), new ItemStack(Material.GOLD_NUGGET),
|
||||
new ItemStack(Material.SOUL_SAND), new ItemStack(Material.NETHER_WART),
|
||||
new ItemStack(Material.SOUL_SAND), new ItemStack(Material.BLAZE_POWDER),
|
||||
new ItemStack(Material.SOUL_SAND), new ItemStack(Material.GLOWSTONE_DUST),
|
||||
new ItemStack(Material.SOUL_SAND), new ItemStack(Material.GHAST_TEAR)
|
||||
);
|
||||
|
||||
public ElectricGoldPan(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postRegister() {
|
||||
super.postRegister();
|
||||
|
||||
String goldPan = "GOLD_PAN";
|
||||
String netherGoldPan = "NETHER_GOLD_PAN";
|
||||
|
||||
add(false, SlimefunItems.SIFTED_ORE, (int) Slimefun.getItemValue(goldPan, "chance.SIFTED_ORE"));
|
||||
add(false, new ItemStack(Material.CLAY_BALL), (int) Slimefun.getItemValue(goldPan, "chance.CLAY"));
|
||||
add(false, new ItemStack(Material.FLINT), (int) Slimefun.getItemValue(goldPan, "chance.FLINT"));
|
||||
add(false, new ItemStack(Material.IRON_NUGGET), (int) Slimefun.getItemValue(goldPan, "chance.IRON_NUGGET"));
|
||||
|
||||
add(true, new ItemStack(Material.QUARTZ), (int) Slimefun.getItemValue(netherGoldPan, "chance.QUARTZ"));
|
||||
add(true, new ItemStack(Material.GOLD_NUGGET), (int) Slimefun.getItemValue(netherGoldPan, "chance.GOLD_NUGGET"));
|
||||
add(true, new ItemStack(Material.NETHER_WART), (int) Slimefun.getItemValue(netherGoldPan, "chance.NETHER_WART"));
|
||||
add(true, new ItemStack(Material.BLAZE_POWDER), (int) Slimefun.getItemValue(netherGoldPan, "chance.BLAZE_POWDER"));
|
||||
add(true, new ItemStack(Material.GLOWSTONE_DUST), (int) Slimefun.getItemValue(netherGoldPan, "chance.GLOWSTONE_DUST"));
|
||||
add(true, new ItemStack(Material.GHAST_TEAR), (int) Slimefun.getItemValue(netherGoldPan, "chance.GHAST_TEAR"));
|
||||
}
|
||||
|
||||
private void add(boolean nether, ItemStack item, int chance) {
|
||||
if (nether) {
|
||||
randomizerNether.add(item, chance);
|
||||
}
|
||||
else {
|
||||
randomizer.add(item, chance);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryTitle() {
|
||||
return "&6Electric Gold Pan";
|
||||
@ -74,7 +108,7 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
|
||||
menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
|
||||
pushItems(b, processing.get(b).getOutput());
|
||||
menu.pushItem(processing.get(b).getOutput()[0].clone(), getOutputSlots());
|
||||
|
||||
progress.remove(b);
|
||||
processing.remove(b);
|
||||
@ -83,12 +117,22 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
else {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), new ItemStack(Material.GRAVEL), true)) {
|
||||
ItemStack output = SlimefunItems.SIFTED_ORE;
|
||||
if (random.nextInt(100) < 16) output = new ItemStack(Material.FLINT);
|
||||
if (random.nextInt(100) < 16) output = new ItemStack(Material.CLAY_BALL);
|
||||
ItemStack output = randomizer.getRandom();
|
||||
|
||||
MachineRecipe r = new MachineRecipe(3 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||
if (!fits(b, r.getOutput())) return;
|
||||
if (!menu.fits(output, getOutputSlots())) return;
|
||||
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
ItemStack output = randomizerNether.getRandom();
|
||||
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||
if (!menu.fits(output, getOutputSlots())) return;
|
||||
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
|
@ -225,10 +225,7 @@ public final class PlayerProfile {
|
||||
*
|
||||
* @param uuid The UUID of the profile you are trying to retrieve.
|
||||
* @return The PlayerProfile of this player
|
||||
*
|
||||
* @deprecated Use {@link #fromUUID(UUID, Consumer)}
|
||||
*/
|
||||
@Deprecated
|
||||
public static PlayerProfile fromUUID(UUID uuid) {
|
||||
PlayerProfile profile = SlimefunPlugin.getUtilities().profiles.get(uuid);
|
||||
|
||||
|
@ -38,7 +38,6 @@ public class PlaceholderAPIHook extends PlaceholderExpansion {
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public String onRequest(OfflinePlayer p, String params) {
|
||||
if (params.equals("researches_total_xp_levels_spent")) {
|
||||
|
@ -13,7 +13,6 @@ public class PlayerQuitListener implements Listener {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@EventHandler
|
||||
public void onDisconnect(PlayerQuitEvent e) {
|
||||
if (PlayerProfile.isLoaded(e.getPlayer().getUniqueId())) {
|
||||
|
Loading…
Reference in New Issue
Block a user