Bläddra i källkod

Implementing ptp request timeouts.

Also fix and improve a few things as suggested by bm01
TfT_02 12 år sedan
förälder
incheckning
0a17bf69c0

+ 3 - 2
Changelog.txt

@@ -15,7 +15,8 @@ Version 1.4.00-dev
  + Added '/party create <name>' command, use this to create a party
  + Added '/party disband' command, kicks out all members and deletes the party
  + Added '/ptp toggle' command, to disable party teleportation.
- + Added '/ptp accept' and '/ptp deny' commands
+ + Added '/ptp accept' and '/ptp acceptall' commands
+ + Added timeout on party teleport requests
  = Fixed Spout config files loading / generating when they shouldn't have
  = Fixed mod config files loading / generating when they shouldn't have
  = Fixed bug where Green Terra could activate on crops that weren't fully grown.
@@ -44,7 +45,7 @@ Version 1.4.00-dev
  ! Changed the way party commands work, use /party ? to check how to use the new commands
  ! Changed McMMOChatEvent to contain the plugin that the event originated from.
  ! Changed Excavation to have individual XP values for each block type, rather than a base XP value.
- ! Changed the way party teleportation works. When using /ptp, the target player needs to confirm the teleport before it takes place.
+ ! Changed the way party teleportation works. When using /ptp, the target player needs to confirm the teleport before it takes place. (Configurable)
 
 Version 1.3.14
  + Added new Hylian Luck skill to Herbalism.

+ 2 - 0
src/main/java/com/gmail/nossr50/config/Config.java

@@ -100,6 +100,8 @@ public class Config extends ConfigLoader {
     public boolean getCommandPartyChatPEnabled() { return config.getBoolean("Commands.p.Enabled", true); }
 
     public int getPTPCommandCooldown() { return config.getInt("Commands.ptp.Cooldown", 30); }
+    public int getPTPCommandTimeout() { return config.getInt("Commands.ptp.Request_Timeout", 300); }
+    public boolean getPTPCommandConfirmRequired() { return config.getBoolean("Commands.ptp.Confirm_Required", true); }
     public boolean getDonateMessageEnabled() { return config.getBoolean("Commands.mcmmo.Donate_Message", true); }
 
     /* Items */

+ 27 - 3
src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java

@@ -7,6 +7,8 @@ import java.io.FileWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
 
+import org.bukkit.entity.Player;
+
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.database.Database;
@@ -31,8 +33,9 @@ public class PlayerProfile {
     /* Party Stuff */
     private Party party;
     private Party invite;
-    private String ptpRequest;
+    private Player ptpRequest;
     private boolean ptpEnabled = true;
+    private boolean ptpConfirmRequired = Config.getInstance().getPTPCommandConfirmRequired();
 
     /* Toggles */
     private boolean loaded;
@@ -52,6 +55,7 @@ public class PlayerProfile {
     private long recentlyHurt;
     private int respawnATS;
     private long lastSave = 0L;
+    private long ptpTimeout;
 
     /* mySQL STUFF */
     private int userId;
@@ -1245,6 +1249,10 @@ public class PlayerProfile {
         invite = null;
     }
 
+    /*
+     * Party Teleportation
+     */
+
     public boolean getPtpEnabled() {
         return ptpEnabled;
     }
@@ -1253,11 +1261,11 @@ public class PlayerProfile {
         ptpEnabled = !ptpEnabled;
     }
 
-    public void setPtpRequest(String ptpRequest) {
+    public void setPtpRequest(Player ptpRequest) {
         this.ptpRequest = ptpRequest;
     }
 
-    public String getPtpRequest() {
+    public Player getPtpRequest() {
         return ptpRequest;
     }
 
@@ -1272,4 +1280,20 @@ public class PlayerProfile {
     public void removePtpRequest() {
         ptpRequest = null;
     }
+
+    public boolean getPtpConfirmRequired() {
+        return ptpConfirmRequired;
+    }
+
+    public void togglePtpConfirmRequired() {
+        ptpConfirmRequired = !ptpConfirmRequired;
+    }
+
+    public long getPtpTimeout() {
+        return ptpTimeout;
+    }
+
+    public void actualizePtpTimeout() {
+        ptpTimeout = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
+    }
 }

+ 64 - 36
src/main/java/com/gmail/nossr50/party/commands/PtpCommand.java

@@ -44,8 +44,8 @@ public class PtpCommand implements CommandExecutor {
             if (args[0].equalsIgnoreCase("toggle")) {
                 return togglePartyTeleportation();
             }
-            else if (args[0].equalsIgnoreCase("deny")) {
-                return denyTeleportRequest();
+            else if (args[0].equalsIgnoreCase("acceptany") || args[0].equalsIgnoreCase("acceptall")) {
+                return acceptAnyTeleportRequest();
             }
 
             int ptpCooldown = Config.getInstance().getPTPCommandCooldown();
@@ -67,8 +67,8 @@ public class PtpCommand implements CommandExecutor {
         }
     }
 
-    private boolean sendTeleportRequest(String targetName) {
-        Player target = plugin.getServer().getPlayer(targetName);
+    private boolean sendTeleportRequest(String args) {
+        Player target = plugin.getServer().getPlayer(args);
 
         if (player.equals(target)) {
             player.sendMessage(LocaleLoader.getString("Party.Teleport.Self"));
@@ -88,28 +88,12 @@ public class PtpCommand implements CommandExecutor {
         if (PartyManager.inSameParty(player, target)) {
             PlayerProfile targetProfile = Users.getProfile(target);
 
-            if (targetProfile.getPtpEnabled()) {
-                String senderName = player.getName();
-
-                targetProfile.setPtpRequest(senderName);
-                player.sendMessage(LocaleLoader.getString("Commands.Invite.Success"));
-                target.sendMessage(LocaleLoader.getString("Commands.ptp.Request", new Object[] {senderName}));
-            }
-            else {
+            if (!targetProfile.getPtpEnabled()) {
                 player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", new Object[] { target.getName() }));
+                return true;
             }
-        }
-        else {
-            player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", new Object[] { target.getName() }));
-        }
-        return true;
-    }
-
-    private boolean acceptTeleportRequest() {
-        if (playerProfile.hasPtpRequest()) {
-            Player target = plugin.getServer().getPlayer(playerProfile.getPtpRequest());
 
-            if (Users.getProfile(target).getPtpEnabled()) {
+            if (!Users.getProfile(target).getPtpConfirmRequired()) {
                 McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(player, target, playerProfile.getParty().getName());
                 plugin.getServer().getPluginManager().callEvent(event);
 
@@ -117,31 +101,75 @@ public class PtpCommand implements CommandExecutor {
                     return true;
                 }
 
-                target.teleport(player);
-                target.sendMessage(LocaleLoader.getString("Party.Teleport.Player", new Object[] { player.getName() }));
-                player.sendMessage(LocaleLoader.getString("Party.Teleport.Target", new Object[] { target.getName() }));
+                player.teleport(target);
+                player.sendMessage(LocaleLoader.getString("Party.Teleport.Player", new Object[] { player.getName() }));
+                target.sendMessage(LocaleLoader.getString("Party.Teleport.Target", new Object[] { target.getName() }));
                 playerProfile.setRecentlyHurt(System.currentTimeMillis());
-            }
-            else {
-                player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", new Object[] { target.getName() }));
+            } else {
+                targetProfile.setPtpRequest(player);
+                targetProfile.actualizePtpTimeout();
+                player.sendMessage(LocaleLoader.getString("Commands.Invite.Success"));
+
+                int ptpRequestExpire = Config.getInstance().getPTPCommandTimeout();
+                target.sendMessage(LocaleLoader.getString("Commands.ptp.Request1", new Object[] { player.getName() }));
+                target.sendMessage(LocaleLoader.getString("Commands.ptp.Request2", new Object[] { ptpRequestExpire }));
             }
         }
         else {
-            player.sendMessage(LocaleLoader.getString("Commands.ptp.NoRequests"));
+            player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", new Object[] { target.getName() }));
         }
         return true;
     }
 
-    private boolean denyTeleportRequest() {
-        if (playerProfile.hasPtpRequest()) {
-            Player target = plugin.getServer().getPlayer(playerProfile.getPtpRequest());
-            player.sendMessage(LocaleLoader.getString("Commands.ptp.Deny"));
-            target.sendMessage(LocaleLoader.getString("Commands.ptp.Denied", new Object[] { player.getName() }));
+    private boolean acceptTeleportRequest() {
+        if (!playerProfile.hasPtpRequest()) {
+            player.sendMessage(LocaleLoader.getString("Commands.ptp.NoRequests"));
+            return true;
+        }
+
+        int ptpRequestExpire = Config.getInstance().getPTPCommandTimeout();
+
+        if ((playerProfile.getPtpTimeout() + ptpRequestExpire) * Misc.TIME_CONVERSION_FACTOR < System.currentTimeMillis()) {
             playerProfile.removePtpRequest();
+            player.sendMessage(LocaleLoader.getString("Commands.ptp.RequestExpired"));
+            return true;
+        }
+
+        Player target = playerProfile.getPtpRequest();
+
+        if (target == null) {
+            player.sendMessage(LocaleLoader.getString("Party.Player.Invalid"));
+            return true;
+        }
+
+        if (target.isDead()) {
+            player.sendMessage(LocaleLoader.getString("Party.Teleport.Dead"));
+            return true;
+        }
+
+        McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(player, target, playerProfile.getParty().getName());
+        plugin.getServer().getPluginManager().callEvent(event);
+
+        if (event.isCancelled()) {
+            return true;
+        }
+
+        target.teleport(player);
+        target.sendMessage(LocaleLoader.getString("Party.Teleport.Player", new Object[] { player.getName() }));
+        player.sendMessage(LocaleLoader.getString("Party.Teleport.Target", new Object[] { target.getName() }));
+        playerProfile.setRecentlyHurt(System.currentTimeMillis());
+        return true;
+    }
+
+    private boolean acceptAnyTeleportRequest() {
+        if (playerProfile.getPtpConfirmRequired()) {
+            player.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Disabled"));
         }
         else {
-            player.sendMessage(LocaleLoader.getString("Commands.ptp.NoRequests"));
+            player.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Enabled"));
         }
+
+        playerProfile.togglePtpConfirmRequired();
         return true;
     }
 

+ 2 - 0
src/main/resources/config.yml

@@ -357,6 +357,8 @@ Commands:
     ptp:
         Enabled: true
         Cooldown: 30
+        Confirm_Required: true
+        Request_Timeout: 300
     p:
         Enabled: true
     a:

+ 8 - 0
src/main/resources/locale/locale_cs_CZ.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Opustil jsi svoji aktualni partu
 Commands.Party.Teleport=<hrac> [[RED]]- Teleport ke clenovi party
 Commands.Party.Toggle=[[RED]]- Zapnout party chat
 Commands.Party=<jm\u00e9no-party> [[RED]]- Vytvo\u0159it/P\u0159ipojit se k part\u011b.
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Rebricek [[YELLOW]]Celkovych levelu--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]CELKOVY LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_cy.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_da.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Forlad din nuv\u00e6rende Gruppe
 Commands.Party.Teleport=<player> [[RED]]- Teleporter til gruppe medlem
 Commands.Party.Toggle=[[RED]]- Skift Gruppe Chat
 Commands.Party=<party-name> [[RED]]- Lav/Join \u00f8nskede Gruppe
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Kraft Level [[YELLOW]]Rangliste--
 Commands.PowerLevel.Capped=[[DARK_RED]]KRAFT LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]Kraft level: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_de.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Verlasse deine derzeitige Gruppe
 Commands.Party.Teleport=<Spieler> [[RED]]- Zu Gruppen-Mitglied teleportieren
 Commands.Party.Toggle=[[RED]]- Gruppen-Chat umschalten
 Commands.Party=<party-name> [[RED]]- Gew\u00fcnschte Gruppe Er\u00f6ffnen/Beitreten
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Kraft Level [[YELLOW]]Rangliste--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]KRAFT LEVEL: [[GREEN]]{0}

+ 5 - 3
src/main/resources/locale/locale_en_US.properties

@@ -464,9 +464,11 @@ Commands.Party=<party-name> [[RED]]- Create/Join designated party
 Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
 Commands.ptp.Disabled=Party teleporting [[RED]]disabled
 Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
-Commands.ptp.Request=[[YELLOW]]{0} [[GREEN]]wants to teleport to you. Use [[YELLOW]]/ptp accept [[GREEN]]or [[YELLOW]]/ptp deny
-Commands.ptp.Deny=[[YELLOW]]Teleport request denied.
-Commands.ptp.Denied=[[RED]]{0} has denied your teleport request.
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_es.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Abandona tu grupo actual
 Commands.Party.Teleport=<jugador> [[RED]]- Teletransportarse al miembro del grupo
 Commands.Party.Toggle=[[RED]]- Alternar chat de grupo
 Commands.Party=<nombre del grupo> [[RED]]- Crear/Unirse al grupo elegido
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO-- Tabla de L\u00edderes: [[BLUE]]Nivel de Poder
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]NIVEL DE PODER: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_fi.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_fr.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Quitte votre groupe actuel
 Commands.Party.Teleport=<nom> [[RED]]- T\u00e9l\u00e9porte sur un membre du groupe
 Commands.Party.Toggle=[[RED]]- Active / d\u00e9sactive le canal groupe
 Commands.Party=<nom> [[RED]]- Cr\u00e9e ou rejoint ce groupe
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--Classement mcMMO ([[BLUE]]Niveau Global[[YELLOW]])--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]NIVEAU GLOBAL : [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_it.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Abbandona la tua attuale compagnia
 Commands.Party.Teleport=<giocatore> [[RED]]- Teletrasportati verso un membro della compagnia
 Commands.Party.Toggle=[[RED]]- Attiva o Disattiva la Chat di Compagnia
 Commands.Party=<nome-compagnia> [[RED]]- Crea/Unisciti alla compagnia scelta
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--Classifica mcMMO dei [[BLUE]]Livelli di Potere[[YELLOW]]--
 Commands.PowerLevel.Capped=[[DARK_RED]]LIVELLO DI POTERE: [[GREEN]]{0} [[DARK_RED]]LIVELLO MASSIMO: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]LIVELLO DI POTERE: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_ko.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[\ub178\ub780\uc0c9]] - mcMMO [[\ube14\ub8e8]] \ud30c\uc6cc \ub808\ubca8 [[\ub178\ub780\uc0c9]] \ub9ac\ub354 -
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[\uac80 \ubd89\uc740]] \uc804\uc6d0 LEVEL : [[\ub179\uc0c9]] {0}

+ 8 - 0
src/main/resources/locale/locale_lv.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_nl.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Kracht Level [[YELLOW]]Leiderbord--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]KRACHT LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_no.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]]Kraft Niv\u00e5[[YELLOW]]Lederbord--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]KRAFT NIV\u00c5: [[GR\u00d8EEN]] {0}

+ 8 - 0
src/main/resources/locale/locale_pl.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleportacja do czlonka grupy.
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_pl_PL.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_pt_BR.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_ru.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- \u041f\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u
 Commands.Party.Teleport=<player> [[RED]]- \u0422\u0435\u043b\u0435\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0447\u043b\u0435\u043d\u0443 \u0433\u0440\u0443\u043f\u043f\u044b
 Commands.Party.Toggle=[[RED]]- \u0412\u043a\u043b./\u043e\u0442\u043a\u043b. \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0447\u0430\u0442
 Commands.Party=<party-name> [[RED]]- \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u043b\u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0435\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u0439
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--\u0421\u043f\u0438\u0441\u043e\u043a \u041b\u0438\u0434\u0435\u0440\u043e\u0432 mcMMO \u043f\u043e[[BLUE]] \u041e\u0431\u0449\u0435\u043c\u0443 \u0423\u0440\u043e\u0432\u043d\u044e [[YELLOW]]--
 Commands.PowerLevel.Capped=[[DARK_RED]]\u041e\u0411\u0429\u0418\u0419 \u0423\u0420\u041e\u0412\u0415\u041d\u042c: [[GREEN]]{0} [[DARK_RED]]\u041c\u0410\u041a\u0421\u0418\u041c\u0410\u041b\u042c\u041d\u042b\u0419 \u0423\u0420\u041e\u0412\u0415\u041d\u042c: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]\u041e\u0411\u0429\u0418\u0419 \u0423\u0420\u041e\u0412\u0415\u041d\u042c: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_sv.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_tr_TR.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- Leave your current party
 Commands.Party.Teleport=<player> [[RED]]- Teleport to party member
 Commands.Party.Toggle=[[RED]]- Toggle Party Chat
 Commands.Party=<party-name> [[RED]]- Create/Join designated party
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}

+ 8 - 0
src/main/resources/locale/locale_zh_CN.properties

@@ -409,6 +409,14 @@ Commands.Party.Quit=[[RED]]- \u79bb\u5f00\u4f60\u73b0\u6709\u7684\u961f\u4f0d
 Commands.Party.Teleport=<player> [[RED]]- \u4f20\u9001\u5230\u961f\u4f0d\u6210\u5458
 Commands.Party.Toggle=[[RED]]- \u5207\u6362\u961f\u4f0d\u804a\u5929
 Commands.Party=[\u961f\u4f0d\u540d] [[RED]]- \u521b\u5efa/\u52a0\u5165\u5df2\u5b58\u5728\u7684\u961f\u4f0d
+Commands.ptp.Enabled=Party teleporting [[GREEN]]enabled
+Commands.ptp.Disabled=Party teleporting [[RED]]disabled
+Commands.ptp.NoRequests=[[RED]]You have no teleport requests at this time
+Commands.ptp.Request1=[[YELLOW]]{0} [[GREEN]]has requested to teleport to you. 
+Commands.ptp.Request2=[[GREEN]]To teleport, type [[YELLOW]]/ptp accept. [[GREEN]]Request expires in [[RED]]{0} [[GREEN]]seconds.
+Commands.ptp.AcceptAny.Enabled=Party teleport request confirmation [[GREEN]]enabled
+Commands.ptp.AcceptAny.Disabled=Party teleport request confirmation [[RED]]disabled
+Commands.ptp.RequestExpired=[[RED]]Party teleport request has expired!
 Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] \u80fd\u529b\u7b49\u7ea7 [[YELLOW]]\u6392\u884c\u699c--
 Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 Commands.PowerLevel=[[DARK_RED]]\u80fd\u529b\u7b49\u7ea7: [[GREEN]]{0}