mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 11:45:51 +00:00
Refactoring
This commit is contained in:
parent
388873d6a2
commit
bbf0bfd006
@ -4,6 +4,7 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.FireworkEffect;
|
import org.bukkit.FireworkEffect;
|
||||||
import org.bukkit.FireworkEffect.Type;
|
import org.bukkit.FireworkEffect.Type;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.FireworkEffectMeta;
|
import org.bukkit.inventory.meta.FireworkEffectMeta;
|
||||||
@ -651,9 +652,13 @@ public final class SlimefunItems {
|
|||||||
|
|
||||||
public static final ItemStack ELYTRA = new ItemStack(Material.ELYTRA);
|
public static final ItemStack ELYTRA = new ItemStack(Material.ELYTRA);
|
||||||
public static final ItemStack ELYTRA_SCALE = new CustomItem(Material.FEATHER, "&bEyltra Scale");
|
public static final ItemStack ELYTRA_SCALE = new CustomItem(Material.FEATHER, "&bEyltra Scale");
|
||||||
public static final ItemStack INFUSED_ELYTRA = new CustomItem(new CustomItem(ELYTRA, "&5Infused Elytra"), new String[] {"MENDING-1"});
|
public static final ItemStack INFUSED_ELYTRA = new CustomItem(ELYTRA, "&5Infused Elytra");
|
||||||
public static final ItemStack SOULBOUND_ELYTRA = new CustomItem(ELYTRA, "&cSoulbound Elytra");
|
public static final ItemStack SOULBOUND_ELYTRA = new CustomItem(ELYTRA, "&cSoulbound Elytra");
|
||||||
|
|
||||||
|
static {
|
||||||
|
INFUSED_ELYTRA.addEnchantment(Enchantment.MENDING, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// ChestTerminal Addon
|
// ChestTerminal Addon
|
||||||
|
|
||||||
public static final ItemStack CHEST_TERMINAL = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E0NGZmM2E1ZjQ5YzY5Y2FiNjc2YmFkOGQ5OGEwNjNmYTc4Y2ZhNjE5MTZmZGVmM2UyNjc1NTdmZWMxODI4MyJ9fX0="), "&3CT Access Terminal", "&7If this Block is connected to a", "&7Cargo Network, it will allow you to remotely", "&7interact with any Items supplied by", "&7Nodes tuned into the ChestTerminal Channel");
|
public static final ItemStack CHEST_TERMINAL = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E0NGZmM2E1ZjQ5YzY5Y2FiNjc2YmFkOGQ5OGEwNjNmYTc4Y2ZhNjE5MTZmZGVmM2UyNjc1NTdmZWMxODI4MyJ9fX0="), "&3CT Access Terminal", "&7If this Block is connected to a", "&7Cargo Network, it will allow you to remotely", "&7interact with any Items supplied by", "&7Nodes tuned into the ChestTerminal Channel");
|
||||||
|
@ -68,21 +68,6 @@ public final class SlimefunManager {
|
|||||||
// Material.COAL, Material.SKULL_ITEM, Material.RAW_FISH, Material.COOKED_FISH);
|
// Material.COAL, Material.SKULL_ITEM, Material.RAW_FISH, Material.COOKED_FISH);
|
||||||
|
|
||||||
public static boolean isItemSimiliar(ItemStack item, ItemStack SFitem, boolean lore) {
|
public static boolean isItemSimiliar(ItemStack item, ItemStack SFitem, boolean lore) {
|
||||||
return isItemSimiliar(item, SFitem, lore, DataType.IF_COLORED);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public static enum DataType {
|
|
||||||
|
|
||||||
ALWAYS,
|
|
||||||
NEVER,
|
|
||||||
IF_COLORED;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public static boolean isItemSimiliar(ItemStack item, ItemStack SFitem, boolean lore, DataType data) {
|
|
||||||
if (item == null) return SFitem == null;
|
if (item == null) return SFitem == null;
|
||||||
if (SFitem == null) return false;
|
if (SFitem == null) return false;
|
||||||
|
|
||||||
@ -116,6 +101,21 @@ public final class SlimefunManager {
|
|||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public static enum DataType {
|
||||||
|
|
||||||
|
ALWAYS,
|
||||||
|
NEVER,
|
||||||
|
IF_COLORED;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public static boolean isItemSimiliar(ItemStack item, ItemStack SFitem, boolean lore, DataType data) {
|
||||||
|
return isItemSimiliar(item, SFitem, lore);
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean equalsLore(List<String> lore, List<String> lore2) {
|
private static boolean equalsLore(List<String> lore, List<String> lore2) {
|
||||||
String string1 = "", string2 = "";
|
String string1 = "", string2 = "";
|
||||||
for (String string: lore) {
|
for (String string: lore) {
|
||||||
|
@ -166,6 +166,8 @@ public final class SlimefunSetup {
|
|||||||
private SlimefunSetup() {}
|
private SlimefunSetup() {}
|
||||||
|
|
||||||
public static void setupItems() {
|
public static void setupItems() {
|
||||||
|
Random random = new Random();
|
||||||
|
|
||||||
new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDMAS_WALKING_STICK, "GRANDMAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new SlimefunItem(Categories.WEAPONS, SlimefunItems.GRANDMAS_WALKING_STICK, "GRANDMAS_WALKING_STICK", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null})
|
new ItemStack[] {null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null, null, new ItemStack(Material.OAK_LOG), null})
|
||||||
.register(true);
|
.register(true);
|
||||||
@ -556,8 +558,6 @@ public final class SlimefunSetup {
|
|||||||
new String[] {"chance.FLINT", "chance.CLAY", "chance.SIFTED_ORE"}, new Integer[] {47, 28, 15})
|
new String[] {"chance.FLINT", "chance.CLAY", "chance.SIFTED_ORE"}, new Integer[] {47, 28, 15})
|
||||||
.register(true, new ItemInteractionHandler() {
|
.register(true, new ItemInteractionHandler() {
|
||||||
|
|
||||||
private Random random = new Random();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) {
|
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) {
|
||||||
@ -1744,7 +1744,10 @@ public final class SlimefunSetup {
|
|||||||
Block b = e.getBlock().getRelative(x, y, z);
|
Block b = e.getBlock().getRelative(x, y, z);
|
||||||
if (b.getType() != Material.AIR && !b.isLiquid() && !StringUtils.equals(b.getType().toString(), explosiveblacklist)) {
|
if (b.getType() != Material.AIR && !b.isLiquid() && !StringUtils.equals(b.getType().toString(), explosiveblacklist)) {
|
||||||
if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(), b)) {
|
if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(), b)) {
|
||||||
if (SlimefunStartup.instance.isCoreProtectInstalled()) SlimefunStartup.instance.getCoreProtectAPI().logRemoval(e.getPlayer().getName(), b.getLocation(), b.getType(), b.getBlockData());
|
if (SlimefunStartup.instance.getHooks().isCoreProtectInstalled()) {
|
||||||
|
SlimefunStartup.instance.getHooks().getCoreProtectAPI().logRemoval(e.getPlayer().getName(), b.getLocation(), b.getType(), b.getBlockData());
|
||||||
|
}
|
||||||
|
|
||||||
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType());
|
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType());
|
||||||
SlimefunItem sfItem = BlockStorage.check(b);
|
SlimefunItem sfItem = BlockStorage.check(b);
|
||||||
boolean allow = false;
|
boolean allow = false;
|
||||||
@ -1769,7 +1772,7 @@ public final class SlimefunSetup {
|
|||||||
b.setType(Material.AIR);
|
b.setType(Material.AIR);
|
||||||
}
|
}
|
||||||
if (damageOnUse) {
|
if (damageOnUse) {
|
||||||
if (!item.getEnchantments().containsKey(Enchantment.DURABILITY) || SlimefunStartup.randomize(100) <= (60 + 40 / (item.getEnchantmentLevel(Enchantment.DURABILITY) + 1))) {
|
if (!item.getEnchantments().containsKey(Enchantment.DURABILITY) || random.nextInt(100) <= (60 + 40 / (item.getEnchantmentLevel(Enchantment.DURABILITY) + 1))) {
|
||||||
PlayerInventory.damageItemInHand(e.getPlayer());
|
PlayerInventory.damageItemInHand(e.getPlayer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2096,7 +2099,7 @@ public final class SlimefunSetup {
|
|||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
if (e.getPlayer().getInventory().getItemInMainHand() != null) {
|
if (e.getPlayer().getInventory().getItemInMainHand() != null) {
|
||||||
if (e.getPlayer().getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
|
if (e.getPlayer().getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
|
||||||
if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getInventory().getItemInMainHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer());
|
if (random.nextInt(100) <= (60 + 40 / (e.getPlayer().getInventory().getItemInMainHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer());
|
||||||
}
|
}
|
||||||
else PlayerInventory.damageItemInHand(e.getPlayer());
|
else PlayerInventory.damageItemInHand(e.getPlayer());
|
||||||
}
|
}
|
||||||
@ -2570,7 +2573,7 @@ public final class SlimefunSetup {
|
|||||||
gifts.add(new CustomItem(SlimefunItems.CARROT_JUICE, 1));
|
gifts.add(new CustomItem(SlimefunItems.CARROT_JUICE, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
gifts.add(new SkullItem("mrCookieSlime"));
|
gifts.add(new SkullItem("TheBusyBiscuit"));
|
||||||
gifts.add(new SkullItem("timtower"));
|
gifts.add(new SkullItem("timtower"));
|
||||||
gifts.add(new SkullItem("bwfcwalshy"));
|
gifts.add(new SkullItem("bwfcwalshy"));
|
||||||
gifts.add(new SkullItem("jadedcat"));
|
gifts.add(new SkullItem("jadedcat"));
|
||||||
|
@ -50,8 +50,7 @@ import me.mrCookieSlime.Slimefun.autosave.BlockAutoSaver;
|
|||||||
import me.mrCookieSlime.Slimefun.autosave.PlayerAutoSaver;
|
import me.mrCookieSlime.Slimefun.autosave.PlayerAutoSaver;
|
||||||
import me.mrCookieSlime.Slimefun.commands.SlimefunCommand;
|
import me.mrCookieSlime.Slimefun.commands.SlimefunCommand;
|
||||||
import me.mrCookieSlime.Slimefun.commands.SlimefunTabCompleter;
|
import me.mrCookieSlime.Slimefun.commands.SlimefunTabCompleter;
|
||||||
import me.mrCookieSlime.Slimefun.hooks.PlaceholderAPIHook;
|
import me.mrCookieSlime.Slimefun.hooks.SlimefunHooks;
|
||||||
import me.mrCookieSlime.Slimefun.hooks.WorldEditHook;
|
|
||||||
import me.mrCookieSlime.Slimefun.hooks.github.GitHubConnector;
|
import me.mrCookieSlime.Slimefun.hooks.github.GitHubConnector;
|
||||||
import me.mrCookieSlime.Slimefun.hooks.github.GitHubSetup;
|
import me.mrCookieSlime.Slimefun.hooks.github.GitHubSetup;
|
||||||
import me.mrCookieSlime.Slimefun.listeners.AncientAltarListener;
|
import me.mrCookieSlime.Slimefun.listeners.AncientAltarListener;
|
||||||
@ -61,7 +60,6 @@ import me.mrCookieSlime.Slimefun.listeners.AutonomousToolsListener;
|
|||||||
import me.mrCookieSlime.Slimefun.listeners.BackpackListener;
|
import me.mrCookieSlime.Slimefun.listeners.BackpackListener;
|
||||||
import me.mrCookieSlime.Slimefun.listeners.BlockListener;
|
import me.mrCookieSlime.Slimefun.listeners.BlockListener;
|
||||||
import me.mrCookieSlime.Slimefun.listeners.BowListener;
|
import me.mrCookieSlime.Slimefun.listeners.BowListener;
|
||||||
import me.mrCookieSlime.Slimefun.listeners.ClearLaggIntegration;
|
|
||||||
import me.mrCookieSlime.Slimefun.listeners.CoolerListener;
|
import me.mrCookieSlime.Slimefun.listeners.CoolerListener;
|
||||||
import me.mrCookieSlime.Slimefun.listeners.DamageListener;
|
import me.mrCookieSlime.Slimefun.listeners.DamageListener;
|
||||||
import me.mrCookieSlime.Slimefun.listeners.FurnaceListener;
|
import me.mrCookieSlime.Slimefun.listeners.FurnaceListener;
|
||||||
@ -77,8 +75,6 @@ import me.mrCookieSlime.Slimefun.listeners.ToolListener;
|
|||||||
import me.mrCookieSlime.Slimefun.listeners.WorldListener;
|
import me.mrCookieSlime.Slimefun.listeners.WorldListener;
|
||||||
import me.mrCookieSlime.Slimefun.utils.Settings;
|
import me.mrCookieSlime.Slimefun.utils.Settings;
|
||||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||||
import net.coreprotect.CoreProtect;
|
|
||||||
import net.coreprotect.CoreProtectAPI;
|
|
||||||
|
|
||||||
public final class SlimefunStartup extends JavaPlugin {
|
public final class SlimefunStartup extends JavaPlugin {
|
||||||
|
|
||||||
@ -91,15 +87,10 @@ public final class SlimefunStartup extends JavaPlugin {
|
|||||||
private static Config config;
|
private static Config config;
|
||||||
|
|
||||||
public static TickerTask ticker;
|
public static TickerTask ticker;
|
||||||
|
|
||||||
private CoreProtectAPI coreProtectAPI;
|
|
||||||
|
|
||||||
private Utilities utilities = new Utilities();
|
private Utilities utilities = new Utilities();
|
||||||
private Settings settings;
|
private Settings settings;
|
||||||
|
private SlimefunHooks hooks;
|
||||||
private boolean clearlag = false;
|
|
||||||
private boolean exoticGarden = false;
|
|
||||||
private boolean coreProtect = false;
|
|
||||||
|
|
||||||
// Supported Versions of Minecraft
|
// Supported Versions of Minecraft
|
||||||
private final String[] supported = {"v1_14_"};
|
private final String[] supported = {"v1_14_"};
|
||||||
@ -327,33 +318,7 @@ public final class SlimefunStartup extends JavaPlugin {
|
|||||||
|
|
||||||
// Hooray!
|
// Hooray!
|
||||||
System.out.println("[Slimefun] Finished!");
|
System.out.println("[Slimefun] Finished!");
|
||||||
|
hooks = new SlimefunHooks(this);
|
||||||
clearlag = getServer().getPluginManager().isPluginEnabled("ClearLag");
|
|
||||||
coreProtect = getServer().getPluginManager().isPluginEnabled("CoreProtect");
|
|
||||||
|
|
||||||
getServer().getScheduler().runTaskLater(this, () -> {
|
|
||||||
exoticGarden = getServer().getPluginManager().isPluginEnabled("ExoticGarden"); // Had to do it this way, otherwise it seems disabled.
|
|
||||||
}, 0);
|
|
||||||
|
|
||||||
if (clearlag) new ClearLaggIntegration(this);
|
|
||||||
if (coreProtect) coreProtectAPI = ((CoreProtect) getServer().getPluginManager().getPlugin("CoreProtect")).getAPI();
|
|
||||||
|
|
||||||
|
|
||||||
// WorldEdit Hook to clear Slimefun Data upon //set 0 //cut or any other equivalent
|
|
||||||
if (getServer().getPluginManager().isPluginEnabled("WorldEdit")) {
|
|
||||||
try {
|
|
||||||
Class.forName("com.sk89q.worldedit.extent.Extent");
|
|
||||||
new WorldEditHook();
|
|
||||||
System.out.println("[Slimefun] Successfully hooked into WorldEdit!");
|
|
||||||
} catch (Exception x) {
|
|
||||||
System.err.println("[Slimefun] Failed to hook into WorldEdit!");
|
|
||||||
System.err.println("[Slimefun] Maybe consider updating WorldEdit or Slimefun?");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
|
||||||
new PlaceholderAPIHook().register();
|
|
||||||
}
|
|
||||||
|
|
||||||
OreWasher.items = new ItemStack[] {SlimefunItems.IRON_DUST, SlimefunItems.GOLD_DUST, SlimefunItems.ALUMINUM_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.ZINC_DUST, SlimefunItems.TIN_DUST, SlimefunItems.LEAD_DUST, SlimefunItems.SILVER_DUST, SlimefunItems.MAGNESIUM_DUST};
|
OreWasher.items = new ItemStack[] {SlimefunItems.IRON_DUST, SlimefunItems.GOLD_DUST, SlimefunItems.ALUMINUM_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.ZINC_DUST, SlimefunItems.TIN_DUST, SlimefunItems.LEAD_DUST, SlimefunItems.SILVER_DUST, SlimefunItems.MAGNESIUM_DUST};
|
||||||
|
|
||||||
@ -477,20 +442,8 @@ public final class SlimefunStartup extends JavaPlugin {
|
|||||||
return CSCoreLib.randomizer().nextInt(max) <= percentage;
|
return CSCoreLib.randomizer().nextInt(max) <= percentage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isClearLagInstalled() {
|
public SlimefunHooks getHooks() {
|
||||||
return clearlag;
|
return hooks;
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExoticGardenInstalled () {
|
|
||||||
return exoticGarden;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isCoreProtectInstalled() {
|
|
||||||
return coreProtect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CoreProtectAPI getCoreProtectAPI() {
|
|
||||||
return coreProtectAPI;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Utilities getUtilities() {
|
public Utilities getUtilities() {
|
||||||
|
@ -822,7 +822,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
|||||||
|
|
||||||
private void exoticFarm(Block b, Block block) {
|
private void exoticFarm(Block b, Block block) {
|
||||||
farm(b, block);
|
farm(b, block);
|
||||||
if (SlimefunStartup.instance.isExoticGardenInstalled()) {
|
if (SlimefunStartup.instance.getHooks().isExoticGardenInstalled()) {
|
||||||
ItemStack drop = ExoticGarden.harvestPlant(block);
|
ItemStack drop = ExoticGarden.harvestPlant(block);
|
||||||
if (drop != null && fits(b, drop)) {
|
if (drop != null && fits(b, drop)) {
|
||||||
pushItems(b, drop);
|
pushItems(b, drop);
|
||||||
|
@ -11,7 +11,6 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager.DataType;
|
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||||
import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
|
import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
|
||||||
@ -199,7 +198,6 @@ public class CargoManager {
|
|||||||
|
|
||||||
BlockMenu menu = BlockStorage.getInventory(block.getLocation());
|
BlockMenu menu = BlockStorage.getInventory(block.getLocation());
|
||||||
boolean lore = blockInfo.getString("filter-lore").equals("true");
|
boolean lore = blockInfo.getString("filter-lore").equals("true");
|
||||||
boolean data = blockInfo.getString("filter-durability").equals("true");
|
|
||||||
|
|
||||||
if (blockInfo.getString("filter-type").equals("whitelist")) {
|
if (blockInfo.getString("filter-type").equals("whitelist")) {
|
||||||
List<ItemStack> items = new ArrayList<>();
|
List<ItemStack> items = new ArrayList<>();
|
||||||
@ -218,18 +216,18 @@ public class CargoManager {
|
|||||||
|
|
||||||
BlockStorage.addBlockInfo(block, "index", String.valueOf(index));
|
BlockStorage.addBlockInfo(block, "index", String.valueOf(index));
|
||||||
|
|
||||||
return SlimefunManager.isItemSimiliar(item, items.get(index), lore, data ? DataType.ALWAYS: DataType.NEVER);
|
return SlimefunManager.isItemSimiliar(item, items.get(index), lore);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (ItemStack stack: items) {
|
for (ItemStack stack: items) {
|
||||||
if (SlimefunManager.isItemSimiliar(item, stack, lore, data ? DataType.ALWAYS: DataType.NEVER)) return true;
|
if (SlimefunManager.isItemSimiliar(item, stack, lore)) return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (int slot: slots) {
|
for (int slot: slots) {
|
||||||
if (menu.getItemInSlot(slot) != null && SlimefunManager.isItemSimiliar(item, new CustomItem(menu.getItemInSlot(slot), 1), lore, data ? DataType.ALWAYS: DataType.NEVER)) {
|
if (menu.getItemInSlot(slot) != null && SlimefunManager.isItemSimiliar(item, new CustomItem(menu.getItemInSlot(slot), 1), lore)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ import me.mrCookieSlime.Slimefun.Objects.Research;
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Setup.Messages;
|
import me.mrCookieSlime.Slimefun.Setup.Messages;
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.PlayerProfile;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
|
|
||||||
public class SlimefunCommand implements CommandExecutor, Listener {
|
public class SlimefunCommand implements CommandExecutor, Listener {
|
||||||
@ -200,8 +201,9 @@ public class SlimefunCommand implements CommandExecutor, Listener {
|
|||||||
if (args.length == 3) {
|
if (args.length == 3) {
|
||||||
if (Players.isOnline(args[1])) {
|
if (Players.isOnline(args[1])) {
|
||||||
if (Slimefun.listIDs().contains(args[2].toUpperCase())) {
|
if (Slimefun.listIDs().contains(args[2].toUpperCase())) {
|
||||||
Messages.local.sendTranslation(Bukkit.getPlayer(args[1]), "messages.given-item", true, new Variable("%item%", SlimefunItem.getByID(args[2].toUpperCase()).getItem().getItemMeta().getDisplayName()), new Variable("%amount%", "1"));
|
Player p = Bukkit.getPlayer(args[1]);
|
||||||
Bukkit.getPlayer(args[1]).getInventory().addItem(SlimefunItem.getByID(args[2].toUpperCase()).getItem());
|
Messages.local.sendTranslation(p, "messages.given-item", true, new Variable("%item%", SlimefunItem.getByID(args[2].toUpperCase()).getItem().getItemMeta().getDisplayName()), new Variable("%amount%", "1"));
|
||||||
|
p.getInventory().addItem(SlimefunItem.getByID(args[2].toUpperCase()).getItem());
|
||||||
Messages.local.sendTranslation(sender, "messages.give-item", true, new Variable("%player%", args[1]), new Variable("%item%", SlimefunItem.getByID(args[2].toUpperCase()).getItem().getItemMeta().getDisplayName()), new Variable("%amount%", "1"));
|
Messages.local.sendTranslation(sender, "messages.give-item", true, new Variable("%player%", args[1]), new Variable("%item%", SlimefunItem.getByID(args[2].toUpperCase()).getItem().getItemMeta().getDisplayName()), new Variable("%amount%", "1"));
|
||||||
}
|
}
|
||||||
else Messages.local.sendTranslation(sender, "messages.not-valid-item", true, new Variable("%item%", args[2]));
|
else Messages.local.sendTranslation(sender, "messages.not-valid-item", true, new Variable("%item%", args[2]));
|
||||||
@ -254,15 +256,17 @@ public class SlimefunCommand implements CommandExecutor, Listener {
|
|||||||
if (sender.hasPermission("slimefun.cheat.researches") || !(sender instanceof Player)) {
|
if (sender.hasPermission("slimefun.cheat.researches") || !(sender instanceof Player)) {
|
||||||
if (Players.isOnline(args[1])) {
|
if (Players.isOnline(args[1])) {
|
||||||
Player p = Bukkit.getPlayer(args[1]);
|
Player p = Bukkit.getPlayer(args[1]);
|
||||||
|
PlayerProfile profile = PlayerProfile.fromUUID(p.getUniqueId());
|
||||||
|
|
||||||
if (args[2].equalsIgnoreCase("all")) {
|
if (args[2].equalsIgnoreCase("all")) {
|
||||||
for (Research res : Research.list()) {
|
for (Research res : Research.list()) {
|
||||||
if (!res.hasUnlocked(p)) Messages.local.sendTranslation(sender, "messages.give-research", true, new Variable("%player%", p.getName()), new Variable("%research%", res.getName()));
|
if (!profile.hasUnlocked(res)) Messages.local.sendTranslation(sender, "messages.give-research", true, new Variable("%player%", p.getName()), new Variable("%research%", res.getName()));
|
||||||
res.unlock(p, true);
|
res.unlock(p, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args[2].equalsIgnoreCase("reset")) {
|
else if (args[2].equalsIgnoreCase("reset")) {
|
||||||
for (Research res : Research.list()) {
|
for (Research res : Research.list()) {
|
||||||
res.lock(p);
|
profile.setResearched(res, false);
|
||||||
}
|
}
|
||||||
Messages.local.sendTranslation(p, "commands.research.reset", true, new Variable("%player%", args[1]));
|
Messages.local.sendTranslation(p, "commands.research.reset", true, new Variable("%player%", args[1]));
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package me.mrCookieSlime.Slimefun.listeners;
|
package me.mrCookieSlime.Slimefun.hooks;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
@ -10,9 +10,9 @@ import org.bukkit.entity.Item;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
public class ClearLaggIntegration implements Listener {
|
public class ClearLagHook implements Listener {
|
||||||
|
|
||||||
public ClearLaggIntegration(SlimefunStartup plugin) {
|
public ClearLagHook(SlimefunStartup plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
74
src/me/mrCookieSlime/Slimefun/hooks/SlimefunHooks.java
Normal file
74
src/me/mrCookieSlime/Slimefun/hooks/SlimefunHooks.java
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.hooks;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||||
|
import net.coreprotect.CoreProtect;
|
||||||
|
import net.coreprotect.CoreProtectAPI;
|
||||||
|
|
||||||
|
public final class SlimefunHooks {
|
||||||
|
|
||||||
|
private boolean exoticGarden = false;
|
||||||
|
private boolean coreProtect = false;
|
||||||
|
private boolean clearLag = false;
|
||||||
|
private boolean worldEdit = false;
|
||||||
|
private boolean placeHolderAPI = false;
|
||||||
|
|
||||||
|
private CoreProtectAPI coreProtectAPI;
|
||||||
|
|
||||||
|
public SlimefunHooks(SlimefunStartup plugin) {
|
||||||
|
if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||||
|
placeHolderAPI = true;
|
||||||
|
new PlaceholderAPIHook().register();
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
|
||||||
|
if (plugin.getServer().getPluginManager().isPluginEnabled("ClearLag")) {
|
||||||
|
clearLag = true;
|
||||||
|
new ClearLagHook(plugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
exoticGarden = plugin.getServer().getPluginManager().isPluginEnabled("ExoticGarden"); // Had to do it this way, otherwise it seems disabled.
|
||||||
|
|
||||||
|
if (plugin.getServer().getPluginManager().isPluginEnabled("CoreProtect")) {
|
||||||
|
coreProtectAPI = ((CoreProtect) plugin.getServer().getPluginManager().getPlugin("CoreProtect")).getAPI();
|
||||||
|
}
|
||||||
|
|
||||||
|
// WorldEdit Hook to clear Slimefun Data upon //set 0 //cut or any other equivalent
|
||||||
|
if (plugin.getServer().getPluginManager().isPluginEnabled("WorldEdit")) {
|
||||||
|
try {
|
||||||
|
Class.forName("com.sk89q.worldedit.extent.Extent");
|
||||||
|
worldEdit = true;
|
||||||
|
new WorldEditHook();
|
||||||
|
System.out.println("[Slimefun] Successfully hooked into WorldEdit!");
|
||||||
|
} catch (Exception x) {
|
||||||
|
System.err.println("[Slimefun] Failed to hook into WorldEdit!");
|
||||||
|
System.err.println("[Slimefun] Maybe consider updating WorldEdit or Slimefun?");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isExoticGardenInstalled() {
|
||||||
|
return exoticGarden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCoreProtectInstalled() {
|
||||||
|
return coreProtect;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isClearLagInstalled() {
|
||||||
|
return clearLag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWorldEditInstalled() {
|
||||||
|
return worldEdit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPlaceholderAPIInstalled() {
|
||||||
|
return placeHolderAPI;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CoreProtectAPI getCoreProtectAPI() {
|
||||||
|
return coreProtectAPI;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -225,22 +225,6 @@ public class ItemListener implements Listener {
|
|||||||
if (p.isSneaking()) SlimefunGuide.openSettings(p, item);
|
if (p.isSneaking()) SlimefunGuide.openSettings(p, item);
|
||||||
else p.chat("/sf cheat");
|
else p.chat("/sf cheat");
|
||||||
}
|
}
|
||||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getDeprecatedItem(true), true)) {
|
|
||||||
item = SlimefunGuide.getItem(BookDesign.BOOK);
|
|
||||||
p.getInventory().setItemInMainHand(item);
|
|
||||||
PlayerInventory.update(p);
|
|
||||||
|
|
||||||
if (p.isSneaking()) SlimefunGuide.openSettings(p, item);
|
|
||||||
else SlimefunGuide.openGuide(p, true);
|
|
||||||
}
|
|
||||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getDeprecatedItem(false), true)) {
|
|
||||||
item = SlimefunGuide.getItem(BookDesign.CHEST);
|
|
||||||
p.getInventory().setItemInMainHand(item);
|
|
||||||
PlayerInventory.update(p);
|
|
||||||
|
|
||||||
if (p.isSneaking()) SlimefunGuide.openSettings(p, item);
|
|
||||||
else SlimefunGuide.openGuide(p, false);
|
|
||||||
}
|
|
||||||
else if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.DEBUG_FISH, true) || SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInOffHand(), SlimefunItems.DEBUG_FISH, true)) {
|
else if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.DEBUG_FISH, true) || SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInOffHand(), SlimefunItems.DEBUG_FISH, true)) {
|
||||||
}
|
}
|
||||||
else if (Slimefun.hasUnlocked(p, item, true)) {
|
else if (Slimefun.hasUnlocked(p, item, true)) {
|
||||||
|
@ -2,6 +2,7 @@ package me.mrCookieSlime.Slimefun.listeners;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -38,6 +39,8 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
|
|
||||||
public class TalismanListener implements Listener {
|
public class TalismanListener implements Listener {
|
||||||
|
|
||||||
|
private Random random;
|
||||||
|
|
||||||
public TalismanListener(SlimefunStartup plugin) {
|
public TalismanListener(SlimefunStartup plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
@ -46,7 +49,7 @@ public class TalismanListener implements Listener {
|
|||||||
public void onDamageGet(EntityDamageEvent e) {
|
public void onDamageGet(EntityDamageEvent e) {
|
||||||
if (!e.isCancelled()) {
|
if (!e.isCancelled()) {
|
||||||
if (e instanceof EntityDamageByEntityEvent) {
|
if (e instanceof EntityDamageByEntityEvent) {
|
||||||
if (((EntityDamageByEntityEvent) e).getDamager() instanceof Player && SlimefunStartup.chance(100, 45)) {
|
if (((EntityDamageByEntityEvent) e).getDamager() instanceof Player && random.nextInt(100) < 45) {
|
||||||
if (SlimefunManager.isItemSimiliar(((Player) ((EntityDamageByEntityEvent) e).getDamager()).getInventory().getItemInMainHand(), SlimefunItem.getItem("BLADE_OF_VAMPIRES"), true)) {
|
if (SlimefunManager.isItemSimiliar(((Player) ((EntityDamageByEntityEvent) e).getDamager()).getInventory().getItemInMainHand(), SlimefunItem.getItem("BLADE_OF_VAMPIRES"), true)) {
|
||||||
((Player) ((EntityDamageByEntityEvent) e).getDamager()).playSound(((EntityDamageByEntityEvent) e).getDamager().getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 0.7F, 0.7F);
|
((Player) ((EntityDamageByEntityEvent) e).getDamager()).playSound(((EntityDamageByEntityEvent) e).getDamager().getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 0.7F, 0.7F);
|
||||||
((Player) ((EntityDamageByEntityEvent) e).getDamager()).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 1));
|
((Player) ((EntityDamageByEntityEvent) e).getDamager()).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 1));
|
||||||
@ -124,7 +127,7 @@ public class TalismanListener implements Listener {
|
|||||||
if ((Boolean) Slimefun.getItemValue("MAGICIAN_TALISMAN", "allow-enchantments." + en.getKey().getKey() + ".level." + i) && en.canEnchantItem(e.getItem())) enchantments.add(en.getKey().getKey() + "-" + i);
|
if ((Boolean) Slimefun.getItemValue("MAGICIAN_TALISMAN", "allow-enchantments." + en.getKey().getKey() + ".level." + i) && en.canEnchantItem(e.getItem())) enchantments.add(en.getKey().getKey() + "-" + i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String enchant = enchantments.get(SlimefunStartup.randomize(enchantments.size()));
|
String enchant = enchantments.get(random.nextInt(enchantments.size()));
|
||||||
e.getEnchantsToAdd().put(Enchantment.getByKey(NamespacedKey.minecraft(enchant.split("-")[0])), Integer.parseInt(enchant.split("-")[1]));
|
e.getEnchantsToAdd().put(Enchantment.getByKey(NamespacedKey.minecraft(enchant.split("-")[0])), Integer.parseInt(enchant.split("-")[1]));
|
||||||
}
|
}
|
||||||
if (!e.getEnchantsToAdd().containsKey(Enchantment.SILK_TOUCH) && Enchantment.LOOT_BONUS_BLOCKS.canEnchantItem(e.getItem())) {
|
if (!e.getEnchantsToAdd().containsKey(Enchantment.SILK_TOUCH) && Enchantment.LOOT_BONUS_BLOCKS.canEnchantItem(e.getItem())) {
|
||||||
@ -132,9 +135,9 @@ public class TalismanListener implements Listener {
|
|||||||
if (e.getEnchantsToAdd().containsKey(Enchantment.LOOT_BONUS_BLOCKS)) e.getEnchantsToAdd().remove(Enchantment.LOOT_BONUS_BLOCKS);
|
if (e.getEnchantsToAdd().containsKey(Enchantment.LOOT_BONUS_BLOCKS)) e.getEnchantsToAdd().remove(Enchantment.LOOT_BONUS_BLOCKS);
|
||||||
Set<Enchantment> enchantments = e.getEnchantsToAdd().keySet();
|
Set<Enchantment> enchantments = e.getEnchantsToAdd().keySet();
|
||||||
for (Enchantment en : enchantments) {
|
for (Enchantment en : enchantments) {
|
||||||
if (SlimefunStartup.chance(100, 40)) e.getEnchantsToAdd().put(en, SlimefunStartup.randomize(3) + 1);
|
if (random.nextInt(100) < 40) e.getEnchantsToAdd().put(en, random.nextInt(3) + 1);
|
||||||
}
|
}
|
||||||
e.getItem().addUnsafeEnchantment(Enchantment.LOOT_BONUS_BLOCKS, SlimefunStartup.randomize(3) + 3);
|
e.getItem().addUnsafeEnchantment(Enchantment.LOOT_BONUS_BLOCKS, random.nextInt(3) + 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,9 +155,9 @@ public class TalismanListener implements Listener {
|
|||||||
|
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
if (item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
|
if (item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
|
||||||
fortune = SlimefunStartup.randomize(item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS) + 2) - 1;
|
fortune =random.nextInt(item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS) + 2) - 1;
|
||||||
if (fortune <= 0) fortune = 1;
|
if (fortune <= 0) fortune = 1;
|
||||||
fortune = (e.getBlock().getType() == Material.LAPIS_ORE ? 4 + SlimefunStartup.randomize(5) : 1) * (fortune + 1);
|
fortune = (e.getBlock().getType() == Material.LAPIS_ORE ? 4 + random.nextInt(5) : 1) * (fortune + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.getEnchantments().containsKey(Enchantment.SILK_TOUCH) && e.getBlock().getType().toString().endsWith("_ORE")) {
|
if (!item.getEnchantments().containsKey(Enchantment.SILK_TOUCH) && e.getBlock().getType().toString().endsWith("_ORE")) {
|
||||||
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -42,7 +43,8 @@ import me.mrCookieSlime.Slimefun.utils.Utilities;
|
|||||||
public class ToolListener implements Listener {
|
public class ToolListener implements Listener {
|
||||||
|
|
||||||
// Materials that require a Block under it, e.g. Pressure Plates
|
// Materials that require a Block under it, e.g. Pressure Plates
|
||||||
private final Set<Material> sensitiveMaterials = new HashSet<>();
|
private Set<Material> sensitiveMaterials = new HashSet<>();
|
||||||
|
private Random random = new Random();
|
||||||
private Utilities utilities;
|
private Utilities utilities;
|
||||||
|
|
||||||
public ToolListener(SlimefunStartup plugin) {
|
public ToolListener(SlimefunStartup plugin) {
|
||||||
@ -145,7 +147,7 @@ public class ToolListener implements Listener {
|
|||||||
gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_FRUIT_CAKE, 4));
|
gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_FRUIT_CAKE, 4));
|
||||||
gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_APPLE_PIE, 4));
|
gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_APPLE_PIE, 4));
|
||||||
}
|
}
|
||||||
gifts.add(new SkullItem("mrCookieSlime"));
|
gifts.add(new SkullItem("TheBusyBiscuit"));
|
||||||
gifts.add(new SkullItem("timtower"));
|
gifts.add(new SkullItem("timtower"));
|
||||||
gifts.add(new SkullItem("bwfcwalshy"));
|
gifts.add(new SkullItem("bwfcwalshy"));
|
||||||
gifts.add(new SkullItem("jadedcat"));
|
gifts.add(new SkullItem("jadedcat"));
|
||||||
@ -163,7 +165,7 @@ public class ToolListener implements Listener {
|
|||||||
"" +
|
"" +
|
||||||
"- mrCookieSlime"
|
"- mrCookieSlime"
|
||||||
);
|
);
|
||||||
e.getBlockPlaced().getWorld().dropItemNaturally(e.getBlockPlaced().getLocation(), gifts.get(SlimefunStartup.randomize(gifts.size())));
|
e.getBlockPlaced().getWorld().dropItemNaturally(e.getBlockPlaced().getLocation(), gifts.get(random.nextInt(gifts.size())));
|
||||||
}
|
}
|
||||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_INPUT, false)) {
|
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_INPUT, false)) {
|
||||||
if (e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
if (e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||||
@ -240,9 +242,9 @@ public class ToolListener implements Listener {
|
|||||||
}
|
}
|
||||||
else if (item != null) {
|
else if (item != null) {
|
||||||
if (item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
|
if (item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
|
||||||
fortune = SlimefunStartup.randomize(item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS) + 2) - 1;
|
fortune = random.nextInt(item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS) + 2) - 1;
|
||||||
if (fortune <= 0) fortune = 1;
|
if (fortune <= 0) fortune = 1;
|
||||||
fortune = (e.getBlock().getType() == Material.LAPIS_ORE ? 4 + SlimefunStartup.randomize(5) : 1) * (fortune + 1);
|
fortune = (e.getBlock().getType() == Material.LAPIS_ORE ? 4 + random.nextInt(5) : 1) * (fortune + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ItemHandler handler : SlimefunItem.getHandlers("BlockBreakHandler")) {
|
for (ItemHandler handler : SlimefunItem.getHandlers("BlockBreakHandler")) {
|
||||||
@ -252,11 +254,13 @@ public class ToolListener implements Listener {
|
|||||||
|
|
||||||
if (!drops.isEmpty()) {
|
if (!drops.isEmpty()) {
|
||||||
e.getBlock().setType(Material.AIR);
|
e.getBlock().setType(Material.AIR);
|
||||||
if(e.isDropItems())
|
|
||||||
|
if (e.isDropItems()) {
|
||||||
for (ItemStack drop : drops) {
|
for (ItemStack drop : drops) {
|
||||||
if (drop != null)
|
if (drop != null) {
|
||||||
e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), drop);
|
e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), drop);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ description: Slimefun basically turns your entire Server into a FTB modpack with
|
|||||||
website: http://TheBusyBiscuit.github.io/
|
website: http://TheBusyBiscuit.github.io/
|
||||||
|
|
||||||
main: me.mrCookieSlime.Slimefun.SlimefunStartup
|
main: me.mrCookieSlime.Slimefun.SlimefunStartup
|
||||||
softdepend: [CS-CoreLib, ClearLag, WorldEdit, PlaceholderAPI]
|
softdepend: [CS-CoreLib, PlaceholderAPI]
|
||||||
|
|
||||||
api-version: 1.14
|
api-version: 1.14
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user