From 7beb95e70558b56c7e8d589d308d81d7e8054c72 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 15 Mar 2020 17:11:36 +0100 Subject: [PATCH 1/2] Implementing AutoLoader 1.15 --- .../bausystem/world/AutoLoader_15.java | 61 ++++++++++++++++--- .../bausystem/commands/CommandSlow.java | 48 --------------- 2 files changed, 54 insertions(+), 55 deletions(-) delete mode 100644 BauSystem_Main/src/de/steamwar/bausystem/commands/CommandSlow.java diff --git a/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java b/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java index a227145..0dbd23e 100644 --- a/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java +++ b/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java @@ -1,26 +1,73 @@ package de.steamwar.bausystem.world; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Powerable; +import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -class AutoLoader_15 { - private AutoLoader_15(){} +import java.util.logging.Level; - static boolean tntPlaceActionPerform(Location location){ +class AutoLoader_15 { + private AutoLoader_15() { + } + + static boolean tntPlaceActionPerform(Location location) { Material m = location.getBlock().getType(); - if(m != Material.AIR && m != Material.WATER) + if (m != Material.AIR && m != Material.WATER) return false; location.getBlock().setType(Material.TNT); return true; } - static boolean setRedstone(Location location, boolean active){ + static boolean setRedstone(Location location, boolean active) { + Block block = location.getBlock(); + BlockData data = block.getBlockData(); + if (!(data instanceof Powerable)) + return false; + + Powerable powerable = (Powerable) data; + powerable.setPowered(active); + block.getState().update(true); return true; } - static void onPlayerInteract(IAutoLoader loader, PlayerInteractEvent event){ - loader.print("§cDer AutoLoader ist in der 1.14 noch nicht fertig implementiert", false); + static void onPlayerInteract(IAutoLoader loader, PlayerInteractEvent event) { + if (event.getAction() != Action.RIGHT_CLICK_BLOCK && event.getAction() != Action.PHYSICAL) + return; + + Block block = event.getClickedBlock(); + assert block != null; + BlockData data = block.getBlockData(); + if (!(data instanceof Powerable)) + return; + Powerable powerable = (Powerable) data; + Material material = block.getType(); + + if (material == Material.LEVER) { + if (powerable.isPowered()) { + new IAutoLoader.RedstoneActivation(loader, block.getLocation(), loader.getLastActivation(), false); + loader.print("§eHebel zurückgesetzt", true); + } else { + new IAutoLoader.RedstoneActivation(loader, block.getLocation(), 1, true); + loader.print("§eHebel betätigt", true); + } + } else if (material == Material.STONE_BUTTON) { + new IAutoLoader.TemporaryActivation(loader, block.getLocation(), 20); + loader.print("§eKnopf betätigt", true); + } else if (material.name().contains("PRESSURE_PLATE")){ + new IAutoLoader.TemporaryActivation(loader, block.getLocation(), 20); + loader.print("§eDruckplatte betätigt", true); + } else if (material.name().contains("BUTTON")) { + new IAutoLoader.TemporaryActivation(loader, block.getLocation(), 30); + loader.print("§eKnopf betätigt", true); + } else { + loader.print("§eUnbekannter Block betätigt (nicht aufgenommen)", false); + Bukkit.getLogger().log(Level.SEVERE, material.name()); + } } } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandSlow.java b/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandSlow.java deleted file mode 100644 index 4eb2adc..0000000 --- a/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandSlow.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.steamwar.bausystem.commands; - -import de.steamwar.bausystem.BauSystem; -import de.steamwar.bausystem.Permission; -import de.steamwar.bausystem.world.Welt; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CommandSlow implements CommandExecutor { - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if(!(sender instanceof Player)) - return false; - Player player = (Player) sender; - - if(args.length == 0){ - player.sendMessage(BauSystem.PREFIX + "§8/§7slow §8[§eTPS§8]"); - return false; - } - - if(Welt.noPermission(player, Permission.world)){ - player.sendMessage(BauSystem.PREFIX + "§cDu darst hier die Geschwindigkeit nicht verstellen"); - return false; - } - - float tps; - try{ - tps = Float.parseFloat(args[0]); - }catch(NumberFormatException e){ - player.sendMessage(BauSystem.PREFIX + "§cDu solltest eine Zahl angeben..."); - return false; - } - - if(tps > 20){ - player.sendMessage(BauSystem.PREFIX + "§cTut mir leid, aber das ist nicht möglich (TPS > 20)"); - return false; - } - - if(tps == 20){ - - } - - return false; - } -} From 39d30054bf4968630feffa631a098f821fbc396b Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 22 Mar 2020 07:59:36 +0100 Subject: [PATCH 2/2] Fixing autoloader 1.15 --- .../src/de/steamwar/bausystem/world/AutoLoader_15.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java b/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java index 0dbd23e..846dd40 100644 --- a/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java +++ b/BauSystem_15/src/de/steamwar/bausystem/world/AutoLoader_15.java @@ -1,6 +1,5 @@ package de.steamwar.bausystem.world; -import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -9,8 +8,6 @@ import org.bukkit.block.data.Powerable; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -import java.util.logging.Level; - class AutoLoader_15 { private AutoLoader_15() { } @@ -32,6 +29,7 @@ class AutoLoader_15 { Powerable powerable = (Powerable) data; powerable.setPowered(active); + block.setBlockData(powerable); block.getState().update(true); return true; } @@ -67,7 +65,6 @@ class AutoLoader_15 { loader.print("§eKnopf betätigt", true); } else { loader.print("§eUnbekannter Block betätigt (nicht aufgenommen)", false); - Bukkit.getLogger().log(Level.SEVERE, material.name()); } } }