summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/modules/teleport
diff options
context:
space:
mode:
authorDavid <david@panic.tk>2018-11-07 23:50:06 +0100
committerDavid <david@panic.tk>2018-11-07 23:50:06 +0100
commit604cf01967ede98bf5024e4926bb0777fc4e8eee (patch)
treee2fa63d7e683769ee3bf3eddc75280648e92eb04 /src/main/java/com/redstoner/modules/teleport
parente86c52ef7c0e1e33c6af0e8674b038976bec11cc (diff)
Converted Modules to gradle
Diffstat (limited to 'src/main/java/com/redstoner/modules/teleport')
-rw-r--r--src/main/java/com/redstoner/modules/teleport/Teleport.cmd142
-rw-r--r--src/main/java/com/redstoner/modules/teleport/Teleport.java185
2 files changed, 327 insertions, 0 deletions
diff --git a/src/main/java/com/redstoner/modules/teleport/Teleport.cmd b/src/main/java/com/redstoner/modules/teleport/Teleport.cmd
new file mode 100644
index 0000000..4e5930e
--- /dev/null
+++ b/src/main/java/com/redstoner/modules/teleport/Teleport.cmd
@@ -0,0 +1,142 @@
+command teleport {
+ alias eteleport;
+ alias tp;
+ alias etp;
+ alias to;
+ alias eto;
+ alias tpo;
+ alias etpo;
+ alias tp2p;
+ alias etp2p;
+ [player:string] {
+ run tp player;
+ }
+ [player:string] [player2:string] {
+ run tp2 player player2;
+ }
+}
+
+command teleporthere {
+ alias eteleporthere;
+ alias tphere;
+ alias etphere;
+ alias tpohere;
+ alias etpohere;
+ [player:string] {
+ run tph player;
+ }
+}
+
+command teleportask {
+ alias eteleportask;
+ alias tpa;
+ alias etpa;
+ alias tpr;
+ alias etpr;
+ alias tpask;
+ alias etpask;
+ [player:string] {
+ run tpa player;
+ }
+}
+
+command teleportaskhere {
+ alias eteleportaskhere;
+ alias tpahere,
+ alias etpahere;
+ alias tprhere;
+ alias etrphere;
+ alias tpaskhere;
+ alias etpaskhere;
+ [player:string] {
+ run tpah player;
+ help ask another player to teleport to you.;
+ }
+}
+
+command tpall {
+ alias etpall;
+ [empty] {
+ run tpall;
+ help Teleports everyone to you.;
+ }
+ [player] {
+ run tpall2 player;
+ help Teleports everyone to the specified player.;
+ }
+ perm utils.admin.teleport;
+}
+
+command tpaall {
+ alias etpall;
+ [empty] {
+ run tpaall;
+ help Sends a tpa request to every player.;
+ perm utils.admin.teleport;
+ }
+ [player:string] {
+ run tpaall2 player;
+ help Sends a tpa request to every player.;
+ }
+ perm utils.admin.teleport;
+}
+
+command tpaccept {
+ alias etpaccept;
+ alias tpyes;
+ alias etpyes;
+ [empty] {
+ run tpaccept;
+ help Accepts the latest pending tpa request.;
+ }
+ [index:int] {
+ run tpaccept2 index;
+ help Accepts the specified pending tpa request.;
+ }
+ perm utils.teleport.request;
+}
+
+command tpacancel {
+ alias etpacencel;
+ [empty] {
+ run tpacancel;
+ help Cancels an outgoing pending tpa request.;
+ perm utils.teleport.request;
+ }
+}
+
+command tpdeny {
+ alias etpdeny;
+ alias tpno;
+ alias etpno;
+ perm utils.teleport.request;
+ [empty] {
+ run tpdeny;
+ }
+ [index:int] {
+ run tpdeny2 index;
+ }
+}
+
+command tplist {
+ alias etplist;
+ alias tpl;
+ alias etpl;
+ [empty] {
+ run tpl;
+ }
+}
+
+command tptoggle {
+ alias etptoggle;
+ [status:string] {
+ run tptoggle status;
+ help sets your tpa status;
+ perm utils.teleport.toggle;
+ }
+ [command:string] [status:string] {
+ run tptoggle2 command status;
+ help sets your tpa status for only one command (e.g. tpa/tpahere).;
+ perm utils.teleport.toggle;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/modules/teleport/Teleport.java b/src/main/java/com/redstoner/modules/teleport/Teleport.java
new file mode 100644
index 0000000..7680852
--- /dev/null
+++ b/src/main/java/com/redstoner/modules/teleport/Teleport.java
@@ -0,0 +1,185 @@
+package com.redstoner.modules.teleport;
+
+import java.util.ArrayList;
+
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import com.nemez.cmdmgr.Command;
+import com.redstoner.annotations.Commands;
+import com.redstoner.annotations.Version;
+import com.redstoner.misc.CommandHolderType;
+import com.redstoner.modules.Module;
+import com.redstoner.modules.datamanager.DataManager;
+
+import net.nemez.chatapi.click.Message;
+
+@Commands(CommandHolderType.File)
+@Version(major = 4, minor = 0, revision = 0, compatible = 4)
+public class Teleport implements Module
+{
+ public static final String PERMISSION_TELEPORT = "utils.admin.teleport";
+
+ public ArrayList<TPRequest> pending_requests;
+
+ @Override
+ public void postEnable()
+ {
+ pending_requests = new ArrayList<TPRequest>();
+ }
+
+ @Command(hook = "tp")
+ public boolean teleport(CommandSender sender, String player)
+ {
+ if (!sender.hasPermission(PERMISSION_TELEPORT))
+ return tpa(sender, player);
+ return true;
+ }
+
+ @Command(hook = "tp2")
+ public boolean teleport(CommandSender sender, String player, String player2)
+ {
+ if (!sender.hasPermission(PERMISSION_TELEPORT))
+ if (player2.equals(((Player) sender).getName()))
+ return tpahere(sender, player);
+ else
+ {
+ getLogger().message(sender, "You do not have the required permissions to run that Command!");
+ return true;
+ }
+ Player p1 = Bukkit.getPlayer(player);
+ Player p2 = Bukkit.getPlayer(player2);
+ if (p1 == null || p2 == null)
+ {
+ getLogger().message(sender, true, "The specified player couldn't be found!");
+ return true;
+ }
+ p1.teleport(p2);
+ getLogger().message(p1, "You have been teleported to: " + p2.getDisplayName());
+ if (!sender.getName().equals(p1.getName()))
+ getLogger().message(sender,
+ p1.getDisplayName() + "&7 has been teleported to " + p2.getDisplayName() + "&7!");
+ return true;
+ }
+
+ @Command(hook = "tpa")
+ public boolean tpa(CommandSender sender, String player)
+ {
+ return true;
+ }
+
+ @Command(hook = "tpahere")
+ public boolean tpahere(CommandSender sender, String player)
+ {
+ return true;
+ }
+
+ @Command(hook = "tpmenu")
+ public boolean tpinventory(CommandSender sender)
+ {
+
+ return true;
+ }
+
+ protected void remove(TPRequest request)
+ {
+
+ }
+}
+
+class TPRequest implements Runnable
+{
+ private final Teleport holder;
+ private final Player sender;
+ private final Player target;
+ private final Type type;
+ private int index;
+
+ Thread t;
+
+ public TPRequest(Player sender, Player target, Type type, int index, Teleport holder)
+ {
+ this.sender = sender;
+ this.target = target;
+ this.type = type;
+ this.index = 0;
+ this.holder = holder;
+ }
+
+ public Player getSender()
+ {
+ return sender;
+ }
+
+ public Player getTarget()
+ {
+ return target;
+ }
+
+ public Type getType()
+ {
+ return type;
+ }
+
+ public int getIndex()
+ {
+ return index;
+ }
+
+ public void setIndex(int index)
+ {
+ this.index = index;
+ }
+
+ public void execute()
+ {
+ switch (type)
+ {
+ case tpa:
+ sender.teleport(target);
+ break;
+ case tpahere:
+ target.teleport(sender);
+ break;
+ }
+ }
+
+ public void abort()
+ {
+ t.interrupt();
+ }
+
+ @Override
+ public void run()
+ {
+ t = Thread.currentThread();
+ try
+ {
+ Thread.sleep(60000);
+ }
+ catch (InterruptedException e)
+ {
+ holder.remove(this);
+ Message m = new Message(sender, null);
+ if (DataManager.getState(sender, "AFK"))
+ {
+ m.appendText(target.getDisplayName() + " is AFK and might not respond. ");
+ m.appendSendChat("Try again?", "/" + type.toString() + " " + target.getName());
+ }
+ if (DataManager.getState(sender, "BUSY"))
+ {
+ m.appendText(target.getDisplayName() + " is BUSY and might not respond. ");
+ m.appendSendChat("Try again?", "/" + type.toString() + " " + target.getName());
+ }
+ return;
+ }
+ holder.remove(this);
+ }
+}
+
+enum Type
+{
+ tpa,
+ tpahere;
+}