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
|
* Performance improvements for energy networks
|
||||||
* (API) Rewritten Block-Energy API
|
* (API) Rewritten Block-Energy API
|
||||||
* Removed "durability" setting from cargo nodes
|
* Removed "durability" setting from cargo nodes
|
||||||
|
* Small performance improvements for radiation
|
||||||
|
|
||||||
#### Fixes
|
#### Fixes
|
||||||
* Fixed Programmable Androids rotating in the wrong direction
|
* Fixed Programmable Androids rotating in the wrong direction
|
||||||
|
@ -8,6 +8,7 @@ import java.util.Locale;
|
|||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
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.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
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 {
|
public class BookSlimefunGuide implements SlimefunGuideImplementation {
|
||||||
|
|
||||||
private final NamespacedKey guideSearch = new NamespacedKey(SlimefunPlugin.instance(), "search");
|
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.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.Recipe;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile;
|
import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
||||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||||
import io.github.thebusybiscuit.slimefun4.utils.itemstack.SlimefunGuideItem;
|
import io.github.thebusybiscuit.slimefun4.utils.itemstack.SlimefunGuideItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu;
|
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 {
|
public class CheatSheetSlimefunGuide extends ChestSlimefunGuide {
|
||||||
|
|
||||||
private final ItemStack item;
|
private final ItemStack item;
|
||||||
|
@ -13,6 +13,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.Tag;
|
import org.bukkit.Tag;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.Recipe;
|
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.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
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 {
|
public class ChestSlimefunGuide implements SlimefunGuideImplementation {
|
||||||
|
|
||||||
private static final int CATEGORY_SIZE = 36;
|
private static final int CATEGORY_SIZE = 36;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.items;
|
package io.github.thebusybiscuit.slimefun4.implementation.items;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent;
|
import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent;
|
||||||
@ -70,11 +72,13 @@ public class RadioactiveItem extends SlimefunItem implements Radioactive, NotPla
|
|||||||
addItemHandler(onRightClick());
|
addItemHandler(onRightClick());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
private ItemUseHandler onRightClick() {
|
private ItemUseHandler onRightClick() {
|
||||||
return PlayerRightClickEvent::cancel;
|
return PlayerRightClickEvent::cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Nonnull
|
||||||
public Radioactivity getRadioactivity() {
|
public Radioactivity getRadioactivity() {
|
||||||
return radioactivity;
|
return radioactivity;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,8 @@ import java.util.HashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
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}
|
* @return The title of the {@link Inventory} of this {@link AbstractEnergyProvider}
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
public String getInventoryTitle() {
|
public String getInventoryTitle() {
|
||||||
return getItemName();
|
return getItemName();
|
||||||
}
|
}
|
||||||
@ -62,6 +65,7 @@ public abstract class AbstractEnergyProvider extends SlimefunItem implements Inv
|
|||||||
*
|
*
|
||||||
* @return The {@link ItemStack} to use as the progress bar
|
* @return The {@link ItemStack} to use as the progress bar
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
public abstract ItemStack getProgressBar();
|
public abstract ItemStack getProgressBar();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -81,10 +85,11 @@ public abstract class AbstractEnergyProvider extends SlimefunItem implements Inv
|
|||||||
return EnergyNetComponentType.GENERATOR;
|
return EnergyNetComponentType.GENERATOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerFuel(MachineFuel fuel) {
|
public void registerFuel(@Nonnull MachineFuel fuel) {
|
||||||
fuelTypes.add(fuel);
|
fuelTypes.add(fuel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
public Set<MachineFuel> getFuelTypes() {
|
public Set<MachineFuel> getFuelTypes() {
|
||||||
return fuelTypes;
|
return fuelTypes;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.items.electric;
|
package io.github.thebusybiscuit.slimefun4.implementation.items.electric;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@ -36,6 +38,7 @@ public class EnergyRegulator extends SlimefunItem {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
private BlockPlaceHandler onPlace() {
|
private BlockPlaceHandler onPlace() {
|
||||||
return new BlockPlaceHandler(false) {
|
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());
|
EnergyNet network = EnergyNet.getNetworkFromLocationOrCreate(b.getLocation());
|
||||||
network.tick(b);
|
network.tick(b);
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,10 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -120,7 +124,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
registerDefaultFuelTypes();
|
registerDefaultFuelTypes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateInventory(BlockMenu menu, Block b) {
|
protected void updateInventory(@Nonnull BlockMenu menu, @Nonnull Block b) {
|
||||||
ReactorMode mode = getReactorMode(b.getLocation());
|
ReactorMode mode = getReactorMode(b.getLocation());
|
||||||
|
|
||||||
switch (mode) {
|
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) {
|
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) {
|
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) {
|
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());
|
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) {
|
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()) {
|
if (needsCooling()) {
|
||||||
preset.addItem(7, new CustomItem(getCoolant(), "&bCoolant Slot", "", "&fThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode"));
|
preset.addItem(7, new CustomItem(getCoolant(), "&bCoolant Slot", "", "&fThis Slot accepts Coolant Cells", "&4Without any Coolant Cells, your Reactor", "&4will explode"));
|
||||||
}
|
}
|
||||||
else {
|
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) {
|
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;
|
ReactorMode mode = ReactorMode.GENERATOR;
|
||||||
|
|
||||||
if (BlockStorage.hasBlockInfo(l) && BlockStorage.getLocationInfo(l, MODE).equals(ReactorMode.PRODUCTION.toString())) {
|
if (BlockStorage.hasBlockInfo(l) && BlockStorage.getLocationInfo(l, MODE).equals(ReactorMode.PRODUCTION.toString())) {
|
||||||
@ -208,7 +213,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
return mode;
|
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}.
|
* 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}
|
* @return The {@link ItemStack} required to cool this {@link Reactor}
|
||||||
*/
|
*/
|
||||||
|
@Nullable
|
||||||
public abstract ItemStack getCoolant();
|
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}.
|
* @return The {@link ItemStack} used as the fuel icon for this {@link Reactor}.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
public abstract ItemStack getFuelIcon();
|
public abstract ItemStack getFuelIcon();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -247,6 +254,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
return new int[] { 19, 28, 37 };
|
return new int[] { 19, 28, 37 };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
public int[] getCoolantSlots() {
|
public int[] getCoolantSlots() {
|
||||||
return needsCooling() ? new int[] { 25, 34, 43 } : new int[0];
|
return needsCooling() ? new int[] { 25, 34, 43 } : new int[0];
|
||||||
}
|
}
|
||||||
@ -274,11 +282,26 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
int timeleft = progress.get(l);
|
int timeleft = progress.get(l);
|
||||||
|
|
||||||
if (timeleft > 0) {
|
if (timeleft > 0) {
|
||||||
|
return generateEnergy(l, data, inv, accessPort, timeleft);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
createByproduct(l, inv, accessPort);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
burnNextFuel(l, inv, accessPort);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int generateEnergy(@Nonnull Location l, @Nonnull Config data, @Nonnull BlockMenu inv, @Nullable BlockMenu accessPort, int timeleft) {
|
||||||
int produced = getEnergyProduction();
|
int produced = getEnergyProduction();
|
||||||
|
String energyData = data.getString("energy-charge");
|
||||||
int charge = 0;
|
int charge = 0;
|
||||||
|
|
||||||
if (data.contains("energy-charge")) {
|
if (energyData != null) {
|
||||||
charge = Integer.parseInt(data.getString("energy-charge"));
|
charge = Integer.parseInt(energyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
int space = getCapacity() - charge;
|
int space = getCapacity() - charge;
|
||||||
@ -302,16 +325,6 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
createByproduct(l, inv, accessPort);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
burnNextFuel(l, inv, accessPort);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean willExplode(Location l, Config data) {
|
public boolean willExplode(Location l, Config data) {
|
||||||
@ -398,7 +411,7 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
*
|
*
|
||||||
* @return Whether the {@link Reactor} was successfully cooled, if not it should explode
|
* @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;
|
boolean requiresCoolant = (processing.get(reactor).getTicks() - timeleft) % COOLANT_DURATION == 0;
|
||||||
|
|
||||||
if (requiresCoolant) {
|
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);
|
return Math.round(((((COOLANT_DURATION - passed) * 100.0F) / COOLANT_DURATION) * 100.0F) / 100.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void restockFuel(BlockMenu menu, BlockMenu port) {
|
private void restockFuel(BlockMenu menu, BlockMenu port) {
|
||||||
for (int slot : getFuelSlots()) {
|
for (int slot : getFuelSlots()) {
|
||||||
for (MachineFuel fuelType : fuelTypes) {
|
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) {
|
private MachineFuel findFuel(BlockMenu menu, Map<Integer, Integer> found) {
|
||||||
for (MachineFuel fuel : fuelTypes) {
|
for (MachineFuel fuel : fuelTypes) {
|
||||||
for (int slot : getInputSlots()) {
|
for (int slot : getInputSlots()) {
|
||||||
@ -459,7 +475,8 @@ public abstract class Reactor extends AbstractEnergyProvider {
|
|||||||
return null;
|
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());
|
Location port = new Location(l.getWorld(), l.getX(), l.getY() + 3, l.getZ());
|
||||||
|
|
||||||
if (BlockStorage.check(port, SlimefunItems.REACTOR_ACCESS_PORT.getItemId())) {
|
if (BlockStorage.check(port, SlimefunItems.REACTOR_ACCESS_PORT.getItemId())) {
|
||||||
|
@ -8,6 +8,9 @@ import java.util.Optional;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -70,10 +73,12 @@ public class AncientAltarListener implements Listener {
|
|||||||
*
|
*
|
||||||
* @return A {@link Set} of every {@link AncientAltar} currently in use
|
* @return A {@link Set} of every {@link AncientAltar} currently in use
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
public Set<Location> getAltarsInUse() {
|
public Set<Location> getAltarsInUse() {
|
||||||
return altarsInUse;
|
return altarsInUse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
public List<Block> getAltars() {
|
public List<Block> getAltars() {
|
||||||
return altars;
|
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())) {
|
if (altarsInUse.contains(pedestal.getLocation())) {
|
||||||
return;
|
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)) {
|
if (!SlimefunPlugin.getProtectionManager().hasPermission(p, altar, ProtectableAction.ACCESS_INVENTORIES)) {
|
||||||
SlimefunPlugin.getLocalization().sendMessage(p, "inventory.no-access", true);
|
SlimefunPlugin.getLocalization().sendMessage(p, "inventory.no-access", true);
|
||||||
return;
|
return;
|
||||||
@ -198,6 +203,7 @@ public class AncientAltarListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void startRitual(Player p, Block b, List<Block> pedestals, ItemStack catalyst) {
|
private void startRitual(Player p, Block b, List<Block> pedestals, ItemStack catalyst) {
|
||||||
List<ItemStack> input = new ArrayList<>();
|
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<>();
|
List<Block> list = new ArrayList<>();
|
||||||
|
|
||||||
if (BlockStorage.check(altar.getRelative(2, 0, -2), pedestalItem.getID())) {
|
if (BlockStorage.check(altar.getRelative(2, 0, -2), pedestalItem.getID())) {
|
||||||
@ -297,15 +304,16 @@ public class AncientAltarListener implements Listener {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<ItemStack> getRecipeOutput(ItemStack catalyst, List<ItemStack> input) {
|
@Nonnull
|
||||||
if (input.size() != 8) {
|
public Optional<ItemStack> getRecipeOutput(@Nonnull ItemStack catalyst, @Nonnull List<ItemStack> inputs) {
|
||||||
|
if (inputs.size() != 8) {
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStackWrapper wrapper = new ItemStackWrapper(catalyst);
|
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()) {
|
if (!checkRecipe(SlimefunItems.BROKEN_SPAWNER, items).isPresent()) {
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
@ -320,7 +328,8 @@ public class AncientAltarListener implements Listener {
|
|||||||
return checkRecipe(wrapper, items);
|
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()) {
|
for (AltarRecipe recipe : altarItem.getRecipes()) {
|
||||||
if (SlimefunUtils.isItemSimilar(catalyst, recipe.getCatalyst(), true)) {
|
if (SlimefunUtils.isItemSimilar(catalyst, recipe.getCatalyst(), true)) {
|
||||||
Optional<ItemStack> optional = checkPedestals(items, recipe);
|
Optional<ItemStack> optional = checkPedestals(items, recipe);
|
||||||
@ -334,7 +343,8 @@ public class AncientAltarListener implements Listener {
|
|||||||
return Optional.empty();
|
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++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
if (SlimefunUtils.isItemSimilar(items.get(i), recipe.getInput().get(0), true)) {
|
if (SlimefunUtils.isItemSimilar(items.get(i), recipe.getInput().get(0), true)) {
|
||||||
for (int j = 1; j < 8; j++) {
|
for (int j = 1; j < 8; j++) {
|
||||||
|
@ -5,6 +5,9 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -48,7 +51,7 @@ public class BackpackListener implements Listener {
|
|||||||
|
|
||||||
private final Map<UUID, ItemStack> backpacks = new HashMap<>();
|
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);
|
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) {
|
if (item == null || item.getType() == Material.AIR) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -154,7 +157,7 @@ public class BackpackListener implements Listener {
|
|||||||
* @param id
|
* @param id
|
||||||
* The id of this backpack
|
* 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(backpackOwner, "Backpacks must have an owner!");
|
||||||
Validate.notNull(item, "Cannot set the id onto null!");
|
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 java.util.Optional;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.Bee;
|
import org.bukkit.entity.Bee;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -23,7 +25,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
|||||||
*/
|
*/
|
||||||
public class BeeListener implements Listener {
|
public class BeeListener implements Listener {
|
||||||
|
|
||||||
public BeeListener(SlimefunPlugin plugin) {
|
public BeeListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,10 @@ import java.util.Random;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Tag;
|
import org.bukkit.Tag;
|
||||||
import org.bukkit.block.Block;
|
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
|
// Materials that require a Block under it, e.g. Pressure Plates
|
||||||
private final Set<Material> sensitiveMaterials = EnumSet.noneOf(Material.class);
|
private final Set<Material> sensitiveMaterials = EnumSet.noneOf(Material.class);
|
||||||
|
|
||||||
public BlockListener(SlimefunPlugin plugin) {
|
public BlockListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
|
||||||
sensitiveMaterials.add(Material.CAKE);
|
sensitiveMaterials.add(Material.CAKE);
|
||||||
@ -152,6 +156,7 @@ public class BlockListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void dropItems(BlockBreakEvent e, List<ItemStack> drops) {
|
private void dropItems(BlockBreakEvent e, List<ItemStack> drops) {
|
||||||
if (!drops.isEmpty()) {
|
if (!drops.isEmpty()) {
|
||||||
e.getBlock().setType(Material.AIR);
|
e.getBlock().setType(Material.AIR);
|
||||||
@ -176,6 +181,7 @@ public class BlockListener implements Listener {
|
|||||||
* @param b
|
* @param b
|
||||||
* The {@link Block} that was broken
|
* The {@link Block} that was broken
|
||||||
*/
|
*/
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void checkForSensitiveBlockAbove(Player p, Block b) {
|
private void checkForSensitiveBlockAbove(Player p, Block b) {
|
||||||
Block blockAbove = b.getRelative(BlockFace.UP);
|
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;
|
int fortune = 1;
|
||||||
|
|
||||||
if (item != null && item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
|
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;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Tag;
|
import org.bukkit.Tag;
|
||||||
@ -34,7 +36,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
*/
|
*/
|
||||||
public class BlockPhysicsListener implements Listener {
|
public class BlockPhysicsListener implements Listener {
|
||||||
|
|
||||||
public BlockPhysicsListener(SlimefunPlugin plugin) {
|
public BlockPhysicsListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,9 @@ import java.util.List;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
@ -33,7 +36,7 @@ public class ButcherAndroidListener implements Listener {
|
|||||||
|
|
||||||
private static final String METADATA_KEY = "android_killer";
|
private static final String METADATA_KEY = "android_killer";
|
||||||
|
|
||||||
public ButcherAndroidListener(SlimefunPlugin plugin) {
|
public ButcherAndroidListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,6 +77,7 @@ public class ButcherAndroidListener implements Listener {
|
|||||||
* @param entityType
|
* @param entityType
|
||||||
* The {@link EntityType} of the killed entity
|
* The {@link EntityType} of the killed entity
|
||||||
*/
|
*/
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void addExtraDrops(List<ItemStack> drops, EntityType entityType) {
|
private void addExtraDrops(List<ItemStack> drops, EntityType entityType) {
|
||||||
Random random = ThreadLocalRandom.current();
|
Random random = ThreadLocalRandom.current();
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
@ -20,7 +22,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
|||||||
*/
|
*/
|
||||||
public class CargoNodeListener implements Listener {
|
public class CargoNodeListener implements Listener {
|
||||||
|
|
||||||
public CargoNodeListener(SlimefunPlugin plugin) {
|
public CargoNodeListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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()) {
|
if (SlimefunPlugin.getRegistry().isBackwardsCompatible()) {
|
||||||
ItemStackWrapper wrapper = new ItemStackWrapper(item);
|
ItemStackWrapper wrapper = new ItemStackWrapper(item);
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -35,7 +37,7 @@ public class CoolerListener implements Listener {
|
|||||||
|
|
||||||
private final Cooler cooler;
|
private final Cooler cooler;
|
||||||
|
|
||||||
public CoolerListener(SlimefunPlugin plugin, Cooler cooler) {
|
public CoolerListener(@Nonnull SlimefunPlugin plugin, @Nonnull Cooler cooler) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
|
||||||
this.cooler = cooler;
|
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()) {
|
for (ItemStack item : p.getInventory().getContents()) {
|
||||||
if (cooler.isItem(item)) {
|
if (cooler.isItem(item)) {
|
||||||
if (Slimefun.hasUnlocked(p, cooler, true)) {
|
if (Slimefun.hasUnlocked(p, cooler, true)) {
|
||||||
@ -87,7 +89,7 @@ public class CoolerListener implements Listener {
|
|||||||
* @param cooler
|
* @param cooler
|
||||||
* The {@link Cooler} {@link ItemStack} to take the {@link Juice} from
|
* 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 -> {
|
PlayerProfile.getBackpack(cooler, backpack -> {
|
||||||
if (backpack != null) {
|
if (backpack != null) {
|
||||||
Slimefun.runSync(() -> consumeJuice(p, backpack));
|
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();
|
Inventory inv = backpack.getInventory();
|
||||||
int slot = -1;
|
int slot = -1;
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
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);
|
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);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -39,7 +42,7 @@ public class DebugFishListener implements Listener {
|
|||||||
private final String greenCheckmark;
|
private final String greenCheckmark;
|
||||||
private final String redCross;
|
private final String redCross;
|
||||||
|
|
||||||
public DebugFishListener(SlimefunPlugin plugin) {
|
public DebugFishListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
|
||||||
greenCheckmark = "&2\u2714";
|
greenCheckmark = "&2\u2714";
|
||||||
@ -71,6 +74,7 @@ public class DebugFishListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void onLeftClick(Player p, Block b, PlayerInteractEvent e) {
|
private void onLeftClick(Player p, Block b, PlayerInteractEvent e) {
|
||||||
if (p.isSneaking()) {
|
if (p.isSneaking()) {
|
||||||
if (BlockStorage.hasBlockInfo(b)) {
|
if (BlockStorage.hasBlockInfo(b)) {
|
||||||
@ -82,6 +86,7 @@ public class DebugFishListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void onRightClick(Player p, Block b, BlockFace face) {
|
private void onRightClick(Player p, Block b, BlockFace face) {
|
||||||
if (p.isSneaking()) {
|
if (p.isSneaking()) {
|
||||||
Block block = b.getRelative(face);
|
Block block = b.getRelative(face);
|
||||||
@ -98,6 +103,7 @@ public class DebugFishListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void sendInfo(Player p, Block b) {
|
private void sendInfo(Player p, Block b) {
|
||||||
SlimefunItem item = BlockStorage.check(b);
|
SlimefunItem item = BlockStorage.check(b);
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -28,7 +30,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
*/
|
*/
|
||||||
public class DispenserListener implements Listener {
|
public class DispenserListener implements Listener {
|
||||||
|
|
||||||
public DispenserListener(SlimefunPlugin plugin) {
|
public DispenserListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
import org.bukkit.block.Furnace;
|
import org.bukkit.block.Furnace;
|
||||||
@ -30,7 +32,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
*/
|
*/
|
||||||
public class EnhancedFurnaceListener implements Listener {
|
public class EnhancedFurnaceListener implements Listener {
|
||||||
|
|
||||||
public EnhancedFurnaceListener(SlimefunPlugin plugin) {
|
public EnhancedFurnaceListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -23,7 +25,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
*/
|
*/
|
||||||
public class EntityInteractionListener implements Listener {
|
public class EntityInteractionListener implements Listener {
|
||||||
|
|
||||||
public EntityInteractionListener(SlimefunPlugin plugin) {
|
public EntityInteractionListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -18,7 +20,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
|
|
||||||
public class ExplosionsListener implements Listener {
|
public class ExplosionsListener implements Listener {
|
||||||
|
|
||||||
public ExplosionsListener(SlimefunPlugin plugin) {
|
public ExplosionsListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Firework;
|
import org.bukkit.entity.Firework;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -11,7 +13,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
|||||||
|
|
||||||
public class FireworksListener implements Listener {
|
public class FireworksListener implements Listener {
|
||||||
|
|
||||||
public FireworksListener(SlimefunPlugin plugin) {
|
public FireworksListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -34,7 +37,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
*/
|
*/
|
||||||
public class GadgetsListener implements Listener {
|
public class GadgetsListener implements Listener {
|
||||||
|
|
||||||
public GadgetsListener(SlimefunPlugin plugin) {
|
public GadgetsListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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)) {
|
if (chestplate == null || !Slimefun.hasUnlocked(p, chestplate, true)) {
|
||||||
return;
|
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)) {
|
if (boots instanceof JetBoots && Slimefun.hasUnlocked(p, boots, true)) {
|
||||||
double speed = ((JetBoots) boots).getSpeed();
|
double speed = ((JetBoots) boots).getSpeed();
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
@ -16,17 +19,19 @@ final class GrapplingHookEntity {
|
|||||||
private final Arrow arrow;
|
private final Arrow arrow;
|
||||||
private final Entity leashTarget;
|
private final Entity leashTarget;
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
GrapplingHookEntity(Player p, Arrow arrow, Entity leashTarget, boolean dropItem) {
|
GrapplingHookEntity(Player p, Arrow arrow, Entity leashTarget, boolean dropItem) {
|
||||||
this.arrow = arrow;
|
this.arrow = arrow;
|
||||||
this.leashTarget = leashTarget;
|
this.leashTarget = leashTarget;
|
||||||
this.dropItem = p.getGameMode() != GameMode.CREATIVE && dropItem;
|
this.dropItem = p.getGameMode() != GameMode.CREATIVE && dropItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
public Arrow getArrow() {
|
public Arrow getArrow() {
|
||||||
return arrow;
|
return arrow;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drop(Location l) {
|
public void drop(@Nonnull Location l) {
|
||||||
if (dropItem) {
|
if (dropItem) {
|
||||||
Item item = l.getWorld().dropItem(l, SlimefunItems.GRAPPLING_HOOK.clone());
|
Item item = l.getWorld().dropItem(l, SlimefunItems.GRAPPLING_HOOK.clone());
|
||||||
item.setPickupDelay(16);
|
item.setPickupDelay(16);
|
||||||
|
@ -6,6 +6,10 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
import org.bukkit.entity.Bat;
|
import org.bukkit.entity.Bat;
|
||||||
@ -43,7 +47,7 @@ public class GrapplingHookListener implements Listener {
|
|||||||
private final Map<UUID, GrapplingHookEntity> activeHooks = new HashMap<>();
|
private final Map<UUID, GrapplingHookEntity> activeHooks = new HashMap<>();
|
||||||
private final Set<UUID> invulnerability = new HashSet<>();
|
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);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
|
||||||
this.grapplingHook = grapplingHook;
|
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) {
|
if (arrow != null && arrow.isValid() && arrow.getShooter() instanceof Player) {
|
||||||
Player p = (Player) arrow.getShooter();
|
Player p = (Player) arrow.getShooter();
|
||||||
GrapplingHookEntity hook = activeHooks.get(p.getUniqueId());
|
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);
|
return activeHooks.containsKey(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
public void addGrapplingHook(Player p, Arrow arrow, Bat bat, boolean dropItem, long despawnTicks) {
|
public void addGrapplingHook(Player p, Arrow arrow, Bat bat, boolean dropItem, long despawnTicks) {
|
||||||
GrapplingHookEntity hook = new GrapplingHookEntity(p, arrow, bat, dropItem);
|
GrapplingHookEntity hook = new GrapplingHookEntity(p, arrow, bat, dropItem);
|
||||||
UUID uuid = p.getUniqueId();
|
UUID uuid = p.getUniqueId();
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.IronGolem;
|
import org.bukkit.entity.IronGolem;
|
||||||
@ -24,7 +26,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
|||||||
*/
|
*/
|
||||||
public class IronGolemListener implements Listener {
|
public class IronGolemListener implements Listener {
|
||||||
|
|
||||||
public IronGolemListener(SlimefunPlugin plugin) {
|
public IronGolemListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityPickupItemEvent;
|
import org.bukkit.event.entity.EntityPickupItemEvent;
|
||||||
@ -17,7 +19,7 @@ import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
|
|||||||
*/
|
*/
|
||||||
public class ItemPickupListener implements Listener {
|
public class ItemPickupListener implements Listener {
|
||||||
|
|
||||||
public ItemPickupListener(SlimefunPlugin plugin) {
|
public ItemPickupListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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.Set;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -30,7 +32,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
*/
|
*/
|
||||||
public class MobDropListener implements Listener {
|
public class MobDropListener implements Listener {
|
||||||
|
|
||||||
public MobDropListener(SlimefunPlugin plugin) {
|
public MobDropListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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);
|
SlimefunItem sfi = SlimefunItem.getByItem(item);
|
||||||
|
|
||||||
if (sfi == null) {
|
if (sfi == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (Slimefun.hasUnlocked(p, sfi, true)) {
|
else if (Slimefun.hasUnlocked(p, sfi, true)) {
|
||||||
|
|
||||||
if (sfi instanceof RandomMobDrop) {
|
if (sfi instanceof RandomMobDrop) {
|
||||||
int random = ThreadLocalRandom.current().nextInt(100);
|
int random = ThreadLocalRandom.current().nextInt(100);
|
||||||
|
|
||||||
|
@ -2,6 +2,10 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Tag;
|
import org.bukkit.Tag;
|
||||||
@ -32,7 +36,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
|||||||
*/
|
*/
|
||||||
public class MultiBlockListener implements Listener {
|
public class MultiBlockListener implements Listener {
|
||||||
|
|
||||||
public MultiBlockListener(SlimefunPlugin plugin) {
|
public MultiBlockListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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) {
|
private boolean compareMaterials(Block b, Material[] blocks, boolean onlyTwoWay) {
|
||||||
if (!compareMaterialsVertical(b, blocks[1], blocks[4], blocks[7])) {
|
if (!compareMaterialsVertical(b, blocks[1], blocks[4], blocks[7])) {
|
||||||
return false;
|
return false;
|
||||||
@ -79,12 +84,15 @@ public class MultiBlockListener implements Listener {
|
|||||||
return false;
|
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));
|
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) {
|
private boolean equals(Material a, Material b) {
|
||||||
if (a == b) return true;
|
if (a == b) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
for (Tag<Material> tag : MultiBlock.getSupportedTags()) {
|
for (Tag<Material> tag : MultiBlock.getSupportedTags()) {
|
||||||
if (tag.isTagged(a) && tag.isTagged(b)) {
|
if (tag.isTagged(a) && tag.isTagged(b)) {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -23,7 +25,7 @@ public class NetworkListener implements Listener {
|
|||||||
|
|
||||||
private final NetworkManager manager;
|
private final NetworkManager manager;
|
||||||
|
|
||||||
public NetworkListener(SlimefunPlugin plugin, NetworkManager manager) {
|
public NetworkListener(@Nonnull SlimefunPlugin plugin, @Nonnull NetworkManager manager) {
|
||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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.Set;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Piglin;
|
import org.bukkit.entity.Piglin;
|
||||||
@ -31,7 +33,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
|||||||
*/
|
*/
|
||||||
public class PiglinListener implements Listener {
|
public class PiglinListener implements Listener {
|
||||||
|
|
||||||
public PiglinListener(SlimefunPlugin plugin) {
|
public PiglinListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -22,7 +24,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
|||||||
*/
|
*/
|
||||||
public class PlayerProfileListener implements Listener {
|
public class PlayerProfileListener implements Listener {
|
||||||
|
|
||||||
public PlayerProfileListener(SlimefunPlugin plugin) {
|
public PlayerProfileListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.FallingBlock;
|
import org.bukkit.entity.FallingBlock;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -22,7 +24,7 @@ public class SeismicAxeListener implements Listener {
|
|||||||
|
|
||||||
private final SeismicAxe seismicAxe;
|
private final SeismicAxe seismicAxe;
|
||||||
|
|
||||||
public SeismicAxeListener(SlimefunPlugin plugin, SeismicAxe seismicAxe) {
|
public SeismicAxeListener(@Nonnull SlimefunPlugin plugin, @Nonnull SeismicAxe seismicAxe) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
this.seismicAxe = seismicAxe;
|
this.seismicAxe = seismicAxe;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
@ -31,7 +33,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
*/
|
*/
|
||||||
public class SlimefunBootsListener implements Listener {
|
public class SlimefunBootsListener implements Listener {
|
||||||
|
|
||||||
public SlimefunBootsListener(SlimefunPlugin plugin) {
|
public SlimefunBootsListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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();
|
Player p = (Player) e.getEntity();
|
||||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
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();
|
Player p = (Player) e.getEntity();
|
||||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -34,7 +36,7 @@ public class SlimefunBowListener implements Listener {
|
|||||||
|
|
||||||
private final Map<UUID, SlimefunBow> projectiles = new HashMap<>();
|
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);
|
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}
|
* @return A {@link HashMap} with all actively tracked {@link Arrow Arrows}
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
public Map<UUID, SlimefunBow> getProjectileData() {
|
public Map<UUID, SlimefunBow> getProjectileData() {
|
||||||
return projectiles;
|
return projectiles;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event.Result;
|
import org.bukkit.event.Event.Result;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -19,7 +22,7 @@ public class SlimefunGuideListener implements Listener {
|
|||||||
|
|
||||||
private final boolean giveOnFirstJoin;
|
private final boolean giveOnFirstJoin;
|
||||||
|
|
||||||
public SlimefunGuideListener(SlimefunPlugin plugin, boolean giveOnFirstJoin) {
|
public SlimefunGuideListener(@Nonnull SlimefunPlugin plugin, boolean giveOnFirstJoin) {
|
||||||
this.giveOnFirstJoin = giveOnFirstJoin;
|
this.giveOnFirstJoin = giveOnFirstJoin;
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
@ -65,6 +68,8 @@ public class SlimefunGuideListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private Result openGuide(PlayerRightClickEvent e, SlimefunGuideLayout layout) {
|
private Result openGuide(PlayerRightClickEvent e, SlimefunGuideLayout layout) {
|
||||||
Player p = e.getPlayer();
|
Player p = e.getPlayer();
|
||||||
ItemStack item = e.getItem();
|
ItemStack item = e.getItem();
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -20,7 +22,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
*/
|
*/
|
||||||
public class SlimefunItemConsumeListener implements Listener {
|
public class SlimefunItemConsumeListener implements Listener {
|
||||||
|
|
||||||
public SlimefunItemConsumeListener(SlimefunPlugin plugin) {
|
public SlimefunItemConsumeListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -30,7 +33,7 @@ import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
|
|||||||
|
|
||||||
public class SlimefunItemListener implements Listener {
|
public class SlimefunItemListener implements Listener {
|
||||||
|
|
||||||
public SlimefunItemListener(SlimefunPlugin plugin) {
|
public SlimefunItemListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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) {
|
private boolean rightClickItem(PlayerInteractEvent e, PlayerRightClickEvent event, boolean defaultValue) {
|
||||||
Optional<SlimefunItem> optional = event.getSlimefunItem();
|
Optional<SlimefunItem> optional = event.getSlimefunItem();
|
||||||
|
|
||||||
@ -79,6 +84,7 @@ public class SlimefunItemListener implements Listener {
|
|||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private boolean rightClickBlock(PlayerInteractEvent e, PlayerRightClickEvent event) {
|
private boolean rightClickBlock(PlayerInteractEvent e, PlayerRightClickEvent event) {
|
||||||
Optional<SlimefunItem> optional = event.getSlimefunBlock();
|
Optional<SlimefunItem> optional = event.getSlimefunBlock();
|
||||||
|
|
||||||
@ -104,6 +110,7 @@ public class SlimefunItemListener implements Listener {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void openInventory(Player p, String id, PlayerInteractEvent e, PlayerRightClickEvent event) {
|
private void openInventory(Player p, String id, PlayerInteractEvent e, PlayerRightClickEvent event) {
|
||||||
if (!p.isSneaking() || Material.AIR == event.getItem().getType()) {
|
if (!p.isSneaking() || Material.AIR == event.getItem().getType()) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
|
@ -5,6 +5,9 @@ import java.util.Iterator;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -19,7 +22,7 @@ public class SoulboundListener implements Listener {
|
|||||||
|
|
||||||
private final Map<UUID, Map<Integer, ItemStack>> soulbound = new HashMap<>();
|
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);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,12 +55,13 @@ public class SoulboundListener implements Listener {
|
|||||||
retrieveItems(e.getPlayer());
|
retrieveItems(e.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void storeItem(UUID uuid, int slot, ItemStack item) {
|
private void storeItem(UUID uuid, int slot, ItemStack item) {
|
||||||
Map<Integer, ItemStack> items = soulbound.computeIfAbsent(uuid, uid -> new HashMap<>());
|
Map<Integer, ItemStack> items = soulbound.computeIfAbsent(uuid, uid -> new HashMap<>());
|
||||||
items.put(slot, item);
|
items.put(slot, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void retrieveItems(Player p) {
|
private void retrieveItems(@Nonnull Player p) {
|
||||||
Map<Integer, ItemStack> items = soulbound.remove(p.getUniqueId());
|
Map<Integer, ItemStack> items = soulbound.remove(p.getUniqueId());
|
||||||
|
|
||||||
if (items != null) {
|
if (items != null) {
|
||||||
|
@ -7,6 +7,9 @@ import java.util.Random;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
@ -48,7 +51,7 @@ public class TalismanListener implements Listener {
|
|||||||
|
|
||||||
private final int[] armorSlots = { 39, 38, 37, 36 };
|
private final int[] armorSlots = { 39, 38, 37, 36 };
|
||||||
|
|
||||||
public TalismanListener(SlimefunPlugin plugin) {
|
public TalismanListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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)) {
|
if (e.getDamager() instanceof Projectile && !(e.getDamager() instanceof Trident)) {
|
||||||
Projectile projectile = (Projectile) e.getDamager();
|
Projectile projectile = (Projectile) e.getDamager();
|
||||||
|
|
||||||
@ -102,7 +105,7 @@ public class TalismanListener implements Listener {
|
|||||||
* @param projectile
|
* @param projectile
|
||||||
* The {@link Projectile} that hit this {@link Player}
|
* 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);
|
Vector direction = p.getEyeLocation().getDirection().multiply(2.0);
|
||||||
Location loc = p.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ());
|
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) {
|
private Collection<ItemStack> getExtraDrops(LivingEntity entity, Collection<ItemStack> drops) {
|
||||||
List<ItemStack> items = new ArrayList<>(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) {
|
if (fortuneLevel > 0) {
|
||||||
Random random = ThreadLocalRandom.current();
|
Random random = ThreadLocalRandom.current();
|
||||||
int amount = random.nextInt(fortuneLevel + 2) - 1;
|
int amount = random.nextInt(fortuneLevel + 2) - 1;
|
||||||
|
@ -2,6 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.event.EventHandler;
|
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 };
|
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);
|
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) {
|
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()));
|
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) {
|
for (BlockFace face : faces) {
|
||||||
if (!BlockStorage.check(teleporter.getRelative(face), SlimefunItems.GPS_TELEPORTER_PYLON.getItemId())) {
|
if (!BlockStorage.check(teleporter.getRelative(face), SlimefunItems.GPS_TELEPORTER_PYLON.getItemId())) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
@ -26,7 +28,7 @@ public class VampireBladeListener implements Listener {
|
|||||||
|
|
||||||
private final VampireBlade blade;
|
private final VampireBlade blade;
|
||||||
|
|
||||||
public VampireBladeListener(SlimefunPlugin plugin, VampireBlade blade) {
|
public VampireBladeListener(@Nonnull SlimefunPlugin plugin, @Nonnull VampireBlade blade) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
|
||||||
this.blade = blade;
|
this.blade = blade;
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.bukkit.block.BrewingStand;
|
import org.bukkit.block.BrewingStand;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event.Result;
|
import org.bukkit.event.Event.Result;
|
||||||
@ -31,7 +34,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
|||||||
*/
|
*/
|
||||||
public class VanillaMachinesListener implements Listener {
|
public class VanillaMachinesListener implements Listener {
|
||||||
|
|
||||||
public VanillaMachinesListener(SlimefunPlugin plugin) {
|
public VanillaMachinesListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +110,8 @@ public class VanillaMachinesListener implements Listener {
|
|||||||
|
|
||||||
if (clickedInventory.getType() == InventoryType.BREWING) {
|
if (clickedInventory.getType() == InventoryType.BREWING) {
|
||||||
e.setCancelled(isUnallowed(SlimefunItem.getByItem(e.getCursor())));
|
e.setCancelled(isUnallowed(SlimefunItem.getByItem(e.getCursor())));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
e.setCancelled(isUnallowed(SlimefunItem.getByItem(e.getCurrentItem())));
|
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)) {
|
if (SlimefunGuide.isGuideItem(item1) || SlimefunGuide.isGuideItem(item2)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -133,7 +137,7 @@ public class VanillaMachinesListener implements Listener {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isUnallowed(SlimefunItem item) {
|
private boolean isUnallowed(@Nullable SlimefunItem item) {
|
||||||
return item != null && !(item instanceof VanillaItem) && !item.isDisabled();
|
return item != null && !(item instanceof VanillaItem) && !item.isDisabled();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event.Result;
|
import org.bukkit.event.Event.Result;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -23,7 +26,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
|||||||
*/
|
*/
|
||||||
public class VillagerTradingListener implements Listener {
|
public class VillagerTradingListener implements Listener {
|
||||||
|
|
||||||
public VillagerTradingListener(SlimefunPlugin plugin) {
|
public VillagerTradingListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, 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();
|
return item != null && !(item instanceof VanillaItem) && !(item instanceof SyntheticEmerald) && !item.isDisabled();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Wither;
|
import org.bukkit.entity.Wither;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -23,7 +25,7 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
*/
|
*/
|
||||||
public class WitherListener implements Listener {
|
public class WitherListener implements Listener {
|
||||||
|
|
||||||
public WitherListener(SlimefunPlugin plugin) {
|
public WitherListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
|||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.world.WorldLoadEvent;
|
import org.bukkit.event.world.WorldLoadEvent;
|
||||||
@ -13,7 +15,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|||||||
|
|
||||||
public class WorldListener implements Listener {
|
public class WorldListener implements Listener {
|
||||||
|
|
||||||
public WorldListener(SlimefunPlugin plugin) {
|
public WorldListener(@Nonnull SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,9 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -57,6 +60,7 @@ public class AncientAltarTask implements Runnable {
|
|||||||
private int stage;
|
private int stage;
|
||||||
private final Player player;
|
private final Player player;
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
public AncientAltarTask(AncientAltarListener listener, Block altar, int speed, ItemStack output, List<Block> pedestals, List<ItemStack> items, Player player) {
|
public AncientAltarTask(AncientAltarListener listener, Block altar, int speed, ItemStack output, List<Block> pedestals, List<ItemStack> items, Player player) {
|
||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
this.dropLocation = altar.getLocation().add(0.5, 1.3, 0.5);
|
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);
|
Optional<Item> item = pedestalItem.getPlacedItem(pedestal);
|
||||||
|
|
||||||
if (!item.isPresent() || positionLock.remove(item.get()) == null) {
|
if (!item.isPresent() || positionLock.remove(item.get()) == null) {
|
||||||
|
@ -4,7 +4,12 @@ import java.util.Collections;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.World.Environment;
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.entity.Player;
|
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
|
* @return The {@link Set} of {@link PotionEffect PotionEffects} applied upon radioactive contact
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
public Set<PotionEffect> getRadiationEffects() {
|
public Set<PotionEffect> getRadiationEffects() {
|
||||||
return radiationEffects;
|
return radiationEffects;
|
||||||
}
|
}
|
||||||
@ -88,6 +94,7 @@ public class ArmorTask implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
private void handleSlimefunArmor(Player p, ItemStack[] armor, HashedArmorpiece[] cachedArmor) {
|
private void handleSlimefunArmor(Player p, ItemStack[] armor, HashedArmorpiece[] cachedArmor) {
|
||||||
for (int slot = 0; slot < 4; slot++) {
|
for (int slot = 0; slot < 4; slot++) {
|
||||||
ItemStack item = armor[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();
|
ItemStack helmet = p.getInventory().getHelmet();
|
||||||
|
|
||||||
if (SlimefunPlugin.getRegistry().isBackwardsCompatible() && !SlimefunUtils.isItemSimilar(helmet, SlimefunItems.SOLAR_HELMET, true, false)) {
|
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();
|
World world = p.getWorld();
|
||||||
|
|
||||||
if (world.getEnvironment() != Environment.NORMAL) {
|
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;
|
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)) {
|
if (!profile.hasFullProtectionAgainst(ProtectionType.RADIATION)) {
|
||||||
for (ItemStack item : p.getInventory()) {
|
for (ItemStack item : p.getInventory()) {
|
||||||
if (checkAndApplyRadiation(p, item)) {
|
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()) {
|
for (SlimefunItem radioactiveItem : SlimefunPlugin.getRegistry().getRadioactiveItems()) {
|
||||||
if (radioactiveItem.isItem(item) && Slimefun.isEnabled(p, radioactiveItem, true)) {
|
if (radioactiveItem.isItem(item) && Slimefun.isEnabled(p, radioactiveItem, true)) {
|
||||||
// If the item is enabled in the world, then make radioactivity do its job
|
// 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 java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -18,7 +20,7 @@ public class JetBootsTask extends PlayerTask {
|
|||||||
|
|
||||||
private final JetBoots boots;
|
private final JetBoots boots;
|
||||||
|
|
||||||
public JetBootsTask(Player p, JetBoots boots) {
|
public JetBootsTask(@Nonnull Player p, @Nonnull JetBoots boots) {
|
||||||
super(p);
|
super(p);
|
||||||
this.boots = boots;
|
this.boots = boots;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -15,7 +17,7 @@ public class JetpackTask extends PlayerTask {
|
|||||||
|
|
||||||
private final Jetpack jetpack;
|
private final Jetpack jetpack;
|
||||||
|
|
||||||
public JetpackTask(Player p, Jetpack jetpack) {
|
public JetpackTask(@Nonnull Player p, @Nonnull Jetpack jetpack) {
|
||||||
super(p);
|
super(p);
|
||||||
this.jetpack = jetpack;
|
this.jetpack = jetpack;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -31,7 +33,7 @@ public class MagnetTask extends PlayerTask {
|
|||||||
* @param radius
|
* @param radius
|
||||||
* The radius in which items should be picked up
|
* The radius in which items should be picked up
|
||||||
*/
|
*/
|
||||||
public MagnetTask(Player p, double radius) {
|
public MagnetTask(@Nonnull Player p, double radius) {
|
||||||
super(p);
|
super(p);
|
||||||
|
|
||||||
this.radius = radius;
|
this.radius = radius;
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
public class ParachuteTask extends PlayerTask {
|
public class ParachuteTask extends PlayerTask {
|
||||||
|
|
||||||
public ParachuteTask(Player p) {
|
public ParachuteTask(@Nonnull Player p) {
|
||||||
super(p);
|
super(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@ -10,7 +12,7 @@ abstract class PlayerTask implements Runnable {
|
|||||||
protected int id;
|
protected int id;
|
||||||
protected Player p;
|
protected Player p;
|
||||||
|
|
||||||
public PlayerTask(Player p) {
|
PlayerTask(@Nonnull Player p) {
|
||||||
this.p = p;
|
this.p = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package io.github.thebusybiscuit.slimefun4.implementation.tasks;
|
|||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
@ -35,7 +37,7 @@ public class SlimefunStartupTask implements Runnable {
|
|||||||
* @param runnable
|
* @param runnable
|
||||||
* A {@link Runnable} containing additional operations that need to be run
|
* 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.plugin = plugin;
|
||||||
this.runnable = runnable;
|
this.runnable = runnable;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,9 @@ import java.util.Set;
|
|||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -53,7 +56,7 @@ public class TickerTask implements Runnable {
|
|||||||
* @param plugin
|
* @param plugin
|
||||||
* The instance of our {@link SlimefunPlugin}
|
* 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");
|
this.tickRate = SlimefunPlugin.getCfg().getInt("URID.custom-ticker-delay");
|
||||||
|
|
||||||
BukkitScheduler scheduler = plugin.getServer().getScheduler();
|
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 {
|
try {
|
||||||
Set<Location> locations = BlockStorage.getTickingLocations(chunk);
|
Set<Location> locations = BlockStorage.getTickingLocations(chunk);
|
||||||
String[] components = PatternUtils.SEMICOLON.split(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);
|
Config data = BlockStorage.getLocationInfo(l);
|
||||||
SlimefunItem item = SlimefunItem.getByID(data.getString("id"));
|
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) {
|
private void tickBlock(Location l, Block b, SlimefunItem item, Config data, long timestamp) {
|
||||||
try {
|
try {
|
||||||
item.getBlockTicker().tick(b, item, data);
|
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) {
|
private void reportErrors(Location l, SlimefunItem item, Throwable x) {
|
||||||
BlockPosition position = new BlockPosition(l);
|
BlockPosition position = new BlockPosition(l);
|
||||||
int errors = bugs.getOrDefault(position, 0) + 1;
|
int errors = bugs.getOrDefault(position, 0) + 1;
|
||||||
@ -208,10 +213,12 @@ public class TickerTask implements Runnable {
|
|||||||
halted = true;
|
halted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
public void queueMove(Location from, Location to) {
|
public void queueMove(Location from, Location to) {
|
||||||
movingQueue.put(from, to);
|
movingQueue.put(from, to);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
public void queueDelete(Location l, boolean destroy) {
|
public void queueDelete(Location l, boolean destroy) {
|
||||||
deletionQueue.put(l, destroy);
|
deletionQueue.put(l, destroy);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user