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.FireworkEffect;
|
||||
import org.bukkit.FireworkEffect.Type;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
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_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");
|
||||
|
||||
static {
|
||||
INFUSED_ELYTRA.addEnchantment(Enchantment.MENDING, 1);
|
||||
}
|
||||
|
||||
// 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");
|
||||
|
@ -68,21 +68,6 @@ public final class SlimefunManager {
|
||||
// Material.COAL, Material.SKULL_ITEM, Material.RAW_FISH, Material.COOKED_FISH);
|
||||
|
||||
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 (SFitem == null) return false;
|
||||
|
||||
@ -116,6 +101,21 @@ public final class SlimefunManager {
|
||||
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) {
|
||||
String string1 = "", string2 = "";
|
||||
for (String string: lore) {
|
||||
|
@ -166,6 +166,8 @@ public final class SlimefunSetup {
|
||||
private SlimefunSetup() {}
|
||||
|
||||
public static void setupItems() {
|
||||
Random random = new Random();
|
||||
|
||||
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})
|
||||
.register(true);
|
||||
@ -556,8 +558,6 @@ public final class SlimefunSetup {
|
||||
new String[] {"chance.FLINT", "chance.CLAY", "chance.SIFTED_ORE"}, new Integer[] {47, 28, 15})
|
||||
.register(true, new ItemInteractionHandler() {
|
||||
|
||||
private Random random = new Random();
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) {
|
||||
@ -1744,7 +1744,10 @@ public final class SlimefunSetup {
|
||||
Block b = e.getBlock().getRelative(x, y, z);
|
||||
if (b.getType() != Material.AIR && !b.isLiquid() && !StringUtils.equals(b.getType().toString(), explosiveblacklist)) {
|
||||
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());
|
||||
SlimefunItem sfItem = BlockStorage.check(b);
|
||||
boolean allow = false;
|
||||
@ -1769,7 +1772,7 @@ public final class SlimefunSetup {
|
||||
b.setType(Material.AIR);
|
||||
}
|
||||
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());
|
||||
}
|
||||
}
|
||||
@ -2096,7 +2099,7 @@ public final class SlimefunSetup {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (e.getPlayer().getInventory().getItemInMainHand() != null) {
|
||||
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());
|
||||
}
|
||||
@ -2570,7 +2573,7 @@ public final class SlimefunSetup {
|
||||
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("bwfcwalshy"));
|
||||
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.commands.SlimefunCommand;
|
||||
import me.mrCookieSlime.Slimefun.commands.SlimefunTabCompleter;
|
||||
import me.mrCookieSlime.Slimefun.hooks.PlaceholderAPIHook;
|
||||
import me.mrCookieSlime.Slimefun.hooks.WorldEditHook;
|
||||
import me.mrCookieSlime.Slimefun.hooks.SlimefunHooks;
|
||||
import me.mrCookieSlime.Slimefun.hooks.github.GitHubConnector;
|
||||
import me.mrCookieSlime.Slimefun.hooks.github.GitHubSetup;
|
||||
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.BlockListener;
|
||||
import me.mrCookieSlime.Slimefun.listeners.BowListener;
|
||||
import me.mrCookieSlime.Slimefun.listeners.ClearLaggIntegration;
|
||||
import me.mrCookieSlime.Slimefun.listeners.CoolerListener;
|
||||
import me.mrCookieSlime.Slimefun.listeners.DamageListener;
|
||||
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.utils.Settings;
|
||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||
import net.coreprotect.CoreProtect;
|
||||
import net.coreprotect.CoreProtectAPI;
|
||||
|
||||
public final class SlimefunStartup extends JavaPlugin {
|
||||
|
||||
@ -92,14 +88,9 @@ public final class SlimefunStartup extends JavaPlugin {
|
||||
|
||||
public static TickerTask ticker;
|
||||
|
||||
private CoreProtectAPI coreProtectAPI;
|
||||
|
||||
private Utilities utilities = new Utilities();
|
||||
private Settings settings;
|
||||
|
||||
private boolean clearlag = false;
|
||||
private boolean exoticGarden = false;
|
||||
private boolean coreProtect = false;
|
||||
private SlimefunHooks hooks;
|
||||
|
||||
// Supported Versions of Minecraft
|
||||
private final String[] supported = {"v1_14_"};
|
||||
@ -327,33 +318,7 @@ public final class SlimefunStartup extends JavaPlugin {
|
||||
|
||||
// Hooray!
|
||||
System.out.println("[Slimefun] Finished!");
|
||||
|
||||
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();
|
||||
}
|
||||
hooks = new SlimefunHooks(this);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public boolean isClearLagInstalled() {
|
||||
return clearlag;
|
||||
}
|
||||
|
||||
public boolean isExoticGardenInstalled () {
|
||||
return exoticGarden;
|
||||
}
|
||||
|
||||
public boolean isCoreProtectInstalled() {
|
||||
return coreProtect;
|
||||
}
|
||||
|
||||
public CoreProtectAPI getCoreProtectAPI() {
|
||||
return coreProtectAPI;
|
||||
public SlimefunHooks getHooks() {
|
||||
return hooks;
|
||||
}
|
||||
|
||||
public Utilities getUtilities() {
|
||||
|
@ -822,7 +822,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
|
||||
private void exoticFarm(Block b, Block block) {
|
||||
farm(b, block);
|
||||
if (SlimefunStartup.instance.isExoticGardenInstalled()) {
|
||||
if (SlimefunStartup.instance.getHooks().isExoticGardenInstalled()) {
|
||||
ItemStack drop = ExoticGarden.harvestPlant(block);
|
||||
if (drop != null && fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
|
@ -11,7 +11,6 @@ import org.bukkit.inventory.ItemStack;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager.DataType;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
|
||||
@ -199,7 +198,6 @@ public class CargoManager {
|
||||
|
||||
BlockMenu menu = BlockStorage.getInventory(block.getLocation());
|
||||
boolean lore = blockInfo.getString("filter-lore").equals("true");
|
||||
boolean data = blockInfo.getString("filter-durability").equals("true");
|
||||
|
||||
if (blockInfo.getString("filter-type").equals("whitelist")) {
|
||||
List<ItemStack> items = new ArrayList<>();
|
||||
@ -218,18 +216,18 @@ public class CargoManager {
|
||||
|
||||
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 {
|
||||
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;
|
||||
}
|
||||
}
|
||||
else {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ import me.mrCookieSlime.Slimefun.Objects.Research;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Setup.Messages;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.PlayerProfile;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
public class SlimefunCommand implements CommandExecutor, Listener {
|
||||
@ -200,8 +201,9 @@ public class SlimefunCommand implements CommandExecutor, Listener {
|
||||
if (args.length == 3) {
|
||||
if (Players.isOnline(args[1])) {
|
||||
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"));
|
||||
Bukkit.getPlayer(args[1]).getInventory().addItem(SlimefunItem.getByID(args[2].toUpperCase()).getItem());
|
||||
Player p = Bukkit.getPlayer(args[1]);
|
||||
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"));
|
||||
}
|
||||
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 (Players.isOnline(args[1])) {
|
||||
Player p = Bukkit.getPlayer(args[1]);
|
||||
PlayerProfile profile = PlayerProfile.fromUUID(p.getUniqueId());
|
||||
|
||||
if (args[2].equalsIgnoreCase("all")) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
else if (args[2].equalsIgnoreCase("reset")) {
|
||||
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]));
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.mrCookieSlime.Slimefun.listeners;
|
||||
package me.mrCookieSlime.Slimefun.hooks;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
@ -10,9 +10,9 @@ import org.bukkit.entity.Item;
|
||||
import org.bukkit.event.EventHandler;
|
||||
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);
|
||||
}
|
||||
|
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);
|
||||
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 (Slimefun.hasUnlocked(p, item, true)) {
|
||||
|
@ -2,6 +2,7 @@ package me.mrCookieSlime.Slimefun.listeners;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Material;
|
||||
@ -38,6 +39,8 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
public class TalismanListener implements Listener {
|
||||
|
||||
private Random random;
|
||||
|
||||
public TalismanListener(SlimefunStartup plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
@ -46,7 +49,7 @@ public class TalismanListener implements Listener {
|
||||
public void onDamageGet(EntityDamageEvent e) {
|
||||
if (!e.isCancelled()) {
|
||||
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)) {
|
||||
((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));
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
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]));
|
||||
}
|
||||
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);
|
||||
Set<Enchantment> enchantments = e.getEnchantsToAdd().keySet();
|
||||
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.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;
|
||||
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")) {
|
||||
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Material;
|
||||
@ -42,7 +43,8 @@ import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||
public class ToolListener implements Listener {
|
||||
|
||||
// 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;
|
||||
|
||||
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_APPLE_PIE, 4));
|
||||
}
|
||||
gifts.add(new SkullItem("mrCookieSlime"));
|
||||
gifts.add(new SkullItem("TheBusyBiscuit"));
|
||||
gifts.add(new SkullItem("timtower"));
|
||||
gifts.add(new SkullItem("bwfcwalshy"));
|
||||
gifts.add(new SkullItem("jadedcat"));
|
||||
@ -163,7 +165,7 @@ public class ToolListener implements Listener {
|
||||
"" +
|
||||
"- 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)) {
|
||||
if (e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||
@ -240,9 +242,9 @@ public class ToolListener implements Listener {
|
||||
}
|
||||
else if (item != null) {
|
||||
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;
|
||||
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")) {
|
||||
@ -252,11 +254,13 @@ public class ToolListener implements Listener {
|
||||
|
||||
if (!drops.isEmpty()) {
|
||||
e.getBlock().setType(Material.AIR);
|
||||
if(e.isDropItems())
|
||||
for (ItemStack drop : drops) {
|
||||
if (drop != null)
|
||||
e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), drop);
|
||||
|
||||
if (e.isDropItems()) {
|
||||
for (ItemStack drop : drops) {
|
||||
if (drop != null) {
|
||||
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/
|
||||
|
||||
main: me.mrCookieSlime.Slimefun.SlimefunStartup
|
||||
softdepend: [CS-CoreLib, ClearLag, WorldEdit, PlaceholderAPI]
|
||||
softdepend: [CS-CoreLib, PlaceholderAPI]
|
||||
|
||||
api-version: 1.14
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user