Archived
0

Preparation for tp module

Also testing to forge the committer lol
This commit is contained in:
Pepich
2017-09-21 15:39:15 +02:00
committed by NotPepich
parent ca47ef1e06
commit b59e3e34d3
2 changed files with 315 additions and 5 deletions

View File

@@ -1,5 +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;
}
}

View File

@@ -1,12 +1,185 @@
package com.redstoner.modules.teleport;
import com.redstoner.annotations.Version;
import com.redstoner.modules.Module;
import java.util.ArrayList;
@Version(major = 3, minor = 0, revision = 0, compatible = 3)
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;
}