Added option to not read talismans in inventory

This commit is contained in:
Auxilor
2022-05-29 11:51:02 +01:00
parent 27f7d1b415
commit 7e36a2d043
2 changed files with 16 additions and 8 deletions

View File

@@ -32,6 +32,7 @@ object TalismanChecks {
private val PROVIDERS: MutableSet<Function<Player, List<ItemStack>>> = HashSet()
private var readInventory = true
private var readEnderChest = true
private var readShulkerBoxes = true
private var offhandOnly = false
@@ -41,7 +42,7 @@ object TalismanChecks {
/**
* Does the specified ItemStack have a certain Talisman present?
*
* @param item The [ItemStack] to check
* @param item The [ItemStack] to check
* @param talisman The talisman to query
* @return If the item has the queried talisman
*/
@@ -87,9 +88,9 @@ object TalismanChecks {
/**
* Get all talismans ItemStacks that a player has active.
*
* @param player The player to query.
* @param player The player to query.
* @param useCache If the cache should be checked.
* @param extra Bonus items.
* @param extra Bonus items.
* @return A set of all found talismans.
*/
@JvmStatic
@@ -99,7 +100,11 @@ object TalismanChecks {
): Set<ItemStack> {
return CACHED_TALISMAN_ITEMS.get(player) {
val contents = mutableListOf<ItemStack>()
val rawContents = it.inventory.contents.toMutableList()
val rawContents = mutableListOf<ItemStack?>()
if (readInventory) {
rawContents.addAll(it.inventory.contents)
}
if (readEnderChest) {
val enderChest = it.enderChest as Inventory?
@@ -169,8 +174,8 @@ object TalismanChecks {
/**
* Get all talismans that a player has active.
*
* @param player The player to query.
* @param extra Bonus items.
* @param player The player to query.
* @param extra Bonus items.
* @return A set of all found talismans.
*/
@JvmStatic
@@ -195,7 +200,8 @@ object TalismanChecks {
}
/**
* Register ItemStack provider (inventory extension, e.g. talisman bag).
* Register ItemStack provider (inventory extension, e.g. talisman
* bag).
*
* @param provider The provider.
*/
@@ -207,7 +213,7 @@ object TalismanChecks {
/**
* Get if a player has a specific talisman active.
*
* @param player The player to query.
* @param player The player to query.
* @param talisman The talisman to search for.
* @return A set of all found talismans.
*/
@@ -227,6 +233,7 @@ object TalismanChecks {
@ConfigUpdater
@JvmStatic
fun reload(plugin: EcoPlugin) {
readInventory = plugin.configYml.getBool("read-inventory")
readEnderChest = plugin.configYml.getBool("read-enderchest")
readShulkerBoxes = plugin.configYml.getBool("read-shulkerboxes")
offhandOnly = plugin.configYml.getBool("offhand-only")

View File

@@ -6,6 +6,7 @@
crafting:
discover: true # If players should automatically have recipes added to their crafting table.
read-inventory: true # If a player's inventory should be checked for talismans
read-enderchest: true # If a player's ender chest should be checked for talismans
read-shulkerboxes: true # If a player's shulker boxes should be checked for talismans
top-level-only: true # If only the top level of any given talisman should be activated