diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/portablehole/PortableHoleListener.java b/BauSystem_Main/src/de/steamwar/bausystem/features/portablehole/PortableHoleListener.java
deleted file mode 100644
index 9bc5a947..00000000
--- a/BauSystem_Main/src/de/steamwar/bausystem/features/portablehole/PortableHoleListener.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * This file is a part of the SteamWar software.
- *
- * Copyright (C) 2024 SteamWar.de-Serverteam
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-
-package de.steamwar.bausystem.features.portablehole;
-
-import de.steamwar.bausystem.BauSystem;
-import de.steamwar.bausystem.features.tpslimit.TPSUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.block.BlockFace;
-import org.bukkit.block.BlockState;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerInteractEvent;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-// @Linked
-public class PortableHoleListener implements Listener {
-
- private Map> toReplace = new HashMap<>();
-
- {
- Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> {
- List blockStates = toReplace.remove(TPSUtils.currentRealTick.get());
- if (blockStates == null) return;
- blockStates.forEach(blockState -> {
- blockState.update(true, false);
- });
- }, 1, 1);
- }
-
- @EventHandler
- public void onPlayerInteract(PlayerInteractEvent event) {
- if (!event.hasItem()) return;
- if (event.getItem().getType() != Material.FIREWORK_STAR) return;
-
- BlockFace blockFace;
- if (event.getPlayer().getLocation().getPitch() < -45) {
- blockFace = BlockFace.UP;
- } else if (event.getPlayer().getLocation().getPitch() > 45) {
- blockFace = BlockFace.DOWN;
- } else if (event.getPlayer().getLocation().getYaw() > 135) {
- blockFace = BlockFace.NORTH;
- } else if (event.getPlayer().getLocation().getYaw() > 45) {
- blockFace = BlockFace.WEST;
- } else if (event.getPlayer().getLocation().getYaw() > -45) {
- blockFace = BlockFace.SOUTH;
- } else if (event.getPlayer().getLocation().getYaw() > -135) {
- blockFace = BlockFace.EAST;
- } else {
- blockFace = BlockFace.NORTH;
- }
-
- for (int i = 0; i < 10; i++) {
- Location source = event.getPlayer().getLocation().getBlock().getLocation().clone();
- source.add(blockFace.getDirection().clone().multiply(i + 1 + (blockFace == BlockFace.UP ? 1 : 0)));
- Bukkit.getScheduler().runTaskLater(BauSystem.getInstance(), () -> {
- long reappearTime = TPSUtils.currentRealTick.get() + 100;
- if (blockFace == BlockFace.UP || blockFace == BlockFace.DOWN) {
- for (int dx = -1; dx <= 1; dx++) {
- for (int dz = -1; dz <= 1; dz++) {
- Block block = source.clone().add(dx, 0, dz).getBlock();
- BlockState blockState = block.getState();
- if (blockState.getType().isAir()) continue;
- toReplace.computeIfAbsent(reappearTime, __ -> new ArrayList<>()).add(blockState);
- block.setType(Material.AIR);
- }
- }
- } else if (blockFace == BlockFace.NORTH || blockFace == BlockFace.SOUTH) {
- for (int dx = -1; dx <= 1; dx++) {
- for (int dy = 0; dy <= 2; dy++) {
- Block block = source.clone().add(dx, dy, 0).getBlock();
- BlockState blockState = block.getState();
- if (blockState.getType().isAir()) continue;
- toReplace.computeIfAbsent(reappearTime, __ -> new ArrayList<>()).add(blockState);
- block.setType(Material.AIR);
- }
- }
- } else {
- for (int dy = 0; dy <= 2; dy++) {
- for (int dz = -1; dz <= 1; dz++) {
- Block block = source.clone().add(0, dy, dz).getBlock();
- BlockState blockState = block.getState();
- if (blockState.getType().isAir()) continue;
- toReplace.computeIfAbsent(reappearTime, __ -> new ArrayList<>()).add(blockState);
- block.setType(Material.AIR);
- }
- }
- }
- }, i);
- }
- }
-}
diff --git a/MiningIII.md b/MiningIII.md
deleted file mode 100644
index 4e2b1d32..00000000
--- a/MiningIII.md
+++ /dev/null
@@ -1,252 +0,0 @@
-# Mining III
-
-Stats menu, blocks broken
-Pickaxe skins? / Cosmetics (Armor)
-Crystals?
-Music selector
-McPrison enchantments?
-Legendary enchantments? -> Overdrive entchantments via prestige points
-Combo Perk Enchantments?
-Show proc rate enchtantment
-Crystal Level increase by mining?
-Keeping -> Keep an enchantment or n levels on random enchantments
-Max upgrade? +5 upgrade?
-Auto buy?
-
-## Enchantments
-
-### Efficiency
-
-- Increases Mining speed
-- id: efficiency
-- max: 10
-- cost_block_base: 50
-- cost_block_inc: 10
-- cost_shards_base: -80
-- cost_shards_inc: 20
-
-### Haste
-
-- Gain Haste
-- id: haste
-- max: 10
-- cost_block_base: 1000
-- cost_block_inc: 0
-- cost_gold_base: 100
-- cost_gold_inc: 100
-
-### Speed
-
-- Gain Speed
-- id: speed
-- max: 5
-- cost_blocks_base: 500
-- cost_blocks_inc: -100
-- cost_shards_base: 100
-- cost_shards_inc: 150
-
-### Fortune
-
-- Increases Blocks gained
-- id: fortune
-- max: 50
-- cost_block_base: 100
-- cost_block_inc: 25
-- cost_gold_base: 200
-- cost_gold_inc: 50
-- cost_shards_base: -40
-- cost_shards_inc: 10
-
-### Prosperity
-
-- Rare chance to greatly increse block gain
-- id: prosperity
-- max: 10
-- cost_block_base: 1000
-- cost_block_inc: 100
-- cost_gold_base: 1000
-- cost_gold_inc: 100
-- cost_shards_base: 100
-- cost_shards_inc: 100
-
-### Gifted
-
-- Get luckier prosperity procs
-- id: gifted
-- max: 25
-- cost_block_base: 10000
-- cost_block_inc: 1000
-- cost_shards_base: 1000
-- cost_shards_inc: 250
-
-### Shard Fusing Tome
-
-- Chance to turn ores into shards
-- id: shard_fusing_tome
-- max: 10
-- cost_block_base: 5000
-- cost_block_inc: 500
-- cost_shards_base: 1000
-- cost_shards_inc: 0
-
-### Unstable shards
-
-- Destroy every shard created by Shard Fusing Tome
-- id: unstable_shards
-- max: 1
-- cost_block_base: 100000
-- cost_block_inc: 0
-- cost_gold_base: 25000
-- cost_gold_inc: 0
-- cost_shards_base: 10000
-- cost_shards_inc: 0
-
-### Gatherer
-
-- Chance to gain Gold on Block break
-- id: gatherer
-- max: 10
-- cost_block_base: 1000
-- cost_block_inc: 1000
-- cost_gold_base: 1000
-- cost_gold_inc: 0
-
-### Block Shatterer
-
-- Greatly increase Block gain
-- id: block_shatterer
-- max: 10
-- cost_block_base: 5000
-- cost_block_inc: 5000
-- cost_gold_base: 1000
-- cost_gold_inc: 1000
-- cost_shards_base: 500
-- cost_shards_inc: 500
-
-### Gold Shatterer
-
-- Greatly increase Gold gain
-- id: gold_shatterer
-- max: 10
-- cost_block_base: 1000
-- cost_block_inc: 1000
-- cost_gold_base: 5000
-- cost_gold_inc: 5000
-- cost_shards_base: 500
-- cost_shards_inc: 500
-
-### Shard Shatterer
-
-- Greatly increase Shard gain
-- id: shard_shatterer
-- max: 10
-- cost_block_base: 5000
-- cost_block_inc: 5000
-- cost_gold_base: 500
-- cost_gold_inc: 500
-- cost_shards_base: 1000
-- cost_shards_inc: 1000
-
-### Explosive
-
-- Chance to explode
-- id: explosive
-- max: 30
-- cost_block_base: 200
-- cost_block_inc: 50
-- cost_gold_base: -700
-- cost_gold_inc: 100
-- cost_shards_base: -3200
-- cost_shards_inc: 200
-
-### Laser
-
-- Chance to fire a laser
-- id: laser
-- max: 300
-- cost_block_base: 1000
-- cost_block_inc: 0
-- cost_gold_base: 3000
-- cost_gold_inc: -20
-- cost_shards_base: 0
-- cost_shards_inc: 30
-
-### Jackhammer
-
-- Chance to destroy 3*3*3 (100) or 5*5*5 (200) area
-- id: jackhammer
-- max: 200
-- cost_block_base: 10000
-- cost_block_inc: 100
-- cost_gold_base: -12250
-- cost_gold_inc: 250
-- cost_shards_base: -74500
-- cost_shards_inc: 500
-
-### Corrosive Mine
-
-- Destroy level number of blocks in the vicinity
-- id: corrosive_mine
-- max: 25
-- cost_block_base: 5000
-- cost_block_inc: 100
-- cost_gold_base: 5000
-- cost_gold_inc: 100
-- cost_shards_base: 5000
-- cost_shards_inc: 100
-
-### Jackpot
-
-- Chance to receive the jackpot of 1000 blocks, 1000 gold and 1000 shards
-- id: jackpot
-- max: 1
-- cost_shards_base: 50000
-- cost_shards_inc: 0
-
-### Dual Pickaxe
-
-- Chance to proc enchantments on another block in vicinity
-- id: dual_pickaxe
-- max: 10
-- cost_block_base: 2500
-- cost_block_inc: 500
-- cost_gold_base: 2500
-- cost_gold_inc: 500
-- cost_shards_base: 2500
-- cost_shards_inc: 500
-
-### Luck
-
-- Chance for laser bounces to proc any enchantment
-- id: luck
-- max: 10
-- cost_block_base: 10000
-- cost_block_inc: 10000
-- cost_gold_base: 10000
-- cost_gold_inc: 10000
-- cost_shards_base: 10000
-- cost_shards_inc: 10000
-
-### Lumberjack
-
-- Change to axe while looking onto Wood
-- id: lumberjack
-- max: 1
-- cost_block_base: 5000
-- cost_block_inc: 0
-- cost_gold_base: 5000
-- cost_gold_inc: 0
-- cost_shards_base: 5000
-- cost_shards_inc: 0
-
-### Soul Remover
-
-- Change to shovel while looking onto Wood
-- id: soul_remover
-- max: 1
-- cost_block_base: 5000
-- cost_block_inc: 0
-- cost_gold_base: 5000
-- cost_gold_inc: 0
-- cost_shards_base: 5000
-- cost_shards_inc: 0
\ No newline at end of file