Reduce technical debt
* Reduce duplicate code * Use more specific functional interfaces where available * Fix some potential NPEs * Remove some unnecessary/nonfunctional code * Merge inventory listeners - no longer need to keep separate due to event availability * Removed TODO items that probably won't ever be implemented. Good ideas, too drastic changes or too much work to maintain.
This commit is contained in:
		@@ -21,7 +21,7 @@ import com.lishid.openinv.util.TabCompleter;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.function.BiConsumer;
 | 
			
		||||
import java.util.function.Function;
 | 
			
		||||
import java.util.function.Predicate;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -46,7 +46,7 @@ public class ContainerSettingCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
        Player player = (Player) sender;
 | 
			
		||||
        boolean any = command.getName().startsWith("any");
 | 
			
		||||
        Function<Player, Boolean> getSetting = any ? plugin::getPlayerAnyChestStatus : plugin::getPlayerSilentChestStatus;
 | 
			
		||||
        Predicate<Player> getSetting = any ? plugin::getPlayerAnyChestStatus : plugin::getPlayerSilentChestStatus;
 | 
			
		||||
        BiConsumer<OfflinePlayer, Boolean> setSetting = any ? plugin::setPlayerAnyChestStatus : plugin::setPlayerSilentChestStatus;
 | 
			
		||||
 | 
			
		||||
        if (args.length > 0) {
 | 
			
		||||
@@ -62,12 +62,12 @@ public class ContainerSettingCommand implements TabExecutor {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
            setSetting.accept(player, !getSetting.apply(player));
 | 
			
		||||
            setSetting.accept(player, !getSetting.test(player));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String onOff = plugin.getLocalizedMessage(player, getSetting.apply(player) ? "messages.info.on" : "messages.info.off");
 | 
			
		||||
        String onOff = plugin.getLocalizedMessage(player, getSetting.test(player) ? "messages.info.on" : "messages.info.off");
 | 
			
		||||
        if (onOff == null) {
 | 
			
		||||
            onOff = String.valueOf(getSetting.apply(player));
 | 
			
		||||
            onOff = String.valueOf(getSetting.test(player));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        plugin.sendMessage(sender, "messages.info.settingState","%setting%", any ? "AnyContainer" : "SilentContainer", "%state%", onOff);
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@ import org.bukkit.inventory.Inventory;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
import org.bukkit.inventory.meta.ItemMeta;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
import org.jetbrains.annotations.Nullable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Command adding the ability to search online players' inventories for enchantments of a specific
 | 
			
		||||
@@ -124,8 +125,9 @@ public class SearchEnchantCommand implements TabExecutor {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private boolean containsEnchantment(Inventory inventory, Enchantment enchant, int minLevel) {
 | 
			
		||||
    private boolean containsEnchantment(Inventory inventory, @Nullable Enchantment enchant, int minLevel) {
 | 
			
		||||
        for (ItemStack item : inventory.getContents()) {
 | 
			
		||||
            //noinspection ConstantConditions // Spigot improperly annotated, should be ItemStack @NotNull []
 | 
			
		||||
            if (item == null || item.getType() == Material.AIR) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user