瀏覽代碼

Another check for PTP exploit

t00thpick1 5 年之前
父節點
當前提交
421a394f68
共有 1 個文件被更改,包括 19 次插入0 次删除
  1. 19 0
      src/main/java/com/gmail/nossr50/runnables/items/TeleportationWarmup.java

+ 19 - 0
src/main/java/com/gmail/nossr50/runnables/items/TeleportationWarmup.java

@@ -6,8 +6,10 @@ import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.util.EventUtils;
 import com.gmail.nossr50.util.Misc;
+import com.gmail.nossr50.util.Permissions;
 import com.gmail.nossr50.util.skills.SkillUtils;
 import org.bukkit.Location;
+import org.bukkit.World;
 import org.bukkit.entity.Player;
 import org.bukkit.scheduler.BukkitRunnable;
 
@@ -51,6 +53,23 @@ public class TeleportationWarmup extends BukkitRunnable {
             }
         }
 
+        if (Config.getInstance().getPTPCommandWorldPermissions()) {
+            World targetWorld = targetPlayer.getWorld();
+            World playerWorld = teleportingPlayer.getWorld();
+
+            if (!Permissions.partyTeleportAllWorlds(teleportingPlayer)) {
+                if (!Permissions.partyTeleportWorld(targetPlayer, targetWorld)) {
+                    teleportingPlayer.sendMessage(LocaleLoader.getString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
+                    return;
+                }
+                else if (targetWorld != playerWorld && !Permissions.partyTeleportWorld(teleportingPlayer, targetWorld)) {
+                    teleportingPlayer.sendMessage(LocaleLoader.getString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
+                    return;
+                }
+            }
+        }
+
+
         EventUtils.handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
     }
 }