mirror of
				https://github.com/proxiodev/RedisBungee.git
				synced 2025-11-04 01:28:02 +00:00 
			
		
		
		
	Revert "Remove async ping event, too many plugins break with it."
This reverts commit 3b2d157943.
			
			
This commit is contained in:
		
							parent
							
								
									1c3c1f3ef2
								
							
						
					
					
						commit
						ea2cb74be6
					
				@ -2,6 +2,7 @@ package com.imaginarycode.minecraft.redisbungee;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.Joiner;
 | 
					import com.google.common.base.Joiner;
 | 
				
			||||||
import com.google.common.collect.HashMultimap;
 | 
					import com.google.common.collect.HashMultimap;
 | 
				
			||||||
 | 
					import com.google.common.collect.ImmutableList;
 | 
				
			||||||
import com.google.common.collect.Multimap;
 | 
					import com.google.common.collect.Multimap;
 | 
				
			||||||
import com.google.common.io.ByteArrayDataInput;
 | 
					import com.google.common.io.ByteArrayDataInput;
 | 
				
			||||||
import com.google.common.io.ByteArrayDataOutput;
 | 
					import com.google.common.io.ByteArrayDataOutput;
 | 
				
			||||||
@ -11,6 +12,8 @@ import com.imaginarycode.minecraft.redisbungee.util.RedisCallable;
 | 
				
			|||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import net.md_5.bungee.api.AbstractReconnectHandler;
 | 
					import net.md_5.bungee.api.AbstractReconnectHandler;
 | 
				
			||||||
import net.md_5.bungee.api.ChatColor;
 | 
					import net.md_5.bungee.api.ChatColor;
 | 
				
			||||||
 | 
					import net.md_5.bungee.api.ProxyServer;
 | 
				
			||||||
 | 
					import net.md_5.bungee.api.ServerPing;
 | 
				
			||||||
import net.md_5.bungee.api.chat.BaseComponent;
 | 
					import net.md_5.bungee.api.chat.BaseComponent;
 | 
				
			||||||
import net.md_5.bungee.api.chat.ComponentBuilder;
 | 
					import net.md_5.bungee.api.chat.ComponentBuilder;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
@ -42,6 +45,8 @@ public class RedisBungeeListener implements Listener {
 | 
				
			|||||||
    private final RedisBungee plugin;
 | 
					    private final RedisBungee plugin;
 | 
				
			||||||
    private final List<InetAddress> exemptAddresses;
 | 
					    private final List<InetAddress> exemptAddresses;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final List<String> ASYNC_PING_EVENT_HOSTILE = ImmutableList.of("ServerListPlus", "SwiftMOTD");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EventHandler(priority = EventPriority.LOWEST)
 | 
					    @EventHandler(priority = EventPriority.LOWEST)
 | 
				
			||||||
    public void onLogin(final LoginEvent event) {
 | 
					    public void onLogin(final LoginEvent event) {
 | 
				
			||||||
        event.registerIntent(plugin);
 | 
					        event.registerIntent(plugin);
 | 
				
			||||||
@ -141,7 +146,27 @@ public class RedisBungeeListener implements Listener {
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        event.getResponse().getPlayers().setOnline(plugin.getCount());
 | 
					        boolean runAsync = true;
 | 
				
			||||||
 | 
					        for (String s : ASYNC_PING_EVENT_HOSTILE) {
 | 
				
			||||||
 | 
					            if (ProxyServer.getInstance().getPluginManager().getPlugin(s) != null) {
 | 
				
			||||||
 | 
					                runAsync = false;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (runAsync) {
 | 
				
			||||||
 | 
					            event.registerIntent(plugin);
 | 
				
			||||||
 | 
					            plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void run() {
 | 
				
			||||||
 | 
					                    event.getResponse().getPlayers().setOnline(plugin.getCount());
 | 
				
			||||||
 | 
					                    event.completeIntent(plugin);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            // Async ping event will not work as an async-hostile plugin was found, so perform the ping modification synchronously.
 | 
				
			||||||
 | 
					            event.getResponse().getPlayers().setOnline(plugin.getCount());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @EventHandler
 | 
					    @EventHandler
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user