fix: replace block type checks with App.main.isInteractable for consistency

This commit is contained in:
Janik Heß
2025-03-08 22:03:45 +01:00
parent 7b3bff385a
commit b38e74ad93
5 changed files with 139 additions and 13 deletions

View File

@@ -10,6 +10,7 @@ import net.kyori.adventure.text.Component;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.NamespacedKey;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
@@ -60,6 +61,131 @@ public class App extends JavaPlugin {
public File tpYml = new File(this.getDataFolder() + "/texturepack.yml");
public FileConfiguration tpConfig = YamlConfiguration.loadConfiguration(tpYml);
public boolean isInteractable(Block b) {
List<Material> interactableBlocks = Arrays.asList();
interactableBlocks.add(Material.CHEST);
interactableBlocks.add(Material.TRAPPED_CHEST);
interactableBlocks.add(Material.ENDER_CHEST);
interactableBlocks.add(Material.BARREL);
interactableBlocks.add(Material.SHULKER_BOX);
interactableBlocks.add(Material.HOPPER);
interactableBlocks.add(Material.DISPENSER);
interactableBlocks.add(Material.DROPPER);
interactableBlocks.add(Material.CRAFTING_TABLE);
interactableBlocks.add(Material.FURNACE);
interactableBlocks.add(Material.BLAST_FURNACE);
interactableBlocks.add(Material.SMOKER);
interactableBlocks.add(Material.CARTOGRAPHY_TABLE);
interactableBlocks.add(Material.SMITHING_TABLE);
interactableBlocks.add(Material.LOOM);
interactableBlocks.add(Material.STONECUTTER);
interactableBlocks.add(Material.GRINDSTONE);
interactableBlocks.add(Material.ANVIL);
interactableBlocks.add(Material.CHIPPED_ANVIL);
interactableBlocks.add(Material.DAMAGED_ANVIL);
interactableBlocks.add(Material.LEVER);
interactableBlocks.add(Material.STONE_BUTTON);
interactableBlocks.add(Material.OAK_BUTTON);
interactableBlocks.add(Material.BIRCH_BUTTON);
interactableBlocks.add(Material.BAMBOO_BUTTON);
interactableBlocks.add(Material.DARK_OAK_BUTTON);
interactableBlocks.add(Material.SPRUCE_BUTTON);
interactableBlocks.add(Material.JUNGLE_BUTTON);
interactableBlocks.add(Material.ACACIA_BUTTON);
interactableBlocks.add(Material.STONE_PRESSURE_PLATE);
interactableBlocks.add(Material.OAK_PRESSURE_PLATE);
interactableBlocks.add(Material.BIRCH_PRESSURE_PLATE);
interactableBlocks.add(Material.BAMBOO_PRESSURE_PLATE);
interactableBlocks.add(Material.DARK_OAK_PRESSURE_PLATE);
interactableBlocks.add(Material.SPRUCE_PRESSURE_PLATE);
interactableBlocks.add(Material.JUNGLE_PRESSURE_PLATE);
interactableBlocks.add(Material.ACACIA_PRESSURE_PLATE);
interactableBlocks.add(Material.LIGHT_WEIGHTED_PRESSURE_PLATE);
interactableBlocks.add(Material.HEAVY_WEIGHTED_PRESSURE_PLATE);
interactableBlocks.add(Material.TRIPWIRE_HOOK);
interactableBlocks.add(Material.COMPARATOR);
interactableBlocks.add(Material.REPEATER);
interactableBlocks.add(Material.LECTERN);
interactableBlocks.add(Material.OAK_DOOR);
interactableBlocks.add(Material.BIRCH_DOOR);
interactableBlocks.add(Material.BAMBOO_DOOR);
interactableBlocks.add(Material.DARK_OAK_DOOR);
interactableBlocks.add(Material.SPRUCE_DOOR);
interactableBlocks.add(Material.JUNGLE_DOOR);
interactableBlocks.add(Material.ACACIA_DOOR);
interactableBlocks.add(Material.OAK_TRAPDOOR);
interactableBlocks.add(Material.BIRCH_TRAPDOOR);
interactableBlocks.add(Material.BAMBOO_TRAPDOOR);
interactableBlocks.add(Material.DARK_OAK_TRAPDOOR);
interactableBlocks.add(Material.SPRUCE_TRAPDOOR);
interactableBlocks.add(Material.JUNGLE_TRAPDOOR);
interactableBlocks.add(Material.ACACIA_TRAPDOOR);
interactableBlocks.add(Material.OAK_FENCE_GATE);
interactableBlocks.add(Material.BIRCH_FENCE_GATE);
interactableBlocks.add(Material.BAMBOO_FENCE_GATE);
interactableBlocks.add(Material.DARK_OAK_FENCE_GATE);
interactableBlocks.add(Material.SPRUCE_FENCE_GATE);
interactableBlocks.add(Material.JUNGLE_FENCE_GATE);
interactableBlocks.add(Material.ACACIA_FENCE_GATE);
interactableBlocks.add(Material.CHEST_MINECART);
interactableBlocks.add(Material.HOPPER_MINECART);
interactableBlocks.add(Material.FURNACE_MINECART);
interactableBlocks.add(Material.MINECART);
interactableBlocks.add(Material.TNT_MINECART);
interactableBlocks.add(Material.OAK_BOAT);
interactableBlocks.add(Material.BIRCH_BOAT);
interactableBlocks.add(Material.BAMBOO_RAFT);
interactableBlocks.add(Material.DARK_OAK_BOAT);
interactableBlocks.add(Material.SPRUCE_BOAT);
interactableBlocks.add(Material.JUNGLE_BOAT);
interactableBlocks.add(Material.ACACIA_BOAT);
interactableBlocks.add(Material.OAK_CHEST_BOAT);
interactableBlocks.add(Material.BIRCH_CHEST_BOAT);
interactableBlocks.add(Material.BAMBOO_CHEST_RAFT);
interactableBlocks.add(Material.DARK_OAK_CHEST_BOAT);
interactableBlocks.add(Material.SPRUCE_CHEST_BOAT);
interactableBlocks.add(Material.JUNGLE_CHEST_BOAT);
interactableBlocks.add(Material.ACACIA_CHEST_BOAT);
interactableBlocks.add(Material.ENCHANTING_TABLE);
interactableBlocks.add(Material.RESPAWN_ANCHOR);
interactableBlocks.add(Material.BREWING_STAND);
interactableBlocks.add(Material.LECTERN);
interactableBlocks.add(Material.WHITE_BED);
interactableBlocks.add(Material.LIGHT_GRAY_BED);
interactableBlocks.add(Material.GRAY_BED);
interactableBlocks.add(Material.BLACK_BED);
interactableBlocks.add(Material.BROWN_BED);
interactableBlocks.add(Material.RED_BED);
interactableBlocks.add(Material.ORANGE_BED);
interactableBlocks.add(Material.YELLOW_BED);
interactableBlocks.add(Material.LIME_BED);
interactableBlocks.add(Material.GREEN_BED);
interactableBlocks.add(Material.CYAN_BED);
interactableBlocks.add(Material.LIGHT_BLUE_BED);
interactableBlocks.add(Material.BLUE_BED);
interactableBlocks.add(Material.PURPLE_BED);
interactableBlocks.add(Material.MAGENTA_BED);
interactableBlocks.add(Material.PINK_BED);
interactableBlocks.add(Material.BELL);
interactableBlocks.add(Material.CAKE);
interactableBlocks.add(Material.JUKEBOX);
interactableBlocks.add(Material.NOTE_BLOCK);
interactableBlocks.add(Material.CANDLE);
interactableBlocks.add(Material.COMPOSTER);
interactableBlocks.add(Material.ITEM_FRAME);
interactableBlocks.add(Material.GLOW_ITEM_FRAME);
interactableBlocks.add(Material.ARMOR_STAND);
interactableBlocks.add(Material.DRAGON_EGG);
interactableBlocks.add(Material.BEACON);
if(interactableBlocks.contains(b.getType())){
return true;
} else {
return false;
}
}
@Override
public void onEnable() {

View File

@@ -651,8 +651,8 @@ public class EnvironmentExListeners implements Listener {
&& e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer()
.get(App.main.nsk, PersistentDataType.STRING).toString().equals("R3S_kleiner_Rucksack")) {
if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK
&& (!e.getClickedBlock().getType().isInteractable())
|| e.getClickedBlock() != null && (e.getClickedBlock().getType().isInteractable()
&& (!App.main.isInteractable(e.getClickedBlock()))
|| e.getClickedBlock() != null && (App.main.isInteractable(e.getClickedBlock())
&& (e.getClickedBlock().getBlockData() != null
&& (e.getClickedBlock().getBlockData() instanceof Stairs
|| e.getClickedBlock().getBlockData() instanceof Fence))))) {
@@ -679,8 +679,8 @@ public class EnvironmentExListeners implements Listener {
&& e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer()
.get(App.main.nsk2, PersistentDataType.STRING).toString().equals("R3S_Rucksack")) {
if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK
&& (!e.getClickedBlock().getType().isInteractable())
|| (e.getClickedBlock().getType().isInteractable()
&& (!App.main.isInteractable(e.getClickedBlock()))
|| (App.main.isInteractable(e.getClickedBlock())
&& (e.getClickedBlock().getBlockData() != null
&& (e.getClickedBlock().getBlockData() instanceof Stairs
|| e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv2 =
@@ -704,8 +704,8 @@ public class EnvironmentExListeners implements Listener {
&& e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer()
.get(App.main.nsk3, PersistentDataType.STRING).toString().equals("R3S_großer_Rucksack")) {
if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK
&& (!e.getClickedBlock().getType().isInteractable())
|| (e.getClickedBlock().getType().isInteractable()
&& (!App.main.isInteractable(e.getClickedBlock()))
|| (App.main.isInteractable(e.getClickedBlock())
&& (e.getClickedBlock().getBlockData() != null
&& (e.getClickedBlock().getBlockData() instanceof Stairs
|| e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv3 =
@@ -730,8 +730,8 @@ public class EnvironmentExListeners implements Listener {
&& e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer()
.get(App.main.nsk4, PersistentDataType.STRING).toString().equals("R3S_riesiger_Rucksack")) {
if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK
&& (!e.getClickedBlock().getType().isInteractable())
|| (e.getClickedBlock().getType().isInteractable()
&& (!App.main.isInteractable(e.getClickedBlock()))
|| (App.main.isInteractable(e.getClickedBlock())
&& (e.getClickedBlock().getBlockData() != null
&& (e.getClickedBlock().getBlockData() instanceof Stairs
|| e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv4 =
@@ -968,8 +968,8 @@ public class EnvironmentExListeners implements Listener {
|| e.getWhoClicked().getOpenInventory().title()
.equals(Component.translatable("Riesiger Rucksack"))) {
if (e.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD
|| e.getAction() == InventoryAction.HOTBAR_SWAP) {
if (/*e.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD
|| */e.getAction() == InventoryAction.HOTBAR_SWAP) {
if (e.getHotbarButton() != -1) {// evtl auch schauen ob titel, da es sonst auch nicht in truhe
// gepackt werden kann, evtl aber auch schon oben gekläört

View File

@@ -55,7 +55,7 @@ public class ExpBottleListener implements Listener {
public void onUse(PlayerInteractEvent e) {
ExperienceManager expMan = new ExperienceManager(e.getPlayer());
if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK
|| (e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock().getType().isInteractable())) {
|| (e.getAction() == Action.RIGHT_CLICK_BLOCK && App.main.isInteractable(e.getClickedBlock()))) {
return;
}

View File

@@ -95,7 +95,7 @@ public class InfinityWaterBucket implements Listener {
e.setCancelled(true);
Player player = e.getPlayer();
if (player.getWorld().getEnvironment() == Environment.NETHER
|| (e.getClickedBlock().getType().isInteractable() && !e.getPlayer().isSneaking()))
|| (App.main.isInteractable(e.getClickedBlock()) && !e.getPlayer().isSneaking()))
return;
Block block = e.getClickedBlock().getRelative(e.getBlockFace());

View File

@@ -55,7 +55,7 @@ public class WorkbenchToGo implements Listener {
if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK
|| e.getAction() == Action.PHYSICAL
|| (e.getClickedBlock() != null && e.getClickedBlock().getType().isInteractable())) {
|| (e.getClickedBlock() != null && App.main.isInteractable(e.getClickedBlock()))) {
return;
}
e.setCancelled(true);