summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2021-08-31 21:55:27 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2021-08-31 21:55:27 -0400
commitf1379a94754b68cc3904d2b96b5815854d5565c1 (patch)
tree39ef970eabaaeabf0993ea1cec6ffbd31c83a07b /src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
parent1.3.0 beta 4 (diff)
downloadkenshinshideandseek-f1379a94754b68cc3904d2b96b5815854d5565c1.tar.gz
kenshinshideandseek-f1379a94754b68cc3904d2b96b5815854d5565c1.tar.bz2
kenshinshideandseek-f1379a94754b68cc3904d2b96b5815854d5565c1.zip
1.3.0 beta 5
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
new file mode 100644
index 0000000..e8ad2c9
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
@@ -0,0 +1,86 @@
+package net.tylermurphy.hideAndSeek.command;
+
+import static net.tylermurphy.hideAndSeek.Store.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.bukkit.util.Vector;
+
+import net.tylermurphy.hideAndSeek.util.Functions;
+import net.tylermurphy.hideAndSeek.util.ICommand;
+
+public class SetBorder implements ICommand {
+
+ public void execute(CommandSender sender, String[] args) {
+ if(!status.equals("Standby")) {
+ sender.sendMessage(errorPrefix + "Game is currently in session");
+ return;
+ }
+ if(spawnPosition == null) {
+ sender.sendMessage(errorPrefix + "Please set spawn position first");
+ return;
+ }
+ if(args.length < 2) {
+ worldborderEnabled = false;
+ Map<String, Object> temp = new HashMap<String,Object>();
+ temp.put("enabled", false);
+ addToSection("worldBorder",temp);
+ saveConfig();
+ sender.sendMessage(messagePrefix + "Disabled worldborder.");
+ Functions.resetWorldborder(spawnWorld);
+ return;
+ }
+ int num,delay;
+ try { num = Integer.parseInt(args[0]); } catch (Exception e) {
+ sender.sendMessage(errorPrefix + "Invalid integer: "+args[0]);
+ return;
+ }
+ try { delay = Integer.parseInt(args[1]); } catch (Exception e) {
+ sender.sendMessage(errorPrefix + "Invalid integer: "+args[1]);
+ return;
+ }
+ if(num < 100) {
+ sender.sendMessage(errorPrefix + "Worldborder cannot be smaller than 100 blocks.");
+ return;
+ }
+ Vector newWorldborderPosition = new Vector();
+ Player player = (Player) sender;
+ newWorldborderPosition.setX(player.getLocation().getBlockX());
+ newWorldborderPosition.setY(0);
+ newWorldborderPosition.setZ(player.getLocation().getBlockZ());
+ if(spawnPosition.distance(newWorldborderPosition) > 100) {
+ sender.sendMessage(errorPrefix + "Spawn position must be 100 from worldborder center");
+ return;
+ }
+ worldborderPosition = newWorldborderPosition;
+ worldborderSize = num;
+ worldborderDelay = delay;
+ worldborderEnabled = true;
+ Map<String, Object> temp = new HashMap<String,Object>();
+ temp.put("x", worldborderPosition.getBlockX());
+ temp.put("z", worldborderPosition.getBlockZ());
+ temp.put("delay", worldborderDelay);
+ temp.put("size", worldborderSize);
+ temp.put("enabled", true);
+ addToSection("worldBorder",temp);
+ sender.sendMessage(messagePrefix + "Set border center to current location, size to "+num+", and delay to "+delay);
+ saveConfig();
+ Functions.resetWorldborder(spawnWorld);
+ }
+
+ public String getLabel() {
+ return "setBorder";
+ }
+
+ public String getUsage() {
+ return "<size> <delay>";
+ }
+
+ public String getDescription() {
+ return "Sets worldboarder's center location, size in blocks, and delay in minutes per shrink. Add no arguments to disable.";
+ }
+
+}