From 39b8dbe4179a679226d4099a5ae3aba312ad90b4 Mon Sep 17 00:00:00 2001 From: Minenash Date: Wed, 30 Jan 2019 20:46:28 -0500 Subject: Removed /anvil --- src/main/java/com/redstoner/modules/naming/Naming.cmd | 8 -------- src/main/java/com/redstoner/modules/naming/Naming.java | 15 ++------------- 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/redstoner/modules/naming/Naming.cmd b/src/main/java/com/redstoner/modules/naming/Naming.cmd index 35a2dc6..22f4b41 100644 --- a/src/main/java/com/redstoner/modules/naming/Naming.cmd +++ b/src/main/java/com/redstoner/modules/naming/Naming.cmd @@ -1,11 +1,3 @@ -command anvil { - perm utils.naming; - [empty] { - run anvil; - type player; - help Opens anvil GUI.; - } -} command name { perm utils.naming; [string:name...] { diff --git a/src/main/java/com/redstoner/modules/naming/Naming.java b/src/main/java/com/redstoner/modules/naming/Naming.java index a70a6d1..c1d136c 100644 --- a/src/main/java/com/redstoner/modules/naming/Naming.java +++ b/src/main/java/com/redstoner/modules/naming/Naming.java @@ -3,12 +3,9 @@ package com.redstoner.modules.naming; import java.util.ArrayList; import java.util.List; -import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -21,17 +18,9 @@ import com.redstoner.modules.Module; import net.md_5.bungee.api.ChatColor; @Commands(CommandHolderType.File) -@Version(major = 5, minor = 1, revision = 0, compatible = 4) +@Version(major = 5, minor = 2, revision = 0, compatible = 4) public class Naming implements Module -{ - @Command(hook = "anvil") - public void anvil(CommandSender sender) - { - Player player = (Player) sender; - Inventory inv = Bukkit.getServer().createInventory(player, InventoryType.ANVIL); - player.openInventory(inv); - } - +{ @Command(hook = "name") public void name(CommandSender sender, String name) { -- cgit v1.2.3 From 4fa4782d7bb1c149472026053abd1cedbb4a66d7 Mon Sep 17 00:00:00 2001 From: Minenash Date: Wed, 30 Jan 2019 21:42:40 -0500 Subject: Renamed ModBetterDirectional to ModLogDirectional --- .../modules/blockplacemods/BlockPlaceMods.java | 6 +- .../blockplacemods/mods/ModBetterDirectional.java | 73 ---------------------- .../blockplacemods/mods/ModLogDirectional.java | 73 ++++++++++++++++++++++ 3 files changed, 76 insertions(+), 76 deletions(-) delete mode 100644 src/main/java/com/redstoner/modules/blockplacemods/mods/ModBetterDirectional.java create mode 100644 src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java diff --git a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java index 1306235..d840dae 100644 --- a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java +++ b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java @@ -8,7 +8,7 @@ import com.redstoner.coremods.moduleLoader.ModuleLoader; import com.redstoner.misc.CommandHolderType; import com.redstoner.misc.Main; import com.redstoner.modules.Module; -import com.redstoner.modules.blockplacemods.mods.ModBetterDirectional; +import com.redstoner.modules.blockplacemods.mods.ModLogDirectional; import com.redstoner.modules.blockplacemods.mods.ModCauldron; import com.redstoner.modules.blockplacemods.mods.ModSlab; import com.redstoner.modules.datamanager.DataManager; @@ -35,8 +35,8 @@ public class BlockPlaceMods implements Module, Listener { private final BlockPlaceMod[] modsToRegister = { new ModCauldron(), new ModSlab(), - new ModBetterDirectional("Observer", Material.OBSERVER, "observers", false), - new ModBetterDirectional("Piston", Material.PISTON, "pistons", false), + new ModLogDirectional("Observer", Material.OBSERVER, "observers", false), + new ModLogDirectional("Piston", Material.PISTON, "pistons", false), }; @Override diff --git a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModBetterDirectional.java b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModBetterDirectional.java deleted file mode 100644 index 99a9f5d..0000000 --- a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModBetterDirectional.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.redstoner.modules.blockplacemods.mods; - -import com.redstoner.modules.blockplacemods.BlockPlaceMod; -import com.redstoner.modules.blockplacemods.ModType; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.Directional; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockPlaceEvent; - -public class ModBetterDirectional extends BlockPlaceMod { - private static final BlockFace[][][] dirMap = { - { - { null, null, null }, - { null, BlockFace.WEST, null }, // (-1, 0, 0) - { null, null, null } - }, - { - { null, BlockFace.DOWN, null }, // (0, -1, 0) - { BlockFace.NORTH, BlockFace.SELF, BlockFace.SOUTH }, // (0, 0, x) - { null, BlockFace.UP, null } // (0, 1, 0) - }, - { - { null, null, null }, - { null, BlockFace.EAST, null }, // (1, 0, 0) - { null, null, null } - } - }; - - private final Material material; - - public ModBetterDirectional(String name, Material material, String materialPlural, boolean enabledByDefault) { - super( - name, - "With this mod enabled " + materialPlural + " are placed with the bottom on the block clicked.", - ModType.STATELESS, - null, - enabledByDefault, - "BetterDirectional" + material.name().toLowerCase() - ); - - this.material = material; - } - - @EventHandler (priority = EventPriority.MONITOR, ignoreCancelled = true) - public void onBlockPlace(BlockPlaceEvent event) { - if ( - event.getBlock().getType() == material - && !event.getPlayer().isSneaking() - && hasEnabled(event.getPlayer()) - && event.getPlayer().getGameMode() == GameMode.CREATIVE - ) { - Block block = event.getBlock(); - Directional data = (Directional) block.getBlockData(); - - data.setFacing(getDirection(event)); - block.setBlockData(data); - } - } - - private BlockFace getDirection(BlockPlaceEvent event) { - Location original = event.getBlockPlaced().getLocation(); - Location against = event.getBlockAgainst().getLocation(); - - Location dir = original.subtract(against); - - return dirMap[dir.getBlockX() + 1][dir.getBlockY() + 1][dir.getBlockZ() + 1]; - } -} diff --git a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java new file mode 100644 index 0000000..9fb2b6a --- /dev/null +++ b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java @@ -0,0 +1,73 @@ +package com.redstoner.modules.blockplacemods.mods; + +import com.redstoner.modules.blockplacemods.BlockPlaceMod; +import com.redstoner.modules.blockplacemods.ModType; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.BlockPlaceEvent; + +public class ModLogDirectional extends BlockPlaceMod { + private static final BlockFace[][][] dirMap = { + { + { null, null, null }, + { null, BlockFace.WEST, null }, // (-1, 0, 0) + { null, null, null } + }, + { + { null, BlockFace.DOWN, null }, // (0, -1, 0) + { BlockFace.NORTH, BlockFace.SELF, BlockFace.SOUTH }, // (0, 0, x) + { null, BlockFace.UP, null } // (0, 1, 0) + }, + { + { null, null, null }, + { null, BlockFace.EAST, null }, // (1, 0, 0) + { null, null, null } + } + }; + + private final Material material; + + public ModLogDirectional(String name, Material material, String materialPlural, boolean enabledByDefault) { + super( + name, + "With this mod enabled " + materialPlural + " are placed with the bottom on the block clicked.", + ModType.STATELESS, + null, + enabledByDefault, + "BetterDirectional" + material.name().toLowerCase() + ); + + this.material = material; + } + + @EventHandler (priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onBlockPlace(BlockPlaceEvent event) { + if ( + event.getBlock().getType() == material + && !event.getPlayer().isSneaking() + && hasEnabled(event.getPlayer()) + && event.getPlayer().getGameMode() == GameMode.CREATIVE + ) { + Block block = event.getBlock(); + Directional data = (Directional) block.getBlockData(); + + data.setFacing(getDirection(event)); + block.setBlockData(data); + } + } + + private BlockFace getDirection(BlockPlaceEvent event) { + Location original = event.getBlockPlaced().getLocation(); + Location against = event.getBlockAgainst().getLocation(); + + Location dir = original.subtract(against); + + return dirMap[dir.getBlockX() + 1][dir.getBlockY() + 1][dir.getBlockZ() + 1]; + } +} -- cgit v1.2.3 From ffa031a243ca88dd5d234e2fde83551360f933fa Mon Sep 17 00:00:00 2001 From: Minenash Date: Wed, 30 Jan 2019 22:25:17 -0500 Subject: Fixed ModLogDirectional's alias --- .../com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java index 9fb2b6a..fac5727 100644 --- a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java +++ b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java @@ -40,7 +40,7 @@ public class ModLogDirectional extends BlockPlaceMod { ModType.STATELESS, null, enabledByDefault, - "BetterDirectional" + material.name().toLowerCase() + "LogDirectional" + material.name().toLowerCase() ); this.material = material; -- cgit v1.2.3 From ce8a0a6813c8ca0be00d1d9fe825222a722a282e Mon Sep 17 00:00:00 2001 From: Minenash Date: Wed, 30 Jan 2019 23:58:52 -0500 Subject: Added Mods for repeaters & comparators and updated (and fixed) version --- .../modules/blockplacemods/BlockPlaceMods.java | 5 +- .../blockplacemods/mods/ModPlayerDirectional.java | 66 ++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/redstoner/modules/blockplacemods/mods/ModPlayerDirectional.java diff --git a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java index d840dae..1301792 100644 --- a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java +++ b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java @@ -9,6 +9,7 @@ import com.redstoner.misc.CommandHolderType; import com.redstoner.misc.Main; import com.redstoner.modules.Module; import com.redstoner.modules.blockplacemods.mods.ModLogDirectional; +import com.redstoner.modules.blockplacemods.mods.ModPlayerDirectional; import com.redstoner.modules.blockplacemods.mods.ModCauldron; import com.redstoner.modules.blockplacemods.mods.ModSlab; import com.redstoner.modules.datamanager.DataManager; @@ -27,7 +28,7 @@ import java.util.Map; @Commands (CommandHolderType.File) @AutoRegisterListener -@Version (major = 4, minor = 1, revision = 1, compatible = 4) +@Version (major = 5, minor = 2, revision = 0, compatible = 4) public class BlockPlaceMods implements Module, Listener { private static final Map mods = new HashMap<>(); private static final List enabledMods = new ArrayList<>(); @@ -37,6 +38,8 @@ public class BlockPlaceMods implements Module, Listener { new ModSlab(), new ModLogDirectional("Observer", Material.OBSERVER, "observers", false), new ModLogDirectional("Piston", Material.PISTON, "pistons", false), + new ModPlayerDirectional("Repeater", Material.REPEATER, "repeaters", true, true, false), + new ModPlayerDirectional("Comparator", Material.COMPARATOR, "comparators", true, true, false), }; @Override diff --git a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModPlayerDirectional.java b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModPlayerDirectional.java new file mode 100644 index 0000000..97b5432 --- /dev/null +++ b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModPlayerDirectional.java @@ -0,0 +1,66 @@ +package com.redstoner.modules.blockplacemods.mods; + +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.BlockPlaceEvent; + +import com.redstoner.modules.blockplacemods.BlockPlaceMod; +import com.redstoner.modules.blockplacemods.ModType; + +public class ModPlayerDirectional extends BlockPlaceMod{ + + private final Material material; + private final boolean towards; + + public ModPlayerDirectional(String name, Material material, String materialPlural, boolean towards, boolean invertLogic, boolean enabledByDefault) { + super( + name, + "With this mod enabled " + materialPlural + " are placed facing " + (towards? "towards you." : "away from you."), + ModType.STATELESS, null, + enabledByDefault, + "PlayerDirectional" + material.name().toLowerCase() + ); + + this.material = material; + this.towards = invertLogic? !towards : towards; + } + + @EventHandler (priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onBlockPlace(BlockPlaceEvent event) { + Player player = event.getPlayer(); + Block block = event.getBlock(); + + if (block.getType() == material && !player.isSneaking() + && hasEnabled(player) && player.getGameMode() == GameMode.CREATIVE) { + + Directional data = (Directional) block.getBlockData(); + + data.setFacing(getNewDirection(player, towards)); + block.setBlockData(data); + } + } + + private BlockFace getNewDirection(Player player, boolean towards) { + double rotation = normalAngle(player.getLocation().getYaw()); + + if (rotation >= 315 || rotation < 45) // South + return towards? BlockFace.NORTH : BlockFace.SOUTH; + if (rotation >= 45 && rotation < 135) // West + return towards? BlockFace.EAST : BlockFace.WEST; + if (rotation >= 135 && rotation < 225) // North + return towards? BlockFace.SOUTH : BlockFace.NORTH; + else // East + return towards? BlockFace.WEST : BlockFace.EAST; + } + + private double normalAngle(double angle) { + return (angle %= 360) >= 0 ? angle : (angle + 360); + } + +} -- cgit v1.2.3