Skip to content

Commit

Permalink
return false in player canTakeItem for IFactionExclusiveItems
Browse files Browse the repository at this point in the history
  • Loading branch information
Cheaterpaul committed Jun 2, 2024
1 parent e3ea2ca commit f3f398a
Showing 1 changed file with 13 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package de.teamlapen.vampirism.mixin;

import de.teamlapen.vampirism.api.entity.factions.IFaction;
import de.teamlapen.vampirism.api.items.IFactionExclusiveItem;
import de.teamlapen.vampirism.api.items.IVampirismCrossbow;
import de.teamlapen.vampirism.entity.player.IVampirismPlayer;
import de.teamlapen.vampirism.entity.player.VampirismPlayerAttributes;
import de.teamlapen.vampirism.items.crossbow.VampirismCrossbowItem;
import de.teamlapen.vampirism.util.MixinHooks;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
Expand All @@ -18,6 +19,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import java.util.function.Predicate;

Expand Down Expand Up @@ -55,4 +57,14 @@ private Predicate<ItemStack> getAllSupportedProjectilesWithItemStack(ProjectileW
}
return instance.getSupportedHeldProjectiles();
}

@Inject(method = "canTakeItem", at = @At("HEAD"), cancellable = true)
private void canTakeItem(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
if (stack.getItem() instanceof IFactionExclusiveItem item) {
IFaction<?> exclusiveFaction = item.getExclusiveFaction(stack);
if (exclusiveFaction != null && exclusiveFaction != this.vampirismPlayerAttributes.faction) {
cir.setReturnValue(false);
}
}
}
}

0 comments on commit f3f398a

Please sign in to comment.