Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions src/main/java/fi/septicuss/tooltips/Tooltips.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@
import fi.septicuss.tooltips.listener.PlayerMovementListener;
import fi.septicuss.tooltips.managers.condition.ConditionManager;
import fi.septicuss.tooltips.managers.condition.impl.Compare;
import fi.septicuss.tooltips.managers.condition.impl.equals.BlockNbtEquals;
import fi.septicuss.tooltips.managers.condition.impl.equals.BlockStateEquals;
import fi.septicuss.tooltips.managers.condition.impl.equals.EntityNbtEquals;
import fi.septicuss.tooltips.managers.condition.impl.equals.ItemNbtEquals;
import fi.septicuss.tooltips.managers.condition.impl.equals.*;
import fi.septicuss.tooltips.managers.condition.impl.lookingat.LookingAtBlock;
import fi.septicuss.tooltips.managers.condition.impl.lookingat.LookingAtCitizen;
import fi.septicuss.tooltips.managers.condition.impl.lookingat.LookingAtEntity;
Expand Down Expand Up @@ -178,6 +175,7 @@ private void registerConditions() {
new Location(),
new StandingOn(),
new ItemNbtEquals(),
new ItemsAdderIdEquals(),
new EntityNbtEquals(),
new BlockNbtEquals(),
new BlockStateEquals(),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package fi.septicuss.tooltips.managers.condition.impl.equals;

import dev.lone.itemsadder.api.CustomStack;
import fi.septicuss.tooltips.managers.condition.Condition;
import fi.septicuss.tooltips.managers.condition.argument.Arguments;
import fi.septicuss.tooltips.utils.validation.Validity;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;

public class ItemsAdderIdEquals implements Condition {

private static final String[] SLOT = { "slot", "s" };
private static final String[] MATERIAL = { "type", "m", "mat", "material" };

public boolean check(Player player, Arguments args) {
EquipmentSlot slot = EquipmentSlot.HAND;
if (args.has(SLOT)) {
slot = EquipmentSlot.valueOf(args.get(SLOT).getAsString().strip().toUpperCase());
}

ItemStack item = player.getInventory().getItem(slot);

if (item == null || item.getType().isAir()) {
return false;
}

CustomStack customStack = CustomStack.byItemStack(item);
if (customStack != null) {
String material = args.get(MATERIAL).getAsString();
String id = customStack.getNamespace() + ":" + customStack.getId();
if (material.equals(id)) {
return true;
}
}

return false;
}

public Validity valid(Arguments args) {
if (!Bukkit.getPluginManager().isPluginEnabled("ItemsAdder")) {
return Validity.of(false, "Cannot use itemsadderidequals because ItemsAdder is not installed");
}

if (!args.has(MATERIAL)) {
return Validity.of(false, "Type argument is required");
}

if (args.has(SLOT)) {
String slot = args.get(SLOT).getAsString();
try {
return Validity.of(false, "Unknown slot " + quote(slot));
} catch (IllegalArgumentException e) {
return Validity.of(false, null);
}
}

return Validity.TRUE;
}

@Override
public String id() {
return "itemsadderidequals";
}
}