mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-08-06 04:23:02 +00:00
Allow timeout of /tpa /tpahere requests
Adds new config setting tpa-accept-cancellation Test #781
This commit is contained in:
parent
52b1017bda
commit
95d5217f58
15 changed files with 52 additions and 0 deletions
|
@ -151,4 +151,6 @@ public interface ISettings extends IConf
|
||||||
public boolean getDisableItemPickupWhileAfk();
|
public boolean getDisableItemPickupWhileAfk();
|
||||||
|
|
||||||
public Priority getRespawnPriority();
|
public Priority getRespawnPriority();
|
||||||
|
|
||||||
|
long getTpaAcceptCancellation();
|
||||||
}
|
}
|
||||||
|
|
|
@ -606,4 +606,10 @@ public class Settings implements ISettings
|
||||||
}
|
}
|
||||||
return Priority.Normal;
|
return Priority.Normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getTpaAcceptCancellation()
|
||||||
|
{
|
||||||
|
return config.getLong("tpa-accept-cancellation", 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
private transient User teleportRequester;
|
private transient User teleportRequester;
|
||||||
private transient boolean teleportRequestHere;
|
private transient boolean teleportRequestHere;
|
||||||
private transient final Teleport teleport;
|
private transient final Teleport teleport;
|
||||||
|
private transient long teleportRequestTime;
|
||||||
private transient long lastOnlineActivity;
|
private transient long lastOnlineActivity;
|
||||||
private transient long lastActivity = System.currentTimeMillis();
|
private transient long lastActivity = System.currentTimeMillis();
|
||||||
private boolean hidden = false;
|
private boolean hidden = false;
|
||||||
|
@ -222,6 +223,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
|
|
||||||
public void requestTeleport(final User player, final boolean here)
|
public void requestTeleport(final User player, final boolean here)
|
||||||
{
|
{
|
||||||
|
teleportRequestTime = System.currentTimeMillis();
|
||||||
teleportRequester = player;
|
teleportRequester = player;
|
||||||
teleportRequestHere = here;
|
teleportRequestHere = here;
|
||||||
}
|
}
|
||||||
|
@ -537,4 +539,9 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
{
|
{
|
||||||
return ess.getPermissionsHandler().canBuild(base, getGroup());
|
return ess.getPermissionsHandler().canBuild(base, getGroup());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getTeleportRequestTime()
|
||||||
|
{
|
||||||
|
return teleportRequestTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,10 @@ public class Commandtpa extends EssentialsCommand
|
||||||
player.sendMessage(_("teleportRequest", user.getDisplayName()));
|
player.sendMessage(_("teleportRequest", user.getDisplayName()));
|
||||||
player.sendMessage(_("typeTpaccept"));
|
player.sendMessage(_("typeTpaccept"));
|
||||||
player.sendMessage(_("typeTpdeny"));
|
player.sendMessage(_("typeTpdeny"));
|
||||||
|
if (ess.getSettings().getTpaAcceptCancellation() != 0)
|
||||||
|
{
|
||||||
|
player.sendMessage(_("teleportRequestTimeoutInfo", ess.getSettings().getTpaAcceptCancellation()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
user.sendMessage(_("requestSent", player.getDisplayName()));
|
user.sendMessage(_("requestSent", player.getDisplayName()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,10 @@ public class Commandtpaall extends EssentialsCommand
|
||||||
player.requestTeleport(user, true);
|
player.requestTeleport(user, true);
|
||||||
player.sendMessage(_("teleportHereRequest", user.getDisplayName()));
|
player.sendMessage(_("teleportHereRequest", user.getDisplayName()));
|
||||||
player.sendMessage(_("typeTpaccept"));
|
player.sendMessage(_("typeTpaccept"));
|
||||||
|
if (ess.getSettings().getTpaAcceptCancellation() != 0)
|
||||||
|
{
|
||||||
|
player.sendMessage(_("teleportRequestTimeoutInfo", ess.getSettings().getTpaAcceptCancellation()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,6 +27,13 @@ public class Commandtpaccept extends EssentialsCommand
|
||||||
throw new Exception(_("noPendingRequest"));
|
throw new Exception(_("noPendingRequest"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long timeout = ess.getSettings().getTpaAcceptCancellation();
|
||||||
|
if (timeout != 0 && (System.currentTimeMillis() - user.getTeleportRequestTime()) / 1000 > timeout)
|
||||||
|
{
|
||||||
|
user.requestTeleport(null, false);
|
||||||
|
throw new Exception(_("requestTimedOut"));
|
||||||
|
}
|
||||||
|
|
||||||
final Trade charge = new Trade(this.getName(), ess);
|
final Trade charge = new Trade(this.getName(), ess);
|
||||||
if (user.isTeleportRequestHere())
|
if (user.isTeleportRequestHere())
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,6 +28,10 @@ public class Commandtpahere extends EssentialsCommand
|
||||||
player.requestTeleport(user, true);
|
player.requestTeleport(user, true);
|
||||||
player.sendMessage(_("teleportHereRequest", user.getDisplayName()));
|
player.sendMessage(_("teleportHereRequest", user.getDisplayName()));
|
||||||
player.sendMessage(_("typeTpaccept"));
|
player.sendMessage(_("typeTpaccept"));
|
||||||
|
if (ess.getSettings().getTpaAcceptCancellation() != 0)
|
||||||
|
{
|
||||||
|
player.sendMessage(_("teleportRequestTimeoutInfo", ess.getSettings().getTpaAcceptCancellation()));
|
||||||
|
}
|
||||||
user.sendMessage(_("requestSent", player.getDisplayName()));
|
user.sendMessage(_("requestSent", player.getDisplayName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,6 +273,10 @@ sethome-multiple:
|
||||||
# essentials.sethome.multiple.staff
|
# essentials.sethome.multiple.staff
|
||||||
staff: 10
|
staff: 10
|
||||||
|
|
||||||
|
#Set timeout in seconds for players to accept tpa before request is cancelled.
|
||||||
|
#Set to 0 for no timeout
|
||||||
|
tpa-accept-cancellation: 0
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# +------------------------------------------------------+ #
|
# +------------------------------------------------------+ #
|
||||||
# | EssentialsEco | #
|
# | EssentialsEco | #
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=year
|
||||||
years=years
|
years=years
|
||||||
youAreHealed=\u00a77You have been healed.
|
youAreHealed=\u00a77You have been healed.
|
||||||
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=\u00e5r
|
||||||
years=\u00e5r
|
years=\u00e5r
|
||||||
youAreHealed=\u00a77Du er blevet healed. Halleluja!
|
youAreHealed=\u00a77Du er blevet healed. Halleluja!
|
||||||
youHaveNewMail=\u00a7cDu har {0} flaskeposter!\u00a7f Type \u00a77/mail read for at se din flaskepost.
|
youHaveNewMail=\u00a7cDu har {0} flaskeposter!\u00a7f Type \u00a77/mail read for at se din flaskepost.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=Jahr
|
||||||
years=Jahre
|
years=Jahre
|
||||||
youAreHealed=\u00a77Du wurdest geheilt.
|
youAreHealed=\u00a77Du wurdest geheilt.
|
||||||
youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
|
youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=year
|
||||||
years=years
|
years=years
|
||||||
youAreHealed=\u00a77You have been healed.
|
youAreHealed=\u00a77You have been healed.
|
||||||
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=año
|
||||||
years=años
|
years=años
|
||||||
youAreHealed=\u00a77Has sido curado.
|
youAreHealed=\u00a77Has sido curado.
|
||||||
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
|
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=ann\u00e9e
|
||||||
years=ann\u00e9es
|
years=ann\u00e9es
|
||||||
youAreHealed=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
youAreHealed=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||||
youHaveNewMail=\u00a7cVous avez {0} messages ! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier.
|
youHaveNewMail=\u00a7cVous avez {0} messages ! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
|
@ -402,3 +402,5 @@ year=jaar
|
||||||
years=jaren
|
years=jaren
|
||||||
youAreHealed=\u00a77Je bent genezen.
|
youAreHealed=\u00a77Je bent genezen.
|
||||||
youHaveNewMail=\u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
|
youHaveNewMail=\u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
|
||||||
|
requestTimedOut=\u00a7cTeleport request has timed out
|
||||||
|
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue