1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 11:45:51 +00:00

Reduced technical debt

This commit is contained in:
TheBusyBiscuit 2019-08-29 15:13:40 +02:00
parent ee30e8b73d
commit 388873d6a2
23 changed files with 119 additions and 107 deletions

View File

@ -589,7 +589,7 @@ public final class SlimefunItems {
public static final ItemStack CARGO_OUTPUT = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTViMjFmZDQ4MGMxYzQzYmYzYjlmODQyYzg2OWJkYzNiYzVhY2MyNTk5YmYyZWI2YjhhMWM5NWRjZTk3OGYifX19"), "&7Cargo Node &c(Output)", "", "&rCargo Output Pipe");
public static final ItemStack CARGO_OUTPUT_ADVANCED = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTViMjFmZDQ4MGMxYzQzYmYzYjlmODQyYzg2OWJkYzNiYzVhY2MyNTk5YmYyZWI2YjhhMWM5NWRjZTk3OGYifX19"), "&6Advanced Cargo Node &c(Output)", "", "&rCargo Output Pipe");
public static final ItemStack AUTO_BREEDER = new CustomItem(Material.HAY_BLOCK, "&eAuto-Breeder", "", "&rRuns on &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &760 J/Animal");;
public static final ItemStack AUTO_BREEDER = new CustomItem(Material.HAY_BLOCK, "&eAuto-Breeder", "", "&rRuns on &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &760 J/Animal");
public static final ItemStack ORGANIC_FOOD = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9X");
public static final ItemStack WHEAT_ORGANIC_FOOD = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Food", "&7Content: &9Wheat");
@ -609,7 +609,7 @@ public final class SlimefunItems {
public static final ItemStack MELON_FERTILIZER = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Melon");
public static final ItemStack APPLE_FERTILIZER = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjQzOWUzZjVhY2JlZTliZTRjNDI1OTI4OWQ2ZDlmMzVjNjM1ZmZhNjYxMTE0Njg3YjNlYTZkZGE4Yzc5In19fQ=="), "&aOrganic Fertilizer", "&7Content: &9Apple");
public static final ItemStack ANIMAL_GROWTH_ACCELERATOR = new CustomItem(Material.HAY_BLOCK, "&bAnimal Growth Accelerator", "", "&rRuns on &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &728 J/s");;
public static final ItemStack ANIMAL_GROWTH_ACCELERATOR = new CustomItem(Material.HAY_BLOCK, "&bAnimal Growth Accelerator", "", "&rRuns on &aOrganic Food", "", "&4End-Game Machine", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &728 J/s");
public static final ItemStack CROP_GROWTH_ACCELERATOR = new CustomItem(Material.LIME_TERRACOTTA, "&aCrop Growth Accelerator", "", "&rRuns on &aOrganic Fertilizer", "", "&4End-Game Machine", "&8\u21E8 &7Radius: 7x7", "&8\u21E8 &7Speed: &a3/time", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &750 J/s");
public static final ItemStack CROP_GROWTH_ACCELERATOR_2 = new CustomItem(Material.LIME_TERRACOTTA, "&aCrop Growth Accelerator &7(&eII&7)", "", "&rRuns on &aOrganic Fertilizer", "", "&4End-Game Machine", "&8\u21E8 &7Radius: 9x9", "&8\u21E8 &7Speed: &a4/time", "&8\u21E8 &e\u26A1 &71024 J Buffer", "&8\u21E8 &e\u26A1 &760 J/s");
@ -626,8 +626,8 @@ public final class SlimefunItems {
public static final ItemStack NETHERSTAR_REACTOR = new CustomItem(getSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&fNether Star Reactor", "", "&fRuns on Nether Stars", "&8\u21E8 &bMust be surrounded by Water", "&8\u21E8 &bMust be supplied with Nether Ice Coolant Cells", "", "&4End-Game Generator", "&8\u21E8 &e\u26A1 &732768 J Buffer", "&8\u21E8 &e\u26A1 &71024 J/s", "&8\u21E8 &4Causes nearby Entities to get Withered");
public static final ItemStack REACTOR_ACCESS_PORT = new CustomItem(Material.CYAN_TERRACOTTA, "&2Reactor Access Port", "", "&rAllows you to interact with a Reactor", "&rvia Cargo Nodes, can also be used", "&ras a Buffer", "", "&8\u21E8 &eMust be placed &a3 Blocks &eabove the Reactor");
public static final ItemStack FREEZER = new CustomItem(Material.LIGHT_BLUE_STAINED_GLASS, "&bFreezer", "", "&6Advanced Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &718 J/s");;
public static final ItemStack FREEZER_2 = new CustomItem(Material.LIGHT_BLUE_STAINED_GLASS, "&bFreezer &7(&eII&7)", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 2x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &730 J/s");;
public static final ItemStack FREEZER = new CustomItem(Material.LIGHT_BLUE_STAINED_GLASS, "&bFreezer", "", "&6Advanced Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &718 J/s");
public static final ItemStack FREEZER_2 = new CustomItem(Material.LIGHT_BLUE_STAINED_GLASS, "&bFreezer &7(&eII&7)", "", "&4End-Game Machine", "&8\u21E8 &7Speed: 2x", "&8\u21E8 &e\u26A1 &7256 J Buffer", "&8\u21E8 &e\u26A1 &730 J/s");
public static final ItemStack ELECTRIC_GOLD_PAN = new CustomItem(Material.BROWN_TERRACOTTA, "&6Electric Gold Pan", "", "&eBasic Machine", "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &72 J/s");
public static final ItemStack ELECTRIC_GOLD_PAN_2 = new CustomItem(Material.BROWN_TERRACOTTA, "&6Electric Gold Pan &7(&eII&7)", "", "&eBasic Machine", "&8\u21E8 &7Speed: 3x", "&8\u21E8 &e\u26A1 &74 J/s");

View File

@ -46,11 +46,6 @@ public class Research {
* @see ResearchSetup
*/
public static List<Research> list = new LinkedList<>();
/**
* Contains all Research Titles
*/
public static List<String> titles;
private int id;
private String name;
@ -378,9 +373,7 @@ public class Research {
*/
@Deprecated
public static String getTitle(Player p, Collection<Research> researched) {
int index = Math.round(Float.valueOf(String.valueOf(Math.round(((researched.size() * 100.0F) / list().size()) * 100.0F) / 100.0F)) / 100.0F) * titles.size();
if (index > 0) index--;
return titles.get(index);
return PlayerProfile.fromUUID(p.getUniqueId()).getTitle();
}
/**

View File

@ -7,12 +7,16 @@ import me.mrCookieSlime.Slimefun.Objects.Category;
public class SlimefunBackpack extends SlimefunItem {
public int size;
private int size;
public SlimefunBackpack(int size, Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, id, recipeType, recipe);
this.size = size;
}
public int getSize() {
return size;
}
}

View File

@ -73,7 +73,7 @@ public class SlimefunItem {
*
* @since 4.1.10
*/
public enum State {
public static enum State {
/**
* This SlimefunItem is enabled.
*/

View File

@ -20,6 +20,7 @@ public class SlimefunMachine extends SlimefunItem {
private List<ItemStack[]> recipes;
private List<ItemStack> shownRecipes;
private Material trigger;
//Adjacent blockfaces for iterative output chest checks
private static final BlockFace[] outputFaces = {
BlockFace.UP,

View File

@ -399,9 +399,7 @@ public abstract class AReactor extends SlimefunItem {
if (explosion) {
BlockStorage.getInventory(l).close();
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
ReactorHologram.remove(l);
}, 0);
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> ReactorHologram.remove(l), 0);
explode.remove(l);
processing.remove(l);

View File

@ -103,7 +103,7 @@ public class EnhancedCraftingTable extends SlimefunMachine {
}
}
String id = "";
int size = ((SlimefunBackpack) sfItem).size;
int size = ((SlimefunBackpack) sfItem).getSize();
if (backpack != null) {
for (String line: backpack.getItemMeta().getLore()) {

View File

@ -109,7 +109,7 @@ public class MagicWorkbench extends SlimefunMachine {
}
String id = "";
int size = ((SlimefunBackpack) sfItem).size;
int size = ((SlimefunBackpack) sfItem).getSize();
if (backpack != null) {
for (String line: backpack.getItemMeta().getLore()) {

View File

@ -1,6 +1,7 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
import java.util.List;
import java.util.Random;
import org.bukkit.Effect;
import org.bukkit.Material;
@ -84,7 +85,7 @@ public class Smeltery extends SlimefunMachine {
Hopper chamber = findHopper(dispBlock, BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST);
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SMELTERY", "chance.fireBreak"))) {
if (new Random().nextInt(100) < SlimefunStartup.instance.getSettings().SMELTERY_FIRE_BREAK_CHANCE) {
if (chamber != null) {
if (chamber.getInventory().contains(Material.FLINT_AND_STEEL)) {
ItemStack item = chamber.getInventory().getItem(chamber.getInventory().first(Material.FLINT_AND_STEEL));

View File

@ -245,9 +245,7 @@ public class WitherAssembler extends SlimefunItem {
final double offset = Double.parseDouble(BlockStorage.getLocationInfo(b.getLocation(), "offset"));
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
b.getWorld().spawnEntity(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + offset, b.getZ() + 0.5D), EntityType.WITHER);
});
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> b.getWorld().spawnEntity(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + offset, b.getZ() + 0.5D), EntityType.WITHER));
return;
}

View File

@ -7,7 +7,7 @@ import org.bukkit.block.Block;
public abstract class BlockTicker implements ItemHandler {
public boolean unique = true;
protected boolean unique = true;
public void update() {
if (unique) {
@ -25,5 +25,9 @@ public abstract class BlockTicker implements ItemHandler {
public String toCodename() {
return "BlockTicker";
}
public void startNewTick() {
unique = true;
}
}

View File

@ -10,9 +10,9 @@ import org.bukkit.block.data.Waterlogged;
public class RainbowTicker extends BlockTicker {
public int meta;
public int index;
public int[] queue;
private int meta;
private int index;
private int[] queue;
public RainbowTicker() {
this(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);

View File

@ -2461,7 +2461,7 @@ public final class SlimefunSetup {
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.TOME_OF_KNOWLEDGE_SHARING, false)) {
PlayerProfile profile = PlayerProfile.fromUUID(p.getUniqueId());
Set<Research> researches = PlayerProfile.fromUUID(UUID.fromString(ChatColor.stripColor(item.getItemMeta().getLore().get(1)))).getResearches();
researches.forEach((research) -> profile.setResearched(research, true));
researches.forEach(research -> profile.setResearched(research, true));
PlayerInventory.consumeItemInHand(p);
return true;

View File

@ -80,15 +80,15 @@ import me.mrCookieSlime.Slimefun.utils.Utilities;
import net.coreprotect.CoreProtect;
import net.coreprotect.CoreProtectAPI;
public class SlimefunStartup extends JavaPlugin {
public final class SlimefunStartup extends JavaPlugin {
public static SlimefunStartup instance;
static PluginUtils utils;
static Config researches;
static Config items;
static Config whitelist;
static Config config;
private static PluginUtils utils;
private static Config researches;
private static Config items;
private static Config whitelist;
private static Config config;
public static TickerTask ticker;
@ -166,6 +166,8 @@ public class SlimefunStartup extends JavaPlugin {
Messages.setup();
settings = new Settings(config);
settings.RESEARCHES_ENABLED = getResearchCfg().getBoolean("enable-researching");
settings.SMELTERY_FIRE_BREAK_CHANCE = (Integer) Slimefun.getItemValue("SMELTERY", "chance.fireBreak");
// Setting up bStats
new Metrics(this);
@ -203,7 +205,6 @@ public class SlimefunStartup extends JavaPlugin {
MiscSetup.loadDescriptions();
System.out.println("[Slimefun] Loading Researches...");
settings.RESEARCHES_ENABLED = getResearchCfg().getBoolean("enable-researching");
ResearchSetup.setupResearches();
MiscSetup.setupMisc();
@ -354,7 +355,6 @@ public class SlimefunStartup extends JavaPlugin {
new PlaceholderAPIHook().register();
}
Research.titles = config.getStringList("research-ranks");
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};
// Do not show /sf elevator command in our Log, it could get quite spammy
@ -372,7 +372,7 @@ public class SlimefunStartup extends JavaPlugin {
ticker.run();
}
PlayerProfile.iterator().forEachRemaining((profile) -> {
PlayerProfile.iterator().forEachRemaining(profile -> {
if (profile.isDirty()) profile.save();
});

View File

@ -1019,9 +1019,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
private void openScriptDownloader(final Player p, final Block b, final int page) throws Exception {
final ChestMenu menu = new ChestMenu("Android Scripts");
menu.addMenuOpeningHandler(
(pl) -> pl.playSound(pl.getLocation(), Sound.BLOCK_NOTE_BLOCK_HAT, 0.7F, 0.7F)
);
menu.addMenuOpeningHandler(pl -> pl.playSound(pl.getLocation(), Sound.BLOCK_NOTE_BLOCK_HAT, 0.7F, 0.7F));
List<Config> scripts = getUploadedScripts();

View File

@ -4,6 +4,7 @@ import java.io.File;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
@ -14,6 +15,7 @@ import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.Slimefun.SlimefunStartup;
import me.mrCookieSlime.Slimefun.Objects.Research;
import me.mrCookieSlime.Slimefun.api.inventory.BackpackInventory;
@ -159,9 +161,11 @@ public final class PlayerProfile {
}
public String getTitle() {
int index = Math.round(Float.valueOf(String.valueOf(Math.round(((researches.size() * 100.0F) / Research.titles.size())))));
List<String> titles = SlimefunStartup.instance.getSettings().RESEARCHES_TITLES;
int index = Math.round(Float.valueOf(String.valueOf(Math.round(((researches.size() * 100.0F) / titles.size())))));
if (index > 0) index--;
return Research.titles.get(index);
return titles.get(index);
}
public static PlayerProfile fromUUID(UUID uuid) {

View File

@ -192,7 +192,7 @@ public class TickerTask implements Runnable {
Iterator<BlockTicker> iterator = tickers.iterator();
while (iterator.hasNext()) {
iterator.next().unique = true;
iterator.next().startNewTick();
iterator.remove();
}
@ -219,41 +219,13 @@ public class TickerTask implements Runnable {
tellraw.addText(" &7&oHover for more Info");
StringBuilder hover = new StringBuilder();
int hidden = 0;
for (String item: map_machine.keySet()) {
if (map_machinetime.get(item) > 0) hover.append("\n&c" + item + " - " + map_machine.get(item) + "x &7(" + map_machinetime.get(item) + "ms)");
for (Map.Entry<String, Integer> entry: map_machine.entrySet()) {
long timings = map_machinetime.get(entry.getKey());
if (timings > 0) hover.append("\n&c" + entry.getKey() + " - " + entry.getValue()+ "x &7(" + timings + "ms)");
else hidden++;
}
hover.append("\n\n&c+ &4" + hidden + " Hidden");
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString());
try {
tellraw.send((Player) sender);
} catch (Exception e) {
e.printStackTrace();
}
}
else {
int hidden = 0;
for (String item: map_machine.keySet()) {
if (map_machinetime.get(item) > 0) sender.sendMessage(ChatColor.translateAlternateColorCodes('&', " &e" + item + " - " + map_machine.get(item) + "x &7(" + map_machinetime.get(item) + "ms)"));
else hidden++;
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c+ &4" + hidden + " Hidden"));
}
sender.sendMessage("");
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6Ticking Chunks:"));
if (sender instanceof Player) {
TellRawMessage tellraw = new TellRawMessage();
tellraw.addText(" &7&oHover for more Info");
StringBuilder hover = new StringBuilder();
int hidden = 0;
for (String c: map_chunktime.keySet()) {
if (!skipped_chunks.contains(c)) {
if (map_chunktime.get(c) > 0) hover.append("\n&c" + c.replace("CraftChunk", "") + " - " + (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + "x &7(" + map_chunktime.get(c) + "ms)");
else hidden++;
}
}
hover.append("\n\n&c+ &4" + hidden + " Hidden");
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString());
@ -265,9 +237,46 @@ public class TickerTask implements Runnable {
}
else {
int hidden = 0;
for (String c: map_chunktime.keySet()) {
if (!skipped_chunks.contains(c)) {
if (map_chunktime.get(c) > 0) sender.sendMessage(" &c" + c.replace("CraftChunk", "") + " - " + (map_chunk.containsKey(c) ? map_chunk.get(c): 0) + "x &7(" + map_chunktime.get(c) + "ms)");
for (Map.Entry<String, Integer> entry: map_machine.entrySet()) {
long timings = map_machinetime.get(entry.getKey());
if (timings > 0) sender.sendMessage(ChatColor.translateAlternateColorCodes('&', " &e" + entry.getKey() + " - " + entry.getValue()+ "x &7(" + timings + "ms)"));
else hidden++;
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c+ &4" + hidden + " Hidden"));
}
sender.sendMessage("");
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6Ticking Chunks:"));
if (sender instanceof Player) {
TellRawMessage tellraw = new TellRawMessage();
tellraw.addText(" &7&oHover for more Info");
StringBuilder hover = new StringBuilder();
int hidden = 0;
for (Map.Entry<String, Long> entry: map_chunktime.entrySet()) {
if (!skipped_chunks.contains(entry.getKey())) {
if (entry.getValue() > 0) hover.append("\n&c" + entry.getKey().replace("CraftChunk", "") + " - " + (map_chunk.containsKey(entry.getKey()) ? map_chunk.get(entry.getKey()): 0) + "x &7(" + entry.getValue() + "ms)");
else hidden++;
}
}
hover.append("\n\n&c+ &4" + hidden + " Hidden");
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString());
try {
tellraw.send((Player) sender);
} catch (Exception e) {
e.printStackTrace();
}
}
else {
int hidden = 0;
for (Map.Entry<String, Long> entry: map_chunktime.entrySet()) {
if (!skipped_chunks.contains(entry.getKey())) {
if (entry.getValue() > 0) sender.sendMessage(" &c" + entry.getKey().replace("CraftChunk", "") + " - " + (map_chunk.containsKey(entry.getKey()) ? map_chunk.get(entry.getKey()): 0) + "x &7(" + entry.getValue() + "ms)");
else hidden++;
}
}

View File

@ -3,6 +3,11 @@ package me.mrCookieSlime.Slimefun.api.item_transport;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
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;
@ -11,11 +16,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
import org.bukkit.block.Block;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
public class CargoManager {
public static ItemStack withdraw(Block node, BlockStorage storage, Block target, ItemStack template) {

View File

@ -100,9 +100,7 @@ public class AncientAltarListener implements Listener {
if (!altars.contains(e.getClickedBlock())) {
altars.add(e.getClickedBlock());
if (pedestals.size() == 8) {
pedestals.forEach((pblock)->{
utilities.altarinuse.add(pblock.getLocation());
});
pedestals.forEach(block -> utilities.altarinuse.add(block.getLocation()));
if (catalyst != null && !catalyst.getType().equals(Material.AIR)) {
List<ItemStack> input = new ArrayList<>();
@ -122,9 +120,7 @@ public class AncientAltarListener implements Listener {
altars.remove(e.getClickedBlock());
Messages.local.sendTranslation(e.getPlayer(), "machines.ANCIENT_ALTAR.unknown-recipe", true);
pedestals.forEach((pblock)->{
utilities.altarinuse.remove(pblock.getLocation());
});
pedestals.forEach(block -> utilities.altarinuse.remove(block.getLocation()));
utilities.altarinuse.remove(b.getLocation()); // bad recipe, no longer in use.
}
@ -133,9 +129,7 @@ public class AncientAltarListener implements Listener {
altars.remove(e.getClickedBlock());
Messages.local.sendTranslation(e.getPlayer(), "machines.ANCIENT_ALTAR.unknown-catalyst", true);
pedestals.forEach((pblock)->{
utilities.altarinuse.remove(pblock.getLocation());
});
pedestals.forEach(block -> utilities.altarinuse.remove(block.getLocation()));
utilities.altarinuse.remove(b.getLocation()); // unkown catalyst, no longer in use
}

View File

@ -32,6 +32,7 @@ public class AndroidKillingListener implements Listener {
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> {
List<ItemStack> items = new ArrayList<>();
for (Entity n : e.getEntity().getNearbyEntities(0.5D, 0.5D, 0.5D)) {
if (n instanceof Item && !n.hasMetadata("no_pickup")) {
items.add(((Item) n).getItemStack());
@ -40,18 +41,15 @@ public class AndroidKillingListener implements Listener {
}
switch (e.getEntityType()) {
case BLAZE: {
case BLAZE:
items.add(new ItemStack(Material.BLAZE_ROD, 1 + CSCoreLib.randomizer().nextInt(2)));
break;
}
case PIG_ZOMBIE: {
case PIG_ZOMBIE:
items.add(new ItemStack(Material.GOLD_NUGGET, 1 + CSCoreLib.randomizer().nextInt(3)));
break;
}
case WITHER_SKELETON: {
case WITHER_SKELETON:
if (CSCoreLib.randomizer().nextInt(250) < 2) items.add(new ItemStack(Material.WITHER_SKELETON_SKULL));
break;
}
default:
break;
}

View File

@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
@ -40,6 +41,7 @@ public class DamageListener implements Listener {
private SimpleDateFormat format = new SimpleDateFormat("(MMM d, yyyy @ hh:mm)");
private Utilities utilities;
private Random random = new Random();
public DamageListener(SlimefunStartup plugin) {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
@ -53,6 +55,7 @@ public class DamageListener implements Listener {
if (p.getInventory().containsAtLeast(SlimefunItems.GPS_EMERGENCY_TRANSMITTER, 1)) {
Slimefun.getGPSNetwork().addWaypoint(p, "&4Deathpoint &7" + format.format(new Date()), p.getLocation().getBlock().getLocation());
}
Iterator<ItemStack> drops = e.getDrops().iterator();
while (drops.hasNext()) {
ItemStack item = drops.next();
@ -60,7 +63,8 @@ public class DamageListener implements Listener {
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BOUND_BACKPACK, false)) {
Soul.storeItem(e.getEntity().getUniqueId(), item);
drops.remove();
} else if (SlimefunItem.getByItem(removeEnchantments(item)) != null) {
}
else if (SlimefunItem.getByItem(removeEnchantments(item)) != null) {
if (SlimefunItem.getByItem(removeEnchantments(item)) instanceof SoulboundItem) {
Soul.storeItem(e.getEntity().getUniqueId(), item);
drops.remove();
@ -86,25 +90,25 @@ public class DamageListener implements Listener {
if (Slimefun.hasUnlocked(p, item, true)) {
if (SlimefunManager.isItemSimiliar(item, SlimefunItem.getItem("SWORD_OF_BEHEADING"), true)) {
if (e.getEntity() instanceof Zombie) {
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.ZOMBIE"))) {
if (random.nextInt(100) < (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.ZOMBIE")) {
e.getDrops().add(new ItemStack(Material.ZOMBIE_HEAD));
}
}
else if (e.getEntity() instanceof WitherSkeleton) {
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.WITHER_SKELETON")))
if (random.nextInt(100) < (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.WITHER_SKELETON"))
e.getDrops().add(new ItemStack(Material.WITHER_SKELETON_SKULL));
}
else if (e.getEntity() instanceof Skeleton) {
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.SKELETON")))
if (random.nextInt(100) < (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.SKELETON"))
e.getDrops().add(new ItemStack(Material.SKELETON_SKULL));
}
else if (e.getEntity() instanceof Creeper) {
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.CREEPER"))) {
if (random.nextInt(100) < (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.CREEPER")) {
e.getDrops().add(new ItemStack(Material.CREEPER_HEAD));
}
}
else if (e.getEntity() instanceof Player) {
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.PLAYER"))) {
if (random.nextInt(100) < (Integer) Slimefun.getItemValue("SWORD_OF_BEHEADING", "chance.PLAYER")) {
ItemStack skull = new ItemStack(Material.PLAYER_HEAD);
ItemMeta meta = skull.getItemMeta();
((SkullMeta) meta).setOwningPlayer((Player) e.getEntity());

View File

@ -52,8 +52,8 @@ public class ToolListener implements Listener {
sensitiveMaterials.add(Material.STONE_PRESSURE_PLATE);
sensitiveMaterials.add(Material.LIGHT_WEIGHTED_PRESSURE_PLATE);
sensitiveMaterials.add(Material.HEAVY_WEIGHTED_PRESSURE_PLATE);
Tag.SAPLINGS.getValues().forEach((mat) -> sensitiveMaterials.add(mat));
Tag.WOODEN_PRESSURE_PLATES.getValues().forEach((mat) -> sensitiveMaterials.add(mat));
Tag.SAPLINGS.getValues().forEach(mat -> sensitiveMaterials.add(mat));
Tag.WOODEN_PRESSURE_PLATES.getValues().forEach(mat -> sensitiveMaterials.add(mat));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)

View File

@ -1,11 +1,14 @@
package me.mrCookieSlime.Slimefun.utils;
import java.util.List;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
public final class Settings {
public boolean RESEARCHES_ENABLED;
public boolean RESEARCHES_FREE_IN_CREATIVE;
public List<String> RESEARCHES_TITLES;
public int BLOCK_LOADING_INFO_DELAY;
public int BLOCK_AUTO_SAVE_DELAY;
@ -18,8 +21,11 @@ public final class Settings {
public boolean ORE_GRINDER_LEGACY;
public boolean ORE_WASHER_LEGACY;
public int SMELTERY_FIRE_BREAK_CHANCE;
public Settings(Config cfg) {
RESEARCHES_FREE_IN_CREATIVE = cfg.getBoolean("options.allow-free-creative-research");
RESEARCHES_TITLES = cfg.getStringList("research-ranks");
BLOCK_LOADING_INFO_DELAY = cfg.getInt("URID.info-delay");
BLOCK_AUTO_SAVE_DELAY = cfg.getInt("options.auto-save-delay-in-minutes");