mirror of
				https://github.com/proxiodev/RedisBungee.git
				synced 2025-11-04 09:38:03 +00:00 
			
		
		
		
	fix error being thrown getServerFor in Bungeecord/Velocity in the api closes #64
when plugins messing around with proxy internals (eg: limboapi) the field server in redis data of the player set to null which can become problematic for velocity due checking of null in velocity but i applied the same stuff to the bungeecord version aswell and document it in the javadocs
This commit is contained in:
		
							parent
							
								
									0534970368
								
							
						
					
					
						commit
						441a12bb36
					
				@ -20,6 +20,7 @@ import com.imaginarycode.minecraft.redisbungee.api.summoners.JedisClusterSummone
 | 
				
			|||||||
import com.imaginarycode.minecraft.redisbungee.api.summoners.JedisPooledSummoner;
 | 
					import com.imaginarycode.minecraft.redisbungee.api.summoners.JedisPooledSummoner;
 | 
				
			||||||
import com.imaginarycode.minecraft.redisbungee.api.summoners.Summoner;
 | 
					import com.imaginarycode.minecraft.redisbungee.api.summoners.Summoner;
 | 
				
			||||||
import org.checkerframework.checker.nullness.qual.NonNull;
 | 
					import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			||||||
 | 
					import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			||||||
import redis.clients.jedis.Jedis;
 | 
					import redis.clients.jedis.Jedis;
 | 
				
			||||||
import redis.clients.jedis.JedisCluster;
 | 
					import redis.clients.jedis.JedisCluster;
 | 
				
			||||||
import redis.clients.jedis.JedisPool;
 | 
					import redis.clients.jedis.JedisPool;
 | 
				
			||||||
@ -81,8 +82,9 @@ public abstract class AbstractRedisBungeeAPI {
 | 
				
			|||||||
     * as well, and will return local information on them.
 | 
					     * as well, and will return local information on them.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param player a player uuid
 | 
					     * @param player a player uuid
 | 
				
			||||||
     * @return a String name for the server the player is on.
 | 
					     * @return a String name for the server the player is on. Can be Null if plugins is doing weird stuff to the proxy internals
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Nullable
 | 
				
			||||||
    public final String getServerNameFor(@NonNull UUID player) {
 | 
					    public final String getServerNameFor(@NonNull UUID player) {
 | 
				
			||||||
        return plugin.getDataManager().getServer(player);
 | 
					        return plugin.getDataManager().getServer(player);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@ import com.imaginarycode.minecraft.redisbungee.api.RedisBungeePlugin;
 | 
				
			|||||||
import net.md_5.bungee.api.config.ServerInfo;
 | 
					import net.md_5.bungee.api.config.ServerInfo;
 | 
				
			||||||
import net.md_5.bungee.api.plugin.Plugin;
 | 
					import net.md_5.bungee.api.plugin.Plugin;
 | 
				
			||||||
import org.checkerframework.checker.nullness.qual.NonNull;
 | 
					import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			||||||
 | 
					import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -43,8 +44,11 @@ public class RedisBungeeAPI extends AbstractRedisBungeeAPI {
 | 
				
			|||||||
     * @return {@link ServerInfo} Can be null if proxy can't find it.
 | 
					     * @return {@link ServerInfo} Can be null if proxy can't find it.
 | 
				
			||||||
     * @see #getServerNameFor(UUID)
 | 
					     * @see #getServerNameFor(UUID)
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Nullable
 | 
				
			||||||
    public final ServerInfo getServerFor(@NonNull UUID player) {
 | 
					    public final ServerInfo getServerFor(@NonNull UUID player) {
 | 
				
			||||||
        return ((Plugin) this.plugin).getProxy().getServerInfo(this.getServerNameFor(player));
 | 
					        String serverName = this.getServerNameFor(player);
 | 
				
			||||||
 | 
					        if (serverName == null) return null;
 | 
				
			||||||
 | 
					        return ((Plugin) this.plugin).getProxy().getServerInfo(serverName);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@ import com.imaginarycode.minecraft.redisbungee.api.RedisBungeePlugin;
 | 
				
			|||||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
 | 
					import com.velocitypowered.api.proxy.server.RegisteredServer;
 | 
				
			||||||
import com.velocitypowered.api.proxy.server.ServerInfo;
 | 
					import com.velocitypowered.api.proxy.server.ServerInfo;
 | 
				
			||||||
import org.checkerframework.checker.nullness.qual.NonNull;
 | 
					import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			||||||
 | 
					import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -44,8 +45,11 @@ public class RedisBungeeAPI extends AbstractRedisBungeeAPI {
 | 
				
			|||||||
     * @return {@link ServerInfo} Can be null if proxy can't find it.
 | 
					     * @return {@link ServerInfo} Can be null if proxy can't find it.
 | 
				
			||||||
     * @see #getServerNameFor(UUID)
 | 
					     * @see #getServerNameFor(UUID)
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Nullable
 | 
				
			||||||
    public final ServerInfo getServerFor(@NonNull UUID player) {
 | 
					    public final ServerInfo getServerFor(@NonNull UUID player) {
 | 
				
			||||||
        return ((RedisBungeeVelocityPlugin) this.plugin).getProxy().getServer(this.getServerNameFor(player)).map((RegisteredServer::getServerInfo)).orElse(null);
 | 
					        String serverName = this.getServerNameFor(player);
 | 
				
			||||||
 | 
					        if (serverName == null) return null;
 | 
				
			||||||
 | 
					        return ((RedisBungeeVelocityPlugin) this.plugin).getProxy().getServer(serverName).map((RegisteredServer::getServerInfo)).orElse(null);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user