summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinenash <minenash@protonmail.com>2019-01-31 15:48:00 -0500
committerGitHub <noreply@github.com>2019-01-31 15:48:00 -0500
commite0714e77b7bceacaba61ed9dc0808ab78df42402 (patch)
tree1a395b403dea7b2a2cd12a627e22a50080f6315a
parentc996392ba341be7b676238009fa6e3c7ff33022e (diff)
parent31d1ae29e7a15fe6650544ca381fe6c5e4e3d81b (diff)
Merge pull request #44 from RedstonerServer/dev
Removed `/anvil` and Added new Mods for BlockPlaceMods
-rw-r--r--src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java11
-rw-r--r--src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java (renamed from src/main/java/com/redstoner/modules/blockplacemods/mods/ModBetterDirectional.java)6
-rw-r--r--src/main/java/com/redstoner/modules/blockplacemods/mods/ModPlayerDirectional.java66
-rw-r--r--src/main/java/com/redstoner/modules/naming/Naming.cmd8
-rw-r--r--src/main/java/com/redstoner/modules/naming/Naming.java15
5 files changed, 78 insertions, 28 deletions
diff --git a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java
index 1306235..1301792 100644
--- a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java
+++ b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.java
@@ -8,7 +8,8 @@ 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.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<String, BlockPlaceMod> mods = new HashMap<>();
private static final List<BlockPlaceMod> enabledMods = new ArrayList<>();
@@ -35,8 +36,10 @@ 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),
+ 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/ModBetterDirectional.java b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java
index 99a9f5d..fac5727 100644
--- a/src/main/java/com/redstoner/modules/blockplacemods/mods/ModBetterDirectional.java
+++ b/src/main/java/com/redstoner/modules/blockplacemods/mods/ModLogDirectional.java
@@ -12,7 +12,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.BlockPlaceEvent;
-public class ModBetterDirectional extends BlockPlaceMod {
+public class ModLogDirectional extends BlockPlaceMod {
private static final BlockFace[][][] dirMap = {
{
{ null, null, null },
@@ -33,14 +33,14 @@ public class ModBetterDirectional extends BlockPlaceMod {
private final Material material;
- public ModBetterDirectional(String name, Material material, String materialPlural, boolean enabledByDefault) {
+ 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()
+ "LogDirectional" + material.name().toLowerCase()
);
this.material = material;
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);
+ }
+
+}
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)
{