From 2ee860a1e91e6e08c061c0338dc60458afe618ca Mon Sep 17 00:00:00 2001 From: xDark Date: Fri, 31 May 2019 08:11:31 +0300 Subject: [PATCH] Allow to disable tablist rewrite diff --git a/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java b/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java index 4a198ee9..d69463f0 100644 --- a/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java +++ b/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java @@ -255,4 +255,10 @@ public interface ProxyConfig * @return Should we disable entity metadata rewriting? */ boolean isDisableEntityMetadataRewrite(); + + /** + * Whether tablist rewriting should be disabled or not + * @return {@code true} if tablist rewriting is disabled, {@code false} otherwise + */ + boolean isDisableTabListRewrite(); } diff --git a/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java b/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java index e860214f..b88e3c8a 100644 --- a/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java +++ b/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java @@ -43,6 +43,7 @@ public class WaterfallConfiguration extends Configuration { private boolean disableModernTabLimiter = true; private boolean disableEntityMetadataRewrite = false; + private boolean disableTabListRewrite = true; @Override public void load() { @@ -56,6 +57,7 @@ public class WaterfallConfiguration extends Configuration { tabThrottle = config.getInt("throttling.tab_complete", tabThrottle); disableModernTabLimiter = config.getBoolean("disable_modern_tab_limiter", disableModernTabLimiter); disableEntityMetadataRewrite = config.getBoolean("disable_entity_metadata_rewrite", disableEntityMetadataRewrite); + disableTabListRewrite = config.getBoolean("disable_tab_list_rewrite", disableTabListRewrite); } @Override @@ -87,4 +89,9 @@ public class WaterfallConfiguration extends Configuration { public boolean isDisableEntityMetadataRewrite() { return disableEntityMetadataRewrite; } + + @Override + public boolean isDisableTabListRewrite() { + return disableTabListRewrite; + } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java index 1a863dc0..d5405b90 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -174,8 +174,14 @@ public class DownstreamBridge extends PacketHandler @Override public void handle(PlayerListItem playerList) throws Exception { - con.getTabListHandler().onUpdate( TabList.rewrite( playerList ) ); - throw CancelSendSignal.INSTANCE; // Always throw because of profile rewriting + //Waterfall start + boolean skipRewrites = bungee.getConfig().isDisableTabListRewrite(); + con.getTabListHandler().onUpdate( skipRewrites ? playerList : TabList.rewrite( playerList ) ); + if ( !skipRewrites ) + { + throw CancelSendSignal.INSTANCE; // Only throw if profile rewriting is enabled + } + // Waterfall end } @Override -- 2.44.0