Skip to content

Commit

Permalink
fix: Pouches and backpacks can be placed
Browse files Browse the repository at this point in the history
fixes #252
  • Loading branch information
Sylfare committed Jul 4, 2024
1 parent e499eef commit 8039217
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static org.oddlama.vane.util.Nms.item_handle;

import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.craftbukkit.entity.CraftItem;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.enchantments.Enchantment;
Expand All @@ -14,6 +15,7 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockDispenseEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.inventory.PrepareAnvilEvent;
Expand Down Expand Up @@ -234,4 +236,16 @@ public void on_player_right_click(final PlayerInteractEvent event) {
event.setUseItemInHand(Event.Result.DENY);
}
}

@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void on_dispense(BlockDispenseEvent event) {
if(event.getBlock().getType() != Material.DISPENSER) {
return;
}

final var custom_item = get_module().item_registry().get(event.getItem());
if(inhibit(custom_item, InhibitBehavior.DISPENSE)) {
event.setCancelled(true);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ public enum InhibitBehavior {
MEND,
/** Prevents players from adding new enchantments via the anvil. */
NEW_ENCHANTS,
/** Prevents dispensers from dispense this item */
DISPENSE
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Random;
import java.util.stream.Collectors;

import org.bukkit.GameMode;
import org.bukkit.Material;
Expand Down Expand Up @@ -40,17 +39,17 @@
import org.oddlama.vane.util.StorageUtil;

import net.kyori.adventure.text.Component;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket;
import net.minecraft.sounds.SoundSource;
import net.minecraft.advancements.CriteriaTriggers;

@VaneItem(name = "trowel", base = Material.WARPED_FUNGUS_ON_A_STICK, durability = 800, model_data = 0x76000e, version = 1)
public class Trowel extends CustomItem<Trifles> {
Expand Down Expand Up @@ -202,6 +201,12 @@ public void on_player_interact_block(final PlayerInteractEvent event) {
possible_slots[index] = possible_slots[--count];
continue;
}
org.oddlama.vane.core.item.api.CustomItem custom_item_slot = get_module().core.item_registry().get(item_stack);
// if the item is a custom item, don't place it
if(custom_item_slot != null) {
possible_slots[index] = possible_slots[--count];
continue;
}

final var nms_item = Nms.item_handle(item_stack);
final var nms_player = Nms.player_handle(player);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@ public void on_player_right_click(final PlayerInteractEvent event) {

@Override
public EnumSet<InhibitBehavior> inhibitedBehaviors() {
return EnumSet.of(InhibitBehavior.USE_IN_VANILLA_RECIPE);
return EnumSet.of(InhibitBehavior.USE_IN_VANILLA_RECIPE, InhibitBehavior.DISPENSE);
}
}

0 comments on commit 8039217

Please sign in to comment.