mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
Small improvement, many annotations
This commit is contained in:
parent
bb4c4b3a59
commit
dd9962d3e2
@ -59,6 +59,7 @@
|
||||
* Performance improvements for energy networks
|
||||
* (API) Rewritten Block-Energy API
|
||||
* Removed "durability" setting from cargo nodes
|
||||
* Small performance improvements for radiation
|
||||
|
||||
#### Fixes
|
||||
* Fixed Programmable Androids rotating in the wrong direction
|
||||
|
@ -8,6 +8,7 @@ import java.util.Locale;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||
@ -32,6 +33,20 @@ import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
/**
|
||||
* The {@link BookSlimefunGuide} is a {@link SlimefunGuideImplementation} which
|
||||
* uses a {@link CustomBookInterface} to display the contents of the {@link SlimefunGuide}.
|
||||
* {@link Player Players} have the option to choose this Written Book layout over the
|
||||
* standard {@link Inventory} variant.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
* @see SlimefunGuide
|
||||
* @see SlimefunGuideImplementation
|
||||
* @see ChestSlimefunGuide
|
||||
* @see CheatSheetSlimefunGuide
|
||||
*
|
||||
*/
|
||||
public class BookSlimefunGuide implements SlimefunGuideImplementation {
|
||||
|
||||
private final NamespacedKey guideSearch = new NamespacedKey(SlimefunPlugin.instance(), "search");
|
||||
|
@ -2,13 +2,22 @@ package io.github.thebusybiscuit.slimefun4.implementation.guide;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.Recipe;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile;
|
||||
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.itemstack.SlimefunGuideItem;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
|
||||
/**
|
||||
* This is an admin-variant of the {@link ChestSlimefunGuide} which allows a {@link Player}
|
||||
* to spawn in a {@link SlimefunItem} via click rather than showing their {@link Recipe}.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
*/
|
||||
public class CheatSheetSlimefunGuide extends ChestSlimefunGuide {
|
||||
|
||||
private final ItemStack item;
|
||||
|
@ -13,6 +13,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.Tag;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.Recipe;
|
||||
@ -47,6 +48,18 @@ import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
/**
|
||||
* The {@link ChestSlimefunGuide} is the standard version of our {@link SlimefunGuide}.
|
||||
* It uses an {@link Inventory} to display {@link SlimefunGuide} contents.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
* @see SlimefunGuide
|
||||
* @see SlimefunGuideImplementation
|
||||
* @see BookSlimefunGuide
|
||||
* @see CheatSheetSlimefunGuide
|
||||
*
|
||||
*/
|
||||
public class ChestSlimefunGuide implements SlimefunGuideImplementation {
|
||||
|
||||
private static final int CATEGORY_SIZE = 36;
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent;
|
||||
@ -70,11 +72,13 @@ public class RadioactiveItem extends SlimefunItem implements Radioactive, NotPla
|
||||
addItemHandler(onRightClick());
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private ItemUseHandler onRightClick() {
|
||||
return PlayerRightClickEvent::cancel;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public Radioactivity getRadioactivity() {
|
||||
return radioactivity;
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
@ -50,6 +52,7 @@ public abstract class AbstractEnergyProvider extends SlimefunItem implements Inv
|
||||
*
|
||||
* @return The title of the {@link Inventory} of this {@link AbstractEnergyProvider}
|
||||
*/
|
||||
@Nonnull
|
||||
public String getInventoryTitle() {
|
||||
return getItemName();
|
||||
}
|
||||
@ -62,6 +65,7 @@ public abstract class AbstractEnergyProvider extends SlimefunItem implements Inv
|
||||
*
|
||||
* @return The {@link ItemStack} to use as the progress bar
|
||||
*/
|
||||
@Nonnull
|
||||
public abstract ItemStack getProgressBar();
|
||||
|
||||
/**
|
||||
@ -81,10 +85,11 @@ public abstract class AbstractEnergyProvider extends SlimefunItem implements Inv
|
||||
return EnergyNetComponentType.GENERATOR;
|
||||
}
|
||||
|
||||
public void registerFuel(MachineFuel fuel) {
|
||||
public void registerFuel(@Nonnull MachineFuel fuel) {
|
||||
fuelTypes.add(fuel);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public Set<MachineFuel> getFuelTypes() {
|
||||
return fuelTypes;
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.electric;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -36,6 +38,7 @@ public class EnergyRegulator extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private BlockPlaceHandler onPlace() {
|
||||
return new BlockPlaceHandler(false) {
|
||||
|
||||
@ -65,7 +68,7 @@ public class EnergyRegulator extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
private void tick(Block b) {
|
||||
private void tick(@Nonnull Block b) {
|
||||
EnergyNet network = EnergyNet.getNetworkFromLocationOrCreate(b.getLocation());
|
||||
network.tick(b);
|
||||
}
|
||||
|
@ -6,6 +6,10 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -120,7 +124,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
registerDefaultFuelTypes();
|
||||
}
|
||||
|
||||
protected void updateInventory(BlockMenu menu, Block b) {
|
||||
protected void updateInventory(@Nonnull BlockMenu menu, @Nonnull Block b) {
|
||||
ReactorMode mode = getReactorMode(b.getLocation());
|
||||
|
||||
switch (mode) {
|
||||
@ -165,40 +169,41 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private void constructMenu(BlockMenuPreset preset) {
|
||||
private void constructMenu(@Nonnull BlockMenuPreset preset) {
|
||||
for (int i : border) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(i, new CustomItem(Material.GRAY_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
for (int i : border_1) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.LIME_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(i, new CustomItem(Material.LIME_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
for (int i : border_3) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.GREEN_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(i, new CustomItem(Material.GREEN_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(22, new CustomItem(Material.BLACK_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
|
||||
preset.addItem(1, new CustomItem(getFuelIcon(), "&7Fuel Slot", "", "&fThis Slot accepts radioactive Fuel such as:", "&2Uranium &for &aNeptunium"), ChestMenuUtils.getEmptyClickHandler());
|
||||
|
||||
for (int i : border_2) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(i, new CustomItem(Material.CYAN_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
if (needsCooling()) {
|
||||
preset.addItem(7, new CustomItem(getCoolant(), "&bCoolant Slot", "", "&fThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode"));
|
||||
}
|
||||
else {
|
||||
preset.addItem(7, new CustomItem(new ItemStack(Material.BARRIER), "&bCoolant Slot", "", "&fThis Slot accepts Coolant Cells"));
|
||||
preset.addItem(7, new CustomItem(Material.BARRIER, "&bCoolant Slot", "", "&fThis Slot accepts Coolant Cells"));
|
||||
|
||||
for (int i : border_4) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.BARRIER), "&cNo Coolant Required"), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(i, new CustomItem(Material.BARRIER, "&cNo Coolant Required"), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected ReactorMode getReactorMode(Location l) {
|
||||
@Nonnull
|
||||
protected ReactorMode getReactorMode(@Nonnull Location l) {
|
||||
ReactorMode mode = ReactorMode.GENERATOR;
|
||||
|
||||
if (BlockStorage.hasBlockInfo(l) && BlockStorage.getLocationInfo(l, MODE).equals(ReactorMode.PRODUCTION.toString())) {
|
||||
@ -208,7 +213,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public abstract void extraTick(Location l);
|
||||
public abstract void extraTick(@Nonnull Location l);
|
||||
|
||||
/**
|
||||
* This method returns the {@link ItemStack} that is required to cool this {@link Reactor}.
|
||||
@ -216,6 +221,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
*
|
||||
* @return The {@link ItemStack} required to cool this {@link Reactor}
|
||||
*/
|
||||
@Nullable
|
||||
public abstract ItemStack getCoolant();
|
||||
|
||||
/**
|
||||
@ -225,6 +231,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
*
|
||||
* @return The {@link ItemStack} used as the fuel icon for this {@link Reactor}.
|
||||
*/
|
||||
@Nonnull
|
||||
public abstract ItemStack getFuelIcon();
|
||||
|
||||
/**
|
||||
@ -247,6 +254,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
return new int[] { 19, 28, 37 };
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public int[] getCoolantSlots() {
|
||||
return needsCooling() ? new int[] { 25, 34, 43 } : new int[0];
|
||||
}
|
||||
@ -274,33 +282,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
int timeleft = progress.get(l);
|
||||
|
||||
if (timeleft > 0) {
|
||||
int produced = getEnergyProduction();
|
||||
int charge = 0;
|
||||
|
||||
if (data.contains("energy-charge")) {
|
||||
charge = Integer.parseInt(data.getString("energy-charge"));
|
||||
}
|
||||
|
||||
int space = getCapacity() - charge;
|
||||
|
||||
if (space >= produced || getReactorMode(l) != ReactorMode.GENERATOR) {
|
||||
progress.put(l, timeleft - 1);
|
||||
checkForWaterBlocks(l);
|
||||
|
||||
ChestMenuUtils.updateProgressbar(inv, 22, timeleft, processing.get(l).getTicks(), getProgressBar());
|
||||
|
||||
if (needsCooling() && !hasEnoughCoolant(l, inv, accessPort, timeleft)) {
|
||||
explosionsQueue.add(l);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (space >= produced) {
|
||||
return getEnergyProduction();
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
return generateEnergy(l, data, inv, accessPort, timeleft);
|
||||
}
|
||||
else {
|
||||
createByproduct(l, inv, accessPort);
|
||||
@ -313,6 +295,37 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private int generateEnergy(@Nonnull Location l, @Nonnull Config data, @Nonnull BlockMenu inv, @Nullable BlockMenu accessPort, int timeleft) {
|
||||
int produced = getEnergyProduction();
|
||||
String energyData = data.getString("energy-charge");
|
||||
int charge = 0;
|
||||
|
||||
if (energyData != null) {
|
||||
charge = Integer.parseInt(energyData);
|
||||
}
|
||||
|
||||
int space = getCapacity() - charge;
|
||||
|
||||
if (space >= produced || getReactorMode(l) != ReactorMode.GENERATOR) {
|
||||
progress.put(l, timeleft - 1);
|
||||
checkForWaterBlocks(l);
|
||||
|
||||
ChestMenuUtils.updateProgressbar(inv, 22, timeleft, processing.get(l).getTicks(), getProgressBar());
|
||||
|
||||
if (needsCooling() && !hasEnoughCoolant(l, inv, accessPort, timeleft)) {
|
||||
explosionsQueue.add(l);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (space >= produced) {
|
||||
return getEnergyProduction();
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean willExplode(Location l, Config data) {
|
||||
boolean explosion = explosionsQueue.contains(l);
|
||||
@ -398,7 +411,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
*
|
||||
* @return Whether the {@link Reactor} was successfully cooled, if not it should explode
|
||||
*/
|
||||
private boolean hasEnoughCoolant(Location reactor, BlockMenu menu, BlockMenu accessPort, int timeleft) {
|
||||
private boolean hasEnoughCoolant(@Nonnull Location reactor, @Nonnull BlockMenu menu, @Nullable BlockMenu accessPort, int timeleft) {
|
||||
boolean requiresCoolant = (processing.get(reactor).getTicks() - timeleft) % COOLANT_DURATION == 0;
|
||||
|
||||
if (requiresCoolant) {
|
||||
@ -435,6 +448,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
return Math.round(((((COOLANT_DURATION - passed) * 100.0F) / COOLANT_DURATION) * 100.0F) / 100.0F);
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void restockFuel(BlockMenu menu, BlockMenu port) {
|
||||
for (int slot : getFuelSlots()) {
|
||||
for (MachineFuel fuelType : fuelTypes) {
|
||||
@ -446,6 +460,8 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@ParametersAreNonnullByDefault
|
||||
private MachineFuel findFuel(BlockMenu menu, Map<Integer, Integer> found) {
|
||||
for (MachineFuel fuel : fuelTypes) {
|
||||
for (int slot : getInputSlots()) {
|
||||
@ -459,7 +475,8 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected BlockMenu getAccessPort(Location l) {
|
||||
@Nullable
|
||||
protected BlockMenu getAccessPort(@Nonnull Location l) {
|
||||
Location port = new Location(l.getWorld(), l.getX(), l.getY() + 3, l.getZ());
|
||||
|
||||
if (BlockStorage.check(port, SlimefunItems.REACTOR_ACCESS_PORT.getItemId())) {
|
||||
|
@ -8,6 +8,9 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -70,10 +73,12 @@ public class AncientAltarListener implements Listener {
|
||||
*
|
||||
* @return A {@link Set} of every {@link AncientAltar} currently in use
|
||||
*/
|
||||
@Nonnull
|
||||
public Set<Location> getAltarsInUse() {
|
||||
return altarsInUse;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public List<Block> getAltars() {
|
||||
return altars;
|
||||
}
|
||||
@ -119,7 +124,7 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void usePedestal(Block pedestal, Player p) {
|
||||
private void usePedestal(@Nonnull Block pedestal, @Nonnull Player p) {
|
||||
if (altarsInUse.contains(pedestal.getLocation())) {
|
||||
return;
|
||||
}
|
||||
@ -158,7 +163,7 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void useAltar(Block altar, Player p) {
|
||||
private void useAltar(@Nonnull Block altar, @Nonnull Player p) {
|
||||
if (!SlimefunPlugin.getProtectionManager().hasPermission(p, altar, ProtectableAction.ACCESS_INVENTORIES)) {
|
||||
SlimefunPlugin.getLocalization().sendMessage(p, "inventory.no-access", true);
|
||||
return;
|
||||
@ -198,6 +203,7 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void startRitual(Player p, Block b, List<Block> pedestals, ItemStack catalyst) {
|
||||
List<ItemStack> input = new ArrayList<>();
|
||||
|
||||
@ -266,7 +272,8 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private List<Block> getPedestals(Block altar) {
|
||||
@Nonnull
|
||||
private List<Block> getPedestals(@Nonnull Block altar) {
|
||||
List<Block> list = new ArrayList<>();
|
||||
|
||||
if (BlockStorage.check(altar.getRelative(2, 0, -2), pedestalItem.getID())) {
|
||||
@ -297,15 +304,16 @@ public class AncientAltarListener implements Listener {
|
||||
return list;
|
||||
}
|
||||
|
||||
public Optional<ItemStack> getRecipeOutput(ItemStack catalyst, List<ItemStack> input) {
|
||||
if (input.size() != 8) {
|
||||
@Nonnull
|
||||
public Optional<ItemStack> getRecipeOutput(@Nonnull ItemStack catalyst, @Nonnull List<ItemStack> inputs) {
|
||||
if (inputs.size() != 8) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
ItemStackWrapper wrapper = new ItemStackWrapper(catalyst);
|
||||
List<ItemStackWrapper> items = ItemStackWrapper.wrapList(input);
|
||||
List<ItemStackWrapper> items = ItemStackWrapper.wrapList(inputs);
|
||||
|
||||
if (SlimefunUtils.isItemSimilar(wrapper, SlimefunItems.BROKEN_SPAWNER, false)) {
|
||||
if (SlimefunUtils.isItemSimilar(wrapper, SlimefunItems.BROKEN_SPAWNER, false, false)) {
|
||||
if (!checkRecipe(SlimefunItems.BROKEN_SPAWNER, items).isPresent()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
@ -320,7 +328,8 @@ public class AncientAltarListener implements Listener {
|
||||
return checkRecipe(wrapper, items);
|
||||
}
|
||||
|
||||
private Optional<ItemStack> checkRecipe(ItemStack catalyst, List<ItemStackWrapper> items) {
|
||||
@Nonnull
|
||||
private Optional<ItemStack> checkRecipe(@Nonnull ItemStack catalyst, @Nonnull List<ItemStackWrapper> items) {
|
||||
for (AltarRecipe recipe : altarItem.getRecipes()) {
|
||||
if (SlimefunUtils.isItemSimilar(catalyst, recipe.getCatalyst(), true)) {
|
||||
Optional<ItemStack> optional = checkPedestals(items, recipe);
|
||||
@ -334,7 +343,8 @@ public class AncientAltarListener implements Listener {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
private Optional<ItemStack> checkPedestals(List<ItemStackWrapper> items, AltarRecipe recipe) {
|
||||
@Nonnull
|
||||
private Optional<ItemStack> checkPedestals(@Nonnull List<ItemStackWrapper> items, @Nonnull AltarRecipe recipe) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (SlimefunUtils.isItemSimilar(items.get(i), recipe.getInput().get(0), true)) {
|
||||
for (int j = 1; j < 8; j++) {
|
||||
|
@ -5,6 +5,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
@ -48,7 +51,7 @@ public class BackpackListener implements Listener {
|
||||
|
||||
private final Map<UUID, ItemStack> backpacks = new HashMap<>();
|
||||
|
||||
public void register(SlimefunPlugin plugin) {
|
||||
public void register(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -99,7 +102,7 @@ public class BackpackListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAllowed(SlimefunBackpack backpack, ItemStack item) {
|
||||
private boolean isAllowed(@Nonnull SlimefunBackpack backpack, @Nullable ItemStack item) {
|
||||
if (item == null || item.getType() == Material.AIR) {
|
||||
return true;
|
||||
}
|
||||
@ -154,7 +157,7 @@ public class BackpackListener implements Listener {
|
||||
* @param id
|
||||
* The id of this backpack
|
||||
*/
|
||||
public void setBackpackId(OfflinePlayer backpackOwner, ItemStack item, int line, int id) {
|
||||
public void setBackpackId(@Nonnull OfflinePlayer backpackOwner, @Nonnull ItemStack item, int line, int id) {
|
||||
Validate.notNull(backpackOwner, "Backpacks must have an owner!");
|
||||
Validate.notNull(item, "Cannot set the id onto null!");
|
||||
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.Bee;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -23,7 +25,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
*/
|
||||
public class BeeListener implements Listener {
|
||||
|
||||
public BeeListener(SlimefunPlugin plugin) {
|
||||
public BeeListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,10 @@ import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
import org.bukkit.block.Block;
|
||||
@ -48,7 +52,7 @@ public class BlockListener implements Listener {
|
||||
// Materials that require a Block under it, e.g. Pressure Plates
|
||||
private final Set<Material> sensitiveMaterials = EnumSet.noneOf(Material.class);
|
||||
|
||||
public BlockListener(SlimefunPlugin plugin) {
|
||||
public BlockListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
|
||||
sensitiveMaterials.add(Material.CAKE);
|
||||
@ -152,6 +156,7 @@ public class BlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void dropItems(BlockBreakEvent e, List<ItemStack> drops) {
|
||||
if (!drops.isEmpty()) {
|
||||
e.getBlock().setType(Material.AIR);
|
||||
@ -176,6 +181,7 @@ public class BlockListener implements Listener {
|
||||
* @param b
|
||||
* The {@link Block} that was broken
|
||||
*/
|
||||
@ParametersAreNonnullByDefault
|
||||
private void checkForSensitiveBlockAbove(Player p, Block b) {
|
||||
Block blockAbove = b.getRelative(BlockFace.UP);
|
||||
|
||||
@ -199,7 +205,7 @@ public class BlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private int getBonusDropsWithFortune(ItemStack item, Block b) {
|
||||
private int getBonusDropsWithFortune(@Nullable ItemStack item, @Nonnull Block b) {
|
||||
int fortune = 1;
|
||||
|
||||
if (item != null && item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
@ -34,7 +36,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
*/
|
||||
public class BlockPhysicsListener implements Listener {
|
||||
|
||||
public BlockPhysicsListener(SlimefunPlugin plugin) {
|
||||
public BlockPhysicsListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,9 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
@ -33,7 +36,7 @@ public class ButcherAndroidListener implements Listener {
|
||||
|
||||
private static final String METADATA_KEY = "android_killer";
|
||||
|
||||
public ButcherAndroidListener(SlimefunPlugin plugin) {
|
||||
public ButcherAndroidListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -74,6 +77,7 @@ public class ButcherAndroidListener implements Listener {
|
||||
* @param entityType
|
||||
* The {@link EntityType} of the killed entity
|
||||
*/
|
||||
@ParametersAreNonnullByDefault
|
||||
private void addExtraDrops(List<ItemStack> drops, EntityType entityType) {
|
||||
Random random = ThreadLocalRandom.current();
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
@ -20,7 +22,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
*/
|
||||
public class CargoNodeListener implements Listener {
|
||||
|
||||
public CargoNodeListener(SlimefunPlugin plugin) {
|
||||
public CargoNodeListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -32,7 +34,7 @@ public class CargoNodeListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isCargoNode(ItemStack item) {
|
||||
private boolean isCargoNode(@Nonnull ItemStack item) {
|
||||
if (SlimefunPlugin.getRegistry().isBackwardsCompatible()) {
|
||||
ItemStackWrapper wrapper = new ItemStackWrapper(item);
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -35,7 +37,7 @@ public class CoolerListener implements Listener {
|
||||
|
||||
private final Cooler cooler;
|
||||
|
||||
public CoolerListener(SlimefunPlugin plugin, Cooler cooler) {
|
||||
public CoolerListener(@Nonnull SlimefunPlugin plugin, @Nonnull Cooler cooler) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
|
||||
this.cooler = cooler;
|
||||
@ -65,7 +67,7 @@ public class CoolerListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void checkAndConsume(Player p) {
|
||||
private void checkAndConsume(@Nonnull Player p) {
|
||||
for (ItemStack item : p.getInventory().getContents()) {
|
||||
if (cooler.isItem(item)) {
|
||||
if (Slimefun.hasUnlocked(p, cooler, true)) {
|
||||
@ -87,7 +89,7 @@ public class CoolerListener implements Listener {
|
||||
* @param cooler
|
||||
* The {@link Cooler} {@link ItemStack} to take the {@link Juice} from
|
||||
*/
|
||||
private void takeJuiceFromCooler(Player p, ItemStack cooler) {
|
||||
private void takeJuiceFromCooler(@Nonnull Player p, @Nonnull ItemStack cooler) {
|
||||
PlayerProfile.getBackpack(cooler, backpack -> {
|
||||
if (backpack != null) {
|
||||
Slimefun.runSync(() -> consumeJuice(p, backpack));
|
||||
@ -95,7 +97,7 @@ public class CoolerListener implements Listener {
|
||||
});
|
||||
}
|
||||
|
||||
private boolean consumeJuice(Player p, PlayerBackpack backpack) {
|
||||
private boolean consumeJuice(@Nonnull Player p, @Nonnull PlayerBackpack backpack) {
|
||||
Inventory inv = backpack.getInventory();
|
||||
int slot = -1;
|
||||
|
||||
|
@ -4,6 +4,8 @@ import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -25,7 +27,7 @@ public class DeathpointListener implements Listener {
|
||||
|
||||
private final DateTimeFormatter format = DateTimeFormatter.ofPattern("(MMM dd, yyyy @ hh:mm)", Locale.ROOT);
|
||||
|
||||
public DeathpointListener(SlimefunPlugin plugin) {
|
||||
public DeathpointListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
@ -39,7 +42,7 @@ public class DebugFishListener implements Listener {
|
||||
private final String greenCheckmark;
|
||||
private final String redCross;
|
||||
|
||||
public DebugFishListener(SlimefunPlugin plugin) {
|
||||
public DebugFishListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
|
||||
greenCheckmark = "&2\u2714";
|
||||
@ -71,6 +74,7 @@ public class DebugFishListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void onLeftClick(Player p, Block b, PlayerInteractEvent e) {
|
||||
if (p.isSneaking()) {
|
||||
if (BlockStorage.hasBlockInfo(b)) {
|
||||
@ -82,6 +86,7 @@ public class DebugFishListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void onRightClick(Player p, Block b, BlockFace face) {
|
||||
if (p.isSneaking()) {
|
||||
Block block = b.getRelative(face);
|
||||
@ -98,6 +103,7 @@ public class DebugFishListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void sendInfo(Player p, Block b) {
|
||||
SlimefunItem item = BlockStorage.check(b);
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
@ -28,7 +30,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
*/
|
||||
public class DispenserListener implements Listener {
|
||||
|
||||
public DispenserListener(SlimefunPlugin plugin) {
|
||||
public DispenserListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.Furnace;
|
||||
@ -30,7 +32,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
*/
|
||||
public class EnhancedFurnaceListener implements Listener {
|
||||
|
||||
public EnhancedFurnaceListener(SlimefunPlugin plugin) {
|
||||
public EnhancedFurnaceListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -23,7 +25,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class EntityInteractionListener implements Listener {
|
||||
|
||||
public EntityInteractionListener(SlimefunPlugin plugin) {
|
||||
public EntityInteractionListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -18,7 +20,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
|
||||
public class ExplosionsListener implements Listener {
|
||||
|
||||
public ExplosionsListener(SlimefunPlugin plugin) {
|
||||
public ExplosionsListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Firework;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -11,7 +13,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
|
||||
public class FireworksListener implements Listener {
|
||||
|
||||
public FireworksListener(SlimefunPlugin plugin) {
|
||||
public FireworksListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -34,7 +37,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class GadgetsListener implements Listener {
|
||||
|
||||
public GadgetsListener(SlimefunPlugin plugin) {
|
||||
public GadgetsListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -63,7 +66,7 @@ public class GadgetsListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleChestplate(Player p, SlimefunItem chestplate) {
|
||||
private void handleChestplate(@Nonnull Player p, @Nullable SlimefunItem chestplate) {
|
||||
if (chestplate == null || !Slimefun.hasUnlocked(p, chestplate, true)) {
|
||||
return;
|
||||
}
|
||||
@ -80,7 +83,7 @@ public class GadgetsListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleBoots(Player p, SlimefunItem boots) {
|
||||
private void handleBoots(@Nonnull Player p, @Nullable SlimefunItem boots) {
|
||||
if (boots instanceof JetBoots && Slimefun.hasUnlocked(p, boots, true)) {
|
||||
double speed = ((JetBoots) boots).getSpeed();
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Arrow;
|
||||
@ -16,17 +19,19 @@ final class GrapplingHookEntity {
|
||||
private final Arrow arrow;
|
||||
private final Entity leashTarget;
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
GrapplingHookEntity(Player p, Arrow arrow, Entity leashTarget, boolean dropItem) {
|
||||
this.arrow = arrow;
|
||||
this.leashTarget = leashTarget;
|
||||
this.dropItem = p.getGameMode() != GameMode.CREATIVE && dropItem;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public Arrow getArrow() {
|
||||
return arrow;
|
||||
}
|
||||
|
||||
public void drop(Location l) {
|
||||
public void drop(@Nonnull Location l) {
|
||||
if (dropItem) {
|
||||
Item item = l.getWorld().dropItem(l, SlimefunItems.GRAPPLING_HOOK.clone());
|
||||
item.setPickupDelay(16);
|
||||
|
@ -6,6 +6,10 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Bat;
|
||||
@ -43,7 +47,7 @@ public class GrapplingHookListener implements Listener {
|
||||
private final Map<UUID, GrapplingHookEntity> activeHooks = new HashMap<>();
|
||||
private final Set<UUID> invulnerability = new HashSet<>();
|
||||
|
||||
public void register(SlimefunPlugin plugin, GrapplingHook grapplingHook) {
|
||||
public void register(@Nonnull SlimefunPlugin plugin, @Nonnull GrapplingHook grapplingHook) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
|
||||
this.grapplingHook = grapplingHook;
|
||||
@ -133,7 +137,7 @@ public class GrapplingHookListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleGrapplingHook(Arrow arrow) {
|
||||
private void handleGrapplingHook(@Nullable Arrow arrow) {
|
||||
if (arrow != null && arrow.isValid() && arrow.getShooter() instanceof Player) {
|
||||
Player p = (Player) arrow.getShooter();
|
||||
GrapplingHookEntity hook = activeHooks.get(p.getUniqueId());
|
||||
@ -175,10 +179,11 @@ public class GrapplingHookListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isGrappling(UUID uuid) {
|
||||
public boolean isGrappling(@Nonnull UUID uuid) {
|
||||
return activeHooks.containsKey(uuid);
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
public void addGrapplingHook(Player p, Arrow arrow, Bat bat, boolean dropItem, long despawnTicks) {
|
||||
GrapplingHookEntity hook = new GrapplingHookEntity(p, arrow, bat, dropItem);
|
||||
UUID uuid = p.getUniqueId();
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.IronGolem;
|
||||
@ -24,7 +26,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
*/
|
||||
public class IronGolemListener implements Listener {
|
||||
|
||||
public IronGolemListener(SlimefunPlugin plugin) {
|
||||
public IronGolemListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityPickupItemEvent;
|
||||
@ -17,7 +19,7 @@ import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
|
||||
*/
|
||||
public class ItemPickupListener implements Listener {
|
||||
|
||||
public ItemPickupListener(SlimefunPlugin plugin) {
|
||||
public ItemPickupListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -30,7 +32,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class MobDropListener implements Listener {
|
||||
|
||||
public MobDropListener(SlimefunPlugin plugin) {
|
||||
public MobDropListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -60,14 +62,13 @@ public class MobDropListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean canDrop(Player p, ItemStack item) {
|
||||
private boolean canDrop(@Nonnull Player p, @Nonnull ItemStack item) {
|
||||
SlimefunItem sfi = SlimefunItem.getByItem(item);
|
||||
|
||||
if (sfi == null) {
|
||||
return true;
|
||||
}
|
||||
else if (Slimefun.hasUnlocked(p, sfi, true)) {
|
||||
|
||||
if (sfi instanceof RandomMobDrop) {
|
||||
int random = ThreadLocalRandom.current().nextInt(100);
|
||||
|
||||
|
@ -2,6 +2,10 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
@ -32,7 +36,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
*/
|
||||
public class MultiBlockListener implements Listener {
|
||||
|
||||
public MultiBlockListener(SlimefunPlugin plugin) {
|
||||
public MultiBlockListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -63,6 +67,7 @@ public class MultiBlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private boolean compareMaterials(Block b, Material[] blocks, boolean onlyTwoWay) {
|
||||
if (!compareMaterialsVertical(b, blocks[1], blocks[4], blocks[7])) {
|
||||
return false;
|
||||
@ -79,12 +84,15 @@ public class MultiBlockListener implements Listener {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean compareMaterialsVertical(Block b, Material top, Material center, Material bottom) {
|
||||
private boolean compareMaterialsVertical(@Nonnull Block b, @Nullable Material top, @Nullable Material center, @Nullable Material bottom) {
|
||||
return (center == null || equals(b.getType(), center)) && (top == null || equals(b.getRelative(BlockFace.UP).getType(), top)) && (bottom == null || equals(b.getRelative(BlockFace.DOWN).getType(), bottom));
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private boolean equals(Material a, Material b) {
|
||||
if (a == b) return true;
|
||||
if (a == b) {
|
||||
return true;
|
||||
}
|
||||
|
||||
for (Tag<Material> tag : MultiBlock.getSupportedTags()) {
|
||||
if (tag.isTagged(a) && tag.isTagged(b)) {
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -23,7 +25,7 @@ public class NetworkListener implements Listener {
|
||||
|
||||
private final NetworkManager manager;
|
||||
|
||||
public NetworkListener(SlimefunPlugin plugin, NetworkManager manager) {
|
||||
public NetworkListener(@Nonnull SlimefunPlugin plugin, @Nonnull NetworkManager manager) {
|
||||
this.manager = manager;
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Piglin;
|
||||
@ -31,7 +33,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
*/
|
||||
public class PiglinListener implements Listener {
|
||||
|
||||
public PiglinListener(SlimefunPlugin plugin) {
|
||||
public PiglinListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -22,7 +24,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
*/
|
||||
public class PlayerProfileListener implements Listener {
|
||||
|
||||
public PlayerProfileListener(SlimefunPlugin plugin) {
|
||||
public PlayerProfileListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -22,7 +24,7 @@ public class SeismicAxeListener implements Listener {
|
||||
|
||||
private final SeismicAxe seismicAxe;
|
||||
|
||||
public SeismicAxeListener(SlimefunPlugin plugin, SeismicAxe seismicAxe) {
|
||||
public SeismicAxeListener(@Nonnull SlimefunPlugin plugin, @Nonnull SeismicAxe seismicAxe) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
this.seismicAxe = seismicAxe;
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.EnderPearl;
|
||||
@ -31,7 +33,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class SlimefunBootsListener implements Listener {
|
||||
|
||||
public SlimefunBootsListener(SlimefunPlugin plugin) {
|
||||
public SlimefunBootsListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -51,7 +53,7 @@ public class SlimefunBootsListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void onFallDamage(EntityDamageEvent e) {
|
||||
private void onFallDamage(@Nonnull EntityDamageEvent e) {
|
||||
Player p = (Player) e.getEntity();
|
||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||
|
||||
@ -71,7 +73,7 @@ public class SlimefunBootsListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void onEnderPearlDamage(EntityDamageEvent e) {
|
||||
private void onEnderPearlDamage(@Nonnull EntityDamageEvent e) {
|
||||
Player p = (Player) e.getEntity();
|
||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||
|
||||
|
@ -4,6 +4,8 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -34,7 +36,7 @@ public class SlimefunBowListener implements Listener {
|
||||
|
||||
private final Map<UUID, SlimefunBow> projectiles = new HashMap<>();
|
||||
|
||||
public void register(SlimefunPlugin plugin) {
|
||||
public void register(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -44,6 +46,7 @@ public class SlimefunBowListener implements Listener {
|
||||
*
|
||||
* @return A {@link HashMap} with all actively tracked {@link Arrow Arrows}
|
||||
*/
|
||||
@Nonnull
|
||||
public Map<UUID, SlimefunBow> getProjectileData() {
|
||||
return projectiles;
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Result;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -19,7 +22,7 @@ public class SlimefunGuideListener implements Listener {
|
||||
|
||||
private final boolean giveOnFirstJoin;
|
||||
|
||||
public SlimefunGuideListener(SlimefunPlugin plugin, boolean giveOnFirstJoin) {
|
||||
public SlimefunGuideListener(@Nonnull SlimefunPlugin plugin, boolean giveOnFirstJoin) {
|
||||
this.giveOnFirstJoin = giveOnFirstJoin;
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
@ -65,6 +68,8 @@ public class SlimefunGuideListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@ParametersAreNonnullByDefault
|
||||
private Result openGuide(PlayerRightClickEvent e, SlimefunGuideLayout layout) {
|
||||
Player p = e.getPlayer();
|
||||
ItemStack item = e.getItem();
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -20,7 +22,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class SlimefunItemConsumeListener implements Listener {
|
||||
|
||||
public SlimefunItemConsumeListener(SlimefunPlugin plugin) {
|
||||
public SlimefunItemConsumeListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -30,7 +33,7 @@ import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
|
||||
|
||||
public class SlimefunItemListener implements Listener {
|
||||
|
||||
public SlimefunItemListener(SlimefunPlugin plugin) {
|
||||
public SlimefunItemListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -64,6 +67,8 @@ public class SlimefunItemListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@ParametersAreNonnullByDefault
|
||||
private boolean rightClickItem(PlayerInteractEvent e, PlayerRightClickEvent event, boolean defaultValue) {
|
||||
Optional<SlimefunItem> optional = event.getSlimefunItem();
|
||||
|
||||
@ -79,6 +84,7 @@ public class SlimefunItemListener implements Listener {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private boolean rightClickBlock(PlayerInteractEvent e, PlayerRightClickEvent event) {
|
||||
Optional<SlimefunItem> optional = event.getSlimefunBlock();
|
||||
|
||||
@ -104,6 +110,7 @@ public class SlimefunItemListener implements Listener {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void openInventory(Player p, String id, PlayerInteractEvent e, PlayerRightClickEvent event) {
|
||||
if (!p.isSneaking() || Material.AIR == event.getItem().getType()) {
|
||||
e.setCancelled(true);
|
||||
|
@ -5,6 +5,9 @@ import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -19,7 +22,7 @@ public class SoulboundListener implements Listener {
|
||||
|
||||
private final Map<UUID, Map<Integer, ItemStack>> soulbound = new HashMap<>();
|
||||
|
||||
public SoulboundListener(SlimefunPlugin plugin) {
|
||||
public SoulboundListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -52,12 +55,13 @@ public class SoulboundListener implements Listener {
|
||||
retrieveItems(e.getPlayer());
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void storeItem(UUID uuid, int slot, ItemStack item) {
|
||||
Map<Integer, ItemStack> items = soulbound.computeIfAbsent(uuid, uid -> new HashMap<>());
|
||||
items.put(slot, item);
|
||||
}
|
||||
|
||||
private void retrieveItems(Player p) {
|
||||
private void retrieveItems(@Nonnull Player p) {
|
||||
Map<Integer, ItemStack> items = soulbound.remove(p.getUniqueId());
|
||||
|
||||
if (items != null) {
|
||||
|
@ -7,6 +7,9 @@ import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
@ -48,7 +51,7 @@ public class TalismanListener implements Listener {
|
||||
|
||||
private final int[] armorSlots = { 39, 38, 37, 36 };
|
||||
|
||||
public TalismanListener(SlimefunPlugin plugin) {
|
||||
public TalismanListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -82,7 +85,7 @@ public class TalismanListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void onProjectileDamage(EntityDamageByEntityEvent e) {
|
||||
private void onProjectileDamage(@Nonnull EntityDamageByEntityEvent e) {
|
||||
if (e.getDamager() instanceof Projectile && !(e.getDamager() instanceof Trident)) {
|
||||
Projectile projectile = (Projectile) e.getDamager();
|
||||
|
||||
@ -102,7 +105,7 @@ public class TalismanListener implements Listener {
|
||||
* @param projectile
|
||||
* The {@link Projectile} that hit this {@link Player}
|
||||
*/
|
||||
private void returnProjectile(Player p, Projectile projectile) {
|
||||
private void returnProjectile(@Nonnull Player p, @Nonnull Projectile projectile) {
|
||||
Vector direction = p.getEyeLocation().getDirection().multiply(2.0);
|
||||
Location loc = p.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ());
|
||||
|
||||
@ -141,6 +144,8 @@ public class TalismanListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@ParametersAreNonnullByDefault
|
||||
private Collection<ItemStack> getExtraDrops(LivingEntity entity, Collection<ItemStack> drops) {
|
||||
List<ItemStack> items = new ArrayList<>(drops);
|
||||
|
||||
@ -269,7 +274,7 @@ public class TalismanListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private int getAmountWithFortune(Material type, int fortuneLevel) {
|
||||
private int getAmountWithFortune(@Nonnull Material type, int fortuneLevel) {
|
||||
if (fortuneLevel > 0) {
|
||||
Random random = ThreadLocalRandom.current();
|
||||
int amount = random.nextInt(fortuneLevel + 2) - 1;
|
||||
|
@ -2,6 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -21,7 +24,7 @@ public class TeleporterListener implements Listener {
|
||||
|
||||
private final BlockFace[] faces = { BlockFace.NORTH, BlockFace.NORTH_EAST, BlockFace.EAST, BlockFace.SOUTH_EAST, BlockFace.SOUTH, BlockFace.SOUTH_WEST, BlockFace.WEST, BlockFace.NORTH_WEST };
|
||||
|
||||
public TeleporterListener(SlimefunPlugin plugin) {
|
||||
public TeleporterListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -50,11 +53,12 @@ public class TeleporterListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private boolean isTeleporterPad(String id, Block b, UUID uuid) {
|
||||
return id.equals(SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED.getItemId()) || (id.equals(SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL.getItemId()) && BlockStorage.getLocationInfo(b.getLocation(), "owner").equals(uuid.toString()));
|
||||
}
|
||||
|
||||
private boolean checkForPylons(Block teleporter) {
|
||||
private boolean checkForPylons(@Nonnull Block teleporter) {
|
||||
for (BlockFace face : faces) {
|
||||
if (!BlockStorage.check(teleporter.getRelative(face), SlimefunItems.GPS_TELEPORTER_PYLON.getItemId())) {
|
||||
return false;
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
@ -26,7 +28,7 @@ public class VampireBladeListener implements Listener {
|
||||
|
||||
private final VampireBlade blade;
|
||||
|
||||
public VampireBladeListener(SlimefunPlugin plugin, VampireBlade blade) {
|
||||
public VampireBladeListener(@Nonnull SlimefunPlugin plugin, @Nonnull VampireBlade blade) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
|
||||
this.blade = blade;
|
||||
|
@ -1,5 +1,8 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.bukkit.block.BrewingStand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Result;
|
||||
@ -31,7 +34,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
*/
|
||||
public class VanillaMachinesListener implements Listener {
|
||||
|
||||
public VanillaMachinesListener(SlimefunPlugin plugin) {
|
||||
public VanillaMachinesListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -107,7 +110,8 @@ public class VanillaMachinesListener implements Listener {
|
||||
|
||||
if (clickedInventory.getType() == InventoryType.BREWING) {
|
||||
e.setCancelled(isUnallowed(SlimefunItem.getByItem(e.getCursor())));
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
e.setCancelled(isUnallowed(SlimefunItem.getByItem(e.getCurrentItem())));
|
||||
}
|
||||
|
||||
@ -117,7 +121,7 @@ public class VanillaMachinesListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkForUnallowedItems(ItemStack item1, ItemStack item2) {
|
||||
private boolean checkForUnallowedItems(@Nullable ItemStack item1, @Nullable ItemStack item2) {
|
||||
if (SlimefunGuide.isGuideItem(item1) || SlimefunGuide.isGuideItem(item2)) {
|
||||
return true;
|
||||
}
|
||||
@ -133,7 +137,7 @@ public class VanillaMachinesListener implements Listener {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isUnallowed(SlimefunItem item) {
|
||||
private boolean isUnallowed(@Nullable SlimefunItem item) {
|
||||
return item != null && !(item instanceof VanillaItem) && !item.isDisabled();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Result;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -23,7 +26,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
*/
|
||||
public class VillagerTradingListener implements Listener {
|
||||
|
||||
public VillagerTradingListener(SlimefunPlugin plugin) {
|
||||
public VillagerTradingListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@ -51,7 +54,7 @@ public class VillagerTradingListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isUnallowed(SlimefunItem item) {
|
||||
private boolean isUnallowed(@Nullable SlimefunItem item) {
|
||||
return item != null && !(item instanceof VanillaItem) && !(item instanceof SyntheticEmerald) && !item.isDisabled();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Wither;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -23,7 +25,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
*/
|
||||
public class WitherListener implements Listener {
|
||||
|
||||
public WitherListener(SlimefunPlugin plugin) {
|
||||
public WitherListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
@ -13,7 +15,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
public class WorldListener implements Listener {
|
||||
|
||||
public WorldListener(SlimefunPlugin plugin) {
|
||||
public WorldListener(@Nonnull SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
@ -57,6 +60,7 @@ public class AncientAltarTask implements Runnable {
|
||||
private int stage;
|
||||
private final Player player;
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
public AncientAltarTask(AncientAltarListener listener, Block altar, int speed, ItemStack output, List<Block> pedestals, List<ItemStack> items, Player player) {
|
||||
this.listener = listener;
|
||||
this.dropLocation = altar.getLocation().add(0.5, 1.3, 0.5);
|
||||
@ -122,7 +126,7 @@ public class AncientAltarTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private void checkPedestal(Block pedestal) {
|
||||
private void checkPedestal(@Nonnull Block pedestal) {
|
||||
Optional<Item> item = pedestalItem.getPlacedItem(pedestal);
|
||||
|
||||
if (!item.isPresent() || positionLock.remove(item.get()) == null) {
|
||||
|
@ -4,7 +4,12 @@ import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -62,6 +67,7 @@ public class ArmorTask implements Runnable {
|
||||
*
|
||||
* @return The {@link Set} of {@link PotionEffect PotionEffects} applied upon radioactive contact
|
||||
*/
|
||||
@Nonnull
|
||||
public Set<PotionEffect> getRadiationEffects() {
|
||||
return radiationEffects;
|
||||
}
|
||||
@ -88,6 +94,7 @@ public class ArmorTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void handleSlimefunArmor(Player p, ItemStack[] armor, HashedArmorpiece[] cachedArmor) {
|
||||
for (int slot = 0; slot < 4; slot++) {
|
||||
ItemStack item = armor[slot];
|
||||
@ -119,7 +126,7 @@ public class ArmorTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForSolarHelmet(Player p) {
|
||||
private void checkForSolarHelmet(@Nonnull Player p) {
|
||||
ItemStack helmet = p.getInventory().getHelmet();
|
||||
|
||||
if (SlimefunPlugin.getRegistry().isBackwardsCompatible() && !SlimefunUtils.isItemSimilar(helmet, SlimefunItems.SOLAR_HELMET, true, false)) {
|
||||
@ -134,7 +141,7 @@ public class ArmorTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean hasSunlight(Player p) {
|
||||
private boolean hasSunlight(@Nonnull Player p) {
|
||||
World world = p.getWorld();
|
||||
|
||||
if (world.getEnvironment() != Environment.NORMAL) {
|
||||
@ -145,7 +152,7 @@ public class ArmorTask implements Runnable {
|
||||
return (world.getTime() < 12300 || world.getTime() > 23850) && p.getEyeLocation().getBlock().getLightFromSky() == 15;
|
||||
}
|
||||
|
||||
private void checkForRadiation(Player p, PlayerProfile profile) {
|
||||
private void checkForRadiation(@Nonnull Player p, @Nonnull PlayerProfile profile) {
|
||||
if (!profile.hasFullProtectionAgainst(ProtectionType.RADIATION)) {
|
||||
for (ItemStack item : p.getInventory()) {
|
||||
if (checkAndApplyRadiation(p, item)) {
|
||||
@ -155,7 +162,11 @@ public class ArmorTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkAndApplyRadiation(Player p, ItemStack item) {
|
||||
private boolean checkAndApplyRadiation(@Nonnull Player p, @Nullable ItemStack item) {
|
||||
if (item == null || item.getType() == Material.AIR) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (SlimefunItem radioactiveItem : SlimefunPlugin.getRegistry().getRadioactiveItems()) {
|
||||
if (radioactiveItem.isItem(item) && Slimefun.isEnabled(p, radioactiveItem, true)) {
|
||||
// If the item is enabled in the world, then make radioactivity do its job
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Material;
|
||||
@ -18,7 +20,7 @@ public class JetBootsTask extends PlayerTask {
|
||||
|
||||
private final JetBoots boots;
|
||||
|
||||
public JetBootsTask(Player p, JetBoots boots) {
|
||||
public JetBootsTask(@Nonnull Player p, @Nonnull JetBoots boots) {
|
||||
super(p);
|
||||
this.boots = boots;
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Material;
|
||||
@ -15,7 +17,7 @@ public class JetpackTask extends PlayerTask {
|
||||
|
||||
private final Jetpack jetpack;
|
||||
|
||||
public JetpackTask(Player p, Jetpack jetpack) {
|
||||
public JetpackTask(@Nonnull Player p, @Nonnull Jetpack jetpack) {
|
||||
super(p);
|
||||
this.jetpack = jetpack;
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.Entity;
|
||||
@ -31,7 +33,7 @@ public class MagnetTask extends PlayerTask {
|
||||
* @param radius
|
||||
* The radius in which items should be picked up
|
||||
*/
|
||||
public MagnetTask(Player p, double radius) {
|
||||
public MagnetTask(@Nonnull Player p, double radius) {
|
||||
super(p);
|
||||
|
||||
this.radius = radius;
|
||||
|
@ -1,12 +1,14 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
public class ParachuteTask extends PlayerTask {
|
||||
|
||||
public ParachuteTask(Player p) {
|
||||
public ParachuteTask(@Nonnull Player p) {
|
||||
super(p);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@ -10,7 +12,7 @@ abstract class PlayerTask implements Runnable {
|
||||
protected int id;
|
||||
protected Player p;
|
||||
|
||||
public PlayerTask(Player p) {
|
||||
PlayerTask(@Nonnull Player p) {
|
||||
this.p = p;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
|
||||
@ -35,7 +37,7 @@ public class SlimefunStartupTask implements Runnable {
|
||||
* @param runnable
|
||||
* A {@link Runnable} containing additional operations that need to be run
|
||||
*/
|
||||
public SlimefunStartupTask(SlimefunPlugin plugin, Runnable runnable) {
|
||||
public SlimefunStartupTask(@Nonnull SlimefunPlugin plugin, @Nonnull Runnable runnable) {
|
||||
this.plugin = plugin;
|
||||
this.runnable = runnable;
|
||||
}
|
||||
|
@ -7,6 +7,9 @@ import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -53,7 +56,7 @@ public class TickerTask implements Runnable {
|
||||
* @param plugin
|
||||
* The instance of our {@link SlimefunPlugin}
|
||||
*/
|
||||
public void start(SlimefunPlugin plugin) {
|
||||
public void start(@Nonnull SlimefunPlugin plugin) {
|
||||
this.tickRate = SlimefunPlugin.getCfg().getInt("URID.custom-ticker-delay");
|
||||
|
||||
BukkitScheduler scheduler = plugin.getServer().getScheduler();
|
||||
@ -113,7 +116,7 @@ public class TickerTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private void tickChunk(Set<BlockTicker> tickers, String chunk) {
|
||||
private void tickChunk(@Nonnull Set<BlockTicker> tickers, @Nonnull String chunk) {
|
||||
try {
|
||||
Set<Location> locations = BlockStorage.getTickingLocations(chunk);
|
||||
String[] components = PatternUtils.SEMICOLON.split(chunk);
|
||||
@ -133,7 +136,7 @@ public class TickerTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private void tickLocation(Set<BlockTicker> tickers, Location l) {
|
||||
private void tickLocation(@Nonnull Set<BlockTicker> tickers, @Nonnull Location l) {
|
||||
Config data = BlockStorage.getLocationInfo(l);
|
||||
SlimefunItem item = SlimefunItem.getByID(data.getString("id"));
|
||||
|
||||
@ -164,6 +167,7 @@ public class TickerTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void tickBlock(Location l, Block b, SlimefunItem item, Config data, long timestamp) {
|
||||
try {
|
||||
item.getBlockTicker().tick(b, item, data);
|
||||
@ -176,6 +180,7 @@ public class TickerTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private void reportErrors(Location l, SlimefunItem item, Throwable x) {
|
||||
BlockPosition position = new BlockPosition(l);
|
||||
int errors = bugs.getOrDefault(position, 0) + 1;
|
||||
@ -208,10 +213,12 @@ public class TickerTask implements Runnable {
|
||||
halted = true;
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
public void queueMove(Location from, Location to) {
|
||||
movingQueue.put(from, to);
|
||||
}
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
public void queueDelete(Location l, boolean destroy) {
|
||||
deletionQueue.put(l, destroy);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user