diff --git a/TowerRun/src/de/steamwar/towerrun/commands/StartCommand.java b/TowerRun/src/de/steamwar/towerrun/commands/StartCommand.java index 77884b37..44d285d5 100644 --- a/TowerRun/src/de/steamwar/towerrun/commands/StartCommand.java +++ b/TowerRun/src/de/steamwar/towerrun/commands/StartCommand.java @@ -22,6 +22,7 @@ package de.steamwar.towerrun.commands; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeValidator; import de.steamwar.linkage.Linked; +import de.steamwar.linkage.LinkedInstance; import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.UserPerm; import de.steamwar.towerrun.TowerRun; @@ -30,6 +31,8 @@ import org.bukkit.entity.Player; @Linked public class StartCommand extends SWCommand { + + @LinkedInstance private LobbyCountdown countdown; public StartCommand() { diff --git a/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java b/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java index c5550f72..e928e66e 100644 --- a/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java +++ b/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java @@ -42,6 +42,7 @@ import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; import java.util.*; @@ -158,10 +159,16 @@ public class IngameListener extends GameStateBukkitListener { public void onKeyUse(PlayerInteractEvent event) { if (!event.hasItem()) return; if (event.getItem().getType() != Material.LEVER) return; - event.setCancelled(true); if (!event.hasBlock()) return; if (event.getClickedBlock().getType() != Material.IRON_DOOR) return; - event.getPlayer().getInventory().remove(event.getItem()); + if (event.getHand() == null) return; + event.setCancelled(true); + ItemStack itemStack = event.getItem(); + itemStack.setAmount(event.getItem().getAmount() - 1); + switch (event.getHand()) { + case OFF_HAND -> event.getPlayer().getInventory().setItemInOffHand(itemStack); + case HAND -> event.getPlayer().getInventory().setItemInMainHand(itemStack); + } event.getClickedBlock().breakNaturally(); }