Fix infinite recursion with plugin tab completers

Make block location tab completion be a per-world configurable value
This commit is contained in:
DemonWav
2016-01-31 01:21:47 -06:00
parent 4895208d90
commit eb6cdbb9ce
2 changed files with 127 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: DemonWav <demonwav@gmail.com>
Date: Sun, 31 Jan 2016 01:21:03 -0600
Subject: [PATCH] Make block location tab completion be a per-world
configurable value
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
try {
// send location info if present
// completions = getCommandMap().tabComplete(player, message.substring(1));
- if (blockPosition == null) {
+ if (blockPosition == null || !((CraftWorld) player.getWorld()).getHandle().paperSpigotConfig.allowBlockLocationTabCompletion) {
completions = getCommandMap().tabComplete(player, message.substring(1));
} else {
completions = getCommandMap().tabComplete(player, message.substring(1), new Location(player.getWorld(), blockPosition.getX(), blockPosition.getY(), blockPosition.getZ()));
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
{
allChunksAreSlimeChunks = getBoolean( "all-chunks-are-slime-chunks", false );
}
+
+ public boolean allowBlockLocationTabCompletion;
+ private void allowBlockLocationTabCompletion()
+ {
+ allowBlockLocationTabCompletion = getBoolean( "allow-block-location-tab-completion", true );
+ }
}
--